From admin at opensuse.org Tue Dec 1 01:33:41 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 01:33:41 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc59d919ce5e_f3a2ae56450e5f0318159@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: [ 176s] ^ [ 176s] In file included from gprs_ns2_fr.c:45:0: [ 176s] /usr/include/linux/if.h:252:8: error: redefinition of 'struct ifconf' [ 176s] struct ifconf { [ 176s] ^ [ 176s] In file included from gprs_ns2_fr.c:39:0: [ 176s] /usr/include/net/if.h:176:8: note: originally defined here [ 176s] struct ifconf [ 176s] ^ [ 176s] Makefile:542: recipe for target 'gprs_ns2_fr.lo' failed [ 176s] make[3]: *** [gprs_ns2_fr.lo] Error 1 [ 176s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/gb' [ 176s] Makefile:690: recipe for target 'all-recursive' failed [ 176s] make[2]: *** [all-recursive] Error 1 [ 176s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 176s] Makefile:468: recipe for target 'all' failed [ 176s] make[1]: *** [all] Error 2 [ 176s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 176s] dh_auto_build: make -j1 returned exit code 2 [ 176s] debian/rules:15: recipe for target 'build' failed [ 176s] make: *** [build] Error 2 [ 176s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 176s] ### VM INTERACTION START ### [ 177s] Powering off. [ 177s] [ 169.762850] reboot: Power down [ 177s] ### VM INTERACTION END ### [ 177s] [ 177s] lamb05 failed "build libosmocore_1.4.0.219.a24e7.dsc" at Tue Dec 1 01:33:04 UTC 2020. [ 177s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 01:42:15 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 01:42:15 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc59f8feed64_f3a2ae56450e5f0320160@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: [ 218s] ^ [ 218s] In file included from gprs_ns2_fr.c:45:0: [ 218s] /usr/include/linux/if.h:252:8: error: redefinition of 'struct ifconf' [ 218s] struct ifconf { [ 218s] ^ [ 218s] In file included from gprs_ns2_fr.c:39:0: [ 218s] /usr/include/net/if.h:176:8: note: originally defined here [ 218s] struct ifconf [ 218s] ^ [ 218s] Makefile:542: recipe for target 'gprs_ns2_fr.lo' failed [ 218s] make[3]: *** [gprs_ns2_fr.lo] Error 1 [ 218s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/gb' [ 218s] Makefile:690: recipe for target 'all-recursive' failed [ 218s] make[2]: *** [all-recursive] Error 1 [ 218s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 218s] Makefile:468: recipe for target 'all' failed [ 218s] make[1]: *** [all] Error 2 [ 218s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 218s] dh_auto_build: make -j1 returned exit code 2 [ 218s] debian/rules:15: recipe for target 'build' failed [ 218s] make: *** [build] Error 2 [ 218s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 218s] ### VM INTERACTION START ### [ 219s] Powering off. [ 219s] [ 200.234973] reboot: Power down [ 219s] ### VM INTERACTION END ### [ 219s] [ 219s] old-atreju5 failed "build libosmocore_1.4.0.219.a24e7.dsc" at Tue Dec 1 01:40:57 UTC 2020. [ 219s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 01:56:49 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 01:56:49 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc5a2f4500c0_f3a2ae56450e5f03241c6@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: [ 154s] make[2]: Nothing to be done for 'all'. [ 154s] make[2]: Leaving directory '/usr/src/packages/BUILD/include' [ 154s] Making all in src [ 154s] make[2]: Entering directory '/usr/src/packages/BUILD/src' [ 154s] CXX gprs_debug.lo [ 155s] CC csn1.lo [ 158s] CC gsm_rlcmac.lo [ 159s] CXX gprs_bssgp_pcu.lo [ 159s] gprs_bssgp_pcu.cpp: In function 'int ns_create_nsvc(gprs_rlcmac_bts*, uint16_t, const osmo_sockaddr*, const osmo_sockaddr*, const uint16_t*, uint16_t)': [ 159s] gprs_bssgp_pcu.cpp:983:13: error: 'GPRS_NS2_LL_UDP' was not declared in this scope [ 159s] GPRS_NS2_LL_UDP); [ 159s] ^ [ 159s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 159s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 159s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 159s] Makefile:405: recipe for target 'all-recursive' failed [ 159s] make[1]: *** [all-recursive] Error 1 [ 159s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 159s] dh_auto_build: make -j1 returned exit code 2 [ 159s] debian/rules:12: recipe for target 'build' failed [ 159s] make: *** [build] Error 2 [ 159s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 159s] ### VM INTERACTION START ### [ 160s] Powering off. [ 160s] [ 151.028803] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] hci-cnode1-m0 failed "build osmo-pcu_0.8.0.280.58cd.dsc" at Tue Dec 1 01:55:58 UTC 2020. [ 160s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 02:22:37 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 02:22:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc5a8f23951d_f3a2ae56450e5f03293bc@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: [ 140s] make[4]: Entering directory '/usr/src/packages/BUILD/src/gbproxy' [ 140s] CC gb_proxy.o [ 140s] gb_proxy.c: In function 'gbprox_relay2nse': [ 140s] gb_proxy.c:846:17: error: 'struct ' has no member named 'link_selector' [ 140s] nsp.u.unitdata.link_selector = tlli; [ 140s] ^ [ 140s] Makefile:482: recipe for target 'gb_proxy.o' failed [ 140s] make[4]: *** [gb_proxy.o] Error 1 [ 140s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/gbproxy' [ 140s] Makefile:383: recipe for target 'all-recursive' failed [ 140s] make[3]: *** [all-recursive] Error 1 [ 140s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 140s] Makefile:449: recipe for target 'all-recursive' failed [ 140s] make[2]: *** [all-recursive] Error 1 [ 140s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 140s] Makefile:380: recipe for target 'all' failed [ 140s] make[1]: *** [all] Error 2 [ 140s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 140s] dh_auto_build: make -j1 returned exit code 2 [ 140s] debian/rules:45: recipe for target 'build' failed [ 140s] make: *** [build] Error 2 [ 140s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 140s] ### VM INTERACTION START ### [ 141s] Powering off. [ 141s] [ 134.385400] reboot: Power down [ 141s] ### VM INTERACTION END ### [ 141s] [ 141s] build83 failed "build osmo-sgsn_1.6.0.64.9e58.dsc" at Tue Dec 1 02:22:08 UTC 2020. [ 141s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 02:32:37 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 02:32:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5ab487f70a_f3a2ae56450e5f03320f9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: [ 217s] Running mktexlsr /var/lib/texmf ... done. [ 217s] [416/471] installing python3-3.9.0-3 [ 217s] Processing triggers for man-db (2.9.3-2) ... [ 217s] [417/471] installing texlive-plain-generic-2020.20200925-1 [ 221s] Processing triggers for tex-common (6.15) ... [ 222s] Running mktexlsr. This may take some time... done. [ 222s] [418/471] installing texlive-latex-base-2020.20201129-1 [ 222s] Processing triggers for man-db (2.9.3-2) ... [ 223s] Processing triggers for tex-common (6.15) ... [ 223s] Running mktexlsr. This may take some time... done. [ 223s] Running updmap-sys. This may take some time... done. [ 224s] Running mktexlsr /var/lib/texmf ... done. [ 224s] Building format(s) --all. [ 233s] This may take some time... [ 233s] fmtutil failed. Output has been stored in [ 233s] /tmp/fmtutil.UpJM2cin [ 233s] Please include this file if you report a bug. [ 233s] dpkg: error processing package tex-common (--install): [ 233s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 233s] Errors were encountered while processing: [ 233s] tex-common [ 233s] exit ... [ 233s] ### VM INTERACTION START ### [ 236s] [ 191.857361] sysrq: Power Off [ 236s] [ 191.863392] reboot: Power down [ 236s] ### VM INTERACTION END ### [ 236s] [ 236s] cloud117 failed "build osmo-gsm-manuals-dev_0.3.0.37.c507.dsc" at Tue Dec 1 02:32:00 UTC 2020. [ 236s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 02:50:54 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 02:50:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5afa218e20_f3a2ae56450e5f03350ee@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-mgw failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: [ 228s] [442/499] installing python3-3.9.0-3 [ 228s] Processing triggers for man-db (2.9.3-2) ... [ 229s] [443/499] installing texlive-plain-generic-2020.20200925-1 [ 233s] Processing triggers for tex-common (6.15) ... [ 233s] Running mktexlsr. This may take some time... done. [ 233s] [444/499] installing libosmo-netif-dev-1.0.0.8.bd77 [ 234s] [445/499] installing texlive-latex-base-2020.20201129-1 [ 234s] Processing triggers for man-db (2.9.3-2) ... [ 235s] Processing triggers for tex-common (6.15) ... [ 235s] Running mktexlsr. This may take some time... done. [ 235s] Running updmap-sys. This may take some time... done. [ 235s] Running mktexlsr /var/lib/texmf ... done. [ 236s] Building format(s) --all. [ 243s] This may take some time... [ 243s] fmtutil failed. Output has been stored in [ 243s] /tmp/fmtutil.6g3FJuAg [ 243s] Please include this file if you report a bug. [ 243s] dpkg: error processing package tex-common (--install): [ 243s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 243s] Errors were encountered while processing: [ 243s] tex-common [ 243s] exit ... [ 243s] ### VM INTERACTION START ### [ 247s] [ 227.305894] sysrq: Power Off [ 247s] [ 227.310453] reboot: Power down [ 247s] ### VM INTERACTION END ### [ 247s] [ 247s] lamb54 failed "build osmo-mgw_1.7.0.130.3c29.dsc" at Tue Dec 1 02:50:27 UTC 2020. [ 247s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 02:52:02 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 02:52:02 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5afdcd495c_f3a2ae56450e5f0335142@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-sccp Last lines of build log: [ 269s] [445/502] installing python3-3.9.0-3 [ 269s] Processing triggers for man-db (2.9.3-2) ... [ 270s] [446/502] installing texlive-plain-generic-2020.20200925-1 [ 274s] Processing triggers for tex-common (6.15) ... [ 274s] Running mktexlsr. This may take some time... done. [ 274s] [447/502] installing libosmo-netif-dev-1.0.0.8.bd77 [ 274s] [448/502] installing texlive-latex-base-2020.20201129-1 [ 275s] Processing triggers for man-db (2.9.3-2) ... [ 275s] Processing triggers for tex-common (6.15) ... [ 275s] Running mktexlsr. This may take some time... done. [ 276s] Running updmap-sys. This may take some time... done. [ 276s] Running mktexlsr /var/lib/texmf ... done. [ 276s] Building format(s) --all. [ 285s] This may take some time... [ 285s] fmtutil failed. Output has been stored in [ 285s] /tmp/fmtutil.wRcC3IYH [ 285s] Please include this file if you report a bug. [ 285s] dpkg: error processing package tex-common (--install): [ 285s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 285s] Errors were encountered while processing: [ 285s] tex-common [ 285s] exit ... [ 285s] ### VM INTERACTION START ### [ 288s] [ 223.772454] sysrq: Power Off [ 288s] [ 223.797700] reboot: Power down [ 288s] ### VM INTERACTION END ### [ 288s] [ 288s] cloud107 failed "build libosmo-sccp_1.3.0.25.48e2.dsc" at Tue Dec 1 02:51:17 UTC 2020. [ 288s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 03:01:13 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 03:01:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-hlr in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5b214a791b_f3a2ae56450e5f0336558@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-hlr/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-hlr failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-hlr Last lines of build log: [ 167s] [445/502] installing python3-3.9.0-3 [ 167s] Processing triggers for man-db (2.9.3-2) ... [ 168s] [446/502] installing texlive-plain-generic-2020.20200925-1 [ 171s] Processing triggers for tex-common (6.15) ... [ 171s] Running mktexlsr. This may take some time... done. [ 171s] [447/502] installing libosmo-netif-dev-1.0.0.8.bd77 [ 172s] [448/502] installing texlive-latex-base-2020.20201129-1 [ 172s] Processing triggers for man-db (2.9.3-2) ... [ 172s] Processing triggers for tex-common (6.15) ... [ 173s] Running mktexlsr. This may take some time... done. [ 173s] Running updmap-sys. This may take some time... done. [ 173s] Running mktexlsr /var/lib/texmf ... done. [ 173s] Building format(s) --all. [ 181s] This may take some time... [ 181s] fmtutil failed. Output has been stored in [ 181s] /tmp/fmtutil.dNwreZRN [ 181s] Please include this file if you report a bug. [ 182s] dpkg: error processing package tex-common (--install): [ 182s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 182s] Errors were encountered while processing: [ 182s] tex-common [ 182s] exit ... [ 182s] ### VM INTERACTION START ### [ 185s] [ 165.020548] sysrq: Power Off [ 185s] [ 165.024950] reboot: Power down [ 185s] ### VM INTERACTION END ### [ 185s] [ 185s] old-atreju4 failed "build osmo-hlr_1.2.0.67.dac8.dsc" at Tue Dec 1 03:00:47 UTC 2020. [ 185s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 03:04:02 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 03:04:02 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5b2a9554a6_f3a2ae56450e5f0336929@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-ggsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: [ 143s] Running mktexlsr /var/lib/texmf ... done. [ 143s] [436/492] installing python3-3.9.0-3 [ 144s] Processing triggers for man-db (2.9.3-2) ... [ 144s] [437/492] installing texlive-plain-generic-2020.20200925-1 [ 147s] Processing triggers for tex-common (6.15) ... [ 147s] Running mktexlsr. This may take some time... done. [ 147s] [438/492] installing texlive-latex-base-2020.20201129-1 [ 147s] Processing triggers for man-db (2.9.3-2) ... [ 148s] Processing triggers for tex-common (6.15) ... [ 148s] Running mktexlsr. This may take some time... done. [ 148s] Running updmap-sys. This may take some time... done. [ 148s] Running mktexlsr /var/lib/texmf ... done. [ 148s] Building format(s) --all. [ 154s] This may take some time... [ 154s] fmtutil failed. Output has been stored in [ 154s] /tmp/fmtutil.5oxEeuzV [ 154s] Please include this file if you report a bug. [ 154s] dpkg: error processing package tex-common (--install): [ 154s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 154s] Errors were encountered while processing: [ 154s] tex-common [ 154s] exit ... [ 154s] ### VM INTERACTION START ### [ 157s] [ 140.829043] sysrq: Power Off [ 157s] [ 140.832520] reboot: Power down [ 157s] ### VM INTERACTION END ### [ 157s] [ 157s] hci-cnode1-m0 failed "build osmo-ggsn_1.6.0.13.1230.dsc" at Tue Dec 1 03:03:37 UTC 2020. [ 157s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 03:18:37 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 03:18:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc5b6143709f_f3a2ae56450e5f03388e5@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: [ 124s] make[2]: Nothing to be done for 'all'. [ 124s] make[2]: Leaving directory '/usr/src/packages/BUILD/include' [ 124s] Making all in src [ 124s] make[2]: Entering directory '/usr/src/packages/BUILD/src' [ 124s] CXX gprs_debug.lo [ 124s] CC csn1.lo [ 126s] CC gsm_rlcmac.lo [ 127s] CXX gprs_bssgp_pcu.lo [ 127s] gprs_bssgp_pcu.cpp: In function 'int ns_create_nsvc(gprs_rlcmac_bts*, uint16_t, const osmo_sockaddr*, const osmo_sockaddr*, const uint16_t*, uint16_t)': [ 127s] gprs_bssgp_pcu.cpp:983:13: error: 'GPRS_NS2_LL_UDP' was not declared in this scope [ 127s] GPRS_NS2_LL_UDP); [ 127s] ^ [ 127s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 127s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 127s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 127s] Makefile:405: recipe for target 'all-recursive' failed [ 127s] make[1]: *** [all-recursive] Error 1 [ 127s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 127s] dh_auto_build: make -j1 returned exit code 2 [ 127s] debian/rules:12: recipe for target 'build' failed [ 127s] make: *** [build] Error 2 [ 127s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 127s] ### VM INTERACTION START ### [ 128s] Powering off. [ 128s] [ 119.775690] reboot: Power down [ 128s] ### VM INTERACTION END ### [ 128s] [ 128s] sheep85 failed "build osmo-pcu_0.8.0.280.58cd.dsc" at Tue Dec 1 03:18:05 UTC 2020. [ 128s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 03:43:59 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 03:43:59 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5bc09798ae_f3a2ae56450e5f03412b2@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: [ 247s] Running mktexlsr /var/lib/texmf ... done. [ 247s] [445/501] installing python3-3.9.0-3 [ 248s] Processing triggers for man-db (2.9.3-2) ... [ 248s] [446/501] installing texlive-plain-generic-2020.20201129-1 [ 252s] Processing triggers for tex-common (6.15) ... [ 252s] Running mktexlsr. This may take some time... done. [ 252s] [447/501] installing texlive-latex-base-2020.20201129-2 [ 252s] Processing triggers for man-db (2.9.3-2) ... [ 253s] Processing triggers for tex-common (6.15) ... [ 253s] Running mktexlsr. This may take some time... done. [ 254s] Running updmap-sys. This may take some time... done. [ 254s] Running mktexlsr /var/lib/texmf ... done. [ 254s] Building format(s) --all. [ 262s] This may take some time... [ 262s] fmtutil failed. Output has been stored in [ 262s] /tmp/fmtutil.LWv3hnUf [ 262s] Please include this file if you report a bug. [ 262s] dpkg: error processing package tex-common (--install): [ 262s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 262s] Errors were encountered while processing: [ 262s] tex-common [ 262s] exit ... [ 262s] ### VM INTERACTION START ### [ 265s] [ 244.912299] sysrq: Power Off [ 265s] [ 244.916848] reboot: Power down [ 265s] ### VM INTERACTION END ### [ 265s] [ 265s] lamb09 failed "build osmo-bts_1.2.0.343.def2.dsc" at Tue Dec 1 03:42:25 UTC 2020. [ 265s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 03:48:33 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 03:48:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5bd1698d81_f3a2ae56450e5f03419a9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-e1d failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-e1d Last lines of build log: [ 112s] Running mktexlsr /var/lib/texmf ... done. [ 112s] [434/490] installing python3-3.9.0-3 [ 112s] Processing triggers for man-db (2.9.3-2) ... [ 112s] [435/490] installing texlive-plain-generic-2020.20201129-1 [ 114s] Processing triggers for tex-common (6.15) ... [ 114s] Running mktexlsr. This may take some time... done. [ 114s] [436/490] installing texlive-latex-base-2020.20201129-2 [ 115s] Processing triggers for man-db (2.9.3-2) ... [ 115s] Processing triggers for tex-common (6.15) ... [ 115s] Running mktexlsr. This may take some time... done. [ 116s] Running updmap-sys. This may take some time... done. [ 116s] Running mktexlsr /var/lib/texmf ... done. [ 116s] Building format(s) --all. [ 120s] This may take some time... [ 120s] fmtutil failed. Output has been stored in [ 120s] /tmp/fmtutil.E0vr9b5H [ 120s] Please include this file if you report a bug. [ 120s] dpkg: error processing package tex-common (--install): [ 120s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 120s] Errors were encountered while processing: [ 120s] tex-common [ 121s] exit ... [ 121s] ### VM INTERACTION START ### [ 124s] [ 114.408950] sysrq: Power Off [ 124s] [ 114.412724] reboot: Power down [ 124s] ### VM INTERACTION END ### [ 124s] [ 124s] goat11 failed "build osmo-e1d_0.1.1.20.e542.dsc" at Tue Dec 1 03:48:15 UTC 2020. [ 124s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 03:57:24 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 03:57:24 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fc5bf33cfadf_f3a2ae56450e5f034264f@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] [ 113s] Memory region Used Size Region Size %age Used [ 113s] rom: 16580 B 16 KB 101.20% [ 113s] 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 [ 113s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 113s] /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: warning: changing start of section .stack by 4 bytes [ 113s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 113s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 113s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 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] [ 104.832597] sysrq: Power Off [ 116s] [ 104.835770] reboot: Power down [ 116s] ### VM INTERACTION END ### [ 116s] [ 116s] sheep85 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 1 03:56:19 UTC 2020. [ 116s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 03:57:41 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 03:57:41 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5bf4f3827b_f3a2ae56450e5f0342721@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 180s] Running mktexlsr /var/lib/texmf ... done. [ 180s] [470/528] installing python3-3.9.0-3 [ 180s] Processing triggers for man-db (2.9.3-2) ... [ 180s] [471/528] installing texlive-plain-generic-2020.20201129-1 [ 183s] Processing triggers for tex-common (6.15) ... [ 184s] Running mktexlsr. This may take some time... done. [ 184s] [472/528] installing texlive-latex-base-2020.20201129-2 [ 184s] Processing triggers for man-db (2.9.3-2) ... [ 184s] Processing triggers for tex-common (6.15) ... [ 184s] Running mktexlsr. This may take some time... done. [ 185s] Running updmap-sys. This may take some time... done. [ 185s] Running mktexlsr /var/lib/texmf ... done. [ 185s] Building format(s) --all. [ 192s] This may take some time... [ 192s] fmtutil failed. Output has been stored in [ 192s] /tmp/fmtutil.LQU9jcmJ [ 192s] Please include this file if you report a bug. [ 193s] dpkg: error processing package tex-common (--install): [ 193s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 193s] Errors were encountered while processing: [ 193s] tex-common [ 193s] exit ... [ 193s] ### VM INTERACTION START ### [ 196s] [ 174.682958] sysrq: Power Off [ 196s] [ 174.686043] reboot: Power down [ 196s] ### VM INTERACTION END ### [ 196s] [ 196s] old-atreju3 failed "build osmo-remsim_0.2.2.103.dc34.dsc" at Tue Dec 1 03:56:51 UTC 2020. [ 196s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 04:00:14 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 04:00:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5bfe6cd2fb_f3a2ae56450e5f034286@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: [ 131s] Running mktexlsr /var/lib/texmf ... done. [ 131s] [434/490] installing python3-3.9.0-3 [ 131s] Processing triggers for man-db (2.9.3-2) ... [ 131s] [435/490] installing texlive-plain-generic-2020.20201129-1 [ 134s] Processing triggers for tex-common (6.15) ... [ 134s] Running mktexlsr. This may take some time... done. [ 134s] [436/490] installing texlive-latex-base-2020.20201129-2 [ 135s] Processing triggers for man-db (2.9.3-2) ... [ 135s] Processing triggers for tex-common (6.15) ... [ 135s] Running mktexlsr. This may take some time... done. [ 136s] Running updmap-sys. This may take some time... done. [ 136s] Running mktexlsr /var/lib/texmf ... done. [ 136s] Building format(s) --all. [ 141s] This may take some time... [ 141s] fmtutil failed. Output has been stored in [ 141s] /tmp/fmtutil.lfzIxjec [ 141s] Please include this file if you report a bug. [ 141s] dpkg: error processing package tex-common (--install): [ 141s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 141s] Errors were encountered while processing: [ 141s] tex-common [ 141s] exit ... [ 141s] ### VM INTERACTION START ### [ 144s] [ 130.387967] sysrq: Power Off [ 144s] [ 130.396194] reboot: Power down [ 144s] ### VM INTERACTION END ### [ 144s] [ 144s] sheep87 failed "build osmo-pcu_0.8.0.280.58cd.dsc" at Tue Dec 1 03:59:41 UTC 2020. [ 144s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 04:04:32 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 04:04:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc5c0da90d73_f3a2ae56450e5f0343767@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: [ 232s] make[4]: Entering directory '/usr/src/packages/BUILD/src/gbproxy' [ 232s] CC gb_proxy.o [ 232s] gb_proxy.c: In function 'gbprox_relay2nse': [ 232s] gb_proxy.c:846:17: error: 'struct ' has no member named 'link_selector' [ 232s] nsp.u.unitdata.link_selector = tlli; [ 232s] ^ [ 232s] Makefile:482: recipe for target 'gb_proxy.o' failed [ 232s] make[4]: *** [gb_proxy.o] Error 1 [ 232s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/gbproxy' [ 232s] Makefile:383: recipe for target 'all-recursive' failed [ 232s] make[3]: *** [all-recursive] Error 1 [ 232s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 232s] Makefile:449: recipe for target 'all-recursive' failed [ 232s] make[2]: *** [all-recursive] Error 1 [ 232s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 232s] Makefile:380: recipe for target 'all' failed [ 232s] make[1]: *** [all] Error 2 [ 232s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 232s] dh_auto_build: make -j1 returned exit code 2 [ 232s] debian/rules:45: recipe for target 'build' failed [ 232s] make: *** [build] Error 2 [ 232s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 232s] ### VM INTERACTION START ### [ 233s] Powering off. [ 233s] [ 217.443598] reboot: Power down [ 233s] ### VM INTERACTION END ### [ 233s] [ 233s] lamb03 failed "build osmo-sgsn_1.6.0.64.9e58.dsc" at Tue Dec 1 04:03:21 UTC 2020. [ 233s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 04:04:49 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 04:04:49 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5c0f5b7fd2_f3a2ae56450e5f0343898@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: [ 234s] Running mktexlsr /var/lib/texmf ... done. [ 234s] [454/515] installing python3-3.9.0-3 [ 234s] Processing triggers for man-db (2.9.3-2) ... [ 235s] [455/515] installing texlive-plain-generic-2020.20201129-1 [ 239s] Processing triggers for tex-common (6.15) ... [ 239s] Running mktexlsr. This may take some time... done. [ 239s] [456/515] installing texlive-latex-base-2020.20201129-2 [ 240s] Processing triggers for man-db (2.9.3-2) ... [ 241s] Processing triggers for tex-common (6.15) ... [ 241s] Running mktexlsr. This may take some time... done. [ 242s] Running updmap-sys. This may take some time... done. [ 242s] Running mktexlsr /var/lib/texmf ... done. [ 242s] Building format(s) --all. [ 250s] This may take some time... [ 250s] fmtutil failed. Output has been stored in [ 250s] /tmp/fmtutil.fg5n9hAY [ 250s] Please include this file if you report a bug. [ 251s] dpkg: error processing package tex-common (--install): [ 251s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 251s] Errors were encountered while processing: [ 251s] tex-common [ 251s] exit ... [ 251s] ### VM INTERACTION START ### [ 254s] [ 232.692789] sysrq: Power Off [ 254s] [ 232.704390] reboot: Power down [ 254s] ### VM INTERACTION END ### [ 254s] [ 254s] lamb28 failed "build osmo-sip-connector_1.4.1.6.05ee.dsc" at Tue Dec 1 04:04:24 UTC 2020. [ 254s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 04:11:24 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 04:11:24 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5c27edfa59_f3a2ae56450e5f034493b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 175s] Processing triggers for libc-bin (2.31-4) ... [ 175s] [575/656] installing python3-3.9.0-3 [ 175s] Processing triggers for man-db (2.9.3-2) ... [ 175s] [576/656] installing texlive-plain-generic-2020.20201129-1 [ 178s] Processing triggers for tex-common (6.15) ... [ 178s] Running mktexlsr. This may take some time... done. [ 178s] [577/656] installing texlive-latex-base-2020.20201129-2 [ 178s] Processing triggers for man-db (2.9.3-2) ... [ 178s] Processing triggers for tex-common (6.15) ... [ 179s] Running mktexlsr. This may take some time... done. [ 179s] Running updmap-sys. This may take some time... done. [ 179s] Running mktexlsr /var/lib/texmf ... done. [ 179s] Building format(s) --all. [ 184s] This may take some time... [ 184s] fmtutil failed. Output has been stored in [ 184s] /tmp/fmtutil.ZygzPj2a [ 184s] Please include this file if you report a bug. [ 184s] dpkg: error processing package tex-common (--install): [ 184s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 184s] Errors were encountered while processing: [ 184s] tex-common [ 184s] exit ... [ 184s] ### VM INTERACTION START ### [ 187s] [ 164.451151] sysrq: Power Off [ 187s] [ 164.453522] reboot: Power down [ 187s] ### VM INTERACTION END ### [ 187s] [ 187s] hci-cnode1-m0 failed "build osmo-trx_1.2.0.114.57db.dsc" at Tue Dec 1 04:09:40 UTC 2020. [ 187s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 04:20:15 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 04:20:15 +0000 Subject: Build failure of network:osmocom:nightly/osmo-uecups in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5c496da001_f3a2ae56450e5f034649c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-uecups/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-uecups failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-uecups Last lines of build log: [ 174s] [442/499] installing python3-3.9.0-3 [ 174s] Processing triggers for man-db (2.9.3-2) ... [ 174s] [443/499] installing texlive-plain-generic-2020.20201129-1 [ 178s] Processing triggers for tex-common (6.15) ... [ 178s] Running mktexlsr. This may take some time... done. [ 178s] [444/499] installing libosmo-netif-dev-1.0.0.8.bd77 [ 178s] [445/499] installing texlive-latex-base-2020.20201129-2 [ 179s] Processing triggers for man-db (2.9.3-2) ... [ 179s] Processing triggers for tex-common (6.15) ... [ 179s] Running mktexlsr. This may take some time... done. [ 180s] Running updmap-sys. This may take some time... done. [ 180s] Running mktexlsr /var/lib/texmf ... done. [ 180s] Building format(s) --all. [ 187s] This may take some time... [ 187s] fmtutil failed. Output has been stored in [ 187s] /tmp/fmtutil.GOIDfsUh [ 187s] Please include this file if you report a bug. [ 187s] dpkg: error processing package tex-common (--install): [ 187s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 187s] Errors were encountered while processing: [ 187s] tex-common [ 187s] exit ... [ 187s] ### VM INTERACTION START ### [ 190s] [ 169.181599] sysrq: Power Off [ 190s] [ 169.184615] reboot: Power down [ 190s] ### VM INTERACTION END ### [ 190s] [ 190s] old-atreju2 failed "build osmo-uecups_0.1.3.1.8362.dsc" at Tue Dec 1 04:19:51 UTC 2020. [ 190s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 04:25:41 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 04:25:41 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5c5e3d72d9_f3a2ae56450e5f034697@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-bsc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 105s] [449/507] installing python3-3.9.0-3 [ 106s] Processing triggers for man-db (2.9.3-2) ... [ 106s] [450/507] installing texlive-plain-generic-2020.20201129-1 [ 108s] Processing triggers for tex-common (6.15) ... [ 108s] Running mktexlsr. This may take some time... done. [ 108s] [451/507] installing libosmo-netif-dev-1.0.0.8.bd77 [ 108s] [452/507] installing texlive-latex-base-2020.20201129-2 [ 109s] Processing triggers for man-db (2.9.3-2) ... [ 109s] Processing triggers for tex-common (6.15) ... [ 109s] Running mktexlsr. This may take some time... done. [ 109s] Running updmap-sys. This may take some time... done. [ 109s] Running mktexlsr /var/lib/texmf ... done. [ 110s] Building format(s) --all. [ 114s] This may take some time... [ 114s] fmtutil failed. Output has been stored in [ 114s] /tmp/fmtutil.o3JVzCCt [ 114s] Please include this file if you report a bug. [ 114s] dpkg: error processing package tex-common (--install): [ 114s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 114s] Errors were encountered while processing: [ 114s] tex-common [ 114s] exit ... [ 114s] ### VM INTERACTION START ### [ 117s] [ 105.700740] sysrq: Power Off [ 117s] [ 105.701974] reboot: Power down [ 117s] ### VM INTERACTION END ### [ 117s] [ 117s] build70 failed "build osmo-bsc_1.6.0.413.c93b.dsc" at Tue Dec 1 04:24:50 UTC 2020. [ 117s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 04:25:58 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 04:25:58 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5c5ebc5ea5_f3a2ae56450e5f0347134@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-smlc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: [ 138s] [438/496] installing python3-3.9.0-3 [ 138s] Processing triggers for man-db (2.9.3-2) ... [ 139s] [439/496] installing texlive-plain-generic-2020.20201129-1 [ 142s] Processing triggers for tex-common (6.15) ... [ 142s] Running mktexlsr. This may take some time... done. [ 142s] [440/496] installing libosmo-netif-dev-1.0.0.8.bd77 [ 142s] [441/496] installing texlive-latex-base-2020.20201129-2 [ 142s] Processing triggers for man-db (2.9.3-2) ... [ 142s] Processing triggers for tex-common (6.15) ... [ 143s] Running mktexlsr. This may take some time... done. [ 143s] Running updmap-sys. This may take some time... done. [ 143s] Running mktexlsr /var/lib/texmf ... done. [ 143s] Building format(s) --all. [ 149s] This may take some time... [ 149s] fmtutil failed. Output has been stored in [ 149s] /tmp/fmtutil.UfCh5zwa [ 149s] Please include this file if you report a bug. [ 149s] dpkg: error processing package tex-common (--install): [ 149s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 149s] Errors were encountered while processing: [ 149s] tex-common [ 149s] exit ... [ 149s] ### VM INTERACTION START ### [ 152s] [ 136.949253] sysrq: Power Off [ 152s] [ 136.957339] reboot: Power down [ 152s] ### VM INTERACTION END ### [ 152s] [ 152s] sheep84 failed "build osmo-smlc_0.1.0.5.5dad.dsc" at Tue Dec 1 04:25:24 UTC 2020. [ 152s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 04:30:32 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 04:30:32 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fc5c6f269f8e_f3a2ae56450e5f03478a2@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.532128] sysrq: Power Off [ 160s] [ 149.539568] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] lamb16 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 1 04:29:36 UTC 2020. [ 160s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 05:11:41 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 05:11:41 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5d0a780bc1_f3a2ae56450e5f035467f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: [ 171s] Running mktexlsr /var/lib/texmf ... done. [ 171s] [416/471] installing python3-3.9.0-3 [ 171s] Processing triggers for man-db (2.9.3-2) ... [ 171s] [417/471] installing texlive-plain-generic-2020.20201129-1 [ 174s] Processing triggers for tex-common (6.15) ... [ 175s] Running mktexlsr. This may take some time... done. [ 175s] [418/471] installing texlive-latex-base-2020.20201129-2 [ 175s] Processing triggers for man-db (2.9.3-2) ... [ 176s] Processing triggers for tex-common (6.15) ... [ 176s] Running mktexlsr. This may take some time... done. [ 176s] Running updmap-sys. This may take some time... done. [ 176s] Running mktexlsr /var/lib/texmf ... done. [ 177s] Building format(s) --all. [ 184s] This may take some time... [ 184s] fmtutil failed. Output has been stored in [ 184s] /tmp/fmtutil.rv6IIUoz [ 184s] Please include this file if you report a bug. [ 184s] dpkg: error processing package tex-common (--install): [ 184s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 184s] Errors were encountered while processing: [ 184s] tex-common [ 184s] exit ... [ 184s] ### VM INTERACTION START ### [ 187s] [ 170.185086] sysrq: Power Off [ 187s] [ 170.192646] reboot: Power down [ 187s] ### VM INTERACTION END ### [ 187s] [ 187s] lamb13 failed "build osmo-gsm-manuals-dev_0.3.0.37.c507.dsc" at Tue Dec 1 05:10:51 UTC 2020. [ 187s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 05:28:37 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 05:28:37 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5d489a0b42_f3a2ae56450e5f035851a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-sccp Last lines of build log: [ 216s] [445/502] installing python3-3.9.0-3 [ 216s] Processing triggers for man-db (2.9.3-2) ... [ 217s] [446/502] installing texlive-plain-generic-2020.20201129-1 [ 220s] Processing triggers for tex-common (6.15) ... [ 220s] Running mktexlsr. This may take some time... done. [ 220s] [447/502] installing libosmo-netif-dev-1.0.0.8.bd77 [ 220s] [448/502] installing texlive-latex-base-2020.20201129-2 [ 221s] Processing triggers for man-db (2.9.3-2) ... [ 221s] Processing triggers for tex-common (6.15) ... [ 221s] Running mktexlsr. This may take some time... done. [ 222s] Running updmap-sys. This may take some time... done. [ 222s] Running mktexlsr /var/lib/texmf ... done. [ 222s] Building format(s) --all. [ 229s] This may take some time... [ 229s] fmtutil failed. Output has been stored in [ 229s] /tmp/fmtutil.2Bd3v4Vg [ 229s] Please include this file if you report a bug. [ 229s] dpkg: error processing package tex-common (--install): [ 229s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 229s] Errors were encountered while processing: [ 229s] tex-common [ 229s] exit ... [ 229s] ### VM INTERACTION START ### [ 232s] [ 213.683223] sysrq: Power Off [ 232s] [ 213.688206] reboot: Power down [ 232s] ### VM INTERACTION END ### [ 232s] [ 232s] lamb15 failed "build libosmo-sccp_1.3.0.25.48e2.dsc" at Tue Dec 1 05:27:54 UTC 2020. [ 232s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 05:28:54 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 05:28:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5d4a3d4f19_f3a2ae56450e5f03586cb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-mgw failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: [ 133s] [442/499] installing python3-3.9.0-3 [ 133s] Processing triggers for man-db (2.9.3-2) ... [ 133s] [443/499] installing texlive-plain-generic-2020.20201129-1 [ 136s] Processing triggers for tex-common (6.15) ... [ 136s] Running mktexlsr. This may take some time... done. [ 136s] [444/499] installing libosmo-netif-dev-1.0.0.8.bd77 [ 136s] [445/499] installing texlive-latex-base-2020.20201129-2 [ 137s] Processing triggers for man-db (2.9.3-2) ... [ 137s] Processing triggers for tex-common (6.15) ... [ 137s] Running mktexlsr. This may take some time... done. [ 138s] Running updmap-sys. This may take some time... done. [ 138s] Running mktexlsr /var/lib/texmf ... done. [ 138s] Building format(s) --all. [ 144s] This may take some time... [ 144s] fmtutil failed. Output has been stored in [ 144s] /tmp/fmtutil.ckw8bbAn [ 144s] Please include this file if you report a bug. [ 144s] dpkg: error processing package tex-common (--install): [ 144s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 144s] Errors were encountered while processing: [ 144s] tex-common [ 144s] exit ... [ 144s] ### VM INTERACTION START ### [ 147s] [ 122.763822] sysrq: Power Off [ 147s] [ 122.765654] reboot: Power down [ 147s] ### VM INTERACTION END ### [ 147s] [ 147s] wildcard2 failed "build osmo-mgw_1.7.0.130.3c29.dsc" at Tue Dec 1 05:28:20 UTC 2020. [ 147s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 05:31:28 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 05:31:28 +0000 Subject: Build failure of network:osmocom:nightly/osmo-hlr in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5d53ef3a23_f3a2ae56450e5f03589d4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-hlr/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-hlr failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-hlr Last lines of build log: [ 178s] [445/502] installing python3-3.9.0-3 [ 178s] Processing triggers for man-db (2.9.3-2) ... [ 179s] [446/502] installing texlive-plain-generic-2020.20201129-1 [ 182s] Processing triggers for tex-common (6.15) ... [ 182s] Running mktexlsr. This may take some time... done. [ 182s] [447/502] installing libosmo-netif-dev-1.0.0.8.bd77 [ 182s] [448/502] installing texlive-latex-base-2020.20201129-2 [ 183s] Processing triggers for man-db (2.9.3-2) ... [ 183s] Processing triggers for tex-common (6.15) ... [ 183s] Running mktexlsr. This may take some time... done. [ 184s] Running updmap-sys. This may take some time... done. [ 184s] Running mktexlsr /var/lib/texmf ... done. [ 184s] Building format(s) --all. [ 191s] This may take some time... [ 191s] fmtutil failed. Output has been stored in [ 191s] /tmp/fmtutil.VHOYGTSY [ 191s] Please include this file if you report a bug. [ 191s] dpkg: error processing package tex-common (--install): [ 191s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 191s] Errors were encountered while processing: [ 191s] tex-common [ 191s] exit ... [ 191s] ### VM INTERACTION START ### [ 194s] [ 175.383169] sysrq: Power Off [ 194s] [ 175.389959] reboot: Power down [ 194s] ### VM INTERACTION END ### [ 194s] [ 194s] lamb23 failed "build osmo-hlr_1.2.0.67.dac8.dsc" at Tue Dec 1 05:30:32 UTC 2020. [ 194s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 05:39:29 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 05:39:29 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5d71a4d669_f3a2ae56450e5f03599ec@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-ggsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: [ 181s] Running mktexlsr /var/lib/texmf ... done. [ 181s] [436/492] installing python3-3.9.0-3 [ 181s] Processing triggers for man-db (2.9.3-2) ... [ 181s] [437/492] installing texlive-plain-generic-2020.20201129-1 [ 184s] Processing triggers for tex-common (6.15) ... [ 185s] Running mktexlsr. This may take some time... done. [ 185s] [438/492] installing texlive-latex-base-2020.20201129-2 [ 185s] Processing triggers for man-db (2.9.3-2) ... [ 186s] Processing triggers for tex-common (6.15) ... [ 186s] Running mktexlsr. This may take some time... done. [ 186s] Running updmap-sys. This may take some time... done. [ 186s] Running mktexlsr /var/lib/texmf ... done. [ 187s] Building format(s) --all. [ 194s] This may take some time... [ 194s] fmtutil failed. Output has been stored in [ 194s] /tmp/fmtutil.GVKgyIrr [ 194s] Please include this file if you report a bug. [ 194s] dpkg: error processing package tex-common (--install): [ 194s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 194s] Errors were encountered while processing: [ 194s] tex-common [ 194s] exit ... [ 194s] ### VM INTERACTION START ### [ 197s] [ 177.616826] sysrq: Power Off [ 197s] [ 177.627636] reboot: Power down [ 197s] ### VM INTERACTION END ### [ 197s] [ 197s] lamb12 failed "build osmo-ggsn_1.6.0.13.1230.dsc" at Tue Dec 1 05:37:56 UTC 2020. [ 197s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 05:40:55 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 05:40:55 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5d777f3325_f3a2ae56450e5f03601da@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 130s] [458/516] installing python3-3.9.0-3 [ 131s] Processing triggers for man-db (2.9.3-2) ... [ 131s] [459/516] installing texlive-plain-generic-2020.20201129-1 [ 134s] Processing triggers for tex-common (6.15) ... [ 134s] Running mktexlsr. This may take some time... done. [ 134s] [460/516] installing libosmo-netif-dev-1.0.0.8.bd77 [ 134s] [461/516] installing texlive-latex-base-2020.20201129-2 [ 134s] Processing triggers for man-db (2.9.3-2) ... [ 134s] Processing triggers for tex-common (6.15) ... [ 135s] Running mktexlsr. This may take some time... done. [ 135s] Running updmap-sys. This may take some time... done. [ 135s] Running mktexlsr /var/lib/texmf ... done. [ 135s] Building format(s) --all. [ 141s] This may take some time... [ 141s] fmtutil failed. Output has been stored in [ 141s] /tmp/fmtutil.jWWK6yrI [ 141s] Please include this file if you report a bug. [ 141s] dpkg: error processing package tex-common (--install): [ 141s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 141s] Errors were encountered while processing: [ 141s] tex-common [ 141s] exit ... [ 141s] ### VM INTERACTION START ### [ 144s] [ 129.115815] sysrq: Power Off [ 144s] [ 129.119877] reboot: Power down [ 144s] ### VM INTERACTION END ### [ 144s] [ 144s] sheep85 failed "build osmo-msc_1.6.1.87.e917b.dsc" at Tue Dec 1 05:40:06 UTC 2020. [ 144s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 1 05:53:32 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 01 Dec 2020 05:53:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc5da62edb9b_f3a2ae56450e5f03615bc@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: [ 272s] [455/513] installing python3-3.9.0-3 [ 272s] Processing triggers for man-db (2.9.3-2) ... [ 273s] [456/513] installing texlive-plain-generic-2020.20201129-1 [ 277s] Processing triggers for tex-common (6.15) ... [ 277s] Running mktexlsr. This may take some time... done. [ 278s] [457/513] installing libosmo-netif-dev-1.0.0.8.bd77 [ 278s] [458/513] installing texlive-latex-base-2020.20201129-2 [ 278s] Processing triggers for man-db (2.9.3-2) ... [ 279s] Processing triggers for tex-common (6.15) ... [ 279s] Running mktexlsr. This may take some time... done. [ 280s] Running updmap-sys. This may take some time... done. [ 280s] Running mktexlsr /var/lib/texmf ... done. [ 280s] Building format(s) --all. [ 289s] This may take some time... [ 289s] fmtutil failed. Output has been stored in [ 289s] /tmp/fmtutil.HJgsbIqc [ 289s] Please include this file if you report a bug. [ 289s] dpkg: error processing package tex-common (--install): [ 289s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 289s] Errors were encountered while processing: [ 289s] tex-common [ 289s] exit ... [ 289s] ### VM INTERACTION START ### [ 292s] [ 258.300858] sysrq: Power Off [ 292s] [ 258.307440] reboot: Power down [ 292s] ### VM INTERACTION END ### [ 292s] [ 292s] cloud129 failed "build osmo-sgsn_1.6.0.64.9e58.dsc" at Tue Dec 1 05:52:44 UTC 2020. [ 292s] -- 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 Dec 1 10:27:35 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 1 Dec 2020 10:27:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add second bvc in some NSE, improve bvci numbering References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 ) Change subject: gbproxy: Add second bvc in some NSE, improve bvci numbering ...................................................................... gbproxy: Add second bvc in some NSE, improve bvci numbering Change the test setup so we can actually verify that paging over signalling is only sent once per NSE. Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Related: SYS#5226 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 31 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/20/21420/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 2120fa7..92e89bf 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -128,7 +128,7 @@ sgsn_role := false, bvc := { { - bvci := 196, + bvci := 200, cell_id := { ra_id := { lai := { @@ -141,6 +141,21 @@ }, depth := BSSGP_DECODE_DEPTH_BSSGP, create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) + }, + { + bvci := 201, + cell_id := { + ra_id := { + lai := { + mcc_mnc := c_mcc_mnc, + lac := 13135 + }, + rac := 0 + }, + cell_id := 21960 + }, + depth := BSSGP_DECODE_DEPTH_BSSGP, + create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) } } }, { @@ -161,6 +176,21 @@ }, depth := BSSGP_DECODE_DEPTH_BSSGP, create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) + }, + { + bvci := 211, + cell_id := { + ra_id := { + lai := { + mcc_mnc := c_mcc_mnc, + lac := 13135 + }, + rac := 1 + }, + cell_id := 21961 + }, + depth := BSSGP_DECODE_DEPTH_BSSGP, + create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) } } }, { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 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 Dec 1 10:40:06 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 1 Dec 2020 10:40:06 +0000 Subject: Change in libosmocore[master]: gsm: Add enum for Network Feature Support IE In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21380 ) Change subject: gsm: Add enum for Network Feature Support IE ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie409fd163b612bc3e2d7b8bf22d720705f0f6af1 Gerrit-Change-Number: 21380 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 01 Dec 2020 10: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 Dec 1 10:44:04 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 1 Dec 2020 10:44:04 +0000 Subject: Change in docker-playground[master]: common: Automatize UPSTREAM_DISTRO name based on image name In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21238 ) Change subject: common: Automatize UPSTREAM_DISTRO name based on image name ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21238 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I33cb21aa024396974559fd98f9f3c64e2c351eda Gerrit-Change-Number: 21238 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 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 Tue Dec 1 10:52:54 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 1 Dec 2020 10:52:54 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-hnbgw-master/Dockerfile File osmo-hnbgw-master/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-hnbgw-master/Dockerfile at 6 PS1, Line 6: ARG OSMOCOM_REPO_MIRROR Here you don't add DISTRO again https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-nitb-master/Dockerfile File osmo-nitb-master/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-nitb-master/Dockerfile at 6 PS1, Line 6: ARG DISTRO Here you do (as well as in some other cases) In both cases is doesn't seem to be used below. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 10:52: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 Dec 1 11:26:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 1 Dec 2020 11:26:57 +0000 Subject: Change in libosmocore[master]: gsm: Add enum for Network Feature Support IE In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21380 ) Change subject: gsm: Add enum for Network Feature Support IE ...................................................................... gsm: Add enum for Network Feature Support IE Change-Id: Ie409fd163b612bc3e2d7b8bf22d720705f0f6af1 --- M include/osmocom/gsm/protocol/gsm_04_08_gprs.h 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/protocol/gsm_04_08_gprs.h b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h index 86c5b01..dbac259 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08_gprs.h +++ b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h @@ -98,6 +98,7 @@ GSM48_IE_GMM_PDP_CTX_STATUS = 0x32, /* 10.5.7.1 */ GSM48_IE_GMM_PS_LCS_CAPA = 0x33, /* 10.5.5.22 */ GSM48_IE_GMM_GMM_MBMS_CTX_ST = 0x35, /* 10.5.7.6 */ + GSM48_IE_GMM_NET_FEAT_SUPPORT = 0xB0, /* 10.5.5.23 */ }; enum gsm48_gprs_ie_sm { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie409fd163b612bc3e2d7b8bf22d720705f0f6af1 Gerrit-Change-Number: 21380 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Dec 1 11:32:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 1 Dec 2020 11:32:22 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-nitb-master/Dockerfile File osmo-nitb-master/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-nitb-master/Dockerfile at 6 PS1, Line 6: ARG DISTRO > Here you do (as well as in some other cases) [?] I would say it doesn't really matter if it's added or not here if it's not used later on, I see points for and against for both. I'd say it's fine keeping it here if not used in case somebody wants to use it here in the future. Feel free to say if you really want it in a specific way and i change it, otherwsise I say let's merge as it is. As you see it's tons of files so it's expected that some file may be a bit different than others. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:32:22 +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 Dec 1 11:34:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 1 Dec 2020 11:34:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add second bvc in some NSE, improve bvci numbering In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 ) Change subject: gbproxy: Add second bvc in some NSE, improve bvci numbering ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:34: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 Dec 1 11:44:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:44:46 +0000 Subject: Change in docker-playground[master]: common: Automatize UPSTREAM_DISTRO name based on image name In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21238 ) Change subject: common: Automatize UPSTREAM_DISTRO name based on image name ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21238 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I33cb21aa024396974559fd98f9f3c64e2c351eda Gerrit-Change-Number: 21238 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:44: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 Dec 1 11:46:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:46:04 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 1: > The default value is in Makefile.am, so if you build with make it works out of the box. Default value in Dockerfile is only needed if one attempts to build directly from it. I can add it to each Dockerfile if you prefer, but I thought it was going to be confusing since anyway that value is not used because a default value is pssed through Makefile. I personally often used to build the Dockerfiles by hand, and so far, AFAICT, this has been working. We should not break that option, IMHO. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:46: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 Dec 1 11:46:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:46:20 +0000 Subject: Change in docker-playground[master]: common: Automatize UPSTREAM_DISTRO name based on image name In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21238 ) Change subject: common: Automatize UPSTREAM_DISTRO name based on image name ...................................................................... common: Automatize UPSTREAM_DISTRO name based on image name Similar to what is already done with DISTRO, which points to given image of ours based on name. This time we do the same with upstream images, such as debian:stretch or centos:centos8. This way, for instance calling docker_images_require "osmo-bsc-latest-centos8" would try to build the osmo-bsc-latest/Dockerfile file starting from a centos8 image. Change-Id: I33cb21aa024396974559fd98f9f3c64e2c351eda --- M centos-repo-install-test/Dockerfile M centos8-build/Dockerfile M debian-repo-install-test/Dockerfile M debian-stretch-build/Dockerfile M debian-stretch-titan/Dockerfile M jenkins-common.sh M make/Makefile M osmo-bsc-latest/Dockerfile M osmo-bts-latest/Dockerfile M osmo-cn-latest/Dockerfile M osmo-ggsn-latest/Dockerfile M osmo-hlr-latest/Dockerfile M osmo-hnbgw-latest/Dockerfile M osmo-mgw-latest/Dockerfile M osmo-msc-latest/Dockerfile M osmo-nitb-latest/Dockerfile M osmo-pcu-latest/Dockerfile M osmo-remsim-latest/Dockerfile M osmo-sgsn-latest/Dockerfile M osmo-sip-latest/Dockerfile M osmo-stp-latest/Dockerfile 21 files changed, 61 insertions(+), 26 deletions(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve pespin: Verified diff --git a/centos-repo-install-test/Dockerfile b/centos-repo-install-test/Dockerfile index 3f53650..5cbddb0 100644 --- a/centos-repo-install-test/Dockerfile +++ b/centos-repo-install-test/Dockerfile @@ -1,6 +1,7 @@ ARG USER ARG REGISTRY=docker.io -FROM ${REGISTRY}/centos:centos8 +ARG UPSTREAM_DISTRO=centos:centos8 +FROM ${REGISTRY}/${UPSTREAM_DISTRO} # dnf-utils: for repoquery RUN dnf install -y \ @@ -9,4 +10,3 @@ # Make additional development libraries available RUN yum config-manager --set-enabled PowerTools - diff --git a/centos8-build/Dockerfile b/centos8-build/Dockerfile index 46ce23e..e71e03c 100644 --- a/centos8-build/Dockerfile +++ b/centos8-build/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/centos:centos8 +ARG UPSTREAM_DISTRO=centos:centos8 +FROM ${REGISTRY}/${UPSTREAM_DISTRO} # Let package metadata expire after 60 seconds instead of 48 hours RUN echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf diff --git a/debian-repo-install-test/Dockerfile b/debian-repo-install-test/Dockerfile index e718a23..e12da75 100644 --- a/debian-repo-install-test/Dockerfile +++ b/debian-repo-install-test/Dockerfile @@ -1,6 +1,7 @@ ARG USER ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} COPY Release.key /tmp/Release.key diff --git a/debian-stretch-build/Dockerfile b/debian-stretch-build/Dockerfile index ac52708..96e92de 100644 --- a/debian-stretch-build/Dockerfile +++ b/debian-stretch-build/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile index 7420348..01d941e 100644 --- a/debian-stretch-titan/Dockerfile +++ b/debian-stretch-titan/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/jenkins-common.sh b/jenkins-common.sh index d9e79a4..fdcfd40 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -12,10 +12,18 @@ docker_distro_from_image_name() { case "$1" in - osmo-*-centos8) echo "centos8"; ;; + osmo-*-centos8) echo "centos8" ;; + centos8-*) echo "centos8" ;; *) echo "debian-stretch" ;; esac +} +docker_upstream_distro_from_image_name() { + case "$1" in + osmo-*-centos8) echo "centos:centos8"; ;; + centos8-*) echo "centos:centos8" ;; + *) echo "debian:stretch" ;; + esac } docker_dir_from_image_name() { @@ -27,15 +35,20 @@ # Make sure required images are available and build them if necessary. # $*: image names (e.g. "debian-stretch-build", "osmo-mgw-master", "osmo-mgw-master-centos8") -# The images are automatically built from the Dockerfile of the subdir of the same name. If there is a -# distribution name at the end of the image name (e.g. osmo-mgw-master-centos8), it gets removed from the subdir -# where the Dockerfile is taken from (e.g. osmo-mgw-master/Dockerfile) and DISTRO is passed accordingly -# (e.g. DISTRO=centos8). This allows one Dockerfile for multiple distributions, without duplicating configs for -# each distribution. Dependencies listed in docker_depends() are built automatically too. +# The images are automatically built from the Dockerfile of the subdir of +# the same name. If there is a distribution name at the end of the image +# name (e.g. osmo-mgw-master-centos8), it gets removed from the subdir +# where the Dockerfile is taken from (e.g. osmo-mgw-master/Dockerfile) +# and UPSTREAM_DISTRO and DISTRO are passed accordingly (e.g. +# UPSTREAM_DISTRO=centos:centos8 DISTRO=centos8). This allows one +# Dockerfile for multiple distributions, without duplicating configs for +# each distribution. Dependencies listed in docker_depends() are built +# automatically too. docker_images_require() { local i local from_line local pull_arg + local upstream_distro_arg local distro_arg local depends local dir @@ -49,6 +62,7 @@ # Trigger image build (cache will be used when up-to-date) if [ -z "$NO_DOCKER_IMAGE_BUILD" ]; then + upstream_distro_arg="$(docker_upstream_distro_from_image_name "$i")" distro_arg="$(docker_distro_from_image_name "$i")" dir="$(docker_dir_from_image_name "$i")" @@ -62,6 +76,7 @@ echo "Building image: $i (export NO_DOCKER_IMAGE_BUILD=1 to prevent this)" make -C "../$dir" \ PULL="$pull_arg" \ + UPSTREAM_DISTRO="$upstream_distro_arg" \ DISTRO="$distro_arg" \ IMAGE="$REPO_USER/$i" \ || exit 1 diff --git a/make/Makefile b/make/Makefile index 1a13c4d..63562f3 100644 --- a/make/Makefile +++ b/make/Makefile @@ -33,6 +33,7 @@ OSMO_SIP_BRANCH?=master OSMO_STP_BRANCH?=master PULL?= +UPSTREAM_DISTRO?=debian:stretch DISTRO?=debian-stretch RELEASE_SUPPORT := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))/.make-release-support @@ -61,6 +62,7 @@ --build-arg USER=$(USERNAME) \ --build-arg REGISTRY=$(REGISTRY_HOST) \ --build-arg OSMO_TTCN3_BRANCH=$(OSMO_TTCN3_BRANCH) \ + --build-arg UPSTREAM_DISTRO=$(UPSTREAM_DISTRO) \ --build-arg DISTRO=$(DISTRO) \ --build-arg LIBOSMOCORE_BRANCH=$(LIBOSMOCORE_BRANCH) \ --build-arg OSMO_BB_BRANCH=$(OSMO_BB_BRANCH) \ diff --git a/osmo-bsc-latest/Dockerfile b/osmo-bsc-latest/Dockerfile index 1ab1e02..178af72 100644 --- a/osmo-bsc-latest/Dockerfile +++ b/osmo-bsc-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-bts-latest/Dockerfile b/osmo-bts-latest/Dockerfile index df1d832..954fc58 100644 --- a/osmo-bts-latest/Dockerfile +++ b/osmo-bts-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-cn-latest/Dockerfile b/osmo-cn-latest/Dockerfile index ba98621..ca6859d 100644 --- a/osmo-cn-latest/Dockerfile +++ b/osmo-cn-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Daniel Willmann diff --git a/osmo-ggsn-latest/Dockerfile b/osmo-ggsn-latest/Dockerfile index ac50c4e..3430791 100644 --- a/osmo-ggsn-latest/Dockerfile +++ b/osmo-ggsn-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-hlr-latest/Dockerfile b/osmo-hlr-latest/Dockerfile index 606a2df..a8e106c 100644 --- a/osmo-hlr-latest/Dockerfile +++ b/osmo-hlr-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-hnbgw-latest/Dockerfile b/osmo-hnbgw-latest/Dockerfile index 15e515f..b39d2e7 100644 --- a/osmo-hnbgw-latest/Dockerfile +++ b/osmo-hnbgw-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-mgw-latest/Dockerfile b/osmo-mgw-latest/Dockerfile index eba9ace..27fb259 100644 --- a/osmo-mgw-latest/Dockerfile +++ b/osmo-mgw-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-msc-latest/Dockerfile b/osmo-msc-latest/Dockerfile index 6fc5858..e52a79a 100644 --- a/osmo-msc-latest/Dockerfile +++ b/osmo-msc-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-nitb-latest/Dockerfile b/osmo-nitb-latest/Dockerfile index 5dafc33..ccdb75a 100644 --- a/osmo-nitb-latest/Dockerfile +++ b/osmo-nitb-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-pcu-latest/Dockerfile b/osmo-pcu-latest/Dockerfile index ccd492c..ad5187e 100644 --- a/osmo-pcu-latest/Dockerfile +++ b/osmo-pcu-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-remsim-latest/Dockerfile b/osmo-remsim-latest/Dockerfile index 2229032..fdc41ee 100644 --- a/osmo-remsim-latest/Dockerfile +++ b/osmo-remsim-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-sgsn-latest/Dockerfile b/osmo-sgsn-latest/Dockerfile index f24b11c..23a06a1 100644 --- a/osmo-sgsn-latest/Dockerfile +++ b/osmo-sgsn-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-sip-latest/Dockerfile b/osmo-sip-latest/Dockerfile index cdf1315..a310ecd 100644 --- a/osmo-sip-latest/Dockerfile +++ b/osmo-sip-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/osmo-stp-latest/Dockerfile b/osmo-stp-latest/Dockerfile index aca833f..6651c44 100644 --- a/osmo-stp-latest/Dockerfile +++ b/osmo-stp-latest/Dockerfile @@ -1,5 +1,6 @@ ARG REGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARG UPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21238 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I33cb21aa024396974559fd98f9f3c64e2c351eda Gerrit-Change-Number: 21238 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Dec 1 11:47:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:47:02 +0000 Subject: Change in osmo-pcu[master]: Move DL scheduling and RTS handler to trx level In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/3150 ) Change subject: Move DL scheduling and RTS handler to trx level ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/3150 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia176245647c19fa1551fb6f5c8225b2529f73cbf Gerrit-Change-Number: 3150 Gerrit-PatchSet: 9 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 1 11:47:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:47:39 +0000 Subject: Change in osmo-sgsn[master]: gmm: fix build without define PTMSI_ALLOC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21379 ) Change subject: gmm: fix build without define PTMSI_ALLOC ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idcac01c4634af81ef884dc2b1b20dec3f8d12236 Gerrit-Change-Number: 21379 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 01 Dec 2020 11:47: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 Dec 1 11:47:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:47:56 +0000 Subject: Change in osmo-sgsn[master]: gmm: Introduce comment to ease addition of Network feature support IE... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21381 ) Change subject: gmm: Introduce comment to ease addition of Network feature support IE later ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I131cba3de3c80c61d5549e7c31b4eacaaeddb040 Gerrit-Change-Number: 21381 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 01 Dec 2020 11:47: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 Tue Dec 1 11:47:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:47:58 +0000 Subject: Change in osmo-sgsn[master]: gmm: fix build without define PTMSI_ALLOC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21379 ) Change subject: gmm: fix build without define PTMSI_ALLOC ...................................................................... gmm: fix build without define PTMSI_ALLOC Change-Id: Idcac01c4634af81ef884dc2b1b20dec3f8d12236 --- M src/sgsn/gprs_gmm.c 1 file changed, 7 insertions(+), 3 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/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c index 3f7c8ab..f425da2 100644 --- a/src/sgsn/gprs_gmm.c +++ b/src/sgsn/gprs_gmm.c @@ -281,9 +281,11 @@ struct gsm48_hdr *gh; struct gsm48_attach_ack *aa; unsigned long t; +#ifdef PTMSI_ALLOC struct osmo_mobile_identity mi; uint8_t *l; int rc; +#endif #if 0 uint8_t *ptsig; #endif @@ -922,9 +924,9 @@ ctx->t3350_mode = GMM_T3350_MODE_ATT; #else memset(&sig_data, 0, sizeof(sig_data)); - sig_data.mm = mmctx; + sig_data.mm = ctx; osmo_signal_dispatch(SS_SGSN, S_SGSN_ATTACH, &sig_data); - osmo_fsm_inst_dispatch(mm->gmm_fsm, E_GMM_ATTACH_SUCCESS, NULL); + osmo_fsm_inst_dispatch(ctx->gmm_fsm, E_GMM_ATTACH_SUCCESS, NULL); #endif return gsm48_tx_gmm_att_ack(ctx); @@ -1438,9 +1440,11 @@ struct gsm48_hdr *gh; struct gsm48_ra_upd_ack *rua; unsigned long t; +#ifdef PTMSI_ALLOC uint8_t *l; int rc; struct osmo_mobile_identity mi; +#endif rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ROUTING_AREA_ACKED]); LOGMMCTXP(LOGL_INFO, mm, "<- ROUTING AREA UPDATE ACCEPT\n"); @@ -1727,7 +1731,7 @@ mmctx_timer_start(mmctx, 3350); #else /* Make sure we are NORMAL (i.e. not SUSPENDED anymore) */ - osmo_fsm_inst_dispatch(mm->gmm_fsm, E_GMM_ATTACH_SUCCESS, NULL); + osmo_fsm_inst_dispatch(mmctx->gmm_fsm, E_GMM_ATTACH_SUCCESS, NULL); memset(&sig_data, 0, sizeof(sig_data)); sig_data.mm = mmctx; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idcac01c4634af81ef884dc2b1b20dec3f8d12236 Gerrit-Change-Number: 21379 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 1 11:47:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:47:59 +0000 Subject: Change in osmo-sgsn[master]: gmm: Introduce comment to ease addition of Network feature support IE... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21381 ) Change subject: gmm: Introduce comment to ease addition of Network feature support IE later ...................................................................... gmm: Introduce comment to ease addition of Network feature support IE later Change-Id: I131cba3de3c80c61d5549e7c31b4eacaaeddb040 --- M src/sgsn/gprs_gmm.c 1 file changed, 3 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/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c index f425da2..2367338 100644 --- a/src/sgsn/gprs_gmm.c +++ b/src/sgsn/gprs_gmm.c @@ -342,6 +342,9 @@ /* Optional: MS-identity (combined attach) */ /* Optional: GMM cause (partial attach result for combined attach) */ + /* Optional: Network feature support 10.5.5.23 */ + /* msgb_v_put(msg, GSM48_IE_GMM_NET_FEAT_SUPPORT | 0x00);*/ + return gsm48_gmm_sendmsg(msg, 0, mm, true); } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I131cba3de3c80c61d5549e7c31b4eacaaeddb040 Gerrit-Change-Number: 21381 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Tue Dec 1 11:49:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:49:09 +0000 Subject: Change in osmo-pcu[master]: Dl TBF: Get rid of LLC UI dummy blocks following other data In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21387 ) Change subject: Dl TBF: Get rid of LLC UI dummy blocks following other data ...................................................................... Patch Set 4: Code-Review+1 did you confirm this by looking at 'public operator' GPRS downlink blocks? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifae1a7b2b3dfad8df19585063088ba0df2749c8f Gerrit-Change-Number: 21387 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 01 Dec 2020 11:49: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 Dec 1 11:49:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:49:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_mcs_max_dl In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21128 ) Change subject: pcu: Introduce test TC_mcs_max_dl ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21128 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6c58cc18b537c4a1354f1b8263db8321347fbd7 Gerrit-Change-Number: 21128 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 01 Dec 2020 11:49: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 Dec 1 11:50:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:50:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_mcs_max_dl In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21128 ) Change subject: pcu: Introduce test TC_mcs_max_dl ...................................................................... Patch Set 6: > Patch Set 5: > > 13 days passed since I pushed latest version. Can we merge? It is fine for me, which is why I added a +1 on the day of its submisson. The problem is that there are other people in the team who seem to be not doing code review as much sa needed ? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21128 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6c58cc18b537c4a1354f1b8263db8321347fbd7 Gerrit-Change-Number: 21128 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 01 Dec 2020 11:50: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 Tue Dec 1 11:50:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:50:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_mcs_max_dl In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21128 ) Change subject: pcu: Introduce test TC_mcs_max_dl ...................................................................... pcu: Introduce test TC_mcs_max_dl Change-Id: If6c58cc18b537c4a1354f1b8263db8321347fbd7 --- M pcu/PCU_Tests.ttcn 1 file changed, 53 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 834498a..67a811d 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -868,14 +868,25 @@ } /* Verify scheduling of multiple Downlink data blocks, enough to reach CS4 */ -function f_dl_data_exp_cs(template CodingScheme exp_cs := ?) runs on RAW_PCU_Test_CT { - var octetstring data := f_rnd_octstring(1000); +function f_dl_data_exp_cs(template CodingScheme exp_final_cs := ?, template MSRadioAccessCapabilityV_BSSGP ms_racap := omit) runs on RAW_PCU_Test_CT { + var octetstring data := f_rnd_octstring(1400); var RlcmacDlBlock prev_dl_block, dl_block; var uint32_t ack_fn; var uint32_t fn; var GprsMS ms; - var integer tx_data_remain := 5; + var integer tx_data_remain := 10; var integer bsn := 0; + var boolean using_egprs := f_rlcmac_cs_mcs_is_mcs(valueof(exp_final_cs)); + var integer bsn_mod; + var template CodingScheme exp_tmp_csmcs; + + if (using_egprs) { + exp_tmp_csmcs := mcs_egprs_any; + bsn_mod := 2048; + } else { + exp_tmp_csmcs := cs_gprs_any; + bsn_mod := 128; + } /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); @@ -884,14 +895,14 @@ 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)); + BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap)); 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); - for (var integer i := 0; i < 250; i := i + 1) { - bsn := i mod 128; + for (var integer i := 0; i < 800; i := i + 1) { + bsn := i mod bsn_mod; f_rx_rlcmac_dl_block(dl_block, fn); if (match(dl_block, tr_RLCMAC_DUMMY_CTRL)) { @@ -899,15 +910,15 @@ break; } - f_rlcmac_dl_block_exp_data(dl_block, ?, bsn, cs_gprs_any); + f_rlcmac_dl_block_exp_data(dl_block, ?, bsn, exp_tmp_csmcs); /* Keep Ack/Nack description updated */ - f_acknackdesc_ack_block(ms.dl_tbf.acknack_desc, dl_block); + f_dltbf_ack_block(ms.dl_tbf, dl_block); /* TDMA frame number on which we are supposed to send the ACK */ - if (dl_block.data.mac_hdr.mac_hdr.rrbp_valid) { + if (f_dl_block_rrbp_valid(dl_block)) { ack_fn := f_dl_block_ack_fn(dl_block, fn); - f_ms_tx_ul_block(ms, ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf.tfi, ms.dl_tbf.acknack_desc), ack_fn); + f_ms_tx_ul_block(ms, f_dltbf_ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf, using_egprs), ack_fn); if (tx_data_remain != 0) { /* Submit more data from time to time to keep the TBF ongoing */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); @@ -917,8 +928,8 @@ prev_dl_block := dl_block; } - bsn := (bsn + 127) mod 128; /* previous bsn: bsn -1 */ - f_rlcmac_dl_block_exp_data(prev_dl_block, ?, bsn, exp_cs); + bsn := (bsn + (bsn_mod-1)) mod bsn_mod; /* previous bsn: bsn -1 */ + f_rlcmac_dl_block_exp_data(prev_dl_block, ?, bsn, exp_final_cs); f_shutdown(__BFILE__, __LINE__, final := true); @@ -1150,6 +1161,35 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Verify DL MCS above "mcs max" set by VTY is never used */ +testcase TC_mcs_max_dl() runs on RAW_PCU_Test_CT { + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename()); + + /* Set maximum allowed DL CS to 3 */ + g_mcs_initial_dl := 1; + g_mcs_max_dl := 3; + f_pcuvty_set_allowed_cs_mcs(); + f_pcuvty_set_link_quality_ranges(); + + var MultislotCap_GPRS_BSSGP mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MultislotCap_EGPRS_BSSGP mscap_egprs := { + egprsmultislotclass := '00011'B, + egprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV_BSSGP ms_racap := { valueof(ts_RaCapRec_BSSGP('0001'B /* E-GSM */, mscap_gprs, mscap_egprs)) }; + + f_dl_data_exp_cs(f_rlcmac_block_int2cs_mcs(g_mcs_max_dl, true), ms_racap); +} + /* Verify PCU drops TBF after some time of inactivity. */ testcase TC_t3169() runs on RAW_PCU_Test_CT { var PCUIF_info_ind info_ind; @@ -3392,6 +3432,7 @@ execute( TC_mcs_initial_ul() ); execute( TC_mcs_max_ul() ); execute( TC_mcs_initial_dl() ); + execute( TC_mcs_max_dl() ); execute( TC_t3169() ); execute( TC_t3193() ); execute( TC_countdown_procedure() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21128 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6c58cc18b537c4a1354f1b8263db8321347fbd7 Gerrit-Change-Number: 21128 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Dec 1 11:53:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:53:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add second bvc in some NSE, improve bvci numbering In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 ) Change subject: gbproxy: Add second bvc in some NSE, improve bvci numbering ...................................................................... Patch Set 1: I think we should be "smart" here and consider: * not all NSE should have an equal number of BVC, i.e. keep one with 1, one with 2, but add one with 3? This way we cover more situations * make sure the LAC/RAC are aligned intelligently so that for paging tests we have situations like ** multiple cells within same LAC but different RAC, both within one NSE and across multiple NSE ** multiple cells with different LAC, both in one NSE and across multiple NSE I think only with that kind of "spread" we maximize our coverage. Those kind of "thoughts" should be documented in a comment around the compiled-in default configs. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:53: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 Tue Dec 1 11:53:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:53:36 +0000 Subject: Change in osmo-pcu[master]: tbf: Log previous TS when changing Control TS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21407 ) Change subject: tbf: Log previous TS when changing Control TS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5f37f3512dde60e4eb1ccebbb2d96de24604d241 Gerrit-Change-Number: 21407 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 01 Dec 2020 11: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 Tue Dec 1 11:53:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:53:39 +0000 Subject: Change in osmo-pcu[master]: tbf: Log previous TS when changing Control TS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21407 ) Change subject: tbf: Log previous TS when changing Control TS ...................................................................... tbf: Log previous TS when changing Control TS Change-Id: I5f37f3512dde60e4eb1ccebbb2d96de24604d241 --- M src/tbf.cpp 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/tbf.cpp b/src/tbf.cpp index d57c537..e92dfb6 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -363,8 +363,8 @@ LOGPTBF(tbf, LOGL_INFO, "Setting Control TS %d\n", tbf->first_common_ts); else if (tbf->control_ts != tbf->first_common_ts) - LOGPTBF(tbf, LOGL_INFO, "Changing Control TS %d\n", - tbf->first_common_ts); + LOGPTBF(tbf, LOGL_INFO, "Changing Control TS %d -> %d\n", + tbf->control_ts, tbf->first_common_ts); tbf->control_ts = tbf->first_common_ts; return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5f37f3512dde60e4eb1ccebbb2d96de24604d241 Gerrit-Change-Number: 21407 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Tue Dec 1 11:54:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:54:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add tests with nonzero AMR start-mode In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21374 ) Change subject: bsc: add tests with nonzero AMR start-mode ...................................................................... bsc: add tests with nonzero AMR start-mode This test shows that in current osmo-bsc, the start-mode fails to propagate to the MultiRate Config IE, the only start-mode so far has always been zero. Change-Id: I75515baf8cda04567cad8a93c5aa88361c2d259f --- M bsc/BSC_Tests.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 7c12559..2695ce2 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3933,6 +3933,16 @@ start_mode := "auto"); } +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"); +} + +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"); +} + private function f_disable_all_tch_f() runs on test_CT { f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 1 sub-slot 0 borken"); f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 2 sub-slot 0 borken"); @@ -8451,6 +8461,8 @@ execute( TC_assignment_codec_amr_h_S7() ); execute( TC_assignment_codec_amr_f_start_mode_auto() ); execute( TC_assignment_codec_amr_h_start_mode_auto() ); + execute( TC_assignment_codec_amr_f_start_mode_4() ); + execute( TC_assignment_codec_amr_h_start_mode_4() ); execute( TC_assignment_codec_amr_startmode_cruft() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I75515baf8cda04567cad8a93c5aa88361c2d259f Gerrit-Change-Number: 21374 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 Tue Dec 1 11:54:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:54:29 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: clarify Measurement results padding In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21414 ) Change subject: trxcon/scheduler: clarify Measurement results padding ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I4db6845c98aded10291134f416da98fd0f4f58e3 Gerrit-Change-Number: 21414 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11: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 Tue Dec 1 11:54:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:54:39 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: clarify the content of Measurement results In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21415 ) Change subject: trxcon/scheduler: clarify the content of Measurement results ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I26546dcbc853166e351d00260936b1b9d584ae03 Gerrit-Change-Number: 21415 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:54: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 Dec 1 11:54:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:54:55 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: invalidate hard-coded Measurement results In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21416 ) Change subject: trxcon/scheduler: invalidate hard-coded Measurement results ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7da767e146aec7cef1de71e4d735d6a02b6c5642 Gerrit-Change-Number: 21416 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:54: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 Dec 1 11:54:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:54:58 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: clarify Measurement results padding In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21414 ) Change subject: trxcon/scheduler: clarify Measurement results padding ...................................................................... trxcon/scheduler: clarify Measurement results padding Table 10.5.2.20.0 "Measurement Results Contents" in 3GPP TS 44.018 is clear on what should be used as padding - '0**', i.e. zeroes. Change-Id: I4db6845c98aded10291134f416da98fd0f4f58e3 --- M src/host/trxcon/sched_prim.c 1 file changed, 2 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/host/trxcon/sched_prim.c b/src/host/trxcon/sched_prim.c index fc0f05d..e5204ba 100644 --- a/src/host/trxcon/sched_prim.c +++ b/src/host/trxcon/sched_prim.c @@ -144,10 +144,10 @@ /* LAPDm header */ 0x01, 0x03, 0x49, - /* Measurement report */ + /* Measurement report (see 3GPP TS 44.018, section 10.5.2.20) */ 0x06, 0x15, 0x36, 0x36, 0x01, 0xC0, - /* TODO: Padding? Randomize if so */ + /* 0** -- Padding with zeroes */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I4db6845c98aded10291134f416da98fd0f4f58e3 Gerrit-Change-Number: 21414 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 Dec 1 11:54:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:54:58 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: clarify the content of Measurement results In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21415 ) Change subject: trxcon/scheduler: clarify the content of Measurement results ...................................................................... trxcon/scheduler: clarify the content of Measurement results Change-Id: I26546dcbc853166e351d00260936b1b9d584ae03 --- M src/host/trxcon/sched_prim.c 1 file changed, 15 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/host/trxcon/sched_prim.c b/src/host/trxcon/sched_prim.c index e5204ba..f4f5e40 100644 --- a/src/host/trxcon/sched_prim.c +++ b/src/host/trxcon/sched_prim.c @@ -144,8 +144,21 @@ /* LAPDm header */ 0x01, 0x03, 0x49, - /* Measurement report (see 3GPP TS 44.018, section 10.5.2.20) */ - 0x06, 0x15, 0x36, 0x36, 0x01, 0xC0, + /* RR Management messages, Measurement Report */ + 0x06, 0x15, + + /* Measurement results (see 3GPP TS 44.018, section 10.5.2.20): + * 0... .... = BA-USED: 0 + * .0.. .... = DTX-USED: DTX was not used + * ..11 0110 = RXLEV-FULL-SERVING-CELL: -57 <= x < -56 dBm (54) + * 0... .... = 3G-BA-USED: 0 + * .0.. .... = MEAS-VALID: The measurement results are valid + * ..11 0110 = RXLEV-SUB-SERVING-CELL: -57 <= x < -56 dBm (54) + * 0... .... = SI23_BA_USED: 0 + * .000 .... = RXQUAL-FULL-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) + * .... 000. = RXQUAL-SUB-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) + * .... ...1 11.. .... = NO-NCELL-M: Neighbour cell information not available */ + 0x36, 0x36, 0x01, 0xc0, /* 0** -- Padding with zeroes */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I26546dcbc853166e351d00260936b1b9d584ae03 Gerrit-Change-Number: 21415 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 Dec 1 11:54:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:54:58 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: invalidate hard-coded Measurement results In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21416 ) Change subject: trxcon/scheduler: invalidate hard-coded Measurement results ...................................................................... trxcon/scheduler: invalidate hard-coded Measurement results This is what trxcon sends to the network before the first SACCH block is received from the higher layers. The indicated values are of course invalid because they're hard-coded. According to 3GPP TS 44.018, table 10.5.2.20.1: 0 The measurement results are valid 1 The measurement results are not valid Change-Id: I7da767e146aec7cef1de71e4d735d6a02b6c5642 Related: SYS#4918 --- M src/host/trxcon/sched_prim.c 1 file changed, 2 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/host/trxcon/sched_prim.c b/src/host/trxcon/sched_prim.c index f4f5e40..9473320 100644 --- a/src/host/trxcon/sched_prim.c +++ b/src/host/trxcon/sched_prim.c @@ -152,13 +152,13 @@ * .0.. .... = DTX-USED: DTX was not used * ..11 0110 = RXLEV-FULL-SERVING-CELL: -57 <= x < -56 dBm (54) * 0... .... = 3G-BA-USED: 0 - * .0.. .... = MEAS-VALID: The measurement results are valid + * .1.. .... = MEAS-VALID: The measurement results are not valid * ..11 0110 = RXLEV-SUB-SERVING-CELL: -57 <= x < -56 dBm (54) * 0... .... = SI23_BA_USED: 0 * .000 .... = RXQUAL-FULL-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) * .... 000. = RXQUAL-SUB-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) * .... ...1 11.. .... = NO-NCELL-M: Neighbour cell information not available */ - 0x36, 0x36, 0x01, 0xc0, + 0x36, 0x76, 0x01, 0xc0, /* 0** -- Padding with zeroes */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7da767e146aec7cef1de71e4d735d6a02b6c5642 Gerrit-Change-Number: 21416 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 Dec 1 11:55:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:55:59 +0000 Subject: Change in osmo-pcu[master]: Implement downgrade to DL MCS1-4 when USF for GPRS_only MS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21179 ) Change subject: Implement downgrade to DL MCS1-4 when USF for GPRS_only MS ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21179 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9af23e175435fe9ae7b0e4119ad52fcd4707b9ca Gerrit-Change-Number: 21179 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 01 Dec 2020 11:55: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 Dec 1 11:56:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 1 Dec 2020 11:56:00 +0000 Subject: Change in osmo-pcu[master]: Dl TBF: Get rid of LLC UI dummy blocks following other data In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21387 ) Change subject: Dl TBF: Get rid of LLC UI dummy blocks following other data ...................................................................... Patch Set 4: > Patch Set 4: Code-Review+1 > > did you confirm this by looking at 'public operator' GPRS downlink blocks? No, what would you suggest to get those? In any case, I think the specs are quite clear IMHO. I think it was done this way beforehand because it was easier from code implementation point of view at the PCU, and it's not "strictly" or "explicitly" wrong anyway since MS should be discarding those. Still, that means extra processing at MS side as well as making traces more complex to follow. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifae1a7b2b3dfad8df19585063088ba0df2749c8f Gerrit-Change-Number: 21387 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 01 Dec 2020 11:56: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 Tue Dec 1 11:56:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:56:01 +0000 Subject: Change in osmo-pcu[master]: Implement downgrade to DL MCS1-4 when USF for GPRS_only MS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21179 ) Change subject: Implement downgrade to DL MCS1-4 when USF for GPRS_only MS ...................................................................... Implement downgrade to DL MCS1-4 when USF for GPRS_only MS In previous status, if USF for GPRS-only MS was selected, then EGPRS TBFs were skipped and either a GPRS TBF was selected or a Dummy Block was sent. That means the behavior was unfair towards EGPRS TBFs, because sometimes they were skipped in favor of GPRS ones. This patch imporves the situation in the above mentioned USF scenario, by first, under specific conditions, allowing selection of an EGPRS TBF and then forcing it to transmit in EGPRS-GMSK (MCS1-4) so that the USF-targeted MS can still decode the USF, while at the same time providing more fairness by allowing the EGPRS TBF to transmit data. The specific conditions mentioned above are, mainly, related to the fact that once a DL data block has been sent, and hence a BSN was assigned to it, it cannot be retransmitted later using another MCS, since lower MCS1-4 wouldn't be able to contain higher MCS RLC payload. The set of conditions could be expanded in the future by also selecting the EGPRS TBF if retransmition is required and the block to be retransmitted was originally transmitted as MCS1-4. Related: OS#4544 Change-Id: I9af23e175435fe9ae7b0e4119ad52fcd4707b9ca --- M src/bts.cpp M src/bts.h M src/gprs_rlcmac_sched.cpp M src/tbf_dl.cpp M src/tbf_dl.h M tests/tbf/TbfTest.err 6 files changed, 463 insertions(+), 431 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/bts.cpp b/src/bts.cpp index 4097f94..1376686 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -1123,6 +1123,17 @@ m_max_mcs_ul = mcs_ul; } +bool BTS::cs_dl_is_supported(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)); + } else { + return (max_mcs_dl() >= num) && (m_bts.mcs_mask & (1U << num)); + } +} + GprsMs *BTS::ms_alloc(uint8_t ms_class, uint8_t egprs_ms_class) { GprsMs *ms; diff --git a/src/bts.h b/src/bts.h index 6f75715..fd52067 100644 --- a/src/bts.h +++ b/src/bts.h @@ -339,6 +339,7 @@ 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); diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 537929b..84a5970 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -305,9 +305,6 @@ /* If a GPRS (CS1-4) Dl block is required, skip EGPRS(_GSMK) tbfs: */ if (req_mcs_kind == GPRS && tbf->is_egprs_enabled()) continue; - /* TODO: If a GPRS (CS1-4/MCS1-4) Dl block is required, downgrade MCS below instead of skipping */ - if (req_mcs_kind == EGPRS_GMSK && (tbf->is_egprs_enabled() || tbf->ms()->mode() != GPRS)) - continue; age = tbf->frames_since_last_poll(fn); @@ -316,6 +313,15 @@ if (prio == DL_PRIO_NONE) continue; + /* 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); + continue; + } + /* get the TBF with the highest priority */ if (prio > max_prio) { prio_tfi = tfi; @@ -326,12 +332,12 @@ if (prio_tbf) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Scheduling data message at " - "RTS for DL TFI=%d (TRX=%d, TS=%d) prio=%d\n", - prio_tfi, trx, ts, max_prio); + "RTS for DL TFI=%d (TRX=%d, TS=%d) prio=%d mcs_mode_restrict=%s\n", + prio_tfi, trx, ts, max_prio, mode_name(req_mcs_kind)); /* next TBF to handle resource is the next one */ pdch->next_dl_tfi = (prio_tfi + 1) & 31; /* generate DL data block */ - msg = prio_tbf->create_dl_acked_block(fn, ts); + msg = prio_tbf->create_dl_acked_block(fn, ts, req_mcs_kind); *is_egprs = prio_tbf->ms()->mode() != GPRS; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 4b184b8..ad98510 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -442,7 +442,7 @@ } int gprs_rlcmac_dl_tbf::take_next_bsn(uint32_t fn, - int previous_bsn, bool *may_combine) + int previous_bsn, enum mcs_kind req_mcs_kind, bool *may_combine) { int bsn; int data_len2, force_data_len = -1; @@ -456,6 +456,19 @@ if (!mcs_is_edge(force_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 = m_ms->current_cs_dl(); + 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 : + 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)); + } } if (bsn >= 0) { @@ -510,7 +523,7 @@ m_window.v_a()); bts->do_rate_ctr_inc(CTR_RLC_RESTARTED); if (restart_bsn_cycle()) - return take_next_bsn(fn, previous_bsn, may_combine); + return take_next_bsn(fn, previous_bsn, req_mcs_kind, may_combine); } else if (dl_window_stalled()) { /* There are no more packages to send, but the window is stalled. * Restart the bsn_cycle to resend all unacked messages */ @@ -519,14 +532,15 @@ m_window.v_a()); bts->do_rate_ctr_inc(CTR_RLC_STALLED); if (restart_bsn_cycle()) - return take_next_bsn(fn, previous_bsn, may_combine); + 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\n", - m_window.v_s(), mcs_name(new_cs)); + "Sending new block at BSN %d, CS=%s%s\n", + m_window.v_s(), mcs_name(new_cs), + force_cs ? " (forced)" : ""); bsn = create_new_bsn(fn, new_cs); } else if (bts->bts_data()->dl_tbf_preemptive_retransmission && !m_window.window_empty()) { @@ -537,7 +551,7 @@ m_window.v_a()); bts->do_rate_ctr_inc(CTR_RLC_RESTARTED); if (restart_bsn_cycle()) - return take_next_bsn(fn, previous_bsn, may_combine); + return take_next_bsn(fn, previous_bsn, req_mcs_kind, may_combine); } else { /* Nothing left to send, create dummy LLC commands */ LOGPTBFDL(this, LOGL_DEBUG, @@ -565,20 +579,20 @@ * Create DL data block * The messages are fragmented and forwarded as data blocks. */ -struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(uint32_t fn, uint8_t ts) +struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(uint32_t fn, uint8_t ts, enum mcs_kind req_mcs_kind) { int bsn, bsn2 = -1; bool may_combine; - LOGPTBFDL(this, LOGL_DEBUG, "downlink (V(A)==%d .. V(S)==%d)\n", - m_window.v_a(), m_window.v_s()); + LOGPTBFDL(this, LOGL_DEBUG, "downlink (V(A)==%d .. V(S)==%d) mcs_mode_restrict=%s\n", + m_window.v_a(), m_window.v_s(), mode_name(req_mcs_kind)); - bsn = take_next_bsn(fn, -1, &may_combine); + bsn = take_next_bsn(fn, -1, req_mcs_kind, &may_combine); if (bsn < 0) return NULL; if (may_combine) - bsn2 = take_next_bsn(fn, bsn, &may_combine); + bsn2 = take_next_bsn(fn, bsn, req_mcs_kind, &may_combine); return create_dl_acked_block(fn, ts, bsn, bsn2); } diff --git a/src/tbf_dl.h b/src/tbf_dl.h index 685e855..ffb370c 100644 --- a/src/tbf_dl.h +++ b/src/tbf_dl.h @@ -54,7 +54,7 @@ int rcvd_dl_ack(bool final, uint8_t ssn, uint8_t *rbb); int rcvd_dl_ack(bool final_ack, unsigned first_bsn, struct bitvec *rbb); - struct msgb *create_dl_acked_block(uint32_t fn, uint8_t ts); + struct msgb *create_dl_acked_block(uint32_t fn, uint8_t ts, enum mcs_kind req_mcs_kind = EGPRS); void trigger_ass(struct gprs_rlcmac_tbf *old_tbf); bool handle_ack_nack(); @@ -106,8 +106,8 @@ unsigned lost_bytes; }; - int take_next_bsn(uint32_t fn, int previous_bsn, - bool *may_combine); + int take_next_bsn(uint32_t fn, int previous_bsn, enum mcs_kind req_mcs_kind, + bool *may_combine); bool restart_bsn_cycle(); int create_new_bsn(const uint32_t fn, enum CodingScheme cs); struct msgb *create_dl_acked_block(const uint32_t fn, const uint8_t ts, diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 278fbf9..c54c316 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -70,8 +70,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 0, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Dequeue next LLC (len=200) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 0, CS-1): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 @@ -80,8 +80,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 0, CS-1): 07 00 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 1, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 1, CS-1): 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 1 BSN2 -1) @@ -159,8 +159,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 0, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Dequeue next LLC (len=200) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 0, CS-1): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 @@ -169,8 +169,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 0, CS-1): 07 00 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 1, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 1, CS-1): 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 1 BSN2 -1) @@ -248,8 +248,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 0, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Dequeue next LLC (len=200) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 0, CS-1): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 @@ -258,80 +258,80 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 0, CS-1): 07 00 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 1, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 1, CS-1): 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 1 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 1, CS-1): 07 00 03 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 2, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 2, CS-1): 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 2) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 2, CS-1): 07 00 05 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==3) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==3) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 3, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 3, CS-1): 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 3 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 3) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 3, CS-1): 07 00 07 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 4, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 4, CS-1): 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 4, CS-1): 07 00 09 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==5) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==5) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 5, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 5, CS-1): 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 5 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 5) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 5, CS-1): 07 00 0b 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 6, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 6, CS-1): 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 6) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 6, CS-1): 07 00 0d 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==7) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 7, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 7, CS-1): 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 7 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 7) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 7, CS-1): 07 00 0f 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 8, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 8, CS-1): a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 8, CS-1): 07 00 11 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==9) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==9) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 9, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 9, CS-1): 01 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 9 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 9) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 9, CS-1): 07 00 12 01 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==10) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 10, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Complete DL frame, len=200 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Dequeue next LLC (len=200) @@ -340,80 +340,80 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 10, CS-1): 07 00 14 07 c7 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==11) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==11) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 11, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 11, CS-1): 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 11 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 11) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 11, CS-1): 07 00 17 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==12) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==12) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 12, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 12, CS-1): 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 12 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 12) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 12, CS-1): 07 00 19 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==13) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==13) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 13, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 13, CS-1): 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 13 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 13) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 13, CS-1): 07 00 1b 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==14) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==14) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 14, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 14, CS-1): 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 14 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 14) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 14, CS-1): 07 00 1d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==15) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==15) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 15, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 15, CS-1): 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 15 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 15) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 15, CS-1): 07 00 1f 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==16) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==16) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 16, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 16, CS-1): 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 16 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 16) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 16, CS-1): 07 00 21 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==17) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==17) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 17, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 17, CS-1): 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 17 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 17) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 17, CS-1): 07 00 23 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==18) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==18) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 18, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 18, CS-1): 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 18 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 18) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 18, CS-1): 07 00 25 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==19) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==19) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 19, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 19, CS-1): b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 19 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 19) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 19, CS-1): 07 00 27 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==20) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==20) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 20, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Complete DL frame, len=200 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Empty chunk, added LLC dummy command of size 16, drained_since=0 @@ -429,8 +429,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) ack: (BSN=85)"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"(BSN=20) R=ACK I=NACK TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) DL analysis, range=0:21, lost=0, recv=21, skipped=0, bsn=0, info='RRRRRRRRRRRRRRRRRRRRR...........................................' TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) V(B): (V(A)=21)""(V(S)-1=20) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==21 .. V(S)==21) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==21 .. V(S)==21) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new dummy block at BSN 21, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Empty chunk, added LLC dummy command of size 19, drained_since=4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Complete DL frame, len=19 @@ -445,8 +445,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) ack: (BSN=86)"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"(BSN=21) R=ACK I=NACK TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) DL analysis, range=21:22, lost=0, recv=1, skipped=0, bsn=21, info='R...............................................................' TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) V(B): (V(A)=22)""(V(S)-1=21) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==22 .. V(S)==22) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==22 .. V(S)==22) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new dummy block at BSN 22, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Empty chunk, added LLC dummy command of size 19, drained_since=112 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Complete DL frame, len=19 @@ -1403,7 +1403,7 @@ TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=0 pollFN=-1 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) appending 19 bytes -TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Sending new block at BSN 0, CS=CS-1 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Dequeue next LLC (len=19) TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Complete DL frame, len=19 @@ -1414,7 +1414,7 @@ TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) msg block (BSN 0, CS-1): 07 00 00 4d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 MSG = 07 00 00 4d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Sending new block at BSN 1, CS=CS-1 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Complete DL frame, len=19 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Dequeue next LLC (len=19) @@ -1424,7 +1424,7 @@ TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Copying data unit 0 (BSN 1) TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) msg block (BSN 1, CS-1): 07 00 02 4d 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 MSG = 07 00 02 4d 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 -TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) downlink (V(A)==0 .. V(S)==2) +TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Sending new block at BSN 2, CS=CS-1 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) Complete DL frame, len=19 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) changes state from ASSIGN to FINISHED @@ -1688,8 +1688,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654279 block_nr=10 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 0, CS=CS-4 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=10 @@ -1704,8 +1704,8 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on FN=2654292, TS=7 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 0, CS-4): 0f 01 00 29 52 41 55 5f 41 43 43 45 50 54 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 Received RTS for PDCH: TRX=0 TS=7 FN=2654283 block_nr=11 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=1 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=1 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Restarting at BSN 0, because all blocks have been transmitted. TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Resending BSN 0 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) @@ -2201,8 +2201,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654279 block_nr=10 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 0, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 @@ -2220,8 +2220,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654283 block_nr=11 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 1, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2238,8 +2238,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654288 block_nr=0 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 2, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2258,8 +2258,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654292 block_nr=1 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==3) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==3) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 3, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2276,8 +2276,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654296 block_nr=2 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 4, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2296,8 +2296,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654301 block_nr=3 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==5) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==5) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 5, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2314,8 +2314,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654305 block_nr=4 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 6, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2334,8 +2334,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654309 block_nr=5 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==7) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 7, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2352,8 +2352,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654314 block_nr=6 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 8, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2370,8 +2370,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654318 block_nr=7 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==9) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==9) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 9, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2390,8 +2390,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654322 block_nr=8 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==10) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 10, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2408,8 +2408,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654327 block_nr=9 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==11) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==11) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 11, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2428,8 +2428,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654331 block_nr=10 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==12) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==12) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 12, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2446,8 +2446,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654335 block_nr=11 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==13) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==13) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 13, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2466,8 +2466,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654340 block_nr=0 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==14) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==14) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 14, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2484,8 +2484,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654344 block_nr=1 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==15) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==15) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 15, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2502,8 +2502,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654348 block_nr=2 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==16) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==16) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 16, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2522,8 +2522,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654353 block_nr=3 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==17) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==17) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 17, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2540,8 +2540,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654357 block_nr=4 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==18) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==18) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 18, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2560,8 +2560,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654361 block_nr=5 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==19) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==19) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 19, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2578,8 +2578,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654366 block_nr=6 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=5 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==20) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=5 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==20) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 20, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2601,8 +2601,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654370 block_nr=7 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==21) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==21) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 21, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2619,8 +2619,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654374 block_nr=8 scheduling free USF for polling at FN=2654379 of TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==22) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==22) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 22, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2637,8 +2637,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654379 block_nr=9 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==23) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==23) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 23, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2657,8 +2657,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654383 block_nr=10 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==24) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==24) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 24, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2675,8 +2675,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654387 block_nr=11 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==25) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==25) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 25, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2695,8 +2695,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654392 block_nr=0 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==26) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==26) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 26, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2713,8 +2713,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654396 block_nr=1 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==27) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==27) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 27, CS=CS-1 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=13 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=13) @@ -2798,8 +2798,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654405 block_nr=3 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 0, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) data block (BSN 0, CS-1): 4c 4c 43 20 50 41 43 4b 45 54 20 30 30 20 28 54 42 46 20 32 @@ -2815,8 +2815,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654409 block_nr=4 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 1, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) @@ -2833,8 +2833,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654413 block_nr=5 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 2, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) @@ -2851,8 +2851,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654418 block_nr=6 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==3) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==3) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 3, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) @@ -2869,8 +2869,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654422 block_nr=7 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 4, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) @@ -2887,8 +2887,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654426 block_nr=8 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==5) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==5) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 5, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) @@ -2905,8 +2905,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654431 block_nr=9 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 6, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) @@ -2923,8 +2923,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654435 block_nr=10 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==7) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 7, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) @@ -2941,8 +2941,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654439 block_nr=11 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 8, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) @@ -2959,8 +2959,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654444 block_nr=0 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==9) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==9) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 9, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Dequeue next LLC (len=21) @@ -2977,8 +2977,8 @@ Received RTS on disabled PDCH: TRX=0 TS=5 Received RTS on disabled PDCH: TRX=0 TS=6 Received RTS for PDCH: TRX=0 TS=7 FN=2654448 block_nr=1 scheduling USF=0 for required uplink resource of UL TFI=0 -Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==10) +Scheduling data message at RTS for DL TFI=1 (TRX=0, TS=7) prio=3 mcs_mode_restrict=EGPRS_GMSK-only +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS_GMSK-only TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Sending new block at BSN 10, CS=CS-1 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) Complete DL frame, len=21 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) changes state from FLOW to FINISHED @@ -3428,8 +3428,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -3444,8 +3444,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-1): 07 00 00 16 28 2a 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=512) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 @@ -3455,8 +3455,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-1): 07 40 00 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 2, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 -1) @@ -3465,8 +3465,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 2, MCS-1): 07 80 00 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 3, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 3 BSN2 -1) @@ -3475,8 +3475,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 3, MCS-1): 07 c0 00 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 4, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 4, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 -1) @@ -3485,8 +3485,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 4, MCS-1): 07 00 01 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 5, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 5 BSN2 -1) @@ -3495,8 +3495,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 5, MCS-1): 07 40 01 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 6, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 -1) @@ -3505,8 +3505,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-1): 07 80 01 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 7 BSN2 -1) @@ -3515,8 +3515,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-1): 07 c0 01 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 -1) @@ -3525,8 +3525,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-1): 07 00 02 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 9, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 9, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 9 BSN2 -1) @@ -3535,8 +3535,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 9, MCS-1): 07 40 02 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 10, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 10, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 10 BSN2 -1) @@ -3545,8 +3545,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-1): 07 80 02 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 11, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 11, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 11 BSN2 -1) @@ -3555,8 +3555,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 11, MCS-1): 07 c0 02 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 12, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 12, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 12 BSN2 -1) @@ -3565,8 +3565,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 12, MCS-1): 07 00 03 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==13) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==13) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 13, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 13, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 13 BSN2 -1) @@ -3575,8 +3575,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 13, MCS-1): 07 40 03 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==14) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==14) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 14, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 14, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 14 BSN2 -1) @@ -3585,8 +3585,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 14, MCS-1): 07 80 03 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==15) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==15) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 15, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 15, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 15 BSN2 -1) @@ -3595,8 +3595,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 15, MCS-1): 07 c0 03 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==16) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==16) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 16, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 16, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 16 BSN2 -1) @@ -3605,8 +3605,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 16, MCS-1): 07 00 04 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==17) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==17) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 17, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 17, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 17 BSN2 -1) @@ -3615,8 +3615,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 17, MCS-1): 07 40 04 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==18) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==18) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 18, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 18, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 18 BSN2 -1) @@ -3625,8 +3625,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 18, MCS-1): 07 80 04 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==19) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==19) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 19, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 19, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 19 BSN2 -1) @@ -3635,8 +3635,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 19, MCS-1): 07 c0 04 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==20) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==20) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 20, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 20, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 20 BSN2 -1) @@ -3645,8 +3645,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 20, MCS-1): 07 00 05 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==21) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==21) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 21, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 21, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 21 BSN2 -1) @@ -3655,8 +3655,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 21, MCS-1): 07 40 05 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==22) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==22) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 22, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 22, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 22 BSN2 -1) @@ -3665,8 +3665,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 22, MCS-1): 07 80 05 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==23) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==23) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 23, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 23, MCS-1): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 23 BSN2 -1) @@ -3675,8 +3675,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 23, MCS-1): 07 c0 05 96 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==24) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==24) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 24, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 14, drained_since=0 @@ -3734,8 +3734,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -3750,8 +3750,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-2): 07 00 00 12 28 42 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=512) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 @@ -3761,8 +3761,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-2): 07 40 00 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 2, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 -1) @@ -3771,8 +3771,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 2, MCS-2): 07 80 00 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 3, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 3 BSN2 -1) @@ -3781,8 +3781,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 3, MCS-2): 07 c0 00 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 4, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 4, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 -1) @@ -3791,8 +3791,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 4, MCS-2): 07 00 01 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 5, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 5 BSN2 -1) @@ -3801,8 +3801,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 5, MCS-2): 07 40 01 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 6, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 -1) @@ -3811,8 +3811,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-2): 07 80 01 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 7 BSN2 -1) @@ -3821,8 +3821,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-2): 07 c0 01 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 -1) @@ -3831,8 +3831,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-2): 07 00 02 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 9, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 9, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 9 BSN2 -1) @@ -3841,8 +3841,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 9, MCS-2): 07 40 02 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 10, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 10, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 10 BSN2 -1) @@ -3851,8 +3851,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-2): 07 80 02 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 11, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 11, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 11 BSN2 -1) @@ -3861,8 +3861,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 11, MCS-2): 07 c0 02 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 12, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 12, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 12 BSN2 -1) @@ -3871,8 +3871,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 12, MCS-2): 07 00 03 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==13) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==13) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 13, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 13, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 13 BSN2 -1) @@ -3881,8 +3881,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 13, MCS-2): 07 40 03 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==14) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==14) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 14, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 14, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 14 BSN2 -1) @@ -3891,8 +3891,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 14, MCS-2): 07 80 03 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==15) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==15) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 15, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 15, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 15 BSN2 -1) @@ -3901,8 +3901,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 15, MCS-2): 07 c0 03 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==16) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==16) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 16, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 16, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 16 BSN2 -1) @@ -3911,8 +3911,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 16, MCS-2): 07 00 04 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==17) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==17) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 17, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 17, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 17 BSN2 -1) @@ -3921,8 +3921,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 17, MCS-2): 07 40 04 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==18) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==18) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 18, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 18, MCS-2): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 18 BSN2 -1) @@ -3931,8 +3931,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 18, MCS-2): 07 80 04 92 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==19) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==19) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 19, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 18, drained_since=0 @@ -3990,8 +3990,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -4006,8 +4006,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-3): 07 00 00 06 28 66 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=512) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 @@ -4017,8 +4017,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-3): 07 40 00 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 2, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 -1) @@ -4027,8 +4027,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 2, MCS-3): 07 80 00 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 3, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 3 BSN2 -1) @@ -4037,8 +4037,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 3, MCS-3): 07 c0 00 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 4, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 4, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 -1) @@ -4047,8 +4047,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 4, MCS-3): 07 00 01 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 5, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 5 BSN2 -1) @@ -4057,8 +4057,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 5, MCS-3): 07 40 01 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 6, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 -1) @@ -4067,8 +4067,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-3): 07 80 01 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 7 BSN2 -1) @@ -4077,8 +4077,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-3): 07 c0 01 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 -1) @@ -4087,8 +4087,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-3): 07 00 02 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 9, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 9, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 9 BSN2 -1) @@ -4097,8 +4097,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 9, MCS-3): 07 40 02 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 10, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 10, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 10 BSN2 -1) @@ -4107,8 +4107,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-3): 07 80 02 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 11, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 11, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 11 BSN2 -1) @@ -4117,8 +4117,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 11, MCS-3): 07 c0 02 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 12, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 12, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 12 BSN2 -1) @@ -4127,8 +4127,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 12, MCS-3): 07 00 03 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==13) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==13) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 13, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 13, MCS-3): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 13 BSN2 -1) @@ -4137,8 +4137,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 13, MCS-3): 07 40 03 86 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==14) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==14) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 14, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 6, drained_since=0 @@ -4149,8 +4149,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 14, MCS-3): 07 80 03 06 7e 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==15) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==15) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 15, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 34, drained_since=4 @@ -4208,8 +4208,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -4224,8 +4224,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-4): 07 00 00 00 28 82 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=512) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 @@ -4235,8 +4235,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-4): 07 40 00 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 2, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 -1) @@ -4245,8 +4245,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 2, MCS-4): 07 80 00 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 3, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 3 BSN2 -1) @@ -4255,8 +4255,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 3, MCS-4): 07 c0 00 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 4, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 4, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 -1) @@ -4265,8 +4265,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 4, MCS-4): 07 00 01 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 5, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 5 BSN2 -1) @@ -4275,8 +4275,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 5, MCS-4): 07 40 01 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 6, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 -1) @@ -4285,8 +4285,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-4): 07 80 01 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 7 BSN2 -1) @@ -4295,8 +4295,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-4): 07 c0 01 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 -1) @@ -4305,8 +4305,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-4): 07 00 02 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 9, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 9, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 9 BSN2 -1) @@ -4315,8 +4315,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 9, MCS-4): 07 40 02 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 10, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 10, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 10 BSN2 -1) @@ -4325,8 +4325,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-4): 07 80 02 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==11) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 11, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 11, MCS-4): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 11 BSN2 -1) @@ -4335,8 +4335,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 11, MCS-4): 07 c0 02 80 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 12, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 14, drained_since=0 @@ -4394,8 +4394,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -4410,8 +4410,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-5): 07 00 00 08 45 56 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=512) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 @@ -4421,8 +4421,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-5): 07 40 00 58 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 2, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 -1) @@ -4431,8 +4431,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 2, MCS-5): 07 80 00 58 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 3, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 3 BSN2 -1) @@ -4441,8 +4441,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 3, MCS-5): 07 c0 00 58 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 4, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 4, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 -1) @@ -4451,8 +4451,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 4, MCS-5): 07 00 01 58 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 5, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 5 BSN2 -1) @@ -4461,8 +4461,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 5, MCS-5): 07 40 01 58 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 6, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 -1) @@ -4471,8 +4471,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-5): 07 80 01 58 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 7 BSN2 -1) @@ -4481,8 +4481,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-5): 07 c0 01 58 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 -1) @@ -4491,8 +4491,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-5): 07 00 02 58 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==9) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 9, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 9, MCS-5): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 9 BSN2 -1) @@ -4501,8 +4501,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 9, MCS-5): 07 40 02 58 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 10, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 46, drained_since=0 @@ -4560,8 +4560,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -4576,8 +4576,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 00 45 5f 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=512) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 @@ -4587,8 +4587,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-6): 07 40 00 50 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 2, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 -1) @@ -4597,8 +4597,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 2, MCS-6): 07 80 00 50 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==3) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 3, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 3 BSN2 -1) @@ -4607,8 +4607,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 3, MCS-6): 07 c0 00 50 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 4, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 4, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 -1) @@ -4617,8 +4617,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 4, MCS-6): 07 00 01 50 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==5) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 5, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 5 BSN2 -1) @@ -4627,8 +4627,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 5, MCS-6): 07 40 01 50 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 6, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-6): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 -1) @@ -4637,8 +4637,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-6): 07 80 01 50 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 6, drained_since=0 @@ -4649,8 +4649,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-6): 07 c0 01 40 62 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca 0a -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 71, drained_since=5 @@ -4708,8 +4708,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-7 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -4725,11 +4725,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-5): 07 00 00 08 45 56 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-7) last_mcs(MCS-5) demanded_mcs(MCS-7) cs_trans(MCS-7) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-7 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-7 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=512) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 1) @@ -4739,11 +4739,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-7): 07 00 00 02 b8 50 64 05 04 04 04 04 04 04 04 04 04 0c 01 07 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-7 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 2, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-7 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-7 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 3, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 3) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs @@ -4752,11 +4752,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 2, MCS-7): 07 80 00 02 a0 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 4, CS=MCS-7 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 4, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-7 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-7 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 5, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 5) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs @@ -4765,11 +4765,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 4, MCS-7): 07 00 01 02 a0 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 6, CS=MCS-7 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-7 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-7 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 7) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs @@ -4778,11 +4778,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-7): 07 80 01 02 a0 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-7 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 9, CS=MCS-7 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 9, CS=MCS-7 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 9, MCS-7): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 9) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs @@ -4791,8 +4791,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-7): 07 00 02 02 a0 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 10, CS=MCS-7 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 46, drained_since=0 @@ -4851,8 +4851,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-8 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -4869,11 +4869,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-8): 07 00 00 00 60 50 c4 05 04 04 04 04 04 04 04 04 04 0c 01 07 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 40 11 17 10 10 10 10 10 10 10 10 10 30 04 1c b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-8) last_mcs(MCS-8) demanded_mcs(MCS-8) cs_trans(MCS-8) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-8 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-8 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=512) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 1) @@ -4883,11 +4883,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-8): 07 00 00 02 88 50 c4 05 04 04 04 04 04 04 04 04 04 0c 01 07 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-8 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 2, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-8 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-8 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 3, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 3) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs @@ -4896,11 +4896,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 2, MCS-8): 07 80 00 02 58 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 4, CS=MCS-8 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 4, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-8 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-8 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 5, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 5) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs @@ -4909,11 +4909,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 4, MCS-8): 07 00 01 02 58 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 6, CS=MCS-8 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-8 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-8 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-8): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 7) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs @@ -4922,8 +4922,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-8): 07 80 01 02 58 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-8 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 30, drained_since=0 @@ -4983,8 +4983,8 @@ ------------------------- TX : Packet Downlink Assignment ------------------------- TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Assignment polling on UNKNOWN (FN=13, TS=4) Scheduling control message at RTS for TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) (TRX=0, TS=4) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-9 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -5000,11 +5000,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 00 45 5f 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-9) last_mcs(MCS-6) demanded_mcs(MCS-9) cs_trans(MCS-9) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-9 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-9 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=512) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 1) @@ -5014,11 +5014,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-9): 07 00 00 02 20 50 f4 05 04 04 04 04 04 04 04 04 04 0c 01 07 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-9 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 2, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-9 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 3, CS=MCS-9 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 3, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 2 BSN2 3) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs @@ -5027,11 +5027,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 2, MCS-9): 07 80 00 02 00 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==4) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 4, CS=MCS-9 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 4, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-9 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 5, CS=MCS-9 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 5, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 4 BSN2 5) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs @@ -5040,11 +5040,11 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 4, MCS-9): 07 00 01 02 00 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==6) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 6, CS=MCS-9 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-9 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-9 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 6, drained_since=0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-9): 89 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b @@ -5055,8 +5055,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-9): 07 80 01 02 00 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 90 18 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 30 04 1c b0 b2 02 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) +Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-9 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 71, drained_since=5 @@ -5111,7 +5111,7 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-6): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 @@ -5119,7 +5119,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-6) last_mcs(MCS-6) demanded_mcs(MCS-6) cs_trans(MCS-6) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) @@ -5166,7 +5166,7 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-1): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 @@ -5174,7 +5174,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-1): 07 00 00 96 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 00 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-1) last_mcs(MCS-1) demanded_mcs(MCS-1) cs_trans(MCS-1) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) @@ -5221,7 +5221,7 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-2): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b @@ -5229,7 +5229,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-2): 07 00 00 92 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 00 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-2) last_mcs(MCS-2) demanded_mcs(MCS-2) cs_trans(MCS-2) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) @@ -5276,7 +5276,7 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-5): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 @@ -5284,7 +5284,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-5): 07 00 00 18 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=100 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 10, drained_since=0 @@ -5297,7 +5297,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=21, TS=4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=21, TS=4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-5): 0f 40 00 08 56 05 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 92 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca 0a -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-5) last_mcs(MCS-5) demanded_mcs(MCS-7) cs_trans(MCS-7) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-5) last_mcs(MCS-5) demanded_mcs(MCS-7) cs_trans(MCS-7) arq_type(1) bsn(1) @@ -5347,7 +5347,7 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-6): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 @@ -5355,7 +5355,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=100 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 46, drained_since=0 @@ -5368,7 +5368,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=21, TS=4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=21, TS=4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-6): 0f 40 00 00 4d 97 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-6) last_mcs(MCS-6) demanded_mcs(MCS-9) cs_trans(MCS-9) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-6) last_mcs(MCS-6) demanded_mcs(MCS-9) cs_trans(MCS-9) arq_type(1) bsn(1) @@ -5418,11 +5418,11 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-7 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-7): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-7 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-7 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=100 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 10, drained_since=0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 @@ -5435,14 +5435,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=17, TS=4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=17, TS=4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-7): 0f 00 00 02 a0 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc 80 55 81 93 a3 b3 c3 d3 e3 f3 03 14 24 34 44 54 64 74 84 94 a4 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 02 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-7) last_mcs(MCS-7) demanded_mcs(MCS-5) cs_trans(MCS-5) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-5): 07 00 00 18 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-7) last_mcs(MCS-7) demanded_mcs(MCS-5) cs_trans(MCS-5) arq_type(1) bsn(1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 1 BSN2 -1) @@ -5489,11 +5489,11 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-9 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-9): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-9 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-9 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=100 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 46, drained_since=0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=46 @@ -5506,14 +5506,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=17, TS=4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=17, TS=4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-9): 0f 00 00 02 00 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc e0 e4 e8 ec f0 f4 f8 fc 00 05 09 0d 11 15 19 1d 21 25 41 d3 a5 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-9) last_mcs(MCS-9) demanded_mcs(MCS-6) cs_trans(MCS-6) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 12 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-9) last_mcs(MCS-9) demanded_mcs(MCS-6) cs_trans(MCS-6) arq_type(1) bsn(1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 1 BSN2 -1) @@ -5562,7 +5562,7 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-6): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 @@ -5570,14 +5570,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-6) last_mcs(MCS-6) demanded_mcs(MCS-3) cs_trans(MCS-3) arq_type(0) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 2 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-3): 07 00 00 c6 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 38 3a 3c 3e 40 42 44 46 48 00 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-6) last_mcs(MCS-3) demanded_mcs(MCS-3) cs_trans(MCS-3) arq_type(0) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 1 spb 3 (BSN1 0 BSN2 -1) @@ -5624,7 +5624,7 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-5): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 @@ -5632,14 +5632,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-5): 07 00 00 18 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-5) last_mcs(MCS-5) demanded_mcs(MCS-2) cs_trans(MCS-2) arq_type(0) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 2 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-2): 07 00 00 d2 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 00 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-5) last_mcs(MCS-2) demanded_mcs(MCS-2) cs_trans(MCS-2) arq_type(0) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 1 spb 3 (BSN1 0 BSN2 -1) @@ -5686,7 +5686,7 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-4): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b @@ -5694,14 +5694,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-4): 07 00 00 80 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 38 3a 3c 3e 40 42 44 46 48 4a 4c 4e 50 52 54 56 00 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-4) last_mcs(MCS-4) demanded_mcs(MCS-1) cs_trans(MCS-1) arq_type(0) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 2 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-1): 07 00 00 d6 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 00 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-4) last_mcs(MCS-1) demanded_mcs(MCS-1) cs_trans(MCS-1) arq_type(0) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 1 spb 3 (BSN1 0 BSN2 -1) @@ -5748,7 +5748,7 @@ TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=NULL EGPRS) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 100 bytes -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==0) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=100) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-6): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 @@ -5756,21 +5756,21 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-6) last_mcs(MCS-6) demanded_mcs(MCS-3) cs_trans(MCS-3) arq_type(0) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 2 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-3): 07 00 00 c6 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 38 3a 3c 3e 40 42 44 46 48 00 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-6) last_mcs(MCS-3) demanded_mcs(MCS-3) cs_trans(MCS-3) arq_type(0) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 1 spb 3 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-3): 07 00 00 e6 4a 4c 4e 50 52 54 56 58 5a 5c 5e 60 62 64 66 68 6a 6c 6e 70 72 74 76 78 7a 7c 7e 80 82 84 86 88 8a 8c 8e 90 92 00 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-6) last_mcs(MCS-3) demanded_mcs(MCS-6) cs_trans(MCS-6) arq_type(0) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 2 spb 0 (BSN1 0 BSN2 -1) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21179 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9af23e175435fe9ae7b0e4119ad52fcd4707b9ca Gerrit-Change-Number: 21179 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 1 11:56:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:56:53 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: More precise + readable log 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/+/21405 to look at the new patch set (#2). Change subject: gb_proxy: More precise + readable log messages ...................................................................... gb_proxy: More precise + readable log messages * use string representations instead of magic numbers whenever possible * make text actually describe the specific case, rather than copy+paste * proper order (foobar indication) not (indication ..... foobar) Change-Id: I232038da26a9963763c5fc9051b87c9182b27d94 --- M src/gbproxy/gb_proxy.c 1 file changed, 7 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/05/21405/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I232038da26a9963763c5fc9051b87c9182b27d94 Gerrit-Change-Number: 21405 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Dec 1 11:56:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:56:55 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: More precise + readable log messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21405 ) Change subject: gb_proxy: More precise + readable log messages ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I232038da26a9963763c5fc9051b87c9182b27d94 Gerrit-Change-Number: 21405 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:56: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 Dec 1 11:56:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:56:57 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: More precise + readable log messages In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21405 ) Change subject: gb_proxy: More precise + readable log messages ...................................................................... gb_proxy: More precise + readable log messages * use string representations instead of magic numbers whenever possible * make text actually describe the specific case, rather than copy+paste * proper order (foobar indication) not (indication ..... foobar) Change-Id: I232038da26a9963763c5fc9051b87c9182b27d94 --- M src/gbproxy/gb_proxy.c 1 file changed, 7 insertions(+), 11 deletions(-) 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 bd58617..997085b 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1545,10 +1545,8 @@ LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); break; default: - LOGP(DPCU, LOGL_NOTICE, - "NS: %s Unknown prim %d from NS\n", - get_value_string(osmo_prim_op_names, nsp->oph.operation), - nsp->oph.primitive); + LOGP(DPCU, LOGL_NOTICE, "NS: Unknown NS-STATUS.ind cause=%s from NS\n", + gprs_ns2_aff_cause_prim_str(nsp->u.status.cause)); break; } } @@ -1567,9 +1565,8 @@ nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); if (oph->operation != PRIM_OP_INDICATION) { - LOGP(DPCU, LOGL_NOTICE, "NS: %s Unknown prim %d from NS\n", - get_value_string(osmo_prim_op_names, oph->operation), - oph->operation); + LOGP(DPCU, LOGL_NOTICE, "NS: Unexpected primitive operation %s from NS\n", + get_value_string(osmo_prim_op_names, oph->operation)); return 0; } @@ -1587,10 +1584,9 @@ gprs_ns_prim_status_cb(cfg, nsp); break; default: - LOGP(DPCU, LOGL_NOTICE, - "NS: %s Unknown prim %d from NS\n", - get_value_string(osmo_prim_op_names, oph->operation), - oph->primitive); + LOGP(DPCU, 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/+/21405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I232038da26a9963763c5fc9051b87c9182b27d94 Gerrit-Change-Number: 21405 Gerrit-PatchSet: 3 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 Tue Dec 1 11:57:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:57:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test suite cfg and osmo-gbproxy.cfg for FR testing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21403 ) Change subject: gbproxy: Add test suite cfg and osmo-gbproxy.cfg for FR testing ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1faae88c82e8d54b4d4af88e9a9236877c913752 Gerrit-Change-Number: 21403 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:57: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 Dec 1 11:57:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:57:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test for sizes up to 1600 bytes, not just 1024 bytes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21401 ) Change subject: gbproxy: Test for sizes up to 1600 bytes, not just 1024 bytes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I76358323e79cfc3d0e9c979c716b7a552f3b8e3b Gerrit-Change-Number: 21401 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:57: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 Dec 1 11:57:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:57:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test suite cfg and osmo-gbproxy.cfg for FR testing In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21403 ) Change subject: gbproxy: Add test suite cfg and osmo-gbproxy.cfg for FR testing ...................................................................... gbproxy: Add test suite cfg and osmo-gbproxy.cfg for FR testing Change-Id: I1faae88c82e8d54b4d4af88e9a9236877c913752 --- A gbproxy/GBProxy_Tests.fr.cfg A gbproxy/osmo-gbproxy.fr.cfg 2 files changed, 122 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/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg new file mode 100644 index 0000000..9b31dfd --- /dev/null +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -0,0 +1,89 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./GBProxy_Tests.default" + +# Local configuration below + +[LOGGING] + +[TESTPORT_PARAMETERS] +*.GBPVTY.CTRL_HOSTNAME := "127.0.0.1" + +[MODULE_PARAMETERS] +GBProxy_Tests.mp_nsconfig_sgsn := { + { + handle_sns := false + } +} + +GBProxy_Tests.mp_nsconfig_pcu := { + { + nsei := 1, + 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 + } + } + } +} +GBProxy_Tests.mp_gbconfigs := { + { + nsei := 1, + sgsn_role := false, + bvc := { + { + bvci := 196, + cell_id := { + ra_id := { + lai := { + mcc_mnc := '262F42'H, + lac := 13135 + }, + rac := 0 + }, + cell_id := 20960 + }, + depth := BSSGP_DECODE_DEPTH_BSSGP + } + } + } + }; + +[MAIN_CONTROLLER] + +[EXECUTE] +GBProxy_Tests.control diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg new file mode 100644 index 0000000..5c5644b --- /dev/null +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -0,0 +1,33 @@ +! +! Osmocom Gb Proxy (0.9.0.404-6463) configuration saved from vty +!! +! +log stderr + logging level lns debug +line vty + no login +! +ns + !nse 101 nsvci 101 + nse 101 nsvci 101 remote-role sgsn + nse 101 nsvci 101 encapsulation udp + nse 101 nsvci 101 remote-ip 127.0.0.1 + nse 101 nsvci 101 remote-port 7777 + 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 127.0.0.1 + encapsulation udp local-port 23000 + encapsulation framerelay-gre enabled 0 + + nse 1 nsvci 1 frnet hdlcnet1 dlci 16 + nse 1 nsvci 2 frnet hdlcnet2 dlci 17 + nse 1 nsvci 3 frnet hdlcnet3 dlci 18 + nse 1 nsvci 4 frnet hdlcnet4 dlci 19 + +gbproxy + sgsn nsei 101 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1faae88c82e8d54b4d4af88e9a9236877c913752 Gerrit-Change-Number: 21403 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 Tue Dec 1 11:57:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:57:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test for sizes up to 1600 bytes, not just 1024 bytes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21401 ) Change subject: gbproxy: Test for sizes up to 1600 bytes, not just 1024 bytes ...................................................................... gbproxy: Test for sizes up to 1600 bytes, not just 1024 bytes The NS specs state up to 1600 bytes "gross NS size" must be supported, at least by the underlying FR layer. Let's test up to that. Let's also speed things up by using 4-byte size increments, and print the size of the current message. Change-Id: I76358323e79cfc3d0e9c979c716b7a552f3b8e3b --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 7 insertions(+), 2 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 2120fa7..2797a2c 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -40,6 +40,9 @@ /* mcc_mnc is 24.008 10.5.5.15 encoded. 262 42 */ const BcdMccMnc c_mcc_mnc := '262F42'H; +/* 48.016 section 6.1.4.2: The default maximum information field size of 1600 octets shall be supported on the Gb interface */ +const integer max_fr_info_size := 1600; + modulepar { /* IP/port on which we run our internal GSUP/HLR emulation */ NSConfigurations mp_nsconfig_sgsn := { @@ -754,12 +757,13 @@ var BssgpBvcConfig bvcc := g_pars.pcu[ran_idx].cfg.bvc[0]; var integer i; - for (i := 0; i < 1024; i := i+1) { + for (i := 0; i < max_fr_info_size-4; i := i+4) { var octetstring payload := f_rnd_octstring(i); var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_UL_UD(g_pars.tlli, bvcc.cell_id, payload); /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_UL_UD(g_pars.tlli, bvcc.cell_id, payload); + log("UL-UNITDATA(payload_size=", i); f_pcu2sgsn(pdu_tx, pdu_rx); } setverdict(pass); @@ -781,7 +785,7 @@ private function f_TC_dl_unitdata(charstring id) runs on BSSGP_ConnHdlr { var integer i; - for (i := 0; i < 1024; i := i+1) { + for (i := 0; i < max_fr_info_size-4; i := i+4) { 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)); @@ -789,6 +793,7 @@ var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_DL_UD(g_pars.tlli, payload, tr_BSSGP_IMSI(g_pars.imsi)); + log("DL-UNITDATA(payload_size=", i); f_sgsn2pcu(pdu_tx, pdu_rx); } setverdict(pass); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I76358323e79cfc3d0e9c979c716b7a552f3b8e3b Gerrit-Change-Number: 21401 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 Tue Dec 1 11:57:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:57:57 +0000 Subject: Change in osmo-bsc[master]: bts: add repeated acch mode flags + vty config In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21164 ) Change subject: bts: add repeated acch mode flags + vty config ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21164 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I083eaa2c30478912426e9c24a506f0b88836e190 Gerrit-Change-Number: 21164 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 01 Dec 2020 11:57: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 Dec 1 11:58:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:58:02 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: parse cm3 and indicate ACCH repetition cap to BTS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21084 ) Change subject: abis_rsl: parse cm3 and indicate ACCH repetition cap to BTS ...................................................................... Patch Set 11: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I39ae439d05562b35b2e47774dc92f8789fea1a57 Gerrit-Change-Number: 21084 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 11:58: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 Dec 1 11:58:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:58:24 +0000 Subject: Change in osmo-bsc[master]: bts: add repeated acch mode flags + vty config In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21164 ) Change subject: bts: add repeated acch mode flags + vty config ...................................................................... bts: add repeated acch mode flags + vty config To be able to control the FACCH/SACCH repetition behavior inside the BTS a one byte flag is sent to the BTS together with the RSL_IE_OSMO_REP_ACCH_CAP IE. This patch adds the necessary VTY commands. The sending of the flag is implemented in a follow-up patch. See also: I39ae439d05562b35b2e47774dc92f8789fea1a57 Related: SYS#5114, OS#4796, OS#4794, OS#4795 Depends: libosmocore I6dda239e9cd7033297bed1deb5eb1d9f87b8433f Change-Id: I083eaa2c30478912426e9c24a506f0b88836e190 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c 3 files changed, 164 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/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index fd2ac32..22839d6 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -480,6 +480,10 @@ struct llist_head oml_fail_rep; struct llist_head chan_rqd_queue; + + /* osmocom specific FACCH/SACCH repetition mode flags set by VTY to + * enable/disable certain ACCH repeation features individually */ + struct abis_rsl_osmo_rep_acch_cap repeated_acch_policy; }; #define GSM_BTS_SI2Q(bts, i) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i]) diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index d8e9682..846339d 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1115,6 +1115,19 @@ ho_vty_write_bts(vty, bts); + if (bts->repeated_acch_policy.dl_facch_all) + vty_out(vty, " repeat dl-facch all%s", VTY_NEWLINE); + else if (bts->repeated_acch_policy.dl_facch_cmd) + vty_out(vty, " repeat dl-facch command%s", VTY_NEWLINE); + if (bts->repeated_acch_policy.dl_sacch) + vty_out(vty, " repeat dl-sacch%s", VTY_NEWLINE); + if (bts->repeated_acch_policy.ul_sacch) + vty_out(vty, " repeat ul-sacch%s", VTY_NEWLINE); + if (bts->repeated_acch_policy.ul_sacch + || bts->repeated_acch_policy.dl_facch_cmd + || bts->repeated_acch_policy.dl_facch_cmd) + vty_out(vty, " repeat rxqual %u%s", bts->repeated_acch_policy.rxqual, VTY_NEWLINE); + config_write_bts_model(vty, bts); } @@ -2621,6 +2634,142 @@ return CMD_SUCCESS; } +#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) +{ + 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; + } + + if (!strcmp(argv[1], "command")) { + bts->repeated_acch_policy.dl_facch_cmd = true; + bts->repeated_acch_policy.dl_facch_all = false; + } else { + bts->repeated_acch_policy.dl_facch_cmd = true; + bts->repeated_acch_policy.dl_facch_all = true; + } + 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) +{ + struct gsm_bts *bts = vty->index; + + bts->repeated_acch_policy.dl_facch_cmd = false; + bts->repeated_acch_policy.dl_facch_all = false; + + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_bts_rep_dl_sacch, + cfg_bts_rep_dl_sacch_cmd, + "repeat dl-sacch", + REP_ACCH_STR + "Enable DL-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.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", + NO_STR REP_ACCH_STR + "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; + + 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\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) +{ + 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; + } + + /* See also: GSM 05.08, section 8.2.4 */ + bts->repeated_acch_policy.rxqual = atoi(argv[0]); + + return CMD_SUCCESS; +} + + #define CD_STR "Channel Description\n" DEFUN_USRATTR(cfg_bts_chan_desc_att, @@ -2989,7 +3138,7 @@ struct gsm_bts *bts = vty->index; if (bts->type != GSM_BTS_TYPE_OSMOBTS) { - vty_out(vty, "%% infinite radio link timeout not supported by this BTS%s", VTY_NEWLINE); + vty_out(vty, "%% infinite radio link timeout not supported by BTS %u%s", bts->nr, VTY_NEWLINE); return CMD_WARNING; } @@ -7033,6 +7182,14 @@ install_element(BTS_NODE, &cfg_bts_acc_ramping_chan_load_cmd); install_element(BTS_NODE, &cfg_bts_t3113_dynamic_cmd); 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_rxqual_cmd); + neighbor_ident_vty_init(network, network->neighbor_bss_cells); /* See also handover commands added on bts level from handover_vty.c */ diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index aa7ba1d..065b8ab 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -356,6 +356,8 @@ acc_mgr_init(&bts->acc_mgr, bts); acc_ramp_init(&bts->acc_ramp, bts); + bts->repeated_acch_policy.rxqual = 4; + return bts; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21164 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I083eaa2c30478912426e9c24a506f0b88836e190 Gerrit-Change-Number: 21164 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 1 11:58:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 11:58:24 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: parse cm3 and indicate ACCH repetition cap to BTS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21084 ) Change subject: abis_rsl: parse cm3 and indicate ACCH repetition cap to BTS ...................................................................... abis_rsl: parse cm3 and indicate ACCH repetition cap to BTS In order to activate FACCH/SACCH repetition on the BTS, the classmark 3 IE in the CLASSMARK CHANGE message must be parsed and depending on the Repeated ACCH Capability bit the RSL_IE_OSMO_REP_ACCH_CAP is added to the RSL CHAN ACT und RSL CHAN MODE MODIFY. Since RSL_IE_OSMO_REP_ACCH_CAP is a propritary IE, it may only be added for BTS type osmo-bts. Change-Id: I39ae439d05562b35b2e47774dc92f8789fea1a57 Related: OS#4796 SYS#5114 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/gsm_08_08.c 3 files changed, 43 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/gsm_data.h b/include/osmocom/bsc/gsm_data.h index ed40e36..a5b5a50 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -322,6 +322,9 @@ enum subscr_sccp_state state; } lb; } lcs; + + struct gsm48_classmark3 cm3; + bool cm3_valid; }; diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 858c683..f8ea5a5 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -457,6 +457,35 @@ lchan->mr_bts_lv + 1); } +/* indicate FACCH/SACCH Repetition to be performed by BTS, + * see also: 3GPP TS 44.006, section 10 and 11 */ +static void rep_acch_cap_for_bts(struct gsm_lchan *lchan, + struct msgb *msg) +{ + struct abis_rsl_osmo_rep_acch_cap *cap; + struct gsm_bts *bts = lchan->ts->trx->bts; + + /* The RSL_IE_OSMO_REP_ACCH_CAP IE is a proprietary IE, that can only + * be used with osmo-bts type BTSs */ + if (!(bts->model->type == GSM_BTS_TYPE_OSMOBTS + && osmo_bts_has_feature(&bts->features, BTS_FEAT_ACCH_REP))) + return; + + cap = (struct abis_rsl_osmo_rep_acch_cap*) msg->tail; + msgb_tlv_put(msg, RSL_IE_OSMO_REP_ACCH_CAP, sizeof(*cap), + (uint8_t*) &bts->repeated_acch_policy); + + if (!(lchan->conn && lchan->conn->cm3_valid + && lchan->conn->cm3.repeated_acch_capability)) { + /* MS supports only FACCH repetition for command frames, so + * we mask out all other features, even when they are enabled + * on this BTS. */ + cap->dl_facch_all = 0; + cap->dl_sacch = 0; + cap->ul_sacch = 0; + } +} + /* Chapter 8.4.1 */ int rsl_tx_chan_activ(struct gsm_lchan *lchan, uint8_t act_type, uint8_t ho_ref) { @@ -552,6 +581,7 @@ better skip sending it unless we know for sure what each expects. */ mr_config_for_bts(lchan, msg); + rep_acch_cap_for_bts(lchan, msg); msg->dst = trx->rsl_link; @@ -590,6 +620,7 @@ } mr_config_for_bts(lchan, msg); + rep_acch_cap_for_bts(lchan, msg); msg->dst = lchan->ts->trx->rsl_link; diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 2c51c95..9c5cf2f 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -602,6 +603,14 @@ } conn_update_ms_power_class(conn, rc8); + rc = gsm48_decode_classmark3(&conn->cm3, cm3, cm3_len); + if (rc < 0) { + LOGP(DMSC, LOGL_NOTICE, "Unable to decode classmark3 during CM Update.\n"); + memset(&conn->cm3, 0, sizeof(conn->cm3)); + conn->cm3_valid = false; + } else + conn->cm3_valid = true; + if (!msc_connected(conn)) return; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I39ae439d05562b35b2e47774dc92f8789fea1a57 Gerrit-Change-Number: 21084 Gerrit-PatchSet: 12 Gerrit-Owner: dexter 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 Tue Dec 1 12:00:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:00:28 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: get rid of magic numbers for E1 slots In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21385 ) Change subject: mgcp_client: get rid of magic numbers for E1 slots ...................................................................... Patch Set 3: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/21385/3/src/libosmo-mgcp-client/Makefile.am File src/libosmo-mgcp-client/Makefile.am: https://gerrit.osmocom.org/c/osmo-mgw/+/21385/3/src/libosmo-mgcp-client/Makefile.am at 12 PS3, Line 12: $ this one is correct, we use the #define https://gerrit.osmocom.org/c/osmo-mgw/+/21385/3/src/libosmo-mgcp-client/Makefile.am at 19 PS3, Line 19: $ this one is incorrect, as it means we create a runtime library dependency to a library of which we use no symbols. This will create at least warnings when building debian packages, as the package building process actually checks if we link against anything without using any symbols from it. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iee134d70f05883fcd2e58e0b9c78ed70aea16695 Gerrit-Change-Number: 21385 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12:00: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 Tue Dec 1 12:01:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:01:04 +0000 Subject: Change in osmo-bts[master]: l1sap: add repeated downlink FACCH In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21014 ) Change subject: l1sap: add repeated downlink FACCH ...................................................................... Patch Set 11: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72f0cf7eaaef9f80fc35e752c90ae0e2d24d0c75 Gerrit-Change-Number: 21014 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12:01: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 Dec 1 12:01:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:01:27 +0000 Subject: Change in osmo-bts[master]: l1sap: add repeated uplink SACCH In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21185 ) Change subject: l1sap: add repeated uplink SACCH ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21185 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7e4cc33cc010866e41e3b594351a7f7bf93e08ac Gerrit-Change-Number: 21185 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 01 Dec 2020 12:01: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 Dec 1 12:01:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:01:29 +0000 Subject: Change in osmo-bts[master]: l1sap: add repeated downlink FACCH In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21014 ) Change subject: l1sap: add repeated downlink FACCH ...................................................................... l1sap: add repeated downlink FACCH 3GPP TS 44.006, section 10 describes a method how the downlink FACCH transmission can be repeated to increase transmission reliability. Change-Id: I72f0cf7eaaef9f80fc35e752c90ae0e2d24d0c75 Depends: libosmocore I6dda239e9cd7033297bed1deb5eb1d9f87b8433f Related: OS#4796 SYS#5114 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/l1sap.h M src/common/bts.c M src/common/l1sap.c M src/common/rsl.c M src/osmo-bts-trx/main.c 6 files changed, 170 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: 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 7670508..47a6db8 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -156,6 +156,11 @@ LCHAN_REL_ACT_REACT, /* remove once auto-activation hack is removed from opstart_compl() */ }; +struct gsm_rep_facch { + struct msgb *msg; + uint32_t fn; +}; + struct gsm_lchan { /* The TS that we're part of */ struct gsm_bts_trx_ts *ts; @@ -272,6 +277,10 @@ } dtx; uint8_t last_cmr; uint32_t last_fn; + + /* SLOT #0 and #1 to store FACCH for repetition */ + struct gsm_rep_facch rep_facch[2]; + } tch; /* 3GPP TS 48.058 ? 9.3.37: [0; 255] ok, -1 means invalid*/ @@ -314,6 +323,9 @@ /* ECU (Error Concealment Unit) state */ struct osmo_ecu_state *ecu_state; + + struct abis_rsl_osmo_rep_acch_cap repeated_acch_capability; + bool repeated_dl_facch_active; }; static inline uint8_t lchan_get_ta(const struct gsm_lchan *lchan) diff --git a/include/osmo-bts/l1sap.h b/include/osmo-bts/l1sap.h index 1fcf78c..85fe548 100644 --- a/include/osmo-bts/l1sap.h +++ b/include/osmo-bts/l1sap.h @@ -144,4 +144,7 @@ int is_ccch_for_agch(struct gsm_bts_trx *trx, uint32_t fn); +void repeated_dl_facch_active_decision(struct gsm_lchan *lchan, + const uint8_t *l3, size_t l3_len); + #endif /* L1SAP_H */ diff --git a/src/common/bts.c b/src/common/bts.c index 6c25cbd..a1f9101 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -457,6 +457,11 @@ t200_ms_acch[DL_SAPI0] = bts->t200_ms[T200_SACCH_SDCCH] + fn_advance_ms; t200_ms_acch[DL_SAPI3] = bts->t200_ms[T200_SACCH_SDCCH] + fn_advance_ms; + if (lchan->repeated_acch_capability.dl_facch_all && (lchan->type == GSM_LCHAN_TCH_F || lchan->type == GSM_LCHAN_TCH_H)) { + t200_ms_acch[DL_SAPI0] *= 2; + t200_ms_acch[DL_SAPI3] *= 2; + } + switch (lchan->type) { case GSM_LCHAN_SDCCH: t200_ms_dcch[DL_SAPI0] = bts->t200_ms[T200_SDCCH] + fn_advance_ms; diff --git a/src/common/l1sap.c b/src/common/l1sap.c index cfe7ebb..4398f2a 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -908,6 +908,112 @@ } } +/* Common dequeueing function */ +static inline struct msgb *lapdm_phsap_dequeue_msg(struct lapdm_entity *le) +{ + struct osmo_phsap_prim pp; + if (lapdm_phsap_dequeue_prim(le, &pp) < 0) + return NULL; + return pp.oph.msg; +} + +/* Special dequeueing function with FACCH repetition (3GPP TS 44.006, section 10) */ +static inline struct msgb *lapdm_phsap_dequeue_msg_facch(struct gsm_lchan *lchan, struct lapdm_entity *le, uint32_t fn) +{ + struct osmo_phsap_prim pp; + struct msgb *msg; + + /* Note: The repeated version of the FACCH block must be scheduled 8 or 9 bursts after the original + * transmission. see 3GPP TS 44.006, section 10.2 for a more detailed explaination. */ + if (lchan->tch.rep_facch[0].msg && GSM_TDMA_FN_SUB(fn, lchan->tch.rep_facch[0].fn) >= 8) { + /* Re-use stored FACCH message buffer from SLOT #0 for repetition. */ + msg = lchan->tch.rep_facch[0].msg; + lchan->tch.rep_facch[0].msg = NULL; + } else if (lchan->tch.rep_facch[1].msg && GSM_TDMA_FN_SUB(fn, lchan->tch.rep_facch[1].fn) >= 8) { + /* Re-use stored FACCH message buffer from SLOT #1 for repetition. */ + msg = lchan->tch.rep_facch[1].msg; + lchan->tch.rep_facch[1].msg = NULL; + } else { + /* Fetch new FACCH from queue ... */ + if (lapdm_phsap_dequeue_prim(le, &pp) < 0) + return NULL; + msg = pp.oph.msg; + + /* Check if the LAPDm frame is a command frame, + * see also: 3GPP TS 04.06 section 3.2 and 3.3.2. + * If the MS explicitly indicated that repeated ACCH is + * supported, than all FACCH frames may be repeated + * see also: 3GPP TS 44.006, section 10.3). */ + if (!(lchan->repeated_acch_capability.dl_facch_all || msg->data[0] & 0x02)) + return msg; + + /* ... and store the message buffer for repetition. */ + if (lchan->tch.rep_facch[0].msg == NULL) { + lchan->tch.rep_facch[0].msg = msgb_copy(msg, "rep_facch_0"); + lchan->tch.rep_facch[0].fn = fn; + } else if (lchan->tch.rep_facch[1].msg == NULL) { + lchan->tch.rep_facch[1].msg = msgb_copy(msg, "rep_facch_1"); + lchan->tch.rep_facch[1].fn = fn; + } else { + /* By definition 3GPP TS 05.02 does not allow more than two (for TCH/H only one) FACCH blocks + * to be transmitted simultaniously. */ + OSMO_ASSERT(false); + } + } + + return msg; +} + +/* Decide if repeated FACCH should be applied or not. If RXQUAL level, that the + * MS reports is high enough, FACCH repetition is not needed. */ +void repeated_dl_facch_active_decision(struct gsm_lchan *lchan, const uint8_t *l3, + size_t l3_len) +{ + const struct gsm48_meas_res *meas_res; + uint8_t upper; + uint8_t lower; + + if (!lchan->repeated_acch_capability.dl_facch_cmd + && !lchan->repeated_acch_capability.dl_facch_all) + return; + + /* Threshold disabled (always on) */ + if (lchan->repeated_acch_capability.rxqual == 0) { + lchan->repeated_dl_facch_active = true; + return; + } + + /* When the MS sets the SRR bit in the UL-SACCH L1 header + * (repeated SACCH requested) then it makes sense to enable + * FACCH repetition too. */ + if ((lchan->meas.l1_info[0] >> 1) & 1) { + lchan->repeated_dl_facch_active = true; + return; + } + + /* Parse MS measurement results */ + if (l3_len <= sizeof(struct gsm48_meas_res *) + 2) + return; + if (l3[0] != GSM48_PDISC_RR) + return; + if (l3[1] != GSM48_MT_RR_MEAS_REP) + return; + l3 += 2; + meas_res = (struct gsm48_meas_res *)l3; + + /* If the RXQUAL level at the MS drops under a certain threshold + * we enable FACCH repetition. */ + upper = lchan->repeated_acch_capability.rxqual; + if (upper > 2) + lower = lchan->repeated_acch_capability.rxqual - 2; + else + lower = 0; + if (meas_res->rxqual_sub >= upper) + lchan->repeated_dl_facch_active = true; + else if (meas_res->rxqual_sub <= lower) + lchan->repeated_dl_facch_active = false; +} + /* PH-RTS-IND prim received from bts model */ static int l1sap_ph_rts_ind(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap, struct ph_data_param *rts_ind) @@ -921,7 +1027,7 @@ uint8_t *p = NULL; uint8_t *si; struct lapdm_entity *le; - struct osmo_phsap_prim pp; + struct msgb *pp_msg; bool dtxd_facch = false; int rc; int is_ag_res; @@ -989,13 +1095,17 @@ p[0] = lchan->ms_power_ctrl.current; p[1] = lchan->rqd_ta; le = &lchan->lapdm_ch.lapdm_acch; + pp_msg = lapdm_phsap_dequeue_msg(le); } else { if (lchan->ts->trx->bts->dtxd) dtxd_facch = true; le = &lchan->lapdm_ch.lapdm_dcch; + if (lchan->repeated_dl_facch_active && lchan->rsl_cmode != RSL_CMOD_SPD_SIGN) + pp_msg = lapdm_phsap_dequeue_msg_facch(lchan, le, fn); + else + pp_msg = lapdm_phsap_dequeue_msg(le); } - rc = lapdm_phsap_dequeue_prim(le, &pp); - if (rc < 0) { + if (!pp_msg) { if (L1SAP_IS_LINK_SACCH(link_id)) { /* No SACCH data from LAPDM pending, send SACCH filling */ uint8_t *si = lchan_sacch_get(lchan); @@ -1020,16 +1130,16 @@ } else { /* The +2 is empty space where the DSP inserts the L1 hdr */ if (L1SAP_IS_LINK_SACCH(link_id)) - memcpy(p + 2, pp.oph.msg->data + 2, GSM_MACBLOCK_LEN - 2); + memcpy(p + 2, pp_msg->data + 2, GSM_MACBLOCK_LEN - 2); else { p = msgb_put(msg, GSM_MACBLOCK_LEN); - memcpy(p, pp.oph.msg->data, GSM_MACBLOCK_LEN); + memcpy(p, pp_msg->data, GSM_MACBLOCK_LEN); /* check if it is a RR CIPH MODE CMD. if yes, enable RX ciphering */ - check_for_ciph_cmd(pp.oph.msg, lchan, chan_nr); + check_for_ciph_cmd(pp_msg, lchan, chan_nr); if (dtxd_facch) dtx_dispatch(lchan, E_FACCH); } - msgb_free(pp.oph.msg); + msgb_free(pp_msg); } } else if (L1SAP_IS_CHAN_AGCH_PCH(chan_nr)) { p = msgb_put(msg, GSM_MACBLOCK_LEN); diff --git a/src/common/rsl.c b/src/common/rsl.c index a0c1fb2..14a0dcc 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -823,6 +823,13 @@ */ lapdm_channel_exit(&lchan->lapdm_ch); + /* Also ensure that there are no leftovers from repeated FACCH + * that might cause memory leakage. */ + msgb_free(lchan->tch.rep_facch[0].msg); + msgb_free(lchan->tch.rep_facch[1].msg); + lchan->tch.rep_facch[0].msg = NULL; + lchan->tch.rep_facch[1].msg = NULL; + return tx_rf_rel_ack(lchan, chan_nr); } @@ -1085,6 +1092,26 @@ } } +/* Parse RSL_IE_OSMO_REP_ACCH_CAP */ +static void parse_repeated_acch_capability(struct gsm_lchan *lchan, struct tlv_parsed *tp) +{ + /* 3GPP TS 24.008, section 10.5.1.7 defines a Repeated ACCH Capability + * bit that indicates if REPEATED FACCH/SACCH is supported or not. + * Unfortunately there is not 3gpp spec that describes how this bit + * should be communicated in the RSL CHANNEL ACTIVATION. For osmo-bts + * we will use a propritary IE. */ + + memset(&lchan->repeated_acch_capability, 0, sizeof(lchan->repeated_acch_capability)); + + if (!TLVP_PRESENT(tp, RSL_IE_OSMO_REP_ACCH_CAP)) + return; + if (TLVP_LEN(tp, RSL_IE_OSMO_REP_ACCH_CAP) != sizeof(lchan->repeated_acch_capability)) + return; + + memcpy(&lchan->repeated_acch_capability, TLVP_VAL(tp, RSL_IE_OSMO_REP_ACCH_CAP), + sizeof(lchan->repeated_acch_capability)); +} + /* 8.4.1 CHANnel ACTIVation is received */ static int rsl_rx_chan_activ(struct msgb *msg) { @@ -1327,6 +1354,8 @@ /* Remember to send an RSL ACK once the lchan is active */ lchan->rel_act_kind = LCHAN_REL_ACT_RSL; + parse_repeated_acch_capability(lchan, &tp); + /* actually activate the channel in the BTS */ rc = l1sap_chan_act(lchan->ts->trx, dch->chan_nr, &tp); if (rc < 0) @@ -1653,6 +1682,8 @@ /* 9.3.53 MultiRate Control */ /* 9.3.54 Supported Codec Types */ + parse_repeated_acch_capability(lchan, &tp); + l1sap_chan_modify(lchan->ts->trx, dch->chan_nr); /* FIXME: delay this until L1 says OK? */ @@ -3007,6 +3038,7 @@ return 0; } + repeated_dl_facch_active_decision(lchan, msgb_l3(msg), msgb_l3len(msg)); rc = rsl_tx_meas_res(lchan, msgb_l3(msg), msgb_l3len(msg), le); msgb_free(msg); return rc; diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index 021c3c7..7e6dea9 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -144,6 +144,7 @@ osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_AMR); osmo_bts_set_feature(bts->features, BTS_FEAT_CBCH); osmo_bts_set_feature(bts->features, BTS_FEAT_HOPPING); + osmo_bts_set_feature(bts->features, BTS_FEAT_ACCH_REP); bts_internal_flag_set(bts, BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72f0cf7eaaef9f80fc35e752c90ae0e2d24d0c75 Gerrit-Change-Number: 21014 Gerrit-PatchSet: 11 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 Dec 1 12:01:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:01:29 +0000 Subject: Change in osmo-bts[master]: rsl.adoc: update documentation for RSL_IE_OSMO_REP_ACCH_CAP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21184 ) Change subject: rsl.adoc: update documentation for RSL_IE_OSMO_REP_ACCH_CAP ...................................................................... rsl.adoc: update documentation for RSL_IE_OSMO_REP_ACCH_CAP The recently added IE (RSL_IE_OSMO_REP_ACCH_CAP) has been extended with more options, update the documentation as well. Change-Id: I3d95da588e863185bb62e92898c285d52bce9af4 Related: SYS#5114, OS#4796, OS#4794, OS#4795 --- M doc/manuals/abis/rsl.adoc 1 file changed, 20 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/doc/manuals/abis/rsl.adoc b/doc/manuals/abis/rsl.adoc index 8843a74..35fda31 100644 --- a/doc/manuals/abis/rsl.adoc +++ b/doc/manuals/abis/rsl.adoc @@ -958,10 +958,26 @@ ==== RSL_IE_OSMO_REP_ACCH_CAP This is a one byte length TLV IE that is used to enable or disable repeated ACCH -capabilities on the BTS side during Channel Activation and Mode Modify. If the -IE is present and its value byte is set to 0x01, then the BTS will enable -repeated ACCH capabilities, otherwise the channel is activated without repeated -ACCH capabilities present. +capabilities on the BTS side during Channel Activation and Mode Modify. + +The IE contains a bitfield in the lower nibble in order to set the ACCH repetition +policy for each of the two channel types individually. Depending on the state of the +bits (see table below) the ACCH repetition mode is either enabled or disabled completely. + +The lower 3 bit of the higher nibble are used to signal an RXQUAL threshold to set the +BER on which UL-SACCH or DL-FACCH repetition shall be turned on. If the field is set +to 0, then UL-SACCH and DL-FACCH will be always on. DL-FACCH will also be turned on +automatically as soon as the MS requests a DL-SACCH repetition. + +If the IE is not present, then ACCH repetition completely is disabled. + +[options="header"] +|=== +| *bit* | 7 | 6 - 4 | 3 | 2 | 1 | 0 +| byte at offset 0 | 0 | RXQUAL | UL-SACCH | DL-SACCH | DL-FACCH/ALL | DL-FACCH/CMD +|=== + +(Bits 7 is reserved for future use and must be set to zero.) === A-bis RSL Initialization / BTS bring-up -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21184 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3d95da588e863185bb62e92898c285d52bce9af4 Gerrit-Change-Number: 21184 Gerrit-PatchSet: 5 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 Dec 1 12:01:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:01:30 +0000 Subject: Change in osmo-bts[master]: l1sap: also include SRR bit in RSL l1 info field. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21088 ) Change subject: l1sap: also include SRR bit in RSL l1 info field. ...................................................................... l1sap: also include SRR bit in RSL l1 info field. The SRR bit, which got specified in 3gpp release 6 to support repeated ACCH capability is not yet included in the L1 Information IE on RSL level. Also lets update the spec reference to more modern 3gpp spec ref numbers. Change-Id: I987c61608b737521ba36756dabf2f6215b34c2d6 Related: OS#4796 SYS#5114 --- M src/common/l1sap.c 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 4398f2a..3c45b62 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1463,10 +1463,11 @@ } /* Some brilliant engineer decided that the ordering of * fields on the Um interface is different from the - * order of fields in RSL. See TS 04.04 (Chapter 7.2) - * vs. TS 08.58 (Chapter 9.3.10). */ + * order of fields in RSL. See 3GPP TS 44.004 (section 7.2) + * vs. 3GPP TS 48.058 (section 9.3.10). */ lchan->meas.l1_info[0] = data[0] << 3; - lchan->meas.l1_info[0] |= ((data[0] >> 5) & 1) << 2; + lchan->meas.l1_info[0] |= ((data[0] >> 5) & 1) << 2; /* FPC/EPC */ + lchan->meas.l1_info[0] |= ((data[0] >> 6) & 1) << 1; /* SRR */ lchan->meas.l1_info[1] = data[1]; lchan->meas.flags |= LC_UL_M_F_L1_VALID; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21088 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I987c61608b737521ba36756dabf2f6215b34c2d6 Gerrit-Change-Number: 21088 Gerrit-PatchSet: 9 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 Tue Dec 1 12:01:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:01:30 +0000 Subject: Change in osmo-bts[master]: l1sap: add repeated downlink SACCH In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21105 ) Change subject: l1sap: add repeated downlink SACCH ...................................................................... l1sap: add repeated downlink SACCH 3GPP TS 44.006, section 11 describes a method how the downlink SACCH transmission can be repeated to increase transmission reliability. Change-Id: I00806f936b15fbaf6a4e7bbd61f3bec262cdbb28 Related: OS#4794, SYS#5114 --- M include/osmo-bts/gsm_data.h M src/common/l1sap.c M src/common/rsl.c 3 files changed, 49 insertions(+), 3 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/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 47a6db8..b5b616e 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -326,6 +326,9 @@ struct abis_rsl_osmo_rep_acch_cap repeated_acch_capability; bool repeated_dl_facch_active; + + /* Message buffer to store DL-SACCH repeation candidate */ + struct msgb *rep_sacch; }; static inline uint8_t lchan_get_ta(const struct gsm_lchan *lchan) diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 3c45b62..05adbb1 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1014,6 +1014,44 @@ lchan->repeated_dl_facch_active = false; } +/* Special dequeueing function with SACCH repetition (3GPP TS 44.006, section 11) */ +static inline struct msgb *lapdm_phsap_dequeue_msg_sacch(struct gsm_lchan *lchan, struct lapdm_entity *le) +{ + struct osmo_phsap_prim pp; + struct msgb *msg; + uint8_t sapi; + + /* Note: When the MS disables SACCH repetition, we still must collect + * possible candidates in order to have one ready in case the MS enables + * SACCH repetition. */ + + if (lchan->rep_sacch) { + if (((lchan->meas.l1_info[0] >> 1) & 1) == 0) { + /* Toss previous repetition candidate */ + msgb_free(lchan->rep_sacch); + lchan->rep_sacch = NULL; + } else { + /* Use previous repetition candidate */ + msg = lchan->rep_sacch; + lchan->rep_sacch = NULL; + return msg; + } + } + + /* Fetch new repetition candidate from queue */ + if (lapdm_phsap_dequeue_prim(le, &pp) < 0) + return NULL; + msg = pp.oph.msg; + sapi = (msg->data[0] >> 2) & 0x07; + + /* Only LAPDm frames for SAPI may become a repetition + * candidate. */ + if (sapi == 0) + lchan->rep_sacch = msgb_copy(msg, "rep_sacch"); + + return msg; +} + /* PH-RTS-IND prim received from bts model */ static int l1sap_ph_rts_ind(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap, struct ph_data_param *rts_ind) @@ -1095,7 +1133,10 @@ p[0] = lchan->ms_power_ctrl.current; p[1] = lchan->rqd_ta; le = &lchan->lapdm_ch.lapdm_acch; - pp_msg = lapdm_phsap_dequeue_msg(le); + if (lchan->repeated_acch_capability.dl_sacch) + pp_msg = lapdm_phsap_dequeue_msg_sacch(lchan, le); + else + pp_msg = lapdm_phsap_dequeue_msg(le); } else { if (lchan->ts->trx->bts->dtxd) dtxd_facch = true; diff --git a/src/common/rsl.c b/src/common/rsl.c index 14a0dcc..8760c24 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -823,12 +823,14 @@ */ lapdm_channel_exit(&lchan->lapdm_ch); - /* Also ensure that there are no leftovers from repeated FACCH - * that might cause memory leakage. */ + /* Also ensure that there are no leftovers from repeated FACCH or + * repeated SACCH that might cause memory leakage. */ msgb_free(lchan->tch.rep_facch[0].msg); msgb_free(lchan->tch.rep_facch[1].msg); lchan->tch.rep_facch[0].msg = NULL; lchan->tch.rep_facch[1].msg = NULL; + msgb_free(lchan->rep_sacch); + lchan->rep_sacch = NULL; return tx_rf_rel_ack(lchan, chan_nr); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21105 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I00806f936b15fbaf6a4e7bbd61f3bec262cdbb28 Gerrit-Change-Number: 21105 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 Tue Dec 1 12:01:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:01:30 +0000 Subject: Change in osmo-bts[master]: l1sap: add repeated uplink SACCH In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21185 ) Change subject: l1sap: add repeated uplink SACCH ...................................................................... l1sap: add repeated uplink SACCH 3GPP TS 44.006, section 11 describes a method how the uplink SACCH transmission can be repeated to increase transmission reliability. Change-Id: I7e4cc33cc010866e41e3b594351a7f7bf93e08ac Related: OS#4795, SYS#5114 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/scheduler.h M src/common/l1sap.c M src/osmo-bts-trx/sched_lchan_xcch.c 4 files changed, 80 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve Hoernchen: 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 b5b616e..64102f5 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -326,6 +326,7 @@ struct abis_rsl_osmo_rep_acch_cap repeated_acch_capability; bool repeated_dl_facch_active; + bool repeated_ul_sacch_active; /* Message buffer to store DL-SACCH repeation candidate */ struct msgb *rep_sacch; diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index 6bb0b9b..6f05756 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -87,6 +87,7 @@ ubit_t *dl_bursts; /* burst buffer for TX */ enum trx_burst_type dl_burst_type; /* GMSK or 8PSK burst type */ sbit_t *ul_bursts; /* burst buffer for RX */ + sbit_t *ul_bursts_prev;/* previous burst buffer for RX (repeated SACCH) */ uint32_t ul_first_fn; /* fn of first burst */ uint8_t ul_mask; /* mask of received bursts */ diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 05adbb1..1785e66 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1131,6 +1131,8 @@ p = msgb_put(msg, GSM_MACBLOCK_LEN); /* L1-header, if not set/modified by layer 1 */ p[0] = lchan->ms_power_ctrl.current; + if (lchan->repeated_ul_sacch_active) + p[0] |= 0x40; /* See also: 3GPP TS 44.004, section 7.1 */ p[1] = lchan->rqd_ta; le = &lchan->lapdm_ch.lapdm_acch; if (lchan->repeated_acch_capability.dl_sacch) @@ -1394,6 +1396,34 @@ return check_for_first_ciphrd(lchan, data, len); } +/* Decide if repeated UL-SACCH should be applied or not. If the BER level, of + * the received SACCH blocks rises above a certain threshold UL-SACCH + * repetition is enabled */ +static void repeated_ul_sacch_active_decision(struct gsm_lchan *lchan, + uint16_t ber10k) +{ + uint16_t upper = 0; + uint16_t lower = 0; + + if (!lchan->repeated_acch_capability.ul_sacch) + 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[] = + { 0, 26, 51, 100, 190, 380, 760, 1500 }; + static const uint16_t ber10k_by_rxqual_lower[] = + { 0, 10, 10, 30, 64, 130, 270, 540 }; + upper = ber10k_by_rxqual_upper[lchan->repeated_acch_capability.rxqual]; + lower = ber10k_by_rxqual_lower[lchan->repeated_acch_capability.rxqual]; + + /* If upper/rxqual == 0, then repeated UL-SACCH is always on */ + if (ber10k >= upper) + lchan->repeated_ul_sacch_active = true; + else if (ber10k <= lower) + lchan->repeated_ul_sacch_active = false; +} + /* DATA received from bts model */ static int l1sap_ph_data_ind(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap, struct ph_data_param *data_ind) @@ -1472,6 +1502,9 @@ return 0; } + if (L1SAP_IS_LINK_SACCH(link_id)) + repeated_ul_sacch_active_decision(lchan, data_ind->ber10k); + /* bad frame */ if (len == 0) { if (L1SAP_IS_LINK_SACCH(link_id)) { diff --git a/src/osmo-bts-trx/sched_lchan_xcch.c b/src/osmo-bts-trx/sched_lchan_xcch.c index b96bc0b..90f481a 100644 --- a/src/osmo-bts-trx/sched_lchan_xcch.c +++ b/src/osmo-bts-trx/sched_lchan_xcch.c @@ -34,6 +34,17 @@ #include +/* Add two arrays of sbits */ +static void add_sbits(sbit_t * current, const sbit_t * previous) +{ + unsigned int i; + for (i = 0; i < 464; i++) { + *current = (*current) / 2 + (*previous) / 2; + current++; + previous++; + } +} + /*! \brief a single (SDCCH/SACCH) burst was received by the PHY, process it */ int rx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, uint8_t bid, const struct trx_ul_burst_ind *bi) @@ -49,6 +60,8 @@ int n_bits_total = 0; uint16_t ber10k; int rc; + struct gsm_lchan *lchan = chan_state->lchan; + bool rep_sacch = L1SAP_IS_LINK_SACCH(trx_chan_desc[chan].link_id) && lchan->repeated_ul_sacch_active; /* If handover RACH detection is turned on, treat this burst as an Access Burst. * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ @@ -65,6 +78,14 @@ return -ENOMEM; } + /* UL-SACCH requires additional memory to keep a copy of each previous + * burst set. */ + if (L1SAP_IS_LINK_SACCH(trx_chan_desc[chan].link_id) && !chan_state->ul_bursts_prev) { + chan_state->ul_bursts_prev = talloc_zero_size(tall_bts_ctx, 464); + if (!chan_state->ul_bursts_prev) + return -ENOMEM; + } + /* clear burst & store frame number of first burst */ if (bid == 0) { memset(*bursts_p, 0, 464); @@ -115,10 +136,34 @@ "Received bad data (%u/%u)\n", bi->fn % l1ts->mf_period, l1ts->mf_period); l2_len = 0; + + /* When SACCH Repetition is active, we may try to decode the + * current SACCH block by including the information from the + * information from the previous SACCH block. See also: + * 3GPP TS 44.006, section 11.2 */ + if (rep_sacch) { + add_sbits(*bursts_p, chan_state->ul_bursts_prev); + rc = gsm0503_xcch_decode(l2, *bursts_p, &n_errors, &n_bits_total); + if (rc) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Combining current SACCH block with previous SACCH block also yields bad data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + } else { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Combining current SACCH block with previous SACCH block yields good data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + l2_len = GSM_MACBLOCK_LEN; + } + } } else l2_len = GSM_MACBLOCK_LEN; ber10k = compute_ber10k(n_bits_total, n_errors); + + /* Keep a copy to ease decoding in the next repetition pass */ + if (rep_sacch) + memcpy(chan_state->ul_bursts_prev, *bursts_p, 464); + return _sched_compose_ph_data_ind(l1t, bi->tn, *first_fn, chan, l2, l2_len, meas_avg.rssi, meas_avg.toa256, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21185 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7e4cc33cc010866e41e3b594351a7f7bf93e08ac Gerrit-Change-Number: 21185 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Dec 1 12:04:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:04:25 +0000 Subject: Change in osmo-mgw[master]: configuration: add section about E1 trunks In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21365 ) Change subject: configuration: add section about E1 trunks ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21365 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4059771df0f115242398d1af499c837005a7dabc Gerrit-Change-Number: 21365 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12:04: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 Dec 1 12:04:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:04:36 +0000 Subject: Change in osmo-mgw[master]: usermanual: add chapter about mgcp endpoints In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21386 ) Change subject: usermanual: add chapter about mgcp endpoints ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I16265eb667221959a69f33701d024bd8d9b22040 Gerrit-Change-Number: 21386 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12: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 Tue Dec 1 12:04:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:04:38 +0000 Subject: Change in osmo-mgw[master]: configuration: add section about E1 trunks In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21365 ) Change subject: configuration: add section about E1 trunks ...................................................................... configuration: add section about E1 trunks The cunfiguration chapter does not say anything about E1 trunk configurations, lets add a subsection that explains how an E1 trunk is added. Change-Id: I4059771df0f115242398d1af499c837005a7dabc --- M doc/manuals/chapters/configuration.adoc 1 file changed, 65 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/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 1d273b6..2e2772e 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -57,3 +57,68 @@ trunks or a change of the number of available endpoints, require a full restart of osmo-mgw! +=== E1 trunk considerations + +While the RTP bridge trunks are natively based on IP no special considerations +are required during setup. E1 trunks are mapped on a physical E1 line, which has +to be configured as shown below. + +.Example: E1 line setup +---- +OsmoMGW(config-e1_input)# e1_line 0 driver dahdi <1> +OsmoMGW(config-e1_input)# e1_line 0 port 2 <2> +---- +<1> Name of the libosmo-abis driver implementation ("dahdi") +<2> Port number of the physical E1 port to use (2) + +In osmo-mgw the e1_input node is used to configure the physical E1 line. The +line number will be used internally to identify the configured E1 line. The +port number is the physical E1 connector (sometimes called 'span') at the E1 +hardware. Per trunk an individual E1 line will be needed. Beware that the E1 +driver may also need configuration settings that are not discussed here. + +.Example: E1 trunk setup +---- +OsmoMGW(config-mgcp)# trunk 0 <1> +OsmoMGW(config-mgcp-trunk)# line 0 <2> +---- +<1> Creation of a trunk (0) +<2> Reference to the E1 line to use (0) + +The E1 trunk is created along with a number, typically starting at 0, but if +required any number from 0-64 is allowed. The E1 trunk configuration concerning +the IP related aspects is nearly identical to the configuration of the virtual +trunk. However, it is important that the user assigns one of the E1 line numbers +that were configured under the e1_input node. + +.Example: A typical configuration with one E1 trunk +---- +e1_input + e1_line 0 driver dahdi + e1_line 0 port 2 +mgcp + bind ip 127.0.0.1 + rtp net-range 6000 6011 + rtp net-bind-ip 192.168.100.130 + rtp ip-probing + rtp ip-tos 184 + no rtp keep-alive + bind port 2428 + number endpoints 30 + loop 0 + force-realloc 1 + osmux off + rtp-patch rfc5993hr + trunk 0 + rtp keep-alive once + no rtp keep-alive + line 0 +---- + +NOTE: One E1 trunk always covers a whole E1 line. All subslots (I.640) will be mapped +to individual MGCP endpoints. As long as the endpoints remain unused the +underlying E1 timeslot is not used. + +NOTE: The E1 trunk implementation also works with T1 lines, however since T1 has +24 instead of 31 usable timeslots only the endpoints that fall into that 1-24 timeslot +range will be useable. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21365 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4059771df0f115242398d1af499c837005a7dabc Gerrit-Change-Number: 21365 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 Tue Dec 1 12:04:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:04:38 +0000 Subject: Change in osmo-mgw[master]: usermanual: add chapter about mgcp endpoints In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21386 ) Change subject: usermanual: add chapter about mgcp endpoints ...................................................................... usermanual: add chapter about mgcp endpoints The manual does not say much about the endpoint naming, even though osmo-mgw is oriented at RFC 3435 the endpoint names are specific to osmo-mgw. In particular the E1/T1 endpoints and their overlapping need some explaination Change-Id: I16265eb667221959a69f33701d024bd8d9b22040 --- A doc/manuals/chapters/mgcp_endpoints.adoc M doc/manuals/osmomgw-usermanual.adoc 2 files changed, 96 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/mgcp_endpoints.adoc b/doc/manuals/chapters/mgcp_endpoints.adoc new file mode 100644 index 0000000..797fdea --- /dev/null +++ b/doc/manuals/chapters/mgcp_endpoints.adoc @@ -0,0 +1,94 @@ +== MGCP Endpoints + +MGCP organizes the switching resources in so called endpoints. Each endpoint is +referenced by its unique identifier. While RFC 3435 specifies a naming scheme, the +actual identifier naming is subject to the implementation and configuration. + +=== RTP proxy / RTP bridge endpoints + +OsmoMGW implements a freely configurable number of `rtpbridge` endpoints. Those +endpoints are able to host two connections at a time to model the functionality +of a tandem switch. + +RTP bridge endpoint identifiers are referenced by the string `rtpbridge/`, a +hexadecimal number without leading zeros and a domain name (configurable). + +---- +rtpbridge/@ +---- + +.Example: List of virtual endpoints +---- +rtpbridge/1 at mgw +rtpbridge/2 at mgw +rtpbridge/3 at mgw +rtpbridge/4 at mgw +rtpbridge/5 at mgw +rtpbridge/6 at mgw +rtpbridge/7 at mgw +rtpbridge/8 at mgw +rtpbridge/9 at mgw +rtpbridge/a at mgw +rtpbridge/b at mgw +rtpbridge/c at mgw +rtpbridge/d at mgw +rtpbridge/e at mgw +rtpbridge/f at mgw +rtpbridge/10 at mgw +---- + +=== E1/T1 endpoints + +OsmoMGW supports E1 subslot multiplexing as specified by I.460. All possible +subslot combinations are mapped on individual endpoints. The endpoint names +are prefixed with `ds/e1-` followed by the trunk number and the E1 timeslot. +The subslot is defined by a bit rate and a bit offset. + +---- +ds/e1-/s-/su-@ +---- + +.Example: List of endpoints on E1 trunk 0 at E1 timeslot 2 +---- +ds/e1-0/s-2/su64-0 at mgw +ds/e1-0/s-2/su32-0 at mgw +ds/e1-0/s-2/su32-4 at mgw +ds/e1-0/s-2/su16-0 at mgw +ds/e1-0/s-2/su16-2 at mgw +ds/e1-0/s-2/su16-4 at mgw +ds/e1-0/s-2/su16-6 at mgw +ds/e1-0/s-2/su8-0 at mgw +ds/e1-0/s-2/su8-1 at mgw +ds/e1-0/s-2/su8-2 at mgw +ds/e1-0/s-2/su8-3 at mgw +ds/e1-0/s-2/su8-4 at mgw +ds/e1-0/s-2/su8-5 at mgw +ds/e1-0/s-2/su8-6 at mgw +ds/e1-0/s-2/su8-7 at mgw +---- + +When creating connections on endpoints that reside in one E1 timeslot the call +agent must make sure that no overlapping endpoints are used. It is for example +not possible to use `ds/e1-0/s-2/su16-2 at mgw` and `ds/e1-0/s-2/su8-3 at mgw` at the +same time because they overlap. + +.Subslot overlapping +[options="header"] +|=== +| Bit offset 4+| Subslots +| 0 | 8k .2+| 16k .4+| 32k .8+| 64k +| 1 | 8k +| 2 | 8k .2+| 16k +| 3 | 8k +| 4 | 8k .2+| 16k .4+| 32k +| 5 | 8k +| 6 | 8k .2+| 16k +| 7 | 8k +|=== + +NOTE: The current implementation (December 2020) only implements TRAU frame +encoding/decoding for 16K and 8K subslots. Endpoints with other bitrates are +not yet useable. + +NOTE: the VTY command "show mgcp" can be used to get a list of all available +endpoints (including identifiers) \ No newline at end of file diff --git a/doc/manuals/osmomgw-usermanual.adoc b/doc/manuals/osmomgw-usermanual.adoc index 36d4049..c4660f5 100644 --- a/doc/manuals/osmomgw-usermanual.adoc +++ b/doc/manuals/osmomgw-usermanual.adoc @@ -18,6 +18,8 @@ include::{srcdir}/chapters/configuration.adoc[] +include::{srcdir}/chapters/mgcp_endpoints.adoc[] + include::{srcdir}/chapters/mgcp_extensions.adoc[] include::./common/chapters/osmux/osmux.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I16265eb667221959a69f33701d024bd8d9b22040 Gerrit-Change-Number: 21386 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 Dec 1 12:05:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:05:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL ... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 ) Change subject: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL block ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7e0d9ed2475dbf989fbf932c8b83117ff5fb28fc Gerrit-Change-Number: 21419 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 01 Dec 2020 12: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 Tue Dec 1 12:06:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:06:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSPRO_Server: Ignore any ID RESP messages from the client for now In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21306 ) Change subject: RSPRO_Server: Ignore any ID RESP messages from the client for now ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id557ea9c540bf96465e7f18da87719888dd7a318 Gerrit-Change-Number: 21306 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12: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 Tue Dec 1 12:06:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:06:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSPRO_Server: Ignore any ID RESP messages from the client for now In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21306 ) Change subject: RSPRO_Server: Ignore any ID RESP messages from the client for now ...................................................................... RSPRO_Server: Ignore any ID RESP messages from the client for now More recent clients start to send ID RESP, which was not the case at the time the TTCN3 test suite was written. As we don't really want to test the IPA CCM behavior, but we want to test the actual remsim functionality, we can simply ignore any such responses. Change-Id: Id557ea9c540bf96465e7f18da87719888dd7a318 --- M remsim/RSPRO_Server.ttcn 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/remsim/RSPRO_Server.ttcn b/remsim/RSPRO_Server.ttcn index 635629f..bb11689 100644 --- a/remsim/RSPRO_Server.ttcn +++ b/remsim/RSPRO_Server.ttcn @@ -46,6 +46,7 @@ altstep as_ignore_id_ack(integer i) runs on rspro_server_CT { [] RSPRO_SRV[i].receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_ID_ACK)) { repeat; } + [] RSPRO_SRV[i].receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_ID_RESP)) { repeat; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id557ea9c540bf96465e7f18da87719888dd7a318 Gerrit-Change-Number: 21306 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 Tue Dec 1 12:07:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:07:18 +0000 Subject: Change in osmo-pcu[master]: NS2: rework handling of unknown primitive In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/20927 ) Change subject: NS2: rework handling of unknown primitive ...................................................................... NS2: rework handling of unknown primitive Use prim_str() method to get the human readable string. Define unhandled events with a nop in the switch() Depends-on: Ibf610fbd929dddc4a4e235152447caff522d4eb2 (libosmocore) Change-Id: I50188afb83ac142e22d4bda4e8050eb4de962e70 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 10 insertions(+), 6 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/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index cb47998..934d8fc 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -574,11 +574,13 @@ the_pcu.bvc_unblocked = 0; } break; + case NS_AFF_CAUSE_SNS_FAILURE: + break; default: - LOGP(DPCU, LOGL_NOTICE, - "NS: %s Unknown prim %d from NS\n", + LOGP(DPCU, LOGL_DEBUG, + "NS: %s Unknown affecting cause %s / %d from NS\n", get_value_string(osmo_prim_op_names, nsp->oph.operation), - nsp->oph.primitive); + gprs_ns2_aff_cause_prim_str(nsp->u.status.cause), nsp->u.status.cause); break; } } @@ -613,11 +615,13 @@ case PRIM_NS_STATUS: gprs_ns_prim_status_cb(nsp); break; + case PRIM_NS_CONGESTION: + break; default: - LOGP(DPCU, LOGL_NOTICE, - "NS: %s Unknown prim %d from NS\n", + LOGP(DPCU, LOGL_DEBUG, + "NS: %s Unknown prim %s / %d from NS\n", get_value_string(osmo_prim_op_names, oph->operation), - oph->primitive); + gprs_ns2_prim_str((gprs_ns2_prim) oph->primitive), oph->primitive); break; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/20927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I50188afb83ac142e22d4bda4e8050eb4de962e70 Gerrit-Change-Number: 20927 Gerrit-PatchSet: 6 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 Tue Dec 1 12:08:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:08:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests_SNS: improve SGSN originated BVC-RESETs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20923 ) Change subject: PCU_Tests_SNS: improve SGSN originated BVC-RESETs ...................................................................... Patch Set 1: ping? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id681749d75073c1d50a4b0a2e86f0a2dd0955b45 Gerrit-Change-Number: 20923 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 12:08: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 Tue Dec 1 12:08:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:08:46 +0000 Subject: Change in osmo-bts[master]: log: rsl_rx_chan_activ: show chan type as human readable string In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21077 ) Change subject: log: rsl_rx_chan_activ: show chan type as human readable string ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3acf6c18309d3b4093dbc295be622363cb6dbcdc Gerrit-Change-Number: 21077 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12:08: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 Dec 1 12:09:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:09:10 +0000 Subject: Change in osmo-bts[master]: log: rsl_rx_chan_activ: show chan type as human readable string In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21077 ) Change subject: log: rsl_rx_chan_activ: show chan type as human readable string ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21077/1/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/21077/1/src/common/rsl.c at 1265 PS1, Line 1265: type, get_value_string(rsl_act_type_names, type), > i was aiming to not annoy people that might be accustomed to the type numbers in the logs... [?] i would print only the string. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3acf6c18309d3b4093dbc295be622363cb6dbcdc Gerrit-Change-Number: 21077 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12:09:10 +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 Tue Dec 1 12:09:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:09:23 +0000 Subject: Change in osmo-bsc[master]: ctrl_test_runner.py: remove per-test startup delay In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21207 ) Change subject: ctrl_test_runner.py: remove per-test startup delay ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21207 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I830fabbd037d6e945956a99aa3f5e4d4015ea165 Gerrit-Change-Number: 21207 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12: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 Tue Dec 1 12:09:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:09:26 +0000 Subject: Change in osmo-bsc[master]: ctrl_test_runner.py: remove per-test startup delay In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21207 ) Change subject: ctrl_test_runner.py: remove per-test startup delay ...................................................................... ctrl_test_runner.py: remove per-test startup delay The CTRL connect already includes 30 retries with .1 seconds delay each, so there is no point in adding a fixed two second delay that unnecessarily drags out test duration for each test. Change-Id: I830fabbd037d6e945956a99aa3f5e4d4015ea165 --- M tests/ctrl_test_runner.py 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/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py index e1c11b9..5d2af85 100755 --- a/tests/ctrl_test_runner.py +++ b/tests/ctrl_test_runner.py @@ -55,7 +55,6 @@ except OSError: print("Current directory: %s" % os.getcwd(), file=sys.stderr) print("Consider setting -b", file=sys.stderr) - time.sleep(2) appstring = self.ctrl_app()[2] appport = self.ctrl_app()[0] -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21207 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I830fabbd037d6e945956a99aa3f5e4d4015ea165 Gerrit-Change-Number: 21207 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 Tue Dec 1 12:11:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 12:11:21 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tchh: fix frame number and fill FACCH gap In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21329 ) Change subject: sched_lchan_tchh: fix frame number and fill FACCH gap ...................................................................... Patch Set 2: Code-Review+1 this needs input from @fixeria -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1ad9fa3815feb2b4da608ab7df716a87ba1f2f91 Gerrit-Change-Number: 21329 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 12:11: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 Dec 1 12:39:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 12:39:07 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tchh: fix frame number and fill FACCH gap In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21329 ) Change subject: sched_lchan_tchh: fix frame number and fill FACCH gap ...................................................................... Patch Set 2: (1 comment) Regarding the frame numbers, not sure why you prefer to stay with the remapping API. This is a performance critical part of the implementation, and storing frame numbers together with the Uplink measurements in a ring-buffer would be a significant improvement, since you don't need to do any for / if / assert() at all. I don't want to block you, but still would prefer the ring-buffer approach. Regarding the measurements, it's still unclear to me why do you memcpy() samples averaged over the whole FACCH/H block. My proposal was to keep averaging samples as usual, like there is no FACCH/H at all. I think we need to schedule a Jitsi call, but let's see if I can propose something in the form of a patch today. https://gerrit.osmocom.org/c/osmo-bts/+/21329/2/src/osmo-bts-trx/sched_lchan_tchh.c File src/osmo-bts-trx/sched_lchan_tchh.c: https://gerrit.osmocom.org/c/osmo-bts/+/21329/2/src/osmo-bts-trx/sched_lchan_tchh.c at 71 PS2, Line 71: unsigned int fn_tch_end; ws -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1ad9fa3815feb2b4da608ab7df716a87ba1f2f91 Gerrit-Change-Number: 21329 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 12:39: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 Tue Dec 1 12:44:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 12:44:35 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: clarify the content of Measurement results References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21421 ) Change subject: firmware/layer1: clarify the content of Measurement results ...................................................................... firmware/layer1: clarify the content of Measurement results Change-Id: I3203790c529f93d0084c82136645683a26faf986 Related: I26546dcbc853166e351d00260936b1b9d584ae03 --- M src/target/firmware/layer1/prim_utils.c 1 file changed, 15 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/21/21421/1 diff --git a/src/target/firmware/layer1/prim_utils.c b/src/target/firmware/layer1/prim_utils.c index c85da71..9c58d15 100644 --- a/src/target/firmware/layer1/prim_utils.c +++ b/src/target/firmware/layer1/prim_utils.c @@ -43,10 +43,22 @@ /* lapdm header */ 0x01, 0x03, 0x49, - /* Measurement report */ - 0x06, 0x15, 0x36, 0x36, 0x01, 0xC0, 0x00, 0x00, + /* RR Management messages, Measurement Report */ + 0x06, 0x15, + + /* Measurement results (see 3GPP TS 44.018, section 10.5.2.20): + * 0... .... = BA-USED: 0 + * .0.. .... = DTX-USED: DTX was not used + * ..11 0110 = RXLEV-FULL-SERVING-CELL: -57 <= x < -56 dBm (54) + * 0... .... = 3G-BA-USED: 0 + * .0.. .... = MEAS-VALID: The measurement results are valid + * ..11 0110 = RXLEV-SUB-SERVING-CELL: -57 <= x < -56 dBm (54) + * 0... .... = SI23_BA_USED: 0 + * .000 .... = RXQUAL-FULL-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) + * .... 000. = RXQUAL-SUB-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) + * .... ...1 11.. .... = NO-NCELL-M: Neighbour cell information not available */ + 0x36, 0x36, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00 }; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3203790c529f93d0084c82136645683a26faf986 Gerrit-Change-Number: 21421 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 Dec 1 12:44:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 12:44:35 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: invalidate hard-coded Measurement results References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21422 ) Change subject: firmware/layer1: invalidate hard-coded Measurement results ...................................................................... firmware/layer1: invalidate hard-coded Measurement results This is what the L1 sends to the network before the first SACCH block is received from the higher layers. The indicated values are of course invalid because they're hard-coded. According to 3GPP TS 44.018, table 10.5.2.20.1: 0 The measurement results are valid 1 The measurement results are not valid Change-Id: I136307baef3fa2ddd1d5cec2a7f8c9e6d4602499 Related: I7da767e146aec7cef1de71e4d735d6a02b6c5642 Related: SYS#4918 --- M src/target/firmware/layer1/prim_utils.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/22/21422/1 diff --git a/src/target/firmware/layer1/prim_utils.c b/src/target/firmware/layer1/prim_utils.c index 9c58d15..7beab5f 100644 --- a/src/target/firmware/layer1/prim_utils.c +++ b/src/target/firmware/layer1/prim_utils.c @@ -51,13 +51,13 @@ * .0.. .... = DTX-USED: DTX was not used * ..11 0110 = RXLEV-FULL-SERVING-CELL: -57 <= x < -56 dBm (54) * 0... .... = 3G-BA-USED: 0 - * .0.. .... = MEAS-VALID: The measurement results are valid + * .1.. .... = MEAS-VALID: The measurement results are not valid * ..11 0110 = RXLEV-SUB-SERVING-CELL: -57 <= x < -56 dBm (54) * 0... .... = SI23_BA_USED: 0 * .000 .... = RXQUAL-FULL-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) * .... 000. = RXQUAL-SUB-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) * .... ...1 11.. .... = NO-NCELL-M: Neighbour cell information not available */ - 0x36, 0x36, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x36, 0x76, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I136307baef3fa2ddd1d5cec2a7f8c9e6d4602499 Gerrit-Change-Number: 21422 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 Dec 1 12:58:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 1 Dec 2020 12:58:27 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: clarify the content of Measurement results In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21421 ) Change subject: firmware/layer1: clarify the content of Measurement results ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3203790c529f93d0084c82136645683a26faf986 Gerrit-Change-Number: 21421 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12:58: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 Dec 1 12:58:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 1 Dec 2020 12:58:34 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: invalidate hard-coded Measurement results In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21422 ) Change subject: firmware/layer1: invalidate hard-coded Measurement results ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I136307baef3fa2ddd1d5cec2a7f8c9e6d4602499 Gerrit-Change-Number: 21422 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 12:58: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 Dec 1 14:57:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 1 Dec 2020 14:57:56 +0000 Subject: Change in osmo-pcu[master]: Dl TBF: Get rid of LLC UI dummy blocks following other data In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/21387 to look at the new patch set (#5). Change subject: Dl TBF: Get rid of LLC UI dummy blocks following other data ...................................................................... Dl TBF: Get rid of LLC UI dummy blocks following other data According to: * 3GPP TS 44.060 version 16.0.0 "9.3.1a Delayed release of downlink Temporary Block Flow" * 3GPP TS 44.064 version 16.0.0 "6.4.2.2 Unconfirmed Information (UI) Dummy command" LLC UI Dummy frames are to be used when there no more data to send, only in order to delay the release of a TBF. Hence, while not incorrect per se, makes no sense to send those LLC UI Dummy frames inserted into rlcmac blocks which already contain other LLC frames, since the MS in that case is already being kept active. It only makes sense to send those LLC UI Dummy frames when we have nothing else to send, that is, alone inside a RLCMAC block without other LLC frames. Related: OS#4849 Change-Id: Ifae1a7b2b3dfad8df19585063088ba0df2749c8f --- M src/encoding.cpp M src/encoding.h M src/tbf_dl.cpp M tests/tbf/TbfTest.err 4 files changed, 170 insertions(+), 198 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/87/21387/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifae1a7b2b3dfad8df19585063088ba0df2749c8f Gerrit-Change-Number: 21387 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Tue Dec 1 16:29:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 1 Dec 2020 16:29:05 +0000 Subject: Change in osmo-bsc[master]: Store GPRS MOs directly under BTS SiteMgr object References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21423 ) Change subject: Store GPRS MOs directly under BTS SiteMgr object ...................................................................... Store GPRS MOs directly under BTS SiteMgr object The only real 1-1 relationship between BTS NM objects is the one between GPRS Cell and BTS (which is actually a BTS cell). In our current osmo-bts implementation we don't care much since we only handle 1-cell BTSses, but let's make the data structure organization more generic. Implementation notes: The gsm_bts_sm is moved to its own file, APIs to allocate are added and the new public object is hooked correctly in the allocation process of osmo-bsc. Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bts.h A include/osmocom/bsc/bts_sm.h M include/osmocom/bsc/gsm_data.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_nokia_site.c A src/osmo-bsc/bts_sm.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/nm_bb_transc_fsm.c M src/osmo-bsc/nm_bts_fsm.c M src/osmo-bsc/nm_bts_sm_fsm.c M src/osmo-bsc/nm_channel_fsm.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/pcu_sock.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.c M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 30 files changed, 328 insertions(+), 196 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/23/21423/1 diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index 1f066b6..e2d5db8 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -11,6 +11,7 @@ bsc_subscr_conn_fsm.h \ bss.h \ bts.h \ + bts_sm.h \ bts_trx.h \ bts_ipaccess_nanobts_omlattr.h \ chan_alloc.h \ diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 22839d6..365b473 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -14,6 +14,7 @@ #include "osmocom/bsc/gsm_data.h" #include "osmocom/bsc/bts_trx.h" +#include "osmocom/bsc/bts_sm.h" enum bts_counter_id { BTS_CTR_CHREQ_TOTAL, @@ -197,17 +198,6 @@ uint8_t _features_data[MAX_BTS_FEATURES/8]; }; -/* BTS Site Manager */ -struct gsm_bts_sm { - struct gsm_abis_mo mo; - /* nanoBTS and old versions of osmo-bts behaves this way due to - broken FSMs not following TS 12.21: they never do - Dependency->Offline transition, but they should be OPSTARTed - nevertheless during Dependnecy state to work. This field is - used by all dependent NM objects. */ - bool peer_has_no_avstate_offline; -}; - /* One BTS */ struct gsm_bts { /* list header in net->bts_list */ @@ -272,7 +262,7 @@ /* CCCH is on C0 */ struct gsm_bts_trx *c0; - struct gsm_bts_sm site_mgr; + struct gsm_bts_sm *site_mgr; /* backpointer */ /* bitmask of all SI that are present/valid in si_buf */ uint32_t si_valid; @@ -354,18 +344,6 @@ /* Not entirely sure how ip.access specific this is */ struct { enum bts_gprs_mode mode; - struct { - struct gsm_abis_mo mo; - uint16_t nsei; - uint8_t timer[7]; - } nse; - struct { - struct gsm_abis_mo mo; - uint16_t bvci; - uint8_t timer[11]; - struct gprs_rlc_cfg rlc_cfg; - } cell; - struct gsm_bts_gprs_nsvc nsvc[2]; uint8_t rac; uint8_t net_ctrl_ord; bool ctrl_ack_type_use_block; @@ -574,11 +552,7 @@ return &lai; } -static inline struct gsm_bts *gsm_bts_sm_get_bts(struct gsm_bts_sm *site_mgr) { - return (struct gsm_bts *)container_of(site_mgr, struct gsm_bts, site_mgr); -} - -struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num); +struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, struct gsm_bts_sm *bts_sm, uint8_t bts_num); char *gsm_bts_name(const struct gsm_bts *bts); diff --git a/include/osmocom/bsc/bts_sm.h b/include/osmocom/bsc/bts_sm.h new file mode 100644 index 0000000..32c7c34 --- /dev/null +++ b/include/osmocom/bsc/bts_sm.h @@ -0,0 +1,80 @@ +/* BTS Site Manager */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include +#include + +#include "osmocom/bsc/gsm_data.h" + +struct gsm_bts; + +struct gsm_gprs_nse { + struct gsm_abis_mo mo; + uint16_t nsei; + uint8_t timer[7]; +}; + +struct gsm_gprs_cell { + struct gsm_abis_mo mo; + uint16_t bvci; + uint8_t timer[11]; + struct gprs_rlc_cfg rlc_cfg; +}; + +struct gsm_gprs_nsvc { + struct gsm_bts *bts; + /* data read via VTY config file, to configure the BTS + * via OML from BSC */ + int id; + uint16_t nsvci; + uint16_t local_port; /* on the BTS */ + struct osmo_sockaddr remote; + struct gsm_abis_mo mo; +}; + + +/* BTS Site Manager */ +struct gsm_bts_sm { + struct gsm_bts *bts[1]; /* only one bts supported so far */ + struct gsm_abis_mo mo; + /* nanoBTS and old versions of osmo-bts behaves this way due to + broken FSMs not following TS 12.21: they never do + Dependency->Offline transition, but they should be OPSTARTed + nevertheless during Dependnecy state to work. This field is + used by all dependent NM objects. */ + bool peer_has_no_avstate_offline; + struct { + struct gsm_gprs_nse nse; + struct gsm_gprs_cell cell; + struct gsm_gprs_nsvc nsvc[2]; + } gprs; +}; + +static inline struct gsm_bts *gsm_bts_sm_get_bts(struct gsm_bts_sm *site_mgr) { + return site_mgr->bts[0]; +} + +struct gsm_bts_sm *gsm_bts_sm_alloc(struct gsm_network *net, uint8_t bts_num); + +void gsm_bts_sm_mo_reset(struct gsm_bts_sm *bts_sm); diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index a5b5a50..d8f8be2 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -767,17 +767,6 @@ struct gsm_abis_mo mo; }; -struct gsm_bts_gprs_nsvc { - struct gsm_bts *bts; - /* data read via VTY config file, to configure the BTS - * via OML from BSC */ - int id; - uint16_t nsvci; - uint16_t local_port; /* on the BTS */ - struct osmo_sockaddr remote; - struct gsm_abis_mo mo; -}; - enum gprs_rlc_par { RLC_T3142, RLC_T3169, diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index 1574a8b..c489e0a 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -47,6 +47,7 @@ # FIXME: resolve the bogus dependencies patched around here: ipaccess_config_LDADD = \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ @@ -72,6 +73,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 5739885..89f869d 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -52,6 +52,7 @@ bts_ipaccess_nanobts_omlattr.c \ bts_nokia_site.c \ bts_siemens_bs11.c \ + bts_sm.c \ bts_sysmobts.c \ bts_unknown.c \ chan_alloc.c \ diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 73dc2d0..4d245e5 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -863,14 +863,14 @@ return false; if (bts->gprs.mode != BTS_GPRS_NONE) { - if (bts->gprs.cell.mo.nm_state.administrative == NM_STATE_LOCKED) + if (bts->site_mgr->gprs.cell.mo.nm_state.administrative == NM_STATE_LOCKED) return false; - if (bts->gprs.nse.mo.nm_state.administrative == NM_STATE_LOCKED) + if (bts->site_mgr->gprs.nse.mo.nm_state.administrative == NM_STATE_LOCKED) return false; - if (bts->gprs.nsvc[0].mo.nm_state.administrative == NM_STATE_LOCKED && - bts->gprs.nsvc[1].mo.nm_state.administrative == NM_STATE_LOCKED) + if (bts->site_mgr->gprs.nsvc[0].mo.nm_state.administrative == NM_STATE_LOCKED && + bts->site_mgr->gprs.nsvc[1].mo.nm_state.administrative == NM_STATE_LOCKED) return false; } diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 846339d..3ee4c49 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -463,17 +463,17 @@ vty_out(vty, " NM State: "); net_dump_nmstate(vty, &bts->mo.nm_state); vty_out(vty, " Site Mgr NM State: "); - net_dump_nmstate(vty, &bts->site_mgr.mo.nm_state); + net_dump_nmstate(vty, &bts->site_mgr->mo.nm_state); if (bts->gprs.mode != BTS_GPRS_NONE) { vty_out(vty, " GPRS NSE: "); - net_dump_nmstate(vty, &bts->gprs.nse.mo.nm_state); + net_dump_nmstate(vty, &bts->site_mgr->gprs.nse.mo.nm_state); vty_out(vty, " GPRS CELL: "); - net_dump_nmstate(vty, &bts->gprs.cell.mo.nm_state); + net_dump_nmstate(vty, &bts->site_mgr->gprs.cell.mo.nm_state); vty_out(vty, " GPRS NSVC0: "); - net_dump_nmstate(vty, &bts->gprs.nsvc[0].mo.nm_state); + net_dump_nmstate(vty, &bts->site_mgr->gprs.nsvc[0].mo.nm_state); vty_out(vty, " GPRS NSVC1: "); - net_dump_nmstate(vty, &bts->gprs.nsvc[1].mo.nm_state); + net_dump_nmstate(vty, &bts->site_mgr->gprs.nsvc[1].mo.nm_state); } else vty_out(vty, " GPRS: not configured%s", VTY_NEWLINE); @@ -740,6 +740,7 @@ static void config_write_bts_gprs(struct vty *vty, struct gsm_bts *bts) { unsigned int i; + struct gsm_bts_sm *bts_sm = bts->site_mgr; vty_out(vty, " gprs mode %s%s", bts_gprs_mode_name(bts->gprs.mode), VTY_NEWLINE); if (bts->gprs.mode == BTS_GPRS_NONE) @@ -751,21 +752,21 @@ 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); - vty_out(vty, " gprs cell bvci %u%s", bts->gprs.cell.bvci, + vty_out(vty, " gprs cell bvci %u%s", bts_sm->gprs.cell.bvci, VTY_NEWLINE); - for (i = 0; i < ARRAY_SIZE(bts->gprs.cell.timer); i++) + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.cell.timer); i++) vty_out(vty, " gprs cell timer %s %u%s", get_value_string(gprs_bssgp_cfg_strs, i), - bts->gprs.cell.timer[i], VTY_NEWLINE); - vty_out(vty, " gprs nsei %u%s", bts->gprs.nse.nsei, + bts_sm->gprs.cell.timer[i], VTY_NEWLINE); + vty_out(vty, " gprs nsei %u%s", bts_sm->gprs.nse.nsei, VTY_NEWLINE); - for (i = 0; i < ARRAY_SIZE(bts->gprs.nse.timer); i++) + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nse.timer); i++) vty_out(vty, " gprs ns timer %s %u%s", get_value_string(gprs_ns_timer_strs, i), - bts->gprs.nse.timer[i], VTY_NEWLINE); - for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) { - struct gsm_bts_gprs_nsvc *nsvc = - &bts->gprs.nsvc[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]; struct osmo_sockaddr_str remote = {}; uint16_t port; @@ -3173,7 +3174,7 @@ GPRS_CHECK_ENABLED(bts); - bts->gprs.cell.bvci = atoi(argv[0]); + bts->site_mgr->gprs.cell.bvci = atoi(argv[0]); return CMD_SUCCESS; } @@ -3190,7 +3191,7 @@ GPRS_CHECK_ENABLED(bts); - bts->gprs.nse.nsei = atoi(argv[0]); + bts->site_mgr->gprs.nse.nsei = atoi(argv[0]); return CMD_SUCCESS; } @@ -3211,7 +3212,7 @@ GPRS_CHECK_ENABLED(bts); - bts->gprs.nsvc[idx].nsvci = atoi(argv[1]); + bts->site_mgr->gprs.nsvc[idx].nsvci = atoi(argv[1]); return CMD_SUCCESS; } @@ -3231,7 +3232,7 @@ GPRS_CHECK_ENABLED(bts); - bts->gprs.nsvc[idx].local_port = atoi(argv[1]); + bts->site_mgr->gprs.nsvc[idx].local_port = atoi(argv[1]); return CMD_SUCCESS; } @@ -3252,7 +3253,7 @@ GPRS_CHECK_ENABLED(bts); /* sockaddr_in and sockaddr_in6 have the port at the same position */ - bts->gprs.nsvc[idx].remote.u.sin.sin_port = htons(atoi(argv[1])); + bts->site_mgr->gprs.nsvc[idx].remote.u.sin.sin_port = htons(atoi(argv[1])); return CMD_SUCCESS; } @@ -3281,13 +3282,13 @@ } /* Can't use osmo_sockaddr_str_to_sockaddr() because the port would be overriden */ - bts->gprs.nsvc[idx].remote.u.sas.ss_family = remote.af; + bts->site_mgr->gprs.nsvc[idx].remote.u.sas.ss_family = remote.af; switch (remote.af) { case AF_INET: - osmo_sockaddr_str_to_in_addr(&remote, &bts->gprs.nsvc[idx].remote.u.sin.sin_addr); + osmo_sockaddr_str_to_in_addr(&remote, &bts->site_mgr->gprs.nsvc[idx].remote.u.sin.sin_addr); break; case AF_INET6: - osmo_sockaddr_str_to_in6_addr(&remote, &bts->gprs.nsvc[idx].remote.u.sin6.sin6_addr); + osmo_sockaddr_str_to_in6_addr(&remote, &bts->site_mgr->gprs.nsvc[idx].remote.u.sin6.sin6_addr); break; } @@ -3321,10 +3322,10 @@ GPRS_CHECK_ENABLED(bts); - if (idx < 0 || idx >= ARRAY_SIZE(bts->gprs.nse.timer)) + if (idx < 0 || idx >= ARRAY_SIZE(bts->site_mgr->gprs.nse.timer)) return CMD_WARNING; - bts->gprs.nse.timer[idx] = val; + bts->site_mgr->gprs.nse.timer[idx] = val; return CMD_SUCCESS; } @@ -3357,10 +3358,10 @@ GPRS_CHECK_ENABLED(bts); - if (idx < 0 || idx >= ARRAY_SIZE(bts->gprs.cell.timer)) + if (idx < 0 || idx >= ARRAY_SIZE(bts->site_mgr->gprs.cell.timer)) return CMD_WARNING; - bts->gprs.cell.timer[idx] = val; + bts->site_mgr->gprs.cell.timer[idx] = val; return CMD_SUCCESS; } diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 065b8ab..b7d64c6 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -121,38 +121,9 @@ return 0; } -static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 }; -static const uint8_t bts_cell_timer_default[] = - { 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 }; -static const struct gprs_rlc_cfg rlc_cfg_default = { - .parameter = { - [RLC_T3142] = 20, - [RLC_T3169] = 5, - [RLC_T3191] = 5, - [RLC_T3193] = 160, /* 10ms */ - [RLC_T3195] = 5, - [RLC_N3101] = 10, - [RLC_N3103] = 4, - [RLC_N3105] = 8, - [CV_COUNTDOWN] = 15, - [T_DL_TBF_EXT] = 250 * 10, /* ms */ - [T_UL_TBF_EXT] = 250 * 10, /* ms */ - }, - .paging = { - .repeat_time = 5 * 50, /* ms */ - .repeat_count = 3, - }, - .cs_mask = 0x1fff, - .initial_cs = 2, - .initial_mcs = 6, -}; - static int gsm_bts_talloc_destructor(struct gsm_bts *bts) { - if (bts->site_mgr.mo.fi) { - osmo_fsm_inst_free(bts->site_mgr.mo.fi); - bts->site_mgr.mo.fi = NULL; - } + bts->site_mgr->bts[0] = NULL; if (bts->mo.fi) { osmo_fsm_inst_free(bts->mo.fi); bts->mo.fi = NULL; @@ -164,9 +135,9 @@ * This part is shared among the thin programs in osmo-bsc/src/utils/. * osmo-bsc requires further initialization that pulls in more dependencies (see * bsc_bts_alloc_register()). */ -struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num) +struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, struct gsm_bts_sm *bts_sm, uint8_t bts_num) { - struct gsm_bts *bts = talloc_zero(net, struct gsm_bts); + struct gsm_bts *bts = talloc_zero(bts_sm, struct gsm_bts); struct gsm48_multi_rate_conf mr_cfg; int i; @@ -182,36 +153,13 @@ bts->ms_max_power = 15; /* dBm */ - bts->site_mgr.mo.fi = osmo_fsm_inst_alloc(&nm_bts_sm_fsm, bts, &bts->site_mgr, - LOGL_INFO, NULL); - osmo_fsm_inst_update_id_f(bts->site_mgr.mo.fi, "bts_sm"); - gsm_mo_init(&bts->site_mgr.mo, bts, NM_OC_SITE_MANAGER, 0xff, 0xff, 0xff); + bts->site_mgr = bts_sm; bts->mo.fi = osmo_fsm_inst_alloc(&nm_bts_fsm, bts, bts, LOGL_INFO, NULL); osmo_fsm_inst_update_id_f(bts->mo.fi, "bts%d", bts->nr); gsm_mo_init(&bts->mo, bts, NM_OC_BTS, bts->nr, 0xff, 0xff); - for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) { - bts->gprs.nsvc[i].bts = bts; - bts->gprs.nsvc[i].id = i; - gsm_mo_init(&bts->gprs.nsvc[i].mo, bts, NM_OC_GPRS_NSVC, - bts->nr, i, 0xff); - } - memcpy(&bts->gprs.nse.timer, bts_nse_timer_default, - sizeof(bts->gprs.nse.timer)); - gsm_mo_init(&bts->gprs.nse.mo, bts, NM_OC_GPRS_NSE, - bts->nr, 0xff, 0xff); - memcpy(&bts->gprs.cell.timer, bts_cell_timer_default, - sizeof(bts->gprs.cell.timer)); - gsm_mo_init(&bts->gprs.cell.mo, bts, NM_OC_GPRS_CELL, - bts->nr, 0xff, 0xff); - memcpy(&bts->gprs.cell.rlc_cfg, &rlc_cfg_default, - sizeof(bts->gprs.cell.rlc_cfg)); - - /* 3GPP TS 08.18, chapter 5.4.1: 0 is reserved for signalling */ - bts->gprs.cell.bvci = 2; - /* init statistics */ bts->bts_ctrs = rate_ctr_group_alloc(bts, &bts_ctrg_desc, bts->nr); if (!bts->bts_ctrs) { @@ -589,11 +537,6 @@ unsigned int i; gsm_abis_mo_reset(&bts->mo); - gsm_abis_mo_reset(&bts->site_mgr.mo); - for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) - gsm_abis_mo_reset(&bts->gprs.nsvc[i].mo); - gsm_abis_mo_reset(&bts->gprs.nse.mo); - gsm_abis_mo_reset(&bts->gprs.cell.mo); llist_for_each_entry(trx, &bts->trx_list, list) { gsm_abis_mo_reset(&trx->mo); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index f9dc8b3..49ae5db 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -133,7 +133,7 @@ struct gsm_bts_trx *trx; struct gsm_bts_bb_trx *bb_transc; struct gsm_bts_trx_ts *ts; - struct gsm_bts_gprs_nsvc *nsvc; + struct gsm_gprs_nsvc *nsvc; struct msgb *msgb; @@ -174,7 +174,8 @@ osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_NSE: - bts = container_of(obj, struct gsm_bts, gprs.nse); + bts_sm = container_of(obj, struct gsm_bts_sm, gprs.nse); + bts = bts_sm->bts[0]; if (bts->gprs.mode == BTS_GPRS_NONE) break; if (new_state->availability == NM_AVSTATE_DEPENDENCY) { @@ -190,7 +191,8 @@ } break; case NM_OC_GPRS_CELL: - bts = container_of(obj, struct gsm_bts, gprs.cell); + bts_sm = container_of(obj, struct gsm_bts_sm, gprs.cell); + bts = bts_sm->bts[0]; if (bts->gprs.mode == BTS_GPRS_NONE) break; if (new_state->availability == NM_AVSTATE_DEPENDENCY) { @@ -258,7 +260,7 @@ switch (foh->obj_class) { case NM_OC_SITE_MANAGER: - osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SW_ACT_REP, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_SW_ACT_REP, NULL); break; case NM_OC_BTS: osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_SW_ACT_REP, NULL); @@ -306,7 +308,7 @@ switch (foh->obj_class) { case NM_OC_SITE_MANAGER: - osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_OPSTART_ACK, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OPSTART_ACK, NULL); break; case NM_OC_BTS: osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL); @@ -339,7 +341,7 @@ switch (foh->obj_class) { case NM_OC_SITE_MANAGER: - osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_OPSTART_NACK, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OPSTART_NACK, NULL); break; case NM_OC_BTS: osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL); @@ -522,7 +524,7 @@ } } - osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_OML_DOWN, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OML_DOWN, NULL); osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OML_DOWN, NULL); gsm_bts_all_ts_dispatch(bts, TS_EV_OML_DOWN, NULL); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index 6d64a4b..6a7de53 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -105,18 +105,19 @@ { struct msgb *msgb; uint8_t buf[256]; + struct gsm_bts_sm *bts_sm = bts->site_mgr; msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; /* NSEI 925 */ - buf[0] = bts->gprs.nse.nsei >> 8; - buf[1] = bts->gprs.nse.nsei & 0xff; + buf[0] = bts_sm->gprs.nse.nsei >> 8; + buf[1] = bts_sm->gprs.nse.nsei & 0xff; msgb_tl16v_put(msgb, NM_ATT_IPACC_NSEI, 2, buf); /* all timers in seconds */ - OSMO_ASSERT(ARRAY_SIZE(bts->gprs.nse.timer) < sizeof(buf)); - memcpy(buf, bts->gprs.nse.timer, ARRAY_SIZE(bts->gprs.nse.timer)); + OSMO_ASSERT(ARRAY_SIZE(bts_sm->gprs.nse.timer) < sizeof(buf)); + memcpy(buf, bts_sm->gprs.nse.timer, ARRAY_SIZE(bts_sm->gprs.nse.timer)); msgb_tl16v_put(msgb, NM_ATT_IPACC_NS_CFG, 7, buf); /* all timers in seconds */ @@ -132,8 +133,8 @@ buf[9] = 10; /* capability update timer (T5) */ buf[10] = 3; /* capability update retries */ - OSMO_ASSERT(ARRAY_SIZE(bts->gprs.cell.timer) < sizeof(buf)); - memcpy(buf, bts->gprs.cell.timer, ARRAY_SIZE(bts->gprs.cell.timer)); + OSMO_ASSERT(ARRAY_SIZE(bts_sm->gprs.cell.timer) < sizeof(buf)); + memcpy(buf, bts_sm->gprs.cell.timer, ARRAY_SIZE(bts_sm->gprs.cell.timer)); msgb_tl16v_put(msgb, NM_ATT_IPACC_BSSGP_CFG, 11, buf); return msgb; @@ -143,6 +144,7 @@ { struct msgb *msgb; uint8_t buf[256]; + struct gsm_bts_sm *bts_sm = bts->site_mgr; msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; @@ -156,8 +158,8 @@ msgb_tl16v_put(msgb, NM_ATT_IPACC_GPRS_PAGING_CFG, 2, buf); /* BVCI 925 */ - buf[0] = bts->gprs.cell.bvci >> 8; - buf[1] = bts->gprs.cell.bvci & 0xff; + buf[0] = bts_sm->gprs.cell.bvci >> 8; + buf[1] = bts_sm->gprs.cell.bvci & 0xff; msgb_tl16v_put(msgb, NM_ATT_IPACC_BVCI, 2, buf); /* all timers in seconds, unless otherwise stated */ @@ -202,16 +204,17 @@ { struct msgb *msgb; uint8_t buf[256]; + struct gsm_bts_sm *bts_sm = bts->site_mgr; msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; /* 925 */ - buf[0] = bts->gprs.nsvc[0].nsvci >> 8; - buf[1] = bts->gprs.nsvc[0].nsvci & 0xff; + buf[0] = bts_sm->gprs.nsvc[0].nsvci >> 8; + buf[1] = bts_sm->gprs.nsvc[0].nsvci & 0xff; msgb_tl16v_put(msgb, NM_ATT_IPACC_NSVCI, 2, buf); - switch (bts->gprs.nsvc->remote.u.sa.sa_family) { + switch (bts_sm->gprs.nsvc->remote.u.sa.sa_family) { case AF_INET6: /* all fields are encoded in network byte order */ /* protocol family */ @@ -219,20 +222,20 @@ /* padding */ buf[1] = 0x00; /* local udp port */ - osmo_store16be(bts->gprs.nsvc[0].local_port, &buf[2]); + osmo_store16be(bts_sm->gprs.nsvc[0].local_port, &buf[2]); /* remote udp port */ - memcpy(&buf[4], &bts->gprs.nsvc[0].remote.u.sin6.sin6_port, sizeof(uint16_t)); + memcpy(&buf[4], &bts_sm->gprs.nsvc[0].remote.u.sin6.sin6_port, sizeof(uint16_t)); /* remote ip address */ - memcpy(&buf[6], &bts->gprs.nsvc[0].remote.u.sin6.sin6_addr, sizeof(struct in6_addr)); + memcpy(&buf[6], &bts_sm->gprs.nsvc[0].remote.u.sin6.sin6_addr, sizeof(struct in6_addr)); msgb_tl16v_put(msgb, NM_ATT_OSMO_NS_LINK_CFG, 6 + sizeof(struct in6_addr), buf); break; case AF_INET: /* remote udp port */ - memcpy(&buf[0], &bts->gprs.nsvc[0].remote.u.sin.sin_port, sizeof(uint16_t)); + memcpy(&buf[0], &bts_sm->gprs.nsvc[0].remote.u.sin.sin_port, sizeof(uint16_t)); /* remote ip address */ - memcpy(&buf[2], &bts->gprs.nsvc[0].remote.u.sin.sin_addr, sizeof(struct in_addr)); + memcpy(&buf[2], &bts_sm->gprs.nsvc[0].remote.u.sin.sin_addr, sizeof(struct in_addr)); /* local udp port */ - osmo_store16be(bts->gprs.nsvc[0].local_port, &buf[6]); + osmo_store16be(bts_sm->gprs.nsvc[0].local_port, &buf[6]); msgb_tl16v_put(msgb, NM_ATT_IPACC_NS_LINK_CFG, 8, buf); break; default: diff --git a/src/osmo-bsc/bts_nokia_site.c b/src/osmo-bsc/bts_nokia_site.c index 2b6f918..3820ead 100644 --- a/src/osmo-bsc/bts_nokia_site.c +++ b/src/osmo-bsc/bts_nokia_site.c @@ -1452,7 +1452,7 @@ struct gsm_bts_trx *trx; mo_ok(&bts->mo); - mo_ok(&bts->site_mgr.mo); + mo_ok(&bts->site_mgr->mo); llist_for_each_entry(trx, &bts->trx_list, list) { int i; diff --git a/src/osmo-bsc/bts_sm.c b/src/osmo-bsc/bts_sm.c new file mode 100644 index 0000000..96acff8 --- /dev/null +++ b/src/osmo-bsc/bts_sm.c @@ -0,0 +1,119 @@ +/* (C) 2008-2018 by Harald Welte + * (C) 2020 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include + +#include +#include +#include +#include + +static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 }; +static const uint8_t bts_cell_timer_default[] = + { 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 }; +static const struct gprs_rlc_cfg rlc_cfg_default = { + .parameter = { + [RLC_T3142] = 20, + [RLC_T3169] = 5, + [RLC_T3191] = 5, + [RLC_T3193] = 160, /* 10ms */ + [RLC_T3195] = 5, + [RLC_N3101] = 10, + [RLC_N3103] = 4, + [RLC_N3105] = 8, + [CV_COUNTDOWN] = 15, + [T_DL_TBF_EXT] = 250 * 10, /* ms */ + [T_UL_TBF_EXT] = 250 * 10, /* ms */ + }, + .paging = { + .repeat_time = 5 * 50, /* ms */ + .repeat_count = 3, + }, + .cs_mask = 0x1fff, + .initial_cs = 2, + .initial_mcs = 6, +}; + +static int gsm_bts_sm_talloc_destructor(struct gsm_bts_sm *bts_sm) +{ + if (bts_sm->mo.fi) { + osmo_fsm_inst_free(bts_sm->mo.fi); + bts_sm->mo.fi = NULL; + } + return 0; +} + +struct gsm_bts_sm *gsm_bts_sm_alloc(struct gsm_network *net, uint8_t bts_num) +{ + struct gsm_bts_sm *bts_sm = talloc_zero(net, struct gsm_bts_sm); + struct gsm_bts *bts; + int i; + if (!bts_sm) + return NULL; + + talloc_set_destructor(bts_sm, gsm_bts_sm_talloc_destructor); + bts_sm->mo.fi = osmo_fsm_inst_alloc(&nm_bts_sm_fsm, bts_sm, bts_sm, + LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts_sm->mo.fi, "bts_sm"); + + bts = gsm_bts_alloc(net, bts_sm, bts_num); + if (!bts) { + talloc_free(bts_sm); + return NULL; + } + bts_sm->bts[0] = bts; + + gsm_mo_init(&bts_sm->mo, bts, NM_OC_SITE_MANAGER, 0xff, 0xff, 0xff); + + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { + bts_sm->gprs.nsvc[i].bts = bts; + bts_sm->gprs.nsvc[i].id = i; + gsm_mo_init(&bts_sm->gprs.nsvc[i].mo, bts, NM_OC_GPRS_NSVC, + bts->nr, i, 0xff); + } + memcpy(&bts_sm->gprs.nse.timer, bts_nse_timer_default, + sizeof(bts_sm->gprs.nse.timer)); + gsm_mo_init(&bts_sm->gprs.nse.mo, bts, NM_OC_GPRS_NSE, + bts->nr, 0xff, 0xff); + memcpy(&bts_sm->gprs.cell.timer, bts_cell_timer_default, + sizeof(bts_sm->gprs.cell.timer)); + gsm_mo_init(&bts_sm->gprs.cell.mo, bts, NM_OC_GPRS_CELL, + bts->nr, 0xff, 0xff); + memcpy(&bts_sm->gprs.cell.rlc_cfg, &rlc_cfg_default, + sizeof(bts_sm->gprs.cell.rlc_cfg)); + + /* 3GPP TS 08.18, chapter 5.4.1: 0 is reserved for signalling */ + bts_sm->gprs.cell.bvci = 2; + + return bts_sm; +} + +void gsm_bts_sm_mo_reset(struct gsm_bts_sm *bts_sm) +{ + int i; + gsm_abis_mo_reset(&bts_sm->mo); + + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) + gsm_abis_mo_reset(&bts_sm->gprs.nsvc[i].mo); + gsm_abis_mo_reset(&bts_sm->gprs.nse.mo); + gsm_abis_mo_reset(&bts_sm->gprs.cell.mo); + + gsm_bts_mo_reset(bts_sm->bts[0]); +} diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 22616f3..3087c0c 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -110,14 +110,16 @@ uint8_t bsic) { struct gsm_bts_model *model = bts_model_find(type); + struct gsm_bts_sm *bts_sm; struct gsm_bts *bts; if (!model && type != GSM_BTS_TYPE_UNKNOWN) return NULL; - bts = gsm_bts_alloc(net, net->num_bts); - if (!bts) + bts_sm = gsm_bts_sm_alloc(net, net->num_bts); + if (!bts_sm) return NULL; + bts = bts_sm->bts[0]; net->num_bts++; @@ -378,7 +380,7 @@ mo = &trx->ts[obj_inst->ts_nr].mo; break; case NM_OC_SITE_MANAGER: - mo = &bts->site_mgr.mo; + mo = &bts->site_mgr->mo; break; case NM_OC_BS11: switch (obj_inst->bts_nr) { @@ -410,15 +412,15 @@ mo = &bts->bs11.envabtse[obj_inst->trx_nr].mo; break; case NM_OC_GPRS_NSE: - mo = &bts->gprs.nse.mo; + mo = &bts->site_mgr->gprs.nse.mo; break; case NM_OC_GPRS_CELL: - mo = &bts->gprs.cell.mo; + mo = &bts->site_mgr->gprs.cell.mo; break; case NM_OC_GPRS_NSVC: - if (obj_inst->trx_nr >= ARRAY_SIZE(bts->gprs.nsvc)) + if (obj_inst->trx_nr >= ARRAY_SIZE(bts->site_mgr->gprs.nsvc)) return NULL; - mo = &bts->gprs.nsvc[obj_inst->trx_nr].mo; + mo = &bts->site_mgr->gprs.nsvc[obj_inst->trx_nr].mo; break; } return mo; @@ -474,18 +476,18 @@ obj = &trx->ts[obj_inst->ts_nr]; break; case NM_OC_SITE_MANAGER: - obj = &bts->site_mgr; + obj = bts->site_mgr; break; case NM_OC_GPRS_NSE: - obj = &bts->gprs.nse; + obj = &bts->site_mgr->gprs.nse; break; case NM_OC_GPRS_CELL: - obj = &bts->gprs.cell; + obj = &bts->site_mgr->gprs.cell; break; case NM_OC_GPRS_NSVC: - if (obj_inst->trx_nr >= ARRAY_SIZE(bts->gprs.nsvc)) + if (obj_inst->trx_nr >= ARRAY_SIZE(bts->site_mgr->gprs.nsvc)) return NULL; - obj = &bts->gprs.nsvc[obj_inst->trx_nr]; + obj = &bts->site_mgr->gprs.nsvc[obj_inst->trx_nr]; break; } return obj; diff --git a/src/osmo-bsc/nm_bb_transc_fsm.c b/src/osmo-bsc/nm_bb_transc_fsm.c index c29f53d..e7132e8 100644 --- a/src/osmo-bsc/nm_bb_transc_fsm.c +++ b/src/osmo-bsc/nm_bb_transc_fsm.c @@ -113,7 +113,7 @@ struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); - if (trx->bts->site_mgr.peer_has_no_avstate_offline) { + if (trx->bts->site_mgr->peer_has_no_avstate_offline) { nm_bb_transc_fsm_state_chg(fi, NM_BB_TRANSC_ST_OP_DISABLED_OFFLINE); return; } @@ -187,7 +187,7 @@ case NM_AVSTATE_DEPENDENCY: /* There's no point in moving back to Dependency, since it's broken and it acts actually as if it was in Offline state */ - if (!trx->bts->site_mgr.peer_has_no_avstate_offline) { + if (!trx->bts->site_mgr->peer_has_no_avstate_offline) { nm_bb_transc_fsm_state_chg(fi, NM_BB_TRANSC_ST_OP_DISABLED_DEPENDENCY); } else { /* Moreover, in nanoBTS we need to check here for tx diff --git a/src/osmo-bsc/nm_bts_fsm.c b/src/osmo-bsc/nm_bts_fsm.c index 5f47fdc..6c577bd 100644 --- a/src/osmo-bsc/nm_bts_fsm.c +++ b/src/osmo-bsc/nm_bts_fsm.c @@ -119,7 +119,7 @@ /* nanoBTS is broken, doesn't follow TS 12.21. Opstart MUST be sent during Dependency, so we simply move to OFFLINE state here to avoid duplicating code */ - if (bts->site_mgr.peer_has_no_avstate_offline) { + if (bts->site_mgr->peer_has_no_avstate_offline) { nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_OFFLINE); return; } @@ -202,7 +202,7 @@ case NM_AVSTATE_DEPENDENCY: /* There's no point in moving back to Dependency, since it's broken and it acts actually as if it was in Offline state */ - if (!bts->site_mgr.peer_has_no_avstate_offline) { + if (!bts->site_mgr->peer_has_no_avstate_offline) { nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_DEPENDENCY); } else { /* Moreover, in nanoBTS we need to check here for tx diff --git a/src/osmo-bsc/nm_bts_sm_fsm.c b/src/osmo-bsc/nm_bts_sm_fsm.c index ce9e15b..e5b5a3c 100644 --- a/src/osmo-bsc/nm_bts_sm_fsm.c +++ b/src/osmo-bsc/nm_bts_sm_fsm.c @@ -78,7 +78,7 @@ "have your .cfg with 'type nanobts'. Otherwise, you probably " "are using an old osmo-bts; automatically adjusting OML " "behavior to be backward-compatible.\n"); - bts->site_mgr.peer_has_no_avstate_offline = true; + site_mgr->peer_has_no_avstate_offline = true; } nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_ENABLED); return; diff --git a/src/osmo-bsc/nm_channel_fsm.c b/src/osmo-bsc/nm_channel_fsm.c index 676c471..620051a 100644 --- a/src/osmo-bsc/nm_channel_fsm.c +++ b/src/osmo-bsc/nm_channel_fsm.c @@ -125,7 +125,7 @@ { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; - if (ts->trx->bts->site_mgr.peer_has_no_avstate_offline) { + if (ts->trx->bts->site_mgr->peer_has_no_avstate_offline) { nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_OFFLINE); return; } @@ -208,7 +208,7 @@ case NM_AVSTATE_DEPENDENCY: /* There's no point in moving back to Dependency, since it's broken and it acts actually as if it was in Offline state */ - if (!ts->trx->bts->site_mgr.peer_has_no_avstate_offline) { + if (!ts->trx->bts->site_mgr->peer_has_no_avstate_offline) { nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_DEPENDENCY); } else { /* Moreover, in nanoBTS we need to check here for tx diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index cc02c71..3be8593 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -424,7 +424,7 @@ osmo_timer_del(&trx->bts->cbch_timer); } - gsm_bts_mo_reset(trx->bts); + gsm_bts_sm_mo_reset(trx->bts->site_mgr); abis_nm_clear_queue(trx->bts); break; @@ -529,7 +529,7 @@ /* ACC ramping is initialized from vty/config */ /* Initialize the BTS state */ - gsm_bts_mo_reset(bts); + gsm_bts_sm_mo_reset(bts->site_mgr); return 0; } diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index 541fc84..3ffee3c 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -46,6 +46,7 @@ #include #include #include +#include static int pcu_sock_send(struct gsm_bts *bts, struct msgb *msg); uint32_t trx_get_hlayer1(struct gsm_bts_trx *trx); @@ -115,17 +116,21 @@ struct gsm_pcu_if *pcu_prim; struct gsm_pcu_if_info_ind *info_ind; struct gprs_rlc_cfg *rlcc; - struct gsm_bts_gprs_nsvc *nsvc; + struct gsm_bts_sm *bts_sm; + struct gsm_gprs_nsvc *nsvc; struct gsm_bts_trx *trx; struct gsm_bts_trx_ts *ts; int i, tn; OSMO_ASSERT(bts); OSMO_ASSERT(bts->network); + OSMO_ASSERT(bts->site_mgr); + + bts_sm = bts->site_mgr; LOGP(DPCU, LOGL_INFO, "Sending info for BTS %d\n",bts->nr); - rlcc = &bts->gprs.cell.rlc_cfg; + rlcc = &bts_sm->gprs.cell.rlc_cfg; msg = pcu_msgb_alloc(PCU_IF_MSG_INFO_IND, bts->nr); if (!msg) @@ -147,15 +152,15 @@ info_ind->rac = bts->gprs.rac; /* NSE */ - info_ind->nsei = bts->gprs.nse.nsei; - memcpy(info_ind->nse_timer, bts->gprs.nse.timer, 7); - memcpy(info_ind->cell_timer, bts->gprs.cell.timer, 11); + info_ind->nsei = bts_sm->gprs.nse.nsei; + memcpy(info_ind->nse_timer, bts_sm->gprs.nse.timer, 7); + memcpy(info_ind->cell_timer, bts_sm->gprs.cell.timer, 11); /* cell attributes */ info_ind->cell_id = bts->cell_identity; info_ind->repeat_time = rlcc->paging.repeat_time; info_ind->repeat_count = rlcc->paging.repeat_count; - info_ind->bvci = bts->gprs.cell.bvci; + info_ind->bvci = bts_sm->gprs.cell.bvci; info_ind->t3142 = rlcc->parameter[RLC_T3142]; info_ind->t3169 = rlcc->parameter[RLC_T3169]; info_ind->t3191 = rlcc->parameter[RLC_T3191]; @@ -202,7 +207,7 @@ /* NSVC */ for (i = 0; i < ARRAY_SIZE(info_ind->nsvci); i++) { - nsvc = &bts->gprs.nsvc[i]; + nsvc = &bts->site_mgr->gprs.nsvc[i]; info_ind->nsvci[i] = nsvc->nsvci; info_ind->local_port[i] = nsvc->local_port; diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 65fd8fa..dfc68c5 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -50,6 +50,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/bts_siemens_bs11.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ @@ -130,6 +131,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index d7d53b7..681e35a 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -29,6 +29,7 @@ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ diff --git a/tests/acc/Makefile.am b/tests/acc/Makefile.am index b1315e3..1536365 100644 --- a/tests/acc/Makefile.am +++ b/tests/acc/Makefile.am @@ -28,6 +28,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ diff --git a/tests/acc/acc_test.c b/tests/acc/acc_test.c index 81b9e8d..73757c7 100644 --- a/tests/acc/acc_test.c +++ b/tests/acc/acc_test.c @@ -44,7 +44,8 @@ #define bts_init(net) _bts_init(net, __func__) static inline struct gsm_bts *_bts_init(struct gsm_network *net, const char *msg) { - struct gsm_bts *bts = gsm_bts_alloc(net, 0); + struct gsm_bts_sm *bts_sm = gsm_bts_sm_alloc(net, 0); + struct gsm_bts *bts = bts_sm->bts[0]; if (!bts) { fprintf(stderr, "BTS allocation failure in %s()\n", msg); exit(1); @@ -66,7 +67,7 @@ if (osmo_timer_pending(&bts->acc_ramp.step_timer)) osmo_timer_del(&bts->acc_ramp.step_timer); /* no need to llist_del(&bts->list), we never registered the bts there. */ - talloc_free(bts); + talloc_free(bts->site_mgr); fprintf(stderr, "BTS deallocated OK in %s()\n", msg); } diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index f040cbc..02842eb 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -39,6 +39,7 @@ $(top_builddir)/src/osmo-bsc/osmo_bsc_filter.o \ $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index de38747..c04a5ae 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -29,6 +29,7 @@ $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ $(top_builddir)/src/osmo-bsc/bts.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 8ee29f7..c23b262 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -123,7 +123,8 @@ #define bts_init(net) _bts_init(net, __func__) static inline struct gsm_bts *_bts_init(struct gsm_network *net, const char *msg) { - struct gsm_bts *bts = gsm_bts_alloc(net, 0); + struct gsm_bts_sm *bts_sm = gsm_bts_sm_alloc(net, 0); + struct gsm_bts *bts = bts_sm->bts[0]; if (!bts) { printf("BTS allocation failure in %s()\n", msg); exit(1); @@ -143,7 +144,7 @@ if (osmo_timer_pending(&bts->acc_mgr.rotate_timer)) osmo_timer_del(&bts->acc_mgr.rotate_timer); /* no need to llist_del(&bts->list), we never registered the bts there. */ - talloc_free(bts); + talloc_free(bts->site_mgr); printf("BTS deallocated OK in %s()\n", msg); } diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 42bb937..02fcdc1 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -58,6 +58,7 @@ $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ $(top_builddir)/src/osmo-bsc/bsc_vty.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index 3dd7f2f..29097b8 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -27,6 +27,7 @@ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(top_builddir)/src/osmo-bsc/nm_common_fsm.o \ diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index da220c1..eb74832 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -243,7 +243,7 @@ }; /* Parameters needed to test nanobts_attr_nse_get() */ - bts->gprs.nse.nsei = 101; + bts->site_mgr->gprs.nse.nsei = 101; uint8_t attr_nse_expected[] = { 0x9d, 0x00, 0x02, 0x00, 0x65, 0xa0, 0x00, 0x07, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x03, 0x0a, 0xa1, 0x00, 0x0b, 0x03, 0x03, 0x03, @@ -253,7 +253,7 @@ /* Parameters needed to test nanobts_attr_cell_get() */ bts->gprs.rac = 0x00; - bts->gprs.cell.bvci = 2; + bts->site_mgr->gprs.cell.bvci = 2; bts->gprs.mode = BTS_GPRS_GPRS; uint8_t attr_cell_expected[] = { 0x9a, 0x00, 0x01, 0x00, 0x9c, 0x00, 0x02, 0x05, 0x03, 0x9e, 0x00, @@ -266,9 +266,9 @@ /* Parameters needed to test nanobts_attr_nscv_get() */ struct osmo_sockaddr_str addr; osmo_sockaddr_str_from_str(&addr, "10.9.1.101", 23000); - osmo_sockaddr_str_to_sockaddr(&addr, &bts->gprs.nsvc[0].remote.u.sas); - bts->gprs.nsvc[0].nsvci = 0x65; - bts->gprs.nsvc[0].local_port = 0x5a3c; + osmo_sockaddr_str_to_sockaddr(&addr, &bts->site_mgr->gprs.nsvc[0].remote.u.sas); + bts->site_mgr->gprs.nsvc[0].nsvci = 0x65; + bts->site_mgr->gprs.nsvc[0].local_port = 0x5a3c; uint8_t attr_nscv_expected[] = { 0x9f, 0x00, 0x02, 0x00, 0x65, 0xa2, 0x00, 0x08, 0x59, 0xd8, 0x0a, 0x09, 0x01, 0x65, 0x5a, 0x3c @@ -291,9 +291,9 @@ /* NSVC IPv6 test */ struct osmo_sockaddr_str addr6; osmo_sockaddr_str_from_str(&addr6, "fd00:5678:9012:3456:7890:1234:5678:9012", 23010); - osmo_sockaddr_str_to_sockaddr(&addr6, &bts->gprs.nsvc[0].remote.u.sas); - bts->gprs.nsvc[0].nsvci = 0x65; - bts->gprs.nsvc[0].local_port = 0x5a3c; + osmo_sockaddr_str_to_sockaddr(&addr6, &bts->site_mgr->gprs.nsvc[0].remote.u.sas); + bts->site_mgr->gprs.nsvc[0].nsvci = 0x65; + bts->site_mgr->gprs.nsvc[0].local_port = 0x5a3c; uint8_t attr_nscv6_expected[] = /* |- oml attr |-16bit length */ { 0x9f, 0x00, 0x02, 0x00, 0x65, 0xfd, 0x00, 0x16, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 Gerrit-Change-Number: 21423 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 Dec 1 17:02:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:02:01 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Print Frame Relay 'role' in VTY References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21424 ) Change subject: gprs_ns2_fr: Print Frame Relay 'role' in VTY ...................................................................... gprs_ns2_fr: Print Frame Relay 'role' in VTY Change-Id: I23182e5d952fd28a0bbfa76a4fc94d8e03b7a65d --- M src/gb/gprs_ns2_fr.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/21424/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 3315273..07c8d46 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -105,13 +105,16 @@ { struct priv_bind *priv; struct gprs_ns2_vc *nsvc; + struct osmo_fr_link *fr_link; if (!bind) return; priv = bind->priv; + fr_link = priv->link; - vty_out(vty, "FR bind: %s%s", priv->netif, VTY_NEWLINE); + vty_out(vty, "FR bind: %s, role: %s%s", priv->netif, + osmo_fr_role_str(fr_link->role), VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { vty_out(vty, " %s%s", gprs_ns2_ll_str(nsvc), VTY_NEWLINE); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I23182e5d952fd28a0bbfa76a4fc94d8e03b7a65d Gerrit-Change-Number: 21424 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 Dec 1 17:02:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:02:02 +0000 Subject: Change in libosmocore[master]: gprs-ns2: Fix stringification of NS/FR NSVCI References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21425 ) Change subject: gprs-ns2: Fix stringification of NS/FR NSVCI ...................................................................... gprs-ns2: Fix stringification of NS/FR NSVCI Before this commit, gprs_ns2_ll_str_buf() would always return an empty string. Change-Id: I6ec07f58fa5cbb7ec4be967b2c72ae75935e4f75 --- M src/gb/gprs_ns2.c 1 file changed, 0 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/21425/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 30716fc..7fc737b 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -261,11 +261,6 @@ snprintf(buf, buf_len, "frgre)"); break; case GPRS_NS2_LL_FR: - if (!gprs_ns2_is_frgre_bind(nsvc->bind)) { - buf[0] = '\0'; - return buf; - } - snprintf(buf, buf_len, "fr)netif: %s dlci: %u", gprs_ns2_fr_bind_netif(nsvc->bind), gprs_ns2_fr_nsvc_dlci(nsvc)); break; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6ec07f58fa5cbb7ec4be967b2c72ae75935e4f75 Gerrit-Change-Number: 21425 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 Dec 1 17:02:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:02:02 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Don't return an empty string in case of unknown LL References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21426 ) Change subject: gprs_ns2: Don't return an empty string in case of unknown LL ...................................................................... gprs_ns2: Don't return an empty string in case of unknown LL Change-Id: Id2c689ab83ada18a5cb6d70ded31aacaa701f99c --- M src/gb/gprs_ns2.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/26/21426/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 7fc737b..9bf1d7f 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -265,7 +265,7 @@ gprs_ns2_fr_nsvc_dlci(nsvc)); break; default: - buf[0] = '\0'; + snprintf(buf, buf_len, "unknown)"); break; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id2c689ab83ada18a5cb6d70ded31aacaa701f99c Gerrit-Change-Number: 21426 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 Dec 1 17:02:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:02:02 +0000 Subject: Change in libosmocore[master]: cosmetic: frame_relay: Fix typos References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21427 ) Change subject: cosmetic: frame_relay: Fix typos ...................................................................... cosmetic: frame_relay: Fix typos Change-Id: Ifc29ddb43745571096b458393692a68052898daa --- M include/osmocom/gprs/frame_relay.h 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/27/21427/1 diff --git a/include/osmocom/gprs/frame_relay.h b/include/osmocom/gprs/frame_relay.h index b382ea8..2860c6b 100644 --- a/include/osmocom/gprs/frame_relay.h +++ b/include/osmocom/gprs/frame_relay.h @@ -109,8 +109,8 @@ /* is this DLC about to be destroyed */ bool del; - /* the local state needs to be transfered to the - * UE. The NET must wait until the UE confirms it implicited by a seq number check */ + /* The local state needs to be transferred to the USER; + * NET must wait until USER confirms it implicitly by a seq number check */ bool state_send; int (*rx_cb)(void *cb_data, struct msgb *msg); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc29ddb43745571096b458393692a68052898daa Gerrit-Change-Number: 21427 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 Dec 1 17:02:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:02:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Print link layer and global ALIVE/DEAD state References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21428 ) Change subject: gprs_ns2: Print link layer and global ALIVE/DEAD state ...................................................................... gprs_ns2: Print link layer and global ALIVE/DEAD state Change-Id: I56455d1fef2f99d72bc0c4811f307428aec12b96 --- M src/gb/gprs_ns2_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/28/21428/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index bfbc68c..7b27a7e 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -272,8 +272,8 @@ { struct gprs_ns2_vc *nsvc; - vty_out(vty, "NSEI %5u%s", - nse->nsei, VTY_NEWLINE); + 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); llist_for_each_entry(nsvc, &nse->nsvc, list) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56455d1fef2f99d72bc0c4811f307428aec12b96 Gerrit-Change-Number: 21428 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 Dec 1 17:02:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:02:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Differentiate 'show ns binds' and 'show ns entities' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21429 ) Change subject: gprs_ns2_vty: Differentiate 'show ns binds' and 'show ns entities' ...................................................................... gprs_ns2_vty: Differentiate 'show ns binds' and 'show ns entities' Change-Id: I157467d6a74d6109bc23521c978c5aac6d29fe50 --- M src/gb/gprs_ns2_vty.c 1 file changed, 26 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/21429/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 7b27a7e..8514704 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -292,34 +292,48 @@ bind->dump_vty(bind, vty, stats); } -static void dump_ns(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats, bool persistent_only) +static void dump_ns_bind(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats) { struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_nse *nse; 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); } - } -DEFUN(show_ns, show_ns_cmd, "show ns", - SHOW_STR "Display information about the NS protocol") +DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", + SHOW_STR + "Display information about the NS protocol binds\n" + "Include statistic\n") { - dump_ns(vty, vty_nsi, false, false); + bool stats = false; + if (argc > 0) + stats = true; + + dump_ns_bind(vty, vty_nsi, stats); return CMD_SUCCESS; } -DEFUN(show_ns_stats, show_ns_stats_cmd, "show ns stats", +DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", SHOW_STR - "Display information about the NS protocol\n" + "Display information about the NS protocol entities (NSEs)\n" "Include statistics\n") { - dump_ns(vty, vty_nsi, true, false); + bool stats = false; + if (argc > 0) + stats = true; + + dump_ns_entities(vty, vty_nsi, stats, false); return CMD_SUCCESS; } @@ -328,7 +342,7 @@ "Display information about the NS protocol\n" "Show only persistent NS\n") { - dump_ns(vty, vty_nsi, true, true); + dump_ns_entities(vty, vty_nsi, true, true); return CMD_SUCCESS; } @@ -776,8 +790,8 @@ return 0; vty_elements_installed = true; - install_lib_element_ve(&show_ns_cmd); - install_lib_element_ve(&show_ns_stats_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_nsvc_cmd); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I157467d6a74d6109bc23521c978c5aac6d29fe50 Gerrit-Change-Number: 21429 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 Dec 1 17:02:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:02:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Show NSVCI in dump_nsvc() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21430 ) Change subject: gprs_ns2_vty: Show NSVCI in dump_nsvc() ...................................................................... gprs_ns2_vty: Show NSVCI in dump_nsvc() also, indent the statistics one more character Change-Id: I2726d6f1c5f83255925d6a1b22f1ee71b8d6fdc5 --- M src/gb/gprs_ns2_vty.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/21430/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 8514704..17b8d96 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -260,11 +260,11 @@ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { - vty_out(vty, " %s%s", gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + vty_out(vty, " NSVCI %05u %s%s", nsvc->nsvci, 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); + vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); + vty_out_stat_item_group(vty, " ", nsvc->statg); } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2726d6f1c5f83255925d6a1b22f1ee71b8d6fdc5 Gerrit-Change-Number: 21430 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 Dec 1 17:02:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:02:04 +0000 Subject: Change in libosmocore[master]: gprs_ns_vty: Unify display of NSVCI on VTY in 'show ns entities' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21431 ) Change subject: gprs_ns_vty: Unify display of NSVCI on VTY in 'show ns entities' ...................................................................... gprs_ns_vty: Unify display of NSVCI on VTY in 'show ns entities' Change-Id: I2915b47a5fc4ed9ac16f611c9e9f71dc0955426a --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/31/21431/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 07c8d46..4140171 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -117,7 +117,7 @@ osmo_fr_role_str(fr_link->role), VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { - vty_out(vty, " %s%s", gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + vty_out(vty, " NSVCI %05u: %s%s", nsvc->nsvci, gprs_ns2_ll_str(nsvc), VTY_NEWLINE); } priv = bind->priv; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 7f82667..35935a7 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -101,7 +101,7 @@ vty_out(vty, " %lu NS-VC: %s", nsvcs, VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { - vty_out(vty, " %s%s", gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + vty_out(vty, " NSVCI %05u: %s%s", nsvc->nsvci, gprs_ns2_ll_str(nsvc), VTY_NEWLINE); } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2915b47a5fc4ed9ac16f611c9e9f71dc0955426a Gerrit-Change-Number: 21431 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 Dec 1 17:19:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:19:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Print all relevant data on each NS-VC References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21432 ) Change subject: gprs_ns2_vty: Print all relevant data on each NS-VC ...................................................................... gprs_ns2_vty: Print all relevant data on each NS-VC After this patch, we can finally see the BLOCKED/UNBLOCKED state, weights, persistence, etc. in the VTY. Example: OsmoGbProxy> show ns entities NSEI 00101: UDP, DEAD NSVCI 00101: RESET PERSIST data_weight=1 sig_wight=1 udp)[127.0.0.1]:23000<101>[127.0.0.1]:7777 NSEI 00001: FR, ALIVE NSVCI 00001: UNBLOCKED PERSIST data_weight=1 sig_wight=1 fr)netif: hdlcnet1 dlci: 16 NSVCI 00002: UNBLOCKED PERSIST data_weight=1 sig_wight=1 fr)netif: hdlcnet2 dlci: 17 NSVCI 00003: UNBLOCKED PERSIST data_weight=1 sig_wight=1 fr)netif: hdlcnet3 dlci: 18 NSVCI 00004: UNBLOCKED PERSIST data_weight=1 sig_wight=1 fr)netif: hdlcnet4 dlci: 19 Change-Id: I1cf8fe55d1d0cecc46113532c8550880558b0155 --- M src/gb/gprs_ns2_vty.c 1 file changed, 12 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/32/21432/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 17b8d96..b244a96 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -260,7 +260,18 @@ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { - vty_out(vty, " NSVCI %05u %s%s", nsvc->nsvci, gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + 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); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1cf8fe55d1d0cecc46113532c8550880558b0155 Gerrit-Change-Number: 21432 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 Dec 1 17:21:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:21:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2_udp.c: Fix typo - it's a DSCP and not a DCSP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21433 ) Change subject: gprs_ns2_udp.c: Fix typo - it's a DSCP and not a DCSP ...................................................................... gprs_ns2_udp.c: Fix typo - it's a DSCP and not a DCSP also, acronyms are typically all-caps. Change-Id: Ia12d1fd66348f0b317405f46589f041045c513a2 --- M src/gb/gprs_ns2_udp.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/33/21433/1 diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 35935a7..928116d 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -97,7 +97,7 @@ nsvcs++; } - vty_out(vty, "UDP bind: %s:%d dcsp: %d%s", sockstr.ip, sockstr.port, priv->dscp, VTY_NEWLINE); + vty_out(vty, "UDP bind: %s:%d DSCP: %d%s", sockstr.ip, sockstr.port, priv->dscp, VTY_NEWLINE); vty_out(vty, " %lu NS-VC: %s", nsvcs, VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia12d1fd66348f0b317405f46589f041045c513a2 Gerrit-Change-Number: 21433 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 Dec 1 17:21:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:21:59 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Print Frame Relay 'role' in VTY In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21424 ) Change subject: gprs_ns2_fr: Print Frame Relay 'role' in VTY ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I23182e5d952fd28a0bbfa76a4fc94d8e03b7a65d Gerrit-Change-Number: 21424 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17:21: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 Dec 1 17:22:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:22:08 +0000 Subject: Change in libosmocore[master]: gprs-ns2: Fix stringification of NS/FR NSVCI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21425 ) Change subject: gprs-ns2: Fix stringification of NS/FR NSVCI ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6ec07f58fa5cbb7ec4be967b2c72ae75935e4f75 Gerrit-Change-Number: 21425 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17:22: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 Dec 1 17:22:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:22:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Don't return an empty string in case of unknown LL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21426 ) Change subject: gprs_ns2: Don't return an empty string in case of unknown LL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id2c689ab83ada18a5cb6d70ded31aacaa701f99c Gerrit-Change-Number: 21426 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17:22: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 Dec 1 17:22:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:22:30 +0000 Subject: Change in libosmocore[master]: cosmetic: frame_relay: Fix typos In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21427 ) Change subject: cosmetic: frame_relay: Fix typos ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc29ddb43745571096b458393692a68052898daa Gerrit-Change-Number: 21427 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17: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 Tue Dec 1 17:22:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:22:40 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Print link layer and global ALIVE/DEAD state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21428 ) Change subject: gprs_ns2: Print link layer and global ALIVE/DEAD state ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56455d1fef2f99d72bc0c4811f307428aec12b96 Gerrit-Change-Number: 21428 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17:22: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 Dec 1 17:22:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:22:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Differentiate 'show ns binds' and 'show ns entities' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21429 ) Change subject: gprs_ns2_vty: Differentiate 'show ns binds' and 'show ns entities' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I157467d6a74d6109bc23521c978c5aac6d29fe50 Gerrit-Change-Number: 21429 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17: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 Tue Dec 1 17:22:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:22:56 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Show NSVCI in dump_nsvc() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21430 ) Change subject: gprs_ns2_vty: Show NSVCI in dump_nsvc() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2726d6f1c5f83255925d6a1b22f1ee71b8d6fdc5 Gerrit-Change-Number: 21430 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17:22: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 Tue Dec 1 17:23:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:02 +0000 Subject: Change in libosmocore[master]: gprs_ns_vty: Unify display of NSVCI on VTY in 'show ns entities' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21431 ) Change subject: gprs_ns_vty: Unify display of NSVCI on VTY in 'show ns entities' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2915b47a5fc4ed9ac16f611c9e9f71dc0955426a Gerrit-Change-Number: 21431 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17:23: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 Dec 1 17:23:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:09 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Print all relevant data on each NS-VC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21432 ) Change subject: gprs_ns2_vty: Print all relevant data on each NS-VC ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1cf8fe55d1d0cecc46113532c8550880558b0155 Gerrit-Change-Number: 21432 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17: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 Dec 1 17:23:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Print Frame Relay 'role' in VTY In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21424 ) Change subject: gprs_ns2_fr: Print Frame Relay 'role' in VTY ...................................................................... gprs_ns2_fr: Print Frame Relay 'role' in VTY Change-Id: I23182e5d952fd28a0bbfa76a4fc94d8e03b7a65d --- M src/gb/gprs_ns2_fr.c 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 3315273..07c8d46 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -105,13 +105,16 @@ { struct priv_bind *priv; struct gprs_ns2_vc *nsvc; + struct osmo_fr_link *fr_link; if (!bind) return; priv = bind->priv; + fr_link = priv->link; - vty_out(vty, "FR bind: %s%s", priv->netif, VTY_NEWLINE); + vty_out(vty, "FR bind: %s, role: %s%s", priv->netif, + osmo_fr_role_str(fr_link->role), VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { vty_out(vty, " %s%s", gprs_ns2_ll_str(nsvc), VTY_NEWLINE); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I23182e5d952fd28a0bbfa76a4fc94d8e03b7a65d Gerrit-Change-Number: 21424 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 Tue Dec 1 17:23:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:17 +0000 Subject: Change in libosmocore[master]: gprs-ns2: Fix stringification of NS/FR NSVCI In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21425 ) Change subject: gprs-ns2: Fix stringification of NS/FR NSVCI ...................................................................... gprs-ns2: Fix stringification of NS/FR NSVCI Before this commit, gprs_ns2_ll_str_buf() would always return an empty string. Change-Id: I6ec07f58fa5cbb7ec4be967b2c72ae75935e4f75 --- M src/gb/gprs_ns2.c 1 file changed, 0 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 30716fc..7fc737b 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -261,11 +261,6 @@ snprintf(buf, buf_len, "frgre)"); break; case GPRS_NS2_LL_FR: - if (!gprs_ns2_is_frgre_bind(nsvc->bind)) { - buf[0] = '\0'; - return buf; - } - snprintf(buf, buf_len, "fr)netif: %s dlci: %u", gprs_ns2_fr_bind_netif(nsvc->bind), gprs_ns2_fr_nsvc_dlci(nsvc)); break; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6ec07f58fa5cbb7ec4be967b2c72ae75935e4f75 Gerrit-Change-Number: 21425 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 Tue Dec 1 17:23:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:17 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Don't return an empty string in case of unknown LL In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21426 ) Change subject: gprs_ns2: Don't return an empty string in case of unknown LL ...................................................................... gprs_ns2: Don't return an empty string in case of unknown LL Change-Id: Id2c689ab83ada18a5cb6d70ded31aacaa701f99c --- M src/gb/gprs_ns2.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.c b/src/gb/gprs_ns2.c index 7fc737b..9bf1d7f 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -265,7 +265,7 @@ gprs_ns2_fr_nsvc_dlci(nsvc)); break; default: - buf[0] = '\0'; + snprintf(buf, buf_len, "unknown)"); break; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id2c689ab83ada18a5cb6d70ded31aacaa701f99c Gerrit-Change-Number: 21426 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 Tue Dec 1 17:23:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:17 +0000 Subject: Change in libosmocore[master]: cosmetic: frame_relay: Fix typos In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21427 ) Change subject: cosmetic: frame_relay: Fix typos ...................................................................... cosmetic: frame_relay: Fix typos Change-Id: Ifc29ddb43745571096b458393692a68052898daa --- M include/osmocom/gprs/frame_relay.h 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/gprs/frame_relay.h b/include/osmocom/gprs/frame_relay.h index b382ea8..2860c6b 100644 --- a/include/osmocom/gprs/frame_relay.h +++ b/include/osmocom/gprs/frame_relay.h @@ -109,8 +109,8 @@ /* is this DLC about to be destroyed */ bool del; - /* the local state needs to be transfered to the - * UE. The NET must wait until the UE confirms it implicited by a seq number check */ + /* The local state needs to be transferred to the USER; + * NET must wait until USER confirms it implicitly by a seq number check */ bool state_send; int (*rx_cb)(void *cb_data, struct msgb *msg); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc29ddb43745571096b458393692a68052898daa Gerrit-Change-Number: 21427 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 Tue Dec 1 17:23:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:17 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Print link layer and global ALIVE/DEAD state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21428 ) Change subject: gprs_ns2: Print link layer and global ALIVE/DEAD state ...................................................................... gprs_ns2: Print link layer and global ALIVE/DEAD state Change-Id: I56455d1fef2f99d72bc0c4811f307428aec12b96 --- M src/gb/gprs_ns2_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index bfbc68c..7b27a7e 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -272,8 +272,8 @@ { struct gprs_ns2_vc *nsvc; - vty_out(vty, "NSEI %5u%s", - nse->nsei, VTY_NEWLINE); + 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); llist_for_each_entry(nsvc, &nse->nsvc, list) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56455d1fef2f99d72bc0c4811f307428aec12b96 Gerrit-Change-Number: 21428 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 Tue Dec 1 17:23:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Differentiate 'show ns binds' and 'show ns entities' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21429 ) Change subject: gprs_ns2_vty: Differentiate 'show ns binds' and 'show ns entities' ...................................................................... gprs_ns2_vty: Differentiate 'show ns binds' and 'show ns entities' Change-Id: I157467d6a74d6109bc23521c978c5aac6d29fe50 --- M src/gb/gprs_ns2_vty.c 1 file changed, 26 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 7b27a7e..8514704 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -292,34 +292,48 @@ bind->dump_vty(bind, vty, stats); } -static void dump_ns(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats, bool persistent_only) +static void dump_ns_bind(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats) { struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_nse *nse; 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); } - } -DEFUN(show_ns, show_ns_cmd, "show ns", - SHOW_STR "Display information about the NS protocol") +DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", + SHOW_STR + "Display information about the NS protocol binds\n" + "Include statistic\n") { - dump_ns(vty, vty_nsi, false, false); + bool stats = false; + if (argc > 0) + stats = true; + + dump_ns_bind(vty, vty_nsi, stats); return CMD_SUCCESS; } -DEFUN(show_ns_stats, show_ns_stats_cmd, "show ns stats", +DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", SHOW_STR - "Display information about the NS protocol\n" + "Display information about the NS protocol entities (NSEs)\n" "Include statistics\n") { - dump_ns(vty, vty_nsi, true, false); + bool stats = false; + if (argc > 0) + stats = true; + + dump_ns_entities(vty, vty_nsi, stats, false); return CMD_SUCCESS; } @@ -328,7 +342,7 @@ "Display information about the NS protocol\n" "Show only persistent NS\n") { - dump_ns(vty, vty_nsi, true, true); + dump_ns_entities(vty, vty_nsi, true, true); return CMD_SUCCESS; } @@ -776,8 +790,8 @@ return 0; vty_elements_installed = true; - install_lib_element_ve(&show_ns_cmd); - install_lib_element_ve(&show_ns_stats_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_nsvc_cmd); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I157467d6a74d6109bc23521c978c5aac6d29fe50 Gerrit-Change-Number: 21429 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 Tue Dec 1 17:23:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Show NSVCI in dump_nsvc() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21430 ) Change subject: gprs_ns2_vty: Show NSVCI in dump_nsvc() ...................................................................... gprs_ns2_vty: Show NSVCI in dump_nsvc() also, indent the statistics one more character Change-Id: I2726d6f1c5f83255925d6a1b22f1ee71b8d6fdc5 --- M src/gb/gprs_ns2_vty.c 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 8514704..17b8d96 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -260,11 +260,11 @@ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { - vty_out(vty, " %s%s", gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + vty_out(vty, " NSVCI %05u %s%s", nsvc->nsvci, 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); + vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); + vty_out_stat_item_group(vty, " ", nsvc->statg); } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2726d6f1c5f83255925d6a1b22f1ee71b8d6fdc5 Gerrit-Change-Number: 21430 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 Tue Dec 1 17:23:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:18 +0000 Subject: Change in libosmocore[master]: gprs_ns_vty: Unify display of NSVCI on VTY in 'show ns entities' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21431 ) Change subject: gprs_ns_vty: Unify display of NSVCI on VTY in 'show ns entities' ...................................................................... gprs_ns_vty: Unify display of NSVCI on VTY in 'show ns entities' Change-Id: I2915b47a5fc4ed9ac16f611c9e9f71dc0955426a --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 07c8d46..4140171 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -117,7 +117,7 @@ osmo_fr_role_str(fr_link->role), VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { - vty_out(vty, " %s%s", gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + vty_out(vty, " NSVCI %05u: %s%s", nsvc->nsvci, gprs_ns2_ll_str(nsvc), VTY_NEWLINE); } priv = bind->priv; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 7f82667..35935a7 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -101,7 +101,7 @@ vty_out(vty, " %lu NS-VC: %s", nsvcs, VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { - vty_out(vty, " %s%s", gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + vty_out(vty, " NSVCI %05u: %s%s", nsvc->nsvci, gprs_ns2_ll_str(nsvc), VTY_NEWLINE); } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2915b47a5fc4ed9ac16f611c9e9f71dc0955426a Gerrit-Change-Number: 21431 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 Tue Dec 1 17:23:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:23:19 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Print all relevant data on each NS-VC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21432 ) Change subject: gprs_ns2_vty: Print all relevant data on each NS-VC ...................................................................... gprs_ns2_vty: Print all relevant data on each NS-VC After this patch, we can finally see the BLOCKED/UNBLOCKED state, weights, persistence, etc. in the VTY. Example: OsmoGbProxy> show ns entities NSEI 00101: UDP, DEAD NSVCI 00101: RESET PERSIST data_weight=1 sig_wight=1 udp)[127.0.0.1]:23000<101>[127.0.0.1]:7777 NSEI 00001: FR, ALIVE NSVCI 00001: UNBLOCKED PERSIST data_weight=1 sig_wight=1 fr)netif: hdlcnet1 dlci: 16 NSVCI 00002: UNBLOCKED PERSIST data_weight=1 sig_wight=1 fr)netif: hdlcnet2 dlci: 17 NSVCI 00003: UNBLOCKED PERSIST data_weight=1 sig_wight=1 fr)netif: hdlcnet3 dlci: 18 NSVCI 00004: UNBLOCKED PERSIST data_weight=1 sig_wight=1 fr)netif: hdlcnet4 dlci: 19 Change-Id: I1cf8fe55d1d0cecc46113532c8550880558b0155 --- M src/gb/gprs_ns2_vty.c 1 file changed, 12 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 17b8d96..b244a96 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -260,7 +260,18 @@ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { - vty_out(vty, " NSVCI %05u %s%s", nsvc->nsvci, gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + 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); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1cf8fe55d1d0cecc46113532c8550880558b0155 Gerrit-Change-Number: 21432 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 Tue Dec 1 17:28:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:28:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2_udp.c: Fix typo - it's a DSCP and not a DCSP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21433 ) Change subject: gprs_ns2_udp.c: Fix typo - it's a DSCP and not a DCSP ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia12d1fd66348f0b317405f46589f041045c513a2 Gerrit-Change-Number: 21433 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17:28: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 Dec 1 17:28:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:28:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2_udp.c: Fix typo - it's a DSCP and not a DCSP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21433 ) Change subject: gprs_ns2_udp.c: Fix typo - it's a DSCP and not a DCSP ...................................................................... gprs_ns2_udp.c: Fix typo - it's a DSCP and not a DCSP also, acronyms are typically all-caps. Change-Id: Ia12d1fd66348f0b317405f46589f041045c513a2 --- M src/gb/gprs_ns2_udp.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_udp.c b/src/gb/gprs_ns2_udp.c index 35935a7..928116d 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -97,7 +97,7 @@ nsvcs++; } - vty_out(vty, "UDP bind: %s:%d dcsp: %d%s", sockstr.ip, sockstr.port, priv->dscp, VTY_NEWLINE); + vty_out(vty, "UDP bind: %s:%d DSCP: %d%s", sockstr.ip, sockstr.port, priv->dscp, VTY_NEWLINE); vty_out(vty, " %lu NS-VC: %s", nsvcs, VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia12d1fd66348f0b317405f46589f041045c513a2 Gerrit-Change-Number: 21433 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 Tue Dec 1 17:37:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:37:41 +0000 Subject: Change in osmo-bsc[master]: abis_nm: finally handle BTS_TYPE_VARIANT, match BTS type In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18618 ) Change subject: abis_nm: finally handle BTS_TYPE_VARIANT, match BTS type ...................................................................... Patch Set 1: ping? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I344afccdb82f62a7d483b57597d08f028f88bdc9 Gerrit-Change-Number: 18618 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 17:37: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 Tue Dec 1 17:39:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:39:17 +0000 Subject: Change in osmo-bsc[master]: stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR s... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18703 ) Change subject: stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR signal. ...................................................................... Patch Set 1: somehow this was +2 but never merged? ipse, would you mind to rebase so we can get it merged? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ice3379020039dc3634aa3887939740729d720dee Gerrit-Change-Number: 18703 Gerrit-PatchSet: 1 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 17:39: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 Tue Dec 1 17:41:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 17:41:05 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: print bts number in VTY error message. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21250 ) Change subject: bsc_vty: print bts number in VTY error message. ...................................................................... Patch Set 2: pmaier: please rebase, so it can be merged -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic4213b257cb149634529e62782e4d98b3de9868b Gerrit-Change-Number: 21250 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 17:41: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 Tue Dec 1 17:41:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:30 +0000 Subject: Change in osmo-bts[master]: struct gsm_bts: move ul_power_{target, hysteresis} to ul_power_ctrl References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21434 ) Change subject: struct gsm_bts: move ul_power_{target,hysteresis} to ul_power_ctrl ...................................................................... struct gsm_bts: move ul_power_{target,hysteresis} to ul_power_ctrl Change-Id: I3886c7aedf3870536f1750f864cf698302ddf2df Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M src/common/power_control.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/power_test.c 10 files changed, 37 insertions(+), 37 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/21434/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index ce7d9d4..66b03e1 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -299,12 +299,12 @@ bool vty_override; /* OML value overridden by VTY */ } radio_link_timeout; - /* TODO: move it to bts->ul_power_ctrl struct */ - int ul_power_target; /* Uplink Rx power target */ - int ul_power_hysteresis; /* Tolerable Uplink Rx power deviation */ - /* Uplink power control */ struct { + /* Target value to strive to */ + int target; + /* Tolerated deviation from target */ + int hysteresis; /* UL RSSI filtering algorithm */ enum ms_ul_pf_algo pf_algo; /* (Optional) filtering parameters */ diff --git a/src/common/bts.c b/src/common/bts.c index a1f9101..6375241 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -323,8 +323,8 @@ /* configurable via VTY */ bts->paging_state = paging_init(bts, 200, 0); - bts->ul_power_target = -75; /* dBm default */ - bts->ul_power_hysteresis = 3; /* -78 .. -72 dBm */ + bts->ul_power_ctrl.target = -75; /* dBm default */ + bts->ul_power_ctrl.hysteresis = 3; /* -78 .. -72 dBm */ bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_EWMA; bts->ul_power_ctrl.pf.ewma.alpha = 50; /* 50% smoothing */ bts->rtp_jitter_adaptive = false; diff --git a/src/common/power_control.c b/src/common/power_control.c index be6df48..dc5636c 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -141,15 +141,15 @@ /* How many dBs measured power should be increased (+) or decreased (-) to reach expected power. */ - diff = bts->ul_power_target - avg_ul_rssi_dbm; + diff = bts->ul_power_ctrl.target - avg_ul_rssi_dbm; /* Tolerate small deviations from 'rx-target' */ - if (abs(diff) <= bts->ul_power_hysteresis) { + if (abs(diff) <= bts->ul_power_ctrl.hysteresis) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm) because diff %d dBm " "from 'rx-target' %d dBm is not significant (hysteresis %d dBm)\n", - ms_power_lvl, ms_dbm, diff, bts->ul_power_target, bts->ul_power_hysteresis); + ms_power_lvl, ms_dbm, diff, bts->ul_power_ctrl.target, bts->ul_power_ctrl.hysteresis); /* Keep the current power level in sync (just to be sure) */ lchan->ms_power_ctrl.current = ms_power_lvl; bts_model_adjst_ms_pwr(lchan); @@ -188,7 +188,7 @@ "(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, lchan->ms_power_ctrl.max, - avg_ul_rssi_dbm, bts->ul_power_target); + avg_ul_rssi_dbm, bts->ul_power_ctrl.target); return 0; } @@ -198,7 +198,7 @@ (new_dbm > current_dbm) ? "Raising" : "Lowering", lchan->ms_power_ctrl.current, current_dbm, new_power_lvl, new_dbm, ms_power_lvl, lchan->ms_power_ctrl.max, - avg_ul_rssi_dbm, bts->ul_power_target); + avg_ul_rssi_dbm, bts->ul_power_ctrl.target); /* store the resulting new MS power level in the lchan */ lchan->ms_power_ctrl.current = new_power_lvl; diff --git a/src/common/vty.c b/src/common/vty.c index 7baddef..34e7cfa 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -255,9 +255,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_target); - if (bts->ul_power_hysteresis > 0) - vty_out(vty, " hysteresis %d", bts->ul_power_hysteresis); + vty_out(vty, " uplink-power-target %d", bts->ul_power_ctrl.target); + if (bts->ul_power_ctrl.hysteresis > 0) + vty_out(vty, " hysteresis %d", bts->ul_power_ctrl.hysteresis); vty_out(vty, "%s", VTY_NEWLINE); /* MS Tx power filtering algorithm and parameters */ @@ -633,8 +633,8 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_target = atoi(argv[0]); - bts->ul_power_hysteresis = 0; + bts->ul_power_ctrl.target = atoi(argv[0]); + bts->ul_power_ctrl.hysteresis = 0; return CMD_SUCCESS; } @@ -650,8 +650,8 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_target = atoi(argv[0]); - bts->ul_power_hysteresis = atoi(argv[1]); + bts->ul_power_ctrl.target = atoi(argv[0]); + bts->ul_power_ctrl.hysteresis = atoi(argv[1]); return CMD_SUCCESS; } diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index dee5feb..0fb9d00 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -434,7 +434,7 @@ 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_target; + ? 0.0 : trx->bts->ul_power_ctrl.target; 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 9a7751b..be0ec30 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -449,7 +449,7 @@ 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_target; + ? 0.0 : trx->bts->ul_power_ctrl.target; 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 4a8a6c2..5f638e6 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -429,7 +429,7 @@ 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_target; + ? 0.0 : trx->bts->ul_power_ctrl.target; 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 f575884..1f2aefb 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -154,7 +154,7 @@ { struct gsm_bts_trx *trx = vty->index; - trx->bts->ul_power_target = atoi(argv[0]); + trx->bts->ul_power_ctrl.target = atoi(argv[0]); return CMD_SUCCESS; } diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index ceca330..0353064 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -198,7 +198,7 @@ { vty_out (vty, "'osmotrx ms-power-loop' is deprecated, use 'uplink-power-target' instead%s", VTY_NEWLINE); - g_bts->ul_power_target = atoi(argv[0]); + g_bts->ul_power_ctrl.target = atoi(argv[0]); return CMD_SUCCESS; } diff --git a/tests/power/power_test.c b/tests/power/power_test.c index c5c4db3..a686134 100644 --- a/tests/power/power_test.c +++ b/tests/power/power_test.c @@ -47,7 +47,7 @@ g_trx->ms_pwr_ctl_soft = true; - g_bts->ul_power_target = -75; + g_bts->ul_power_ctrl.target = -75; g_bts->band = GSM_BAND_1800; g_bts->c0 = g_trx; @@ -98,7 +98,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_target, 0, 5); + apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 5); apply_power_test(lchan, -90, 1, 3); apply_power_test(lchan, -90, 1, 2); /* .max is pwr lvl 2 */ @@ -116,7 +116,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_target, 0, 29); + apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 29); /* Now go down, steps are double size in this direction: */ apply_power_test(lchan, -45, 1, 1); @@ -124,13 +124,13 @@ apply_power_test(lchan, -45, 1, 9); /* Go down only one level down and up: */ - apply_power_test(lchan, g_bts->ul_power_target + 2, 1, 10); - apply_power_test(lchan, g_bts->ul_power_target - 2, 1, 9); + apply_power_test(lchan, g_bts->ul_power_ctrl.target + 2, 1, 10); + apply_power_test(lchan, g_bts->ul_power_ctrl.target - 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_target + 2, 1, 14); + apply_power_test(lchan, g_bts->ul_power_ctrl.target + 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); @@ -214,22 +214,22 @@ lchan = &g_trx->ts[0].lchan[0]; /* Tolerate power deviations in range -80 .. -70 */ - g_bts->ul_power_hysteresis = 5; + g_bts->ul_power_ctrl.hysteresis = 5; 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_target, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target + 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target - 3, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target + 3, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target - 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target + 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target - 5, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target + 5, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target - 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target - 10, 1, 13); + apply_power_test(lchan, g_bts->ul_power_ctrl.target - 10, 1, 13); } int main(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3886c7aedf3870536f1750f864cf698302ddf2df Gerrit-Change-Number: 21434 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 Dec 1 17:41:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:30 +0000 Subject: Change in osmo-bts[master]: bts: rename MS_UL_PF_ALGO_{NONE, EWMA} to BTS_PF_ALGO_{NONE, EWMA} References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21435 ) Change subject: bts: rename MS_UL_PF_ALGO_{NONE,EWMA} to BTS_PF_ALGO_{NONE,EWMA} ...................................................................... bts: rename MS_UL_PF_ALGO_{NONE,EWMA} to BTS_PF_ALGO_{NONE,EWMA} Change-Id: I580512eea1d329a4d25ccbd6fc2ab98b083ec51d Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M src/common/power_control.c M src/common/vty.c M tests/power/power_test.c 5 files changed, 12 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/21435/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 66b03e1..37d4c7d 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -96,9 +96,9 @@ }; /* Tx power filtering algorithm */ -enum ms_ul_pf_algo { - MS_UL_PF_ALGO_NONE = 0, - MS_UL_PF_ALGO_EWMA, +enum bts_pf_algo { + BTS_PF_ALGO_NONE = 0, + BTS_PF_ALGO_EWMA, }; /* BTS Site Manager */ @@ -306,7 +306,7 @@ /* Tolerated deviation from target */ int hysteresis; /* UL RSSI filtering algorithm */ - enum ms_ul_pf_algo pf_algo; + enum bts_pf_algo pf_algo; /* (Optional) filtering parameters */ union { /* Exponentially Weighted Moving Average */ diff --git a/src/common/bts.c b/src/common/bts.c index 6375241..80f4fdd 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -325,7 +325,7 @@ bts->paging_state = paging_init(bts, 200, 0); bts->ul_power_ctrl.target = -75; /* dBm default */ bts->ul_power_ctrl.hysteresis = 3; /* -78 .. -72 dBm */ - bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_EWMA; + bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; bts->ul_power_ctrl.pf.ewma.alpha = 50; /* 50% smoothing */ bts->rtp_jitter_adaptive = false; bts->rtp_port_range_start = 16384; diff --git a/src/common/power_control.c b/src/common/power_control.c index dc5636c..e022e59 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -130,10 +130,10 @@ /* Filter UL RSSI to reduce unnecessary Tx power oscillations */ switch (bts->ul_power_ctrl.pf_algo) { - case MS_UL_PF_ALGO_EWMA: + case BTS_PF_ALGO_EWMA: avg_ul_rssi_dbm = lchan_ul_pf_ewma(bts, lchan, ul_rssi_dbm); break; - case MS_UL_PF_ALGO_NONE: + case BTS_PF_ALGO_NONE: default: /* No filtering (pass through) */ avg_ul_rssi_dbm = ul_rssi_dbm; diff --git a/src/common/vty.c b/src/common/vty.c index 34e7cfa..f32f6cd 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -262,11 +262,11 @@ /* MS Tx power filtering algorithm and parameters */ switch (bts->ul_power_ctrl.pf_algo) { - case MS_UL_PF_ALGO_EWMA: + 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 MS_UL_PF_ALGO_NONE: + case BTS_PF_ALGO_NONE: default: vty_out(vty, " no uplink-power-filtering%s", VTY_NEWLINE); break; @@ -664,7 +664,7 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_NONE; + bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_NONE; return CMD_SUCCESS; } @@ -681,7 +681,7 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_EWMA; + bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; bts->ul_power_ctrl.pf.ewma.alpha = 100 - atoi(argv[0]); return CMD_SUCCESS; diff --git a/tests/power/power_test.c b/tests/power/power_test.c index a686134..14bef08 100644 --- a/tests/power/power_test.c +++ b/tests/power/power_test.c @@ -153,7 +153,7 @@ lchan = &g_trx->ts[0].lchan[0]; avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi; - g_bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_EWMA; + g_bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; g_bts->ul_power_ctrl.pf.ewma.alpha = 20; /* 80% smoothing */ lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I580512eea1d329a4d25ccbd6fc2ab98b083ec51d Gerrit-Change-Number: 21435 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 Dec 1 17:41:31 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:31 +0000 Subject: Change in osmo-bts[master]: bts: generalize a struct for UL/DL power control parameters References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21436 ) Change subject: bts: generalize a struct for UL/DL power control parameters ...................................................................... bts: generalize a struct for UL/DL power control parameters Change-Id: I504de17fb3c1300c2a3faa6d7d3a9eb1b74b214b Related: SYS#4918 --- M include/osmo-bts/bts.h 1 file changed, 19 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/36/21436/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 37d4c7d..129764e 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -101,6 +101,24 @@ BTS_PF_ALGO_EWMA, }; +/* UL/DL power control parameters */ +struct bts_power_ctrl_params { + /* Target value to strive to */ + int target; + /* Tolerated deviation from target */ + int hysteresis; + /* RxLev filtering algorithm */ + enum bts_pf_algo pf_algo; + /* (Optional) filtering parameters */ + union { + /* Exponentially Weighted Moving Average */ + struct { + /* Smoothing factor: higher the value - less smoothing */ + uint8_t alpha; /* 1 .. 99 (in %) */ + } ewma; + } pf; +}; + /* BTS Site Manager */ struct gsm_bts_sm { struct gsm_abis_mo mo; @@ -300,22 +318,7 @@ } radio_link_timeout; /* Uplink power control */ - struct { - /* Target value to strive to */ - int target; - /* Tolerated deviation from target */ - int hysteresis; - /* UL RSSI filtering algorithm */ - enum bts_pf_algo pf_algo; - /* (Optional) filtering parameters */ - union { - /* Exponentially Weighted Moving Average */ - struct { - /* Smoothing factor: higher the value - less smoothing */ - uint8_t alpha; /* 1 .. 99 (in %) */ - } ewma; - } pf; - } ul_power_ctrl; + struct bts_power_ctrl_params ul_power_ctrl; /* used by the sysmoBTS to adjust band */ uint8_t auto_band; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I504de17fb3c1300c2a3faa6d7d3a9eb1b74b214b Gerrit-Change-Number: 21436 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 Dec 1 17:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:32 +0000 Subject: Change in osmo-bts[master]: bts: add Downlink power control parameters References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21437 ) Change subject: bts: add Downlink power control parameters ...................................................................... bts: add Downlink power control parameters Change-Id: I724f661e9ce5dd75f95fb7b270a89b2e2a73c951 Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M tests/power/power_test.c 3 files changed, 17 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/37/21437/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 129764e..3847a26 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -317,8 +317,9 @@ bool vty_override; /* OML value overridden by VTY */ } radio_link_timeout; - /* Uplink power control */ + /* Uplink/Downlink power control */ struct bts_power_ctrl_params ul_power_ctrl; + struct bts_power_ctrl_params dl_power_ctrl; /* used by the sysmoBTS to adjust band */ uint8_t auto_band; diff --git a/src/common/bts.c b/src/common/bts.c index 80f4fdd..a974b9f 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -323,16 +323,26 @@ /* configurable via VTY */ bts->paging_state = paging_init(bts, 200, 0); - bts->ul_power_ctrl.target = -75; /* dBm default */ - bts->ul_power_ctrl.hysteresis = 3; /* -78 .. -72 dBm */ - bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; - bts->ul_power_ctrl.pf.ewma.alpha = 50; /* 50% smoothing */ bts->rtp_jitter_adaptive = false; bts->rtp_port_range_start = 16384; bts->rtp_port_range_end = 17407; bts->rtp_port_range_next = bts->rtp_port_range_start; bts->rtp_ip_dscp = -1; + /* Default UL/DL power control parameters */ + bts->ul_power_ctrl = bts->dl_power_ctrl = \ + (struct bts_power_ctrl_params) { + .target = -75, /* dBm default */ + .hysteresis = 3, /* -78 .. -72 dBm */ + .pf_algo = BTS_PF_ALGO_EWMA, + .pf = { + .ewma = { + /* 50% smoothing */ + .alpha = 50 + } + } + }; + /* configurable via OML */ bts->load.ccch.load_ind_period = 112; load_timer_start(bts); diff --git a/tests/power/power_test.c b/tests/power/power_test.c index 14bef08..f1b910b 100644 --- a/tests/power/power_test.c +++ b/tests/power/power_test.c @@ -48,6 +48,7 @@ g_trx->ms_pwr_ctl_soft = true; g_bts->ul_power_ctrl.target = -75; + g_bts->dl_power_ctrl.target = -75; g_bts->band = GSM_BAND_1800; g_bts->c0 = g_trx; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I724f661e9ce5dd75f95fb7b270a89b2e2a73c951 Gerrit-Change-Number: 21437 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 Dec 1 17:41:33 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:33 +0000 Subject: Change in osmo-bts[master]: vty: add commands for Downlink power control References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21438 ) Change subject: vty: add commands for Downlink power control ...................................................................... vty: add commands for Downlink power control Change-Id: I61efbe177aa06584cd7412640b888913de6e8f9d Related: SYS#4918 --- M src/common/vty.c 1 file changed, 93 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/38/21438/1 diff --git a/src/common/vty.c b/src/common/vty.c index f32f6cd..0e78ad3 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -228,6 +228,27 @@ return CMD_SUCCESS; } +static void config_write_power_ctrl_params(struct vty *vty, const char *prefix, + const struct bts_power_ctrl_params *pp) +{ + vty_out(vty, " %s-power-target %d", prefix, pp->target); + if (pp->hysteresis > 0) + vty_out(vty, " hysteresis %d", pp->hysteresis); + vty_out(vty, "%s", VTY_NEWLINE); + + /* Power filtering algorithm and parameters */ + switch (pp->pf_algo) { + case BTS_PF_ALGO_EWMA: + vty_out(vty, " %s-power-filtering algo ewma beta %u%s", + prefix, 100 - pp->pf.ewma.alpha, VTY_NEWLINE); + break; + 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 +276,10 @@ 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); - if (bts->ul_power_ctrl.hysteresis > 0) - vty_out(vty, " hysteresis %d", bts->ul_power_ctrl.hysteresis); - 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; - } + /* UL/DL power control parameters */ + config_write_power_ctrl_params(vty, "uplink", &bts->ul_power_ctrl); + config_write_power_ctrl_params(vty, "downlink", &bts->dl_power_ctrl); 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 @@ -621,68 +630,105 @@ return CMD_SUCCESS; } -#define UL_POWER_TARGET_CMD \ - "uplink-power-target <-110-0>" -#define UL_POWER_TARGET_CMD_DESC \ - "Set the nominal target Rx Level for uplink power control loop\n" \ - "Target uplink Rx level in dBm\n" +#define POWER_TARGET_CMD \ + "(uplink-power-target|downlink-power-target) <-110-0>" +#define POWER_TARGET_CMD_DESC \ + "Set the nominal target Rx Level for Uplink power control loop\n" \ + "Set the nominal target Rx Level for Downlink power control loop\n" \ + "Target Rx level in dBm\n" -DEFUN_ATTR(cfg_bts_ul_power_target, cfg_bts_ul_power_target_cmd, - UL_POWER_TARGET_CMD, UL_POWER_TARGET_CMD_DESC, +#define POWER_HYST_CMD \ + "hysteresis <1-25>" +#define POWER_HYST_CMD_DESC \ + "Target Rx Level hysteresis\n" \ + "Tolerable deviation in dBm\n" + +DEFUN_ATTR(cfg_bts_power_target, + cfg_bts_power_target_cmd, + POWER_TARGET_CMD, + POWER_TARGET_CMD_DESC, CMD_ATTR_IMMEDIATE) { + struct bts_power_ctrl_params *params; struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.target = atoi(argv[0]); - bts->ul_power_ctrl.hysteresis = 0; + if (argv[0][0] == 'u') + params = &bts->ul_power_ctrl; + else + params = &bts->dl_power_ctrl; + + params->target = atoi(argv[1]); + params->hysteresis = 0; 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", +DEFUN_ATTR(cfg_bts_power_target_hysteresis, + cfg_bts_power_target_hysteresis_cmd, + POWER_TARGET_CMD " " POWER_HYST_CMD, + POWER_TARGET_CMD_DESC POWER_HYST_CMD_DESC, CMD_ATTR_IMMEDIATE) { + struct bts_power_ctrl_params *params; struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.target = atoi(argv[0]); - bts->ul_power_ctrl.hysteresis = atoi(argv[1]); + if (argv[0][0] == 'u') + params = &bts->ul_power_ctrl; + else + params = &bts->dl_power_ctrl; + + params->target = atoi(argv[1]); + params->hysteresis = atoi(argv[2]); return CMD_SUCCESS; } -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", +#define POWER_FILTER_CMD \ + "(uplink-power-filtering|downlink-power-filtering)" +#define UL_POWER_FILTER_CMD_DESC \ + "filtering for Uplink power control loop\n" +#define DL_POWER_FILTER_CMD_DESC \ + "filtering for Downlink power control loop\n" + +DEFUN_ATTR(cfg_no_bts_power_filter, + cfg_bts_no_power_filter_cmd, + "no " POWER_FILTER_CMD, + NO_STR "Disable " UL_POWER_FILTER_CMD_DESC + "Disable " DL_POWER_FILTER_CMD_DESC, CMD_ATTR_IMMEDIATE) { struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_NONE; + if (argv[0][0] == 'u') + bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_NONE; + else + bts->dl_power_ctrl.pf_algo = BTS_PF_ALGO_NONE; return CMD_SUCCESS; } -DEFUN_ATTR(cfg_bts_ul_power_filter_ewma, - cfg_bts_ul_power_filter_ewma_cmd, - "uplink-power-filtering algo ewma beta <1-99>", - "Configure filtering for uplink power control loop\n" +DEFUN_ATTR(cfg_bts_power_filter_ewma, + cfg_bts_power_filter_ewma_cmd, + POWER_FILTER_CMD " algo ewma beta <1-99>", + "Configure " UL_POWER_FILTER_CMD_DESC + "Configure " DL_POWER_FILTER_CMD_DESC "Select the filtering algorithm\n" "Exponentially Weighted Moving Average (EWMA)\n" "Smoothing factor (in %): beta = (100 - alpha)\n" "1% - lowest smoothing, 99% - highest smoothing\n", CMD_ATTR_IMMEDIATE) { + struct bts_power_ctrl_params *params; 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]); + if (argv[0][0] == 'u') + params = &bts->ul_power_ctrl; + else + params = &bts->dl_power_ctrl; + + params->pf_algo = BTS_PF_ALGO_EWMA; + params->pf.ewma.alpha = 100 - atoi(argv[1]); return CMD_SUCCESS; } @@ -1879,10 +1925,10 @@ install_element(BTS_NODE, &cfg_bts_paging_lifetime_cmd); install_element(BTS_NODE, &cfg_bts_agch_queue_mgmt_default_cmd); install_element(BTS_NODE, &cfg_bts_agch_queue_mgmt_params_cmd); - install_element(BTS_NODE, &cfg_bts_ul_power_target_cmd); - install_element(BTS_NODE, &cfg_bts_ul_power_target_hysteresis_cmd); - install_element(BTS_NODE, &cfg_bts_no_ul_power_filter_cmd); - install_element(BTS_NODE, &cfg_bts_ul_power_filter_ewma_cmd); + install_element(BTS_NODE, &cfg_bts_power_target_cmd); + install_element(BTS_NODE, &cfg_bts_power_target_hysteresis_cmd); + install_element(BTS_NODE, &cfg_bts_no_power_filter_cmd); + install_element(BTS_NODE, &cfg_bts_power_filter_ewma_cmd); install_element(BTS_NODE, &cfg_bts_min_qual_rach_cmd); install_element(BTS_NODE, &cfg_bts_min_qual_norm_cmd); install_element(BTS_NODE, &cfg_bts_max_ber_rach_cmd); -- 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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 1 17:41:33 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:33 +0000 Subject: Change in osmo-bts[master]: l1sap: make sure that UL SACCH is always 23 octets long References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21439 ) Change subject: l1sap: make sure that UL SACCH is always 23 octets long ...................................................................... l1sap: make sure that UL SACCH is always 23 octets long Change-Id: I1c8a43337fbc1acfab3c0f0713c75ded95d69512 Related: SYS#4918 --- M src/common/l1sap.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/39/21439/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 1785e66..2038fba 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1531,8 +1531,8 @@ radio_link_timeout(lchan, false); le = &lchan->lapdm_ch.lapdm_acch; /* save the SACCH L1 header in the lchan struct for RSL MEAS RES */ - if (len < 2) { - LOGPGT(DL1P, LOGL_NOTICE, &g_time, "SACCH with size %u<2 !?!\n", len); + if (len != GSM_MACBLOCK_LEN) { + LOGPGT(DL1P, LOGL_NOTICE, &g_time, "SACCH with odd len=%u!?!\n", len); return -EINVAL; } /* Some brilliant engineer decided that the ordering of -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1c8a43337fbc1acfab3c0f0713c75ded95d69512 Gerrit-Change-Number: 21439 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 Dec 1 17:41:33 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:33 +0000 Subject: Change in osmo-bts[master]: tx_power: remove unused get_p[_trxout]_target_mdBm_lchan() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21440 ) Change subject: tx_power: remove unused get_p[_trxout]_target_mdBm_lchan() ...................................................................... tx_power: remove unused get_p[_trxout]_target_mdBm_lchan() Change-Id: Iaec20bf2711d3bc022325cd77ea8c675caeb7987 --- M include/osmo-bts/tx_power.h M src/common/tx_power.c 2 files changed, 0 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/40/21440/1 diff --git a/include/osmo-bts/tx_power.h b/include/osmo-bts/tx_power.h index 8f68d8a..05388f3 100644 --- a/include/osmo-bts/tx_power.h +++ b/include/osmo-bts/tx_power.h @@ -67,12 +67,10 @@ int get_p_nominal_mdBm(const struct gsm_bts_trx *trx); int get_p_target_mdBm(const struct gsm_bts_trx *trx, uint8_t bs_power_red); -int get_p_target_mdBm_lchan(const struct gsm_lchan *lchan); int get_p_actual_mdBm(const struct gsm_bts_trx *trx, int p_target_mdBm); int get_p_trxout_target_mdBm(const struct gsm_bts_trx *trx, uint8_t bs_power_red); -int get_p_trxout_target_mdBm_lchan(const struct gsm_lchan *lchan); int get_p_trxout_actual_mdBm(const struct gsm_bts_trx *trx, uint8_t bs_power_red); int get_p_trxout_actual_mdBm_lchan(const struct gsm_lchan *lchan); diff --git a/src/common/tx_power.c b/src/common/tx_power.c index 0741429..2e5e1be 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -66,10 +66,6 @@ /* Pn subtracted by RSL BS Power Recudtion (in 1 dB steps) */ return get_p_nominal_mdBm(trx) - to_mdB(bs_power_red); } -int get_p_target_mdBm_lchan(const struct gsm_lchan *lchan) -{ - return get_p_target_mdBm(lchan->ts->trx, lchan->bs_power_red); -} /* calculate the actual total output power required, taking into account the * attenuation required for power ramping but not thermal management */ @@ -132,10 +128,6 @@ /* internal PA input drive level is TRX output power */ return pa_drvlvl_mdBm; } -int get_p_trxout_target_mdBm_lchan(const struct gsm_lchan *lchan) -{ - return get_p_trxout_target_mdBm(lchan->ts->trx, lchan->bs_power_red); -} /* output power ramping code */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iaec20bf2711d3bc022325cd77ea8c675caeb7987 Gerrit-Change-Number: 21440 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 Dec 1 17:41:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:34 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... power_control: generalize power control state structure Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Related: SYS#4918 --- M include/osmo-bts/gsm_data.h M src/common/power_control.c M tests/power/power_test.c 3 files changed, 13 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/41/21441/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 64102f5..04c6629 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -161,6 +161,15 @@ uint32_t fn; }; +struct lchan_power_ctrl_state { + uint8_t current; + uint8_t max; + bool fixed; + + /* Scaled up (100 times) average UL/DL RxLev (in dBm) */ + int avg100_rxlev_dbm; +}; + struct gsm_lchan { /* The TS that we're part of */ struct gsm_bts_trx_ts *ts; @@ -306,15 +315,9 @@ enum lchan_rel_act_kind rel_act_kind; /* RTP header Marker bit to indicate beginning of speech after pause */ bool rtp_tx_marker; - /* power handling */ - struct { - uint8_t current; - uint8_t max; - bool fixed; - /* Scaled up (100 times) average UL RSSI */ - int avg100_ul_rssi; - } ms_power_ctrl; + /* MS power control */ + struct lchan_power_ctrl_state ms_power_ctrl; /* BTS power reduction (in dB) */ uint8_t bs_power_red; diff --git a/src/common/power_control.c b/src/common/power_control.c index e022e59..3328167 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -79,7 +79,7 @@ const int8_t Pwr) { const uint8_t A = bts->ul_power_ctrl.pf.ewma.alpha; - int *Avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi; + int *Avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm; /* We don't have 'Avg[n - 1]' if this is the first run */ if (lchan->meas.res_nr == 0) { diff --git a/tests/power/power_test.c b/tests/power/power_test.c index f1b910b..1abe532 100644 --- a/tests/power/power_test.c +++ b/tests/power/power_test.c @@ -152,7 +152,7 @@ init_test(__func__); lchan = &g_trx->ts[0].lchan[0]; - avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi; + 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 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 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 Dec 1 17:41:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:34 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21442 ) Change subject: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr ...................................................................... power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Related: SYS#4918 --- M src/common/power_control.c M tests/power/power_test.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/42/21442/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 3328167..5dbf8ce 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -82,7 +82,7 @@ int *Avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm; /* We don't have 'Avg[n - 1]' if this is the first run */ - if (lchan->meas.res_nr == 0) { + if (*Avg100 == 0) { *Avg100 = Pwr * EWMA_SCALE_FACTOR; return Pwr; } diff --git a/tests/power/power_test.c b/tests/power/power_test.c index 1abe532..147c725 100644 --- a/tests/power/power_test.c +++ b/tests/power/power_test.c @@ -191,7 +191,7 @@ g_bts->ul_power_ctrl.pf.ewma.alpha = 70; /* 30% smoothing */ lchan->ms_power_ctrl.current = 15; - lchan->meas.res_nr = 0; + lchan->ms_power_ctrl.avg100_rxlev_dbm = 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/+/21442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Gerrit-Change-Number: 21442 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 Dec 1 17:41:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:34 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21443 ) Change subject: power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer ...................................................................... power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer Change-Id: Idf46e47f20f031ff9dded1be1e6c4337d7b423e7 Related: SYS#4918 --- M src/common/power_control.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/43/21443/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 5dbf8ce..a20ce55 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -108,7 +108,7 @@ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; int8_t avg_ul_rssi_dbm; - if (!trx_ms_pwr_ctrl_is_osmo(lchan->ts->trx)) + if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; if (lchan->ms_power_ctrl.fixed) return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idf46e47f20f031ff9dded1be1e6c4337d7b423e7 Gerrit-Change-Number: 21443 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 Dec 1 17:41:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:35 +0000 Subject: Change in osmo-bts[master]: power_control: generalize and rename lchan_ul_pf_ewma() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21444 ) Change subject: power_control: generalize and rename lchan_ul_pf_ewma() ...................................................................... power_control: generalize and rename lchan_ul_pf_ewma() This way EWMA based filtering logic can be used not only for MS Power Control, but also for BS Power Control. Change-Id: I16c2e1b997f2b8af44d47809420293f072335bbd Related: SYS#4918 --- M src/common/power_control.c 1 file changed, 9 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/44/21444/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index a20ce55..9d17c89 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -74,12 +74,12 @@ * 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 lchan_ul_pf_ewma(const struct gsm_bts *bts, - struct gsm_lchan *lchan, - const int8_t Pwr) +static int8_t do_pf_ewma(const struct bts_power_ctrl_params *params, + struct lchan_power_ctrl_state *state, + const int8_t Pwr) { - const uint8_t A = bts->ul_power_ctrl.pf.ewma.alpha; - int *Avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm; + const uint8_t A = params->pf.ewma.alpha; + int *Avg100 = &state->avg100_rxlev_dbm; /* We don't have 'Avg[n - 1]' if this is the first run */ if (*Avg100 == 0) { @@ -108,6 +108,9 @@ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; int8_t avg_ul_rssi_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 (lchan->ms_power_ctrl.fixed) @@ -131,7 +134,7 @@ /* Filter UL RSSI to reduce unnecessary Tx power oscillations */ switch (bts->ul_power_ctrl.pf_algo) { case BTS_PF_ALGO_EWMA: - avg_ul_rssi_dbm = lchan_ul_pf_ewma(bts, lchan, ul_rssi_dbm); + avg_ul_rssi_dbm = do_pf_ewma(params, state, ul_rssi_dbm); break; case BTS_PF_ALGO_NONE: default: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16c2e1b997f2b8af44d47809420293f072335bbd Gerrit-Change-Number: 21444 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 Dec 1 17:41:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:35 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21445 ) Change subject: power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers ...................................................................... power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers Change-Id: I177d82cd61d59256976007fed2f7da400b814789 Related: SYS#4918 --- M src/common/power_control.c 1 file changed, 15 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/45/21445/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 9d17c89..21f7ce5 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -113,7 +113,7 @@ if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; - if (lchan->ms_power_ctrl.fixed) + if (state->fixed) return 0; ms_dbm = ms_pwr_dbm(band, ms_power_lvl); @@ -123,16 +123,16 @@ ms_power_lvl, gsm_band_name(band)); return 0; } - bsc_max_dbm = ms_pwr_dbm(band, lchan->ms_power_ctrl.max); + bsc_max_dbm = ms_pwr_dbm(band, state->max); if (bsc_max_dbm < 0) { LOGPLCHAN(lchan, DLOOP, LOGL_NOTICE, "Failed to calculate dBm for power ctl level %" PRIu8 " on band %s\n", - lchan->ms_power_ctrl.max, gsm_band_name(band)); + state->max, gsm_band_name(band)); return 0; } /* Filter UL RSSI to reduce unnecessary Tx power oscillations */ - switch (bts->ul_power_ctrl.pf_algo) { + switch (params->pf_algo) { case BTS_PF_ALGO_EWMA: avg_ul_rssi_dbm = do_pf_ewma(params, state, ul_rssi_dbm); break; @@ -144,17 +144,17 @@ /* How many dBs measured power should be increased (+) or decreased (-) to reach expected power. */ - diff = bts->ul_power_ctrl.target - avg_ul_rssi_dbm; + diff = params->target - avg_ul_rssi_dbm; /* Tolerate small deviations from 'rx-target' */ - if (abs(diff) <= bts->ul_power_ctrl.hysteresis) { + if (abs(diff) <= params->hysteresis) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm) because diff %d dBm " "from 'rx-target' %d dBm is not significant (hysteresis %d dBm)\n", - ms_power_lvl, ms_dbm, diff, bts->ul_power_ctrl.target, bts->ul_power_ctrl.hysteresis); + ms_power_lvl, ms_dbm, diff, params->target, params->hysteresis); /* Keep the current power level in sync (just to be sure) */ - lchan->ms_power_ctrl.current = ms_power_lvl; + state->current = ms_power_lvl; bts_model_adjst_ms_pwr(lchan); return 0; } @@ -186,25 +186,23 @@ return 0; } - if (lchan->ms_power_ctrl.current == new_power_lvl) { + 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, lchan->ms_power_ctrl.max, - avg_ul_rssi_dbm, bts->ul_power_ctrl.target); + new_power_lvl, new_dbm, ms_power_lvl, state->max, + avg_ul_rssi_dbm, params->target); return 0; } - current_dbm = ms_pwr_dbm(band, lchan->ms_power_ctrl.current); + current_dbm = ms_pwr_dbm(band, state->current); LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s MS power from control level %d (%d dBm) to %d, %d dBm " "(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", - lchan->ms_power_ctrl.current, current_dbm, new_power_lvl, new_dbm, - ms_power_lvl, lchan->ms_power_ctrl.max, - avg_ul_rssi_dbm, bts->ul_power_ctrl.target); + state->current, current_dbm, new_power_lvl, new_dbm, + ms_power_lvl, state->max, avg_ul_rssi_dbm, params->target); /* store the resulting new MS power level in the lchan */ - lchan->ms_power_ctrl.current = new_power_lvl; + state->current = new_power_lvl; bts_model_adjst_ms_pwr(lchan); return 1; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I177d82cd61d59256976007fed2f7da400b814789 Gerrit-Change-Number: 21445 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 Dec 1 17:41:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:35 +0000 Subject: Change in osmo-bts[master]: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21446 ) Change subject: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() ...................................................................... power_control: derive calc_delta() from lchan_ms_pwr_ctrl() This function will also be used by the BS Power Control logic. Unfortunately, the unit test expectations have changed because: - lchan_ms_pwr_ctrl() has no access to the averaged input value anymore, so now the actual input value is printed; - one logging statement and early return have been removed, so now another logging statement substitutes it. Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Related: SYS#4918 --- M src/common/power_control.c M tests/power/power_test.err 2 files changed, 68 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/21446/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 21f7ce5..592e4f6 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -34,8 +34,8 @@ #include /* how many dB do we raise/lower as maximum (1 ms power level = 2 dB) */ -#define MS_RAISE_MAX_DB 4 -#define MS_LOWER_MAX_DB 8 +#define PWR_RAISE_MAX_DB 4 +#define PWR_LOWER_MAX_DB 8 /* We don't want to deal with floating point, so we scale up */ #define EWMA_SCALE_FACTOR 100 @@ -91,6 +91,55 @@ return *Avg100 / EWMA_SCALE_FACTOR; } +/* 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, + struct lchan_power_ctrl_state *state, + const int rxlev_dbm) +{ + int rxlev_dbm_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); + break; + case BTS_PF_ALGO_NONE: + default: + /* No filtering (pass through) */ + rxlev_dbm_avg = rxlev_dbm; + } + + /* How many dBs measured power should be increased (+) or decreased (-) + * to reach expected power. */ + delta = params->target - rxlev_dbm_avg; + + /* Tolerate small deviations from 'rx-target' */ + if (abs(delta) <= params->hysteresis) { +#if 0 + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, + "Keeping MS power at control level %d (%d dBm) because diff %d dBm " + "from 'rx-target' %d dBm is not significant (hysteresis %d dBm)\n", + ms_power_lvl, ms_dbm, delta, params->target, params->hysteresis); + /* Keep the current power level in sync (just to be sure) */ + state->current = ms_power_lvl; + bts_model_adjst_ms_pwr(lchan); +#endif + return 0; + } + + /* 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 > PWR_RAISE_MAX_DB) + delta = PWR_RAISE_MAX_DB; + else if (delta < -PWR_LOWER_MAX_DB) + delta = -PWR_LOWER_MAX_DB; + + return delta; +} + /*! compute the new MS POWER LEVEL communicated to the MS and store it in lchan. * \param lchan logical channel for which to compute (and in which to store) new power value. * \param[in] ms_power_lvl MS Power Level received from Uplink L1 SACCH Header in SACCH block. @@ -100,13 +149,11 @@ const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm) { - int diff; 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; - int8_t avg_ul_rssi_dbm; const struct bts_power_ctrl_params *params = &bts->ul_power_ctrl; struct lchan_power_ctrl_state *state = &lchan->ms_power_ctrl; @@ -131,43 +178,8 @@ return 0; } - /* Filter UL RSSI to reduce unnecessary Tx power oscillations */ - switch (params->pf_algo) { - case BTS_PF_ALGO_EWMA: - avg_ul_rssi_dbm = do_pf_ewma(params, state, ul_rssi_dbm); - break; - case BTS_PF_ALGO_NONE: - default: - /* No filtering (pass through) */ - avg_ul_rssi_dbm = ul_rssi_dbm; - } - - /* How many dBs measured power should be increased (+) or decreased (-) - to reach expected power. */ - diff = params->target - avg_ul_rssi_dbm; - - - /* Tolerate small deviations from 'rx-target' */ - if (abs(diff) <= params->hysteresis) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, - "Keeping MS power at control level %d (%d dBm) because diff %d dBm " - "from 'rx-target' %d dBm is not significant (hysteresis %d dBm)\n", - ms_power_lvl, ms_dbm, diff, params->target, params->hysteresis); - /* Keep the current power level in sync (just to be sure) */ - state->current = ms_power_lvl; - bts_model_adjst_ms_pwr(lchan); - return 0; - } - - /* don't ever change more than MS_{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 (diff > MS_RAISE_MAX_DB) - diff = MS_RAISE_MAX_DB; - else if (diff < -MS_LOWER_MAX_DB) - diff = -MS_LOWER_MAX_DB; - - new_dbm = ms_dbm + diff; + /* Calculate the new Tx power value (in dBm) */ + new_dbm = ms_dbm + calc_delta(params, state, ul_rssi_dbm); /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on cope with any unsigned dbm value, regardless of band minimal value. */ @@ -190,7 +202,7 @@ 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, - avg_ul_rssi_dbm, params->target); + ul_rssi_dbm, params->target); return 0; } @@ -199,7 +211,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, avg_ul_rssi_dbm, params->target); + ms_power_lvl, state->max, ul_rssi_dbm, params->target); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; diff --git a/tests/power/power_test.err b/tests/power/power_test.err index 988b3ba..cf43081 100644 --- a/tests/power/power_test.err +++ b/tests/power/power_test.err @@ -4,7 +4,7 @@ (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 9 (12 dBm) to 7, 16 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 7 (16 dBm) to 5, 20 dBm (rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5 (20 dBm) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 0 dBm) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5, 20 dBm (rx-ms-pwr-lvl 5, 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 5 (20 dBm) to 3, 24 dBm (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 3 (24 dBm) to 2, 26 dBm (rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2, 26 dBm (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) @@ -13,7 +13,7 @@ (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 0 (30 dBm) to 30, 34 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) (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) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 0 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) @@ -21,17 +21,17 @@ (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 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) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 0 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 -78 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -80 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 11 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -78 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) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 11 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -70 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 -50 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 -50 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -92 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff -3 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 3 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff -5 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 5 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -110 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) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -72 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 -78 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) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -70 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 -80 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -85 dBm, rx-target -75 dBm) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Gerrit-Change-Number: 21446 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 Dec 1 17:41:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:36 +0000 Subject: Change in osmo-bts[master]: power_control: implement Downlink power control References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21447 ) Change subject: power_control: implement Downlink power control ...................................................................... power_control: implement Downlink power control Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Related: SYS#4918 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/power_control.h M src/common/l1sap.c M src/common/power_control.c M src/common/rsl.c M src/common/scheduler.c M src/common/vty.c 7 files changed, 148 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/21447/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 04c6629..6af96fe 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -316,11 +316,9 @@ /* RTP header Marker bit to indicate beginning of speech after pause */ bool rtp_tx_marker; - /* MS power control */ + /* MS/BS power control */ struct lchan_power_ctrl_state ms_power_ctrl; - - /* BTS power reduction (in dB) */ - uint8_t bs_power_red; + struct lchan_power_ctrl_state bs_power_ctrl; struct msgb *pending_rel_ind_msg; diff --git a/include/osmo-bts/power_control.h b/include/osmo-bts/power_control.h index cb566a8..f2e14cf 100644 --- a/include/osmo-bts/power_control.h +++ b/include/osmo-bts/power_control.h @@ -6,3 +6,6 @@ int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm); + +int lchan_bs_pwr_ctrl(struct gsm_lchan *lchan, + const struct gsm48_hdr *gh); diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 2038fba..33d10a5 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1546,6 +1546,7 @@ 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]); } else le = &lchan->lapdm_ch.lapdm_dcch; diff --git a/src/common/power_control.c b/src/common/power_control.c index 592e4f6..71808c8 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -219,3 +219,105 @@ return 1; } + + /*! compute the new Downlink attenuation value for the given logical channel. + * \param lchan logical channel for which to compute (and in which to store) new power value. + * \param[in] gh pointer to the beginning of (presumably) a Measurement Report. + */ +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; + 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) + return 0; + /* Check if this is a Measurement Report */ + if (gh->proto_discr != GSM48_PDISC_RR) + return 0; + if (gh->msg_type != GSM48_MT_RR_MEAS_REP) + return 0; + + /* Check if the measurement results are valid */ + if ((gh->data[1] & 0x40) == 0x40) { + LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, + "The measurement results are not valid\n"); + return 0; + } + + /* See 3GPP TS 44.018, section 10.5.2.20 */ + rxqual_full = (gh->data[2] >> 4) & 0x7; + rxqual_sub = (gh->data[2] >> 1) & 0x7; + + rxlev_full = gh->data[0] & 0x3f; + rxlev_sub = gh->data[1] & 0x3f; + + LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, "Rx DL Measurement Report: " + "RXLEV-FULL(%02u), RXQUAL-FULL(%u), " + "RXLEV-SUB(%02u), RXQUAL-SUB(%u), " + "DTx is %s => using %s\n", + rxqual_full, rxqual_sub, rxlev_full, rxlev_sub, + lchan->tch.dtx.dl_active ? "enabled" : "disabled", + lchan->tch.dtx.dl_active ? "SUB" : "FULL"); + + /* If DTx is active on Downlink, use the '-SUB' */ + if (lchan->tch.dtx.dl_active) { + rxqual = rxqual_sub; + rxlev = rxlev_sub; + } else { /* ... otherwise use the '-FULL' */ + rxqual = rxqual_full; + rxlev = rxlev_full; + } + + /* Bit Error Rate > 0 => reduce by 2 */ + if (rxqual > 0) { + 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; + return 1; + } + + /* Calculate a 'delta' for the current attenuation level */ + delta = calc_delta(params, state, rxlev2dbm(rxlev)); + + /* Basic signal transmission / reception formula: + * + * RxLev = TxPwr - (PathLoss + TxAtt) + * + * Here we want to change RxLev at the MS side, so: + * + * RxLev + Delta = TxPwr - (PathLoss + TxAtt) + Delta + * + * The only parameter we can change here is TxAtt, so: + * + * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta + * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) + */ + new = state->current - delta; + if (new > state->max) + new = state->max; + if (new < 0) + new = 0; + + 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, 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, delta); + return 0; + } +} diff --git a/src/common/rsl.c b/src/common/rsl.c index 8760c24..2ebfb32 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1036,8 +1036,8 @@ lchan->tch_mode = 0; memset(&lchan->encr, 0, sizeof(lchan->encr)); memset(&lchan->ho, 0, sizeof(lchan->ho)); - lchan->bs_power_red = 0; memset(&lchan->ms_power_ctrl, 0, sizeof(lchan->ms_power_ctrl)); + memset(&lchan->bs_power_ctrl, 0, sizeof(lchan->bs_power_ctrl)); lchan->rqd_ta = 0; copy_sacch_si_to_lchan(lchan); memset(&lchan->tch, 0, sizeof(lchan->tch)); @@ -1153,11 +1153,16 @@ LOGPLCHAN(lchan, DRSL, LOGL_DEBUG, "rx Channel Activation in state: %s.\n", gsm_lchans_name(lchan->state)); - /* Initialize channel defaults */ + /* Initialize MS Power Control defaults */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(lchan->ts->trx->bts->band, 0); lchan->ms_power_ctrl.current = lchan->ms_power_ctrl.max; lchan->ms_power_ctrl.fixed = true; + /* Initialize BS Power Control defaults */ + lchan->bs_power_ctrl.max = 2 * 15; + lchan->bs_power_ctrl.current = 0; + lchan->bs_power_ctrl.fixed = true; + rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); /* 9.3.3 Activation Type */ @@ -1209,9 +1214,11 @@ return rsl_tx_chan_act_nack(lchan, RSL_ERR_SERV_OPT_UNIMPL); } - lchan->bs_power_red = BS_POWER2DB(*TLVP_VAL(&tp, RSL_IE_BS_POWER)); + lchan->bs_power_ctrl.max = BS_POWER2DB(*TLVP_VAL(&tp, RSL_IE_BS_POWER)); + lchan->bs_power_ctrl.current = lchan->bs_power_ctrl.max; + LOGPLCHAN(lchan, DRSL, LOGL_DEBUG, "BS Power attenuation %u dB\n", - lchan->bs_power_red); + lchan->bs_power_ctrl.current); } /* 9.3.13 MS Power */ @@ -1224,7 +1231,6 @@ if (TLVP_PRES_LEN(&tp, RSL_IE_TIMING_ADVANCE, 1)) lchan->rqd_ta = *TLVP_VAL(&tp, RSL_IE_TIMING_ADVANCE); - /* 9.3.32 BS Power Parameters */ /* 9.3.31 MS Power Parameters */ if (TLVP_PRESENT(&tp, RSL_IE_MS_POWER_PARAM)) { /* Spec explicitly states BTS should only perform @@ -1232,6 +1238,14 @@ * Parameters' IE is present! */ lchan->ms_power_ctrl.fixed = false; } + + /* 9.3.32 BS Power Parameters */ + if (TLVP_PRESENT(&tp, RSL_IE_BS_POWER_PARAM)) { + /* NOTE: it's safer to start from 0 */ + lchan->bs_power_ctrl.current = 0; + lchan->bs_power_ctrl.fixed = false; + } + /* 9.3.16 Physical Context */ /* 9.3.29 SACCH Information */ @@ -1753,7 +1767,7 @@ struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; struct tlv_parsed tp; - uint8_t old_bs_power_red; + uint8_t old, new; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); @@ -1766,18 +1780,24 @@ return rsl_tx_error_report(msg->trx, RSL_ERR_SERV_OPT_UNIMPL, &dch->chan_nr, NULL, msg); } - old_bs_power_red = lchan->bs_power_red; - lchan->bs_power_red = BS_POWER2DB(*TLVP_VAL(&tp, RSL_IE_BS_POWER)); - - LOGPLCHAN(lchan, DRSL, LOGL_INFO, "BS POWER CONTROL Attenuation %d -> %d dB\n", - old_bs_power_red, lchan->bs_power_red); + 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)) { - /* Spec explicitly states BTS should perform autonomous - * BS power control loop in BTS if 'BS Power Parameters' - * IE is present! WE don't support that. */ - return rsl_tx_error_report(msg->trx, RSL_ERR_OPT_IE_ERROR, &dch->chan_nr, NULL, msg); + /* 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; + } else { + lchan->bs_power_ctrl.current = new; + lchan->bs_power_ctrl.fixed = true; + } + + if (lchan->bs_power_ctrl.current != old) { + LOGPLCHAN(lchan, DRSL, LOGL_INFO, "BS POWER CONTROL: " + "attenuation change %u -> %u dB\n", + old, lchan->bs_power_ctrl.current); } return 0; @@ -2975,7 +2995,7 @@ msgb_tlv_put(msg, RSL_IE_UPLINK_MEAS, ie_len, meas_res); lchan->meas.flags &= ~LC_UL_M_F_RES_VALID; } - msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power_red / 2); + msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power_ctrl.current / 2); if (lchan->meas.flags & LC_UL_M_F_L1_VALID) { msgb_tv_fixed_put(msg, RSL_IE_L1_INFO, 2, lchan->meas.l1_info); lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 84918e3..3d780fd 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1237,7 +1237,7 @@ /* BS Power reduction (in dB) per logical channel */ if (l1cs->lchan != NULL) - br->att = l1cs->lchan->bs_power_red; + br->att = l1cs->lchan->bs_power_ctrl.current; /* encrypt */ if (br->burst_len && l1cs->dl_encr_algo) { diff --git a/src/common/vty.c b/src/common/vty.c index 0e78ad3..f366956 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1381,10 +1381,13 @@ lchan->state == LCHAN_S_BROKEN ? " Error reason: " : "", lchan->state == LCHAN_S_BROKEN ? lchan->broken_reason : "", VTY_NEWLINE); +#if 0 + /* TODO: print more info about MS/BS Power Control */ vty_out(vty, " BS Power: %d dBm, MS Power: %u dBm%s", lchan->ts->trx->nominal_power - (lchan->ts->trx->max_power_red + lchan->bs_power_red), ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), VTY_NEWLINE); +#endif vty_out(vty, " Channel Mode / Codec: %s%s", gsm48_chan_mode_name(lchan->tch_mode), VTY_NEWLINE); @@ -1426,7 +1429,6 @@ if (lchan->loopback) vty_out(vty, " RTP/PDCH Loopback Enabled%s", VTY_NEWLINE); vty_out(vty, " Radio Link Failure Counter 'S': %d%s", lchan->s, VTY_NEWLINE); - /* TODO: MS Power Control */ } static void lchan_dump_short_vty(struct vty *vty, const struct gsm_lchan *lchan) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Gerrit-Change-Number: 21447 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 Dec 1 17:41:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:36 +0000 Subject: Change in osmo-bts[master]: rsl: properly initialize MS/BS Power Control state References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21448 ) Change subject: rsl: properly initialize MS/BS Power Control state ...................................................................... rsl: properly initialize MS/BS Power Control state struct lchan_power_ctrl_state actually contains more fields, which also must be initialized on CHANnel ACTIVation. Change-Id: Id9719088fc6e9479c13e9b327a3466d9e2810a3a Related: SYS#4918 --- M src/common/rsl.c 1 file changed, 10 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/48/21448/1 diff --git a/src/common/rsl.c b/src/common/rsl.c index 2ebfb32..30fa259 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1154,14 +1154,18 @@ gsm_lchans_name(lchan->state)); /* Initialize MS Power Control defaults */ - lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(lchan->ts->trx->bts->band, 0); - lchan->ms_power_ctrl.current = lchan->ms_power_ctrl.max; - lchan->ms_power_ctrl.fixed = true; + 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.max = 2 * 15; - lchan->bs_power_ctrl.current = 0; - lchan->bs_power_ctrl.fixed = true; + 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)); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id9719088fc6e9479c13e9b327a3466d9e2810a3a Gerrit-Change-Number: 21448 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 Dec 1 17:41:37 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 17:41:37 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: ensure no DL power attenuation on C0 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21449 ) Change subject: osmo-bts-trx/scheduler: ensure no DL power attenuation on C0 ...................................................................... osmo-bts-trx/scheduler: ensure no DL power attenuation on C0 When [baseband] frequency hopping is in use, Downlink bursts from additional transceivers may end up being transmitted on TRX0/C0. In this case, we must not apply per-lchan attenuation, because the BTS shall maintain constant power level on that TRX. Change-Id: Id171df70447283b00da965e1f81dfac20e35495c Related: SYS#4918 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/49/21449/1 diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index c000324..1552a86 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -146,9 +146,12 @@ l1h = pinst->u.osmotrx.hdl; } - /* update dummy burst mask for C0 */ - if (pinst->trx == bts->c0) + if (pinst->trx == bts->c0) { + /* update dummy burst mask for C0 */ c0_mask |= (1 << tn); + /* ensure no attenuation on C0 */ + br.att = 0; + } trx_if_send_burst(l1h, &br); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id171df70447283b00da965e1f81dfac20e35495c Gerrit-Change-Number: 21449 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 Dec 1 19:32:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:32:55 +0000 Subject: Change in osmo-bsc[master]: Store GPRS MOs directly under BTS SiteMgr object In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21423 ) Change subject: Store GPRS MOs directly under BTS SiteMgr object ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/include/osmocom/bsc/bts.h at a362 PS1, Line 362: struct { : struct gsm_abis_mo mo; : uint16_t bvci; : uint8_t timer[11]; : struct gprs_rlc_cfg rlc_cfg; : } cell; the "cell" could actually stay here, as there is always exactly one per BTS. https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/include/osmocom/bsc/bts_sm.h File include/osmocom/bsc/bts_sm.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/include/osmocom/bsc/bts_sm.h at 69 PS1, Line 69: struct this one is per BTS, isn't it? One Cell == One BTS -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 Gerrit-Change-Number: 21423 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:32: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 Dec 1 19:34:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:34:35 +0000 Subject: Change in osmo-bts[master]: struct gsm_bts: move ul_power_{target, hysteresis} to ul_power_ctrl In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21434 ) Change subject: struct gsm_bts: move ul_power_{target,hysteresis} to ul_power_ctrl ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21434/1/include/osmo-bts/bts.h File include/osmo-bts/bts.h: https://gerrit.osmocom.org/c/osmo-bts/+/21434/1/include/osmo-bts/bts.h at 304 PS1, Line 304: * Target value to strive to */ : int target; : /* Tolerated deviation from target */ : int hysteresis; I know, unrelated to this patch, but it would be great if at least the comment would state in which unit (dBm for target / dB for hysteresis?) they are. Another approach that I typically use in such situations is to append the unit like target_dBm and hysteresis_mdB. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3886c7aedf3870536f1750f864cf698302ddf2df Gerrit-Change-Number: 21434 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:34: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 Tue Dec 1 19:35:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:35:00 +0000 Subject: Change in osmo-bts[master]: bts: rename MS_UL_PF_ALGO_{NONE, EWMA} to BTS_PF_ALGO_{NONE, EWMA} In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21435 ) Change subject: bts: rename MS_UL_PF_ALGO_{NONE,EWMA} to BTS_PF_ALGO_{NONE,EWMA} ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I580512eea1d329a4d25ccbd6fc2ab98b083ec51d Gerrit-Change-Number: 21435 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:35: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 Dec 1 19:36:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:36:09 +0000 Subject: Change in osmo-bts[master]: bts: generalize a struct for UL/DL power control parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21436 ) Change subject: bts: generalize a struct for UL/DL power control parameters ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21436/1/include/osmo-bts/bts.h File include/osmo-bts/bts.h: https://gerrit.osmocom.org/c/osmo-bts/+/21436/1/include/osmo-bts/bts.h at 106 PS1, Line 106: /* Target value to strive to */ : int target; : /* Tolerated deviation from target */ see my comment about adding the units to the commment. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I504de17fb3c1300c2a3faa6d7d3a9eb1b74b214b Gerrit-Change-Number: 21436 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:36: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 Dec 1 19:37:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:37:08 +0000 Subject: Change in osmo-bts[master]: bts: add Downlink power control parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21437 ) Change subject: bts: add Downlink power control parameters ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I724f661e9ce5dd75f95fb7b270a89b2e2a73c951 Gerrit-Change-Number: 21437 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:37: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 Dec 1 19:39:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:39:12 +0000 Subject: Change in osmo-bts[master]: vty: add commands for Downlink power control In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21438 ) Change subject: vty: add commands for Downlink power control ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c at 655 PS1, Line 655: i I would argue we can afford a full !strcmp here. It's not like we are processing millions of VTY commands per second. https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c at 676 PS1, Line 676: i likewise, also below further cases. -- 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: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:39: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 Tue Dec 1 19:39:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:39:39 +0000 Subject: Change in osmo-bts[master]: l1sap: make sure that UL SACCH is always 23 octets long In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21439 ) Change subject: l1sap: make sure that UL SACCH is always 23 octets long ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1c8a43337fbc1acfab3c0f0713c75ded95d69512 Gerrit-Change-Number: 21439 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19: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 Tue Dec 1 19:40:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:40:22 +0000 Subject: Change in osmo-bts[master]: tx_power: remove unused get_p[_trxout]_target_mdBm_lchan() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21440 ) Change subject: tx_power: remove unused get_p[_trxout]_target_mdBm_lchan() ...................................................................... Patch Set 1: why? maybe we need it one day. Does it negatively affect your code in any way? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iaec20bf2711d3bc022325cd77ea8c675caeb7987 Gerrit-Change-Number: 21440 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:40: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 Tue Dec 1 19:41:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:41:47 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h at 165 PS1, Line 165: uint8_t current; : uint8_t max; : bool fixed; units ? - ah I see you're just moving. Would still be worth afollow-up patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:41: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 Tue Dec 1 19:42:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:42:25 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21442 ) Change subject: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr ...................................................................... Patch Set 1: Code-Review+1 explanation "why" would be nice in changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Gerrit-Change-Number: 21442 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19: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 Dec 1 19:42:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:42:38 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21443 ) Change subject: power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idf46e47f20f031ff9dded1be1e6c4337d7b423e7 Gerrit-Change-Number: 21443 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19: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 Tue Dec 1 19:43:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:43:02 +0000 Subject: Change in osmo-bts[master]: power_control: generalize and rename lchan_ul_pf_ewma() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21444 ) Change subject: power_control: generalize and rename lchan_ul_pf_ewma() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16c2e1b997f2b8af44d47809420293f072335bbd Gerrit-Change-Number: 21444 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:43: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 Dec 1 19:43:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:43:21 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21445 ) Change subject: power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I177d82cd61d59256976007fed2f7da400b814789 Gerrit-Change-Number: 21445 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:43: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 Dec 1 19:44:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 19:44:23 +0000 Subject: Change in osmo-bts[master]: vty: add commands for Downlink power control In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21438 ) Change subject: vty: add commands for Downlink power control ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c at 655 PS1, Line 655: i > I would argue we can afford a full !strcmp here. [?] We definitely not going to have more directions than Uplink and Downlink, so I don't see a reason to use strcmp() here. I guess to improve readability? I would just add comments then. -- 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: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:44:23 +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 Dec 1 19:45:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:45:32 +0000 Subject: Change in osmo-bts[master]: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21446 ) Change subject: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21446/1/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21446/1/src/common/power_control.c at 120 PS1, Line 120: # I agree that this log message should go (and that for sure it never should have been LOGL_INFO). However, this is a change to the existing code, I suggest to just move / restructure in one patch and then deactivate/remove code in a separate patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Gerrit-Change-Number: 21446 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:45: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 Tue Dec 1 19:46:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:46:54 +0000 Subject: Change in osmo-bts[master]: rsl: properly initialize MS/BS Power Control state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21448 ) Change subject: rsl: properly initialize MS/BS Power Control state ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id9719088fc6e9479c13e9b327a3466d9e2810a3a Gerrit-Change-Number: 21448 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19: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 Tue Dec 1 19:47:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 1 Dec 2020 19:47:34 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: ensure no DL power attenuation on C0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21449 ) Change subject: osmo-bts-trx/scheduler: ensure no DL power attenuation on C0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id171df70447283b00da965e1f81dfac20e35495c Gerrit-Change-Number: 21449 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 01 Dec 2020 19:47: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 Dec 1 19:50:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 19:50:08 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h at 165 PS1, Line 165: uint8_t current; : uint8_t max; : bool fixed; > units ? - ah I see you're just moving. Would still be worth afollow-up patch. This structure is a bit special: in case of Downlink, it stores attenuation in dB; in case of Uplink, it stores MS Power Level, so we cannot specify specific units here. I can also add a comment. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 01 Dec 2020 19:50: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 Tue Dec 1 20:01:59 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 1 Dec 2020 20:01:59 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: get rid of magic numbers for E1 slots 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-mgw/+/21385 to look at the new patch set (#4). Change subject: mgcp_client: get rid of magic numbers for E1 slots ...................................................................... mgcp_client: get rid of magic numbers for E1 slots use NUM_E1_TS-1 instead of 31 in relation of E1 timeslot count Change-Id: Iee134d70f05883fcd2e58e0b9c78ed70aea16695 --- M src/libosmo-mgcp-client/Makefile.am M src/libosmo-mgcp-client/mgcp_client.c 2 files changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/85/21385/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iee134d70f05883fcd2e58e0b9c78ed70aea16695 Gerrit-Change-Number: 21385 Gerrit-PatchSet: 4 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 Dec 1 20:02:45 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 1 Dec 2020 20:02:45 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: get rid of magic numbers for E1 slots In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21385 ) Change subject: mgcp_client: get rid of magic numbers for E1 slots ...................................................................... Patch Set 4: (2 comments) (ensure all comments are sent) https://gerrit.osmocom.org/c/osmo-mgw/+/21385/3/src/libosmo-mgcp-client/Makefile.am File src/libosmo-mgcp-client/Makefile.am: https://gerrit.osmocom.org/c/osmo-mgw/+/21385/3/src/libosmo-mgcp-client/Makefile.am at 12 PS3, Line 12: $ > this one is correct, we use the #define Done https://gerrit.osmocom.org/c/osmo-mgw/+/21385/3/src/libosmo-mgcp-client/Makefile.am at 19 PS3, Line 19: $ > this one is incorrect, as it means we create a runtime library dependency to a library of which we [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iee134d70f05883fcd2e58e0b9c78ed70aea16695 Gerrit-Change-Number: 21385 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 01 Dec 2020 20:02: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 Dec 1 21:48:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 21:48:30 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: ensure no DL power attenuation on C0 In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21449 ) Change subject: osmo-bts-trx/scheduler: ensure no DL power attenuation on C0 ...................................................................... osmo-bts-trx/scheduler: ensure no DL power attenuation on C0 When [baseband] frequency hopping is in use, Downlink bursts from additional transceivers may end up being transmitted on TRX0/C0. In this case, we must not apply per-lchan attenuation, because the BTS shall maintain constant power level on that TRX. Change-Id: Id171df70447283b00da965e1f81dfac20e35495c Related: SYS#4918 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 5 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index c000324..1552a86 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -146,9 +146,12 @@ l1h = pinst->u.osmotrx.hdl; } - /* update dummy burst mask for C0 */ - if (pinst->trx == bts->c0) + if (pinst->trx == bts->c0) { + /* update dummy burst mask for C0 */ c0_mask |= (1 << tn); + /* ensure no attenuation on C0 */ + br.att = 0; + } trx_if_send_burst(l1h, &br); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id171df70447283b00da965e1f81dfac20e35495c Gerrit-Change-Number: 21449 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 Tue Dec 1 21:50:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 21:50:02 +0000 Subject: Change in osmo-bts[master]: tx_power: remove unused get_p[_trxout]_target_mdBm_lchan() In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21440 ) Change subject: tx_power: remove unused get_p[_trxout]_target_mdBm_lchan() ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iaec20bf2711d3bc022325cd77ea8c675caeb7987 Gerrit-Change-Number: 21440 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria 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 Tue Dec 1 21:53:53 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 1 Dec 2020 21:53:53 +0000 Subject: Change in osmo-bts[master]: vty: fix dump_lchan_trx_ts(): dump dedicated channels only References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21450 ) Change subject: vty: fix dump_lchan_trx_ts(): dump dedicated channels only ...................................................................... vty: fix dump_lchan_trx_ts(): dump dedicated channels only It does not make sense to dump CCCH/CBCH as dedicated channels: OsmoBTS# show lchan BTS 0, TRX 0, Timeslot 0, Lchan 4: Type CCCH State: ACTIVE BS (Downlink) Power Control (autonomous): Channel reduction: 0 dB (max 0 dB) TRX reduction: 0 dB Actual / Nominal power: 13 dBm / 13 dBm MS (Uplink) Power Control (autonomous): Current power level: 0, -39 dBm (max 0, -39 dBm) Channel Mode / Codec: SIGNALLING LAPDm SAPIs: DCCH --, SACCH -- Valid System Information: 0x00000060 MS Timing Offset: 0, propagation delay: 0 symbols Radio Link Failure Counter 'S': 0 so let's only dump SDCCH, TCH/F, and TCH/H. Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 --- M src/common/vty.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/50/21450/1 diff --git a/src/common/vty.c b/src/common/vty.c index 7baddef..8837079 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1405,9 +1405,15 @@ int lchan_nr; for (lchan_nr = 0; lchan_nr < TS_MAX_LCHAN; lchan_nr++) { const struct gsm_lchan *lchan = &ts->lchan[lchan_nr]; - if (lchan->state == LCHAN_S_NONE) + switch (lchan->state) { + case GSM_LCHAN_SDCCH: + case GSM_LCHAN_TCH_F: + case GSM_LCHAN_TCH_H: + dump_cb(vty, lchan); + break; + default: continue; - dump_cb(vty, lchan); + } } return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 Gerrit-Change-Number: 21450 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Dec 1 23:59:44 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 1 Dec 2020 23:59:44 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master?= =?UTF-8?Q?-osmo-sip-connector_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,a4=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#2932?= Message-ID: <1815559420.609.1606867184370@jenkins.osmocom.org> See Changes: ------------------------------------------ [...truncated 216.87 KB...] make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' Making install in tests make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' Making install in contrib make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making install in systemd make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst//lib/systemd/system' /usr/bin/install -c -m 644 ../../../../contrib/systemd/osmo-sip-connector.service '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst//lib/systemd/system' make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making install in doc make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' Making install in examples make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector/examples/osmo-sip-connector' /bin/mkdir -p '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/etc/osmocom' /usr/bin/install -c -m 644 ../../../../doc/examples/osmo-sip-connector.cfg '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector/examples/osmo-sip-connector' /usr/bin/install -c -m 644 ../../../../doc/examples/osmo-sip-connector.cfg '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/etc/osmocom' make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' Making install in manuals make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' if [ "" != "1" ]; then \ for i in osmosipconnector-usermanual.pdf osmosipconnector-vty-reference.pdf; do \ install -vDm644 "$i" "/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/$i" || exit 1; \ done; \ fi install: creating directory '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc' 'osmosipconnector-usermanual.pdf' -> '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/osmosipconnector-usermanual.pdf' 'osmosipconnector-vty-reference.pdf' -> '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/osmosipconnector-vty-reference.pdf' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' Making uninstall in src make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' ( cd '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/bin' && rm -f osmo-sip-connector ) make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' Making uninstall in tests make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[2]: Nothing to be done for 'uninstall'. make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' Making uninstall in contrib make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making uninstall in systemd make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' ( cd '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst//lib/systemd/system' && rm -f osmo-sip-connector.service ) make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[3]: Nothing to be done for 'uninstall-am'. make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making uninstall in doc make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' Making uninstall in examples make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' ( cd '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector/examples/osmo-sip-connector' && rm -f osmo-sip-connector.cfg ) ( cd '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/etc/osmocom' && rm -f osmo-sip-connector.cfg ) make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' Making uninstall in manuals make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' if [ "" != "1" ]; then \ for i in osmosipconnector-usermanual.pdf osmosipconnector-vty-reference.pdf; do \ rm -v "/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/$i"; \ done; \ fi removed '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/osmosipconnector-usermanual.pdf' removed '/tmp/am-dc-15665//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/osmosipconnector-vty-reference.pdf' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[3]: Nothing to be done for 'uninstall-am'. make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[2]: Nothing to be done for 'uninstall-am'. make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make dist-bzip2 dist-gzip am__post_remove_distdir='@:' make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' if test -d "osmo-sip-connector-1.4.1.6-05ee"; then find "osmo-sip-connector-1.4.1.6-05ee" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "osmo-sip-connector-1.4.1.6-05ee" || { sleep 5 && rm -rf "osmo-sip-connector-1.4.1.6-05ee"; }; else :; fi test -d "osmo-sip-connector-1.4.1.6-05ee" || mkdir "osmo-sip-connector-1.4.1.6-05ee" (cd src && make top_distdir=../osmo-sip-connector-1.4.1.6-05ee distdir=../osmo-sip-connector-1.4.1.6-05ee/src \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' (cd tests && make top_distdir=../osmo-sip-connector-1.4.1.6-05ee distdir=../osmo-sip-connector-1.4.1.6-05ee/tests \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' (cd contrib && make top_distdir=../osmo-sip-connector-1.4.1.6-05ee distdir=../osmo-sip-connector-1.4.1.6-05ee/contrib \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' (cd systemd && make top_distdir=../../osmo-sip-connector-1.4.1.6-05ee distdir=../../osmo-sip-connector-1.4.1.6-05ee/contrib/systemd \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' (cd doc && make top_distdir=../osmo-sip-connector-1.4.1.6-05ee distdir=../osmo-sip-connector-1.4.1.6-05ee/doc \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' (cd examples && make top_distdir=../../osmo-sip-connector-1.4.1.6-05ee distdir=../../osmo-sip-connector-1.4.1.6-05ee/doc/examples \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' (cd manuals && make top_distdir=../../osmo-sip-connector-1.4.1.6-05ee distdir=../../osmo-sip-connector-1.4.1.6-05ee/doc/manuals \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make \ top_distdir="osmo-sip-connector-1.4.1.6-05ee" distdir="osmo-sip-connector-1.4.1.6-05ee" \ dist-hook make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' echo 1.4.1.6-05ee > osmo-sip-connector-1.4.1.6-05ee/.tarball-version make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' test -n "" \ || find "osmo-sip-connector-1.4.1.6-05ee" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec /bin/bash /build/osmo-sip-connector-1.4.1.6-05ee/install-sh -c -m a+r {} {} \; \ || chmod -R a+r "osmo-sip-connector-1.4.1.6-05ee" tardir=osmo-sip-connector-1.4.1.6-05ee && ${TAR-tar} chof - "$tardir" | BZIP2=${BZIP2--9} bzip2 -c >osmo-sip-connector-1.4.1.6-05ee.tar.bz2 tardir=osmo-sip-connector-1.4.1.6-05ee && ${TAR-tar} chof - "$tardir" | GZIP=--best gzip -c >osmo-sip-connector-1.4.1.6-05ee.tar.gz make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' if test -d "osmo-sip-connector-1.4.1.6-05ee"; then find "osmo-sip-connector-1.4.1.6-05ee" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "osmo-sip-connector-1.4.1.6-05ee" || { sleep 5 && rm -rf "osmo-sip-connector-1.4.1.6-05ee"; }; else :; fi make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' Making distclean in src make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' test -z "osmo-sip-connector" || rm -f osmo-sip-connector rm -f *.o rm -f *.tab.c test -z "" || rm -f rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags test . = "../../../src" || test -z "" || rm -f rm -rf ./.deps rm -f Makefile make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' Making distclean in tests make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' test -z "" || rm -f test . = "../../../tests" || test -z "" || rm -f rm -f Makefile make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' Making distclean in contrib make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making distclean in systemd make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' test -z "" || rm -f test . = "../../../../contrib/systemd" || test -z "" || rm -f rm -f Makefile make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' test -z "osmo-sip-connector.spec" || rm -f osmo-sip-connector.spec rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags test . = "../../../contrib" || test -z "" || rm -f make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' rm -f Makefile make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making distclean in doc make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' Making distclean in examples make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' test -z "" || rm -f test . = "../../../../doc/examples" || test -z "" || rm -f rm -f Makefile make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' Making distclean in manuals make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' test -z "" || rm -f rm -rf osmosipconnector-usermanual__*.png osmosipconnector-usermanual__*.svg osmosipconnector-usermanual.check osmosipconnector-usermanual.pdf osmosipconnector-usermanual.html osmosipconnector-vty-reference.pdf osmosipconnector-vty-reference.lint generated common build test . = "../../../../doc/manuals" || test -z "" || rm -f rm -f Makefile make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' test -z "" || rm -f rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags test . = "../../../doc" || test -z "" || rm -f make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' rm -f Makefile make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' test -z "" || rm -f rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags test . = "../.." || test -z "" || rm -f rm -f cscope.out cscope.in.out cscope.po.out cscope.files make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' rm -f config.status config.cache config.log configure.lineno config.status.lineno rm -f Makefile make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' if test -d "osmo-sip-connector-1.4.1.6-05ee"; then find "osmo-sip-connector-1.4.1.6-05ee" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "osmo-sip-connector-1.4.1.6-05ee" || { sleep 5 && rm -rf "osmo-sip-connector-1.4.1.6-05ee"; }; else :; fi ================================================================= osmo-sip-connector-1.4.1.6-05ee archives ready for distribution: osmo-sip-connector-1.4.1.6-05ee.tar.gz osmo-sip-connector-1.4.1.6-05ee.tar.bz2 ================================================================= + '[' 1 = 1 ']' + '[' 1 = 1 ']' + make -C /build/doc/manuals publish make: Entering directory '/build/doc/manuals' rsync -avz -e "ssh -o 'UserKnownHostsFile=/build/deps/install/stow/osmo-gsm-manuals/share/osmo-gsm-manuals/build/known_hosts' -p 48" osmosipconnector-usermanual.pdf osmosipconnector-vty-reference.pdf docs at rita.osmocom.org:web-files/latest/ Warning: Permanently added the ECDSA host key for IP address '[144.76.43.76]:48' to the list of known hosts. Permission denied (publickey,keyboard-interactive). rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2] make: *** [publish] Error 255 /build/deps/install/stow/osmo-gsm-manuals/share/osmo-gsm-manuals/build/Makefile.common.inc:31: recipe for target 'publish' failed make: Leaving directory '/build/doc/manuals' Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Dec 2 00:51:05 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 2 Dec 2020 00:51:05 +0000 Subject: Change in osmo-bsc[master]: Store GPRS MOs directly under BTS SiteMgr object In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21423 ) Change subject: Store GPRS MOs directly under BTS SiteMgr object ...................................................................... Patch Set 1: (1 comment) In theory there should be 1 NSE, 1-n NSVCs per Site. And 1 CELL per BTS (GSM Cell). There might be special cases which I ignored here. https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/src/osmo-bsc/bts_ipaccess_nanobts.c File src/osmo-bsc/bts_ipaccess_nanobts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/src/osmo-bsc/bts_ipaccess_nanobts.c at 214 PS1, Line 214: case NM_OC_GPRS_NSVC: Why you don't also change NSVCs? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 Gerrit-Change-Number: 21423 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Wed, 02 Dec 2020 00:51:05 +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 Dec 2 01:43:12 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 01:43:12 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc6f14f184f2_f3a2ae56450e5f0702297@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: [ 171s] ^ [ 171s] In file included from gprs_ns2_fr.c:45:0: [ 171s] /usr/include/linux/if.h:252:8: error: redefinition of 'struct ifconf' [ 171s] struct ifconf { [ 171s] ^ [ 171s] In file included from gprs_ns2_fr.c:39:0: [ 171s] /usr/include/net/if.h:176:8: note: originally defined here [ 171s] struct ifconf [ 171s] ^ [ 171s] Makefile:542: recipe for target 'gprs_ns2_fr.lo' failed [ 171s] make[3]: *** [gprs_ns2_fr.lo] Error 1 [ 171s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/gb' [ 171s] Makefile:690: recipe for target 'all-recursive' failed [ 171s] make[2]: *** [all-recursive] Error 1 [ 171s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 171s] Makefile:468: recipe for target 'all' failed [ 171s] make[1]: *** [all] Error 2 [ 171s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 171s] dh_auto_build: make -j1 returned exit code 2 [ 171s] debian/rules:15: recipe for target 'build' failed [ 171s] make: *** [build] Error 2 [ 171s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 171s] ### VM INTERACTION START ### [ 172s] Powering off. [ 172s] [ 162.853953] reboot: Power down [ 172s] ### VM INTERACTION END ### [ 172s] [ 172s] lamb27 failed "build libosmocore_1.4.0.230.1e72d.dsc" at Wed Dec 2 01:39:07 UTC 2020. [ 172s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 01:50:04 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 01:50:04 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc6f2d5d6645_f3a2ae56450e5f0702565@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: [ 155s] ^ [ 155s] In file included from gprs_ns2_fr.c:45:0: [ 155s] /usr/include/linux/if.h:252:8: error: redefinition of 'struct ifconf' [ 155s] struct ifconf { [ 155s] ^ [ 155s] In file included from gprs_ns2_fr.c:39:0: [ 155s] /usr/include/net/if.h:176:8: note: originally defined here [ 155s] struct ifconf [ 155s] ^ [ 155s] Makefile:542: recipe for target 'gprs_ns2_fr.lo' failed [ 155s] make[3]: *** [gprs_ns2_fr.lo] Error 1 [ 155s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/gb' [ 155s] Makefile:690: recipe for target 'all-recursive' failed [ 155s] make[2]: *** [all-recursive] Error 1 [ 155s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 155s] Makefile:468: recipe for target 'all' failed [ 155s] make[1]: *** [all] Error 2 [ 155s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 155s] dh_auto_build: make -j1 returned exit code 2 [ 155s] debian/rules:15: recipe for target 'build' failed [ 155s] make: *** [build] Error 2 [ 155s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 155s] ### VM INTERACTION START ### [ 156s] Powering off. [ 156s] [ 147.597715] reboot: Power down [ 156s] ### VM INTERACTION END ### [ 156s] [ 156s] lamb56 failed "build libosmocore_1.4.0.230.1e72d.dsc" at Wed Dec 2 01:48:38 UTC 2020. [ 156s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 02:11:46 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 02:11:46 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc6f7fc5a327_f3a2ae56450e5f070385f@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: [ 134s] make[2]: Nothing to be done for 'all'. [ 134s] make[2]: Leaving directory '/usr/src/packages/BUILD/include' [ 134s] Making all in src [ 134s] make[2]: Entering directory '/usr/src/packages/BUILD/src' [ 134s] CXX gprs_debug.lo [ 134s] CC csn1.lo [ 136s] CC gsm_rlcmac.lo [ 137s] CXX gprs_bssgp_pcu.lo [ 137s] gprs_bssgp_pcu.cpp: In function 'int ns_create_nsvc(gprs_rlcmac_bts*, uint16_t, const osmo_sockaddr*, const osmo_sockaddr*, const uint16_t*, uint16_t)': [ 137s] gprs_bssgp_pcu.cpp:987:13: error: 'GPRS_NS2_LL_UDP' was not declared in this scope [ 137s] GPRS_NS2_LL_UDP); [ 137s] ^ [ 137s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 137s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 137s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 137s] Makefile:405: recipe for target 'all-recursive' failed [ 137s] make[1]: *** [all-recursive] Error 1 [ 137s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 137s] dh_auto_build: make -j1 returned exit code 2 [ 137s] debian/rules:12: recipe for target 'build' failed [ 137s] make: *** [build] Error 2 [ 137s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 137s] ### VM INTERACTION START ### [ 138s] Powering off. [ 138s] [ 130.178746] reboot: Power down [ 138s] ### VM INTERACTION END ### [ 138s] [ 138s] sheep88 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Wed Dec 2 02:10:53 UTC 2020. [ 138s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 02:56:22 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 02:56:22 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc7026926f96_f3a2ae56450e5f0705999@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: [ 314s] make[4]: Entering directory '/usr/src/packages/BUILD/src/gbproxy' [ 314s] CC gb_proxy.o [ 314s] gb_proxy.c: In function 'gbprox_relay2nse': [ 314s] gb_proxy.c:846:17: error: 'struct ' has no member named 'link_selector' [ 314s] nsp.u.unitdata.link_selector = tlli; [ 314s] ^ [ 315s] Makefile:482: recipe for target 'gb_proxy.o' failed [ 315s] make[4]: *** [gb_proxy.o] Error 1 [ 315s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/gbproxy' [ 315s] Makefile:383: recipe for target 'all-recursive' failed [ 315s] make[3]: *** [all-recursive] Error 1 [ 315s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 315s] Makefile:449: recipe for target 'all-recursive' failed [ 315s] make[2]: *** [all-recursive] Error 1 [ 315s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 315s] Makefile:380: recipe for target 'all' failed [ 315s] make[1]: *** [all] Error 2 [ 315s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 315s] dh_auto_build: make -j1 returned exit code 2 [ 315s] debian/rules:45: recipe for target 'build' failed [ 315s] make: *** [build] Error 2 [ 315s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 315s] ### VM INTERACTION START ### [ 316s] Powering off. [ 316s] [ 303.834375] reboot: Power down [ 316s] ### VM INTERACTION END ### [ 316s] [ 316s] lamb01 failed "build osmo-sgsn_1.6.0.67.d97ff.dsc" at Wed Dec 2 02:54:53 UTC 2020. [ 316s] -- 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 Dec 2 03:01:24 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 2 Dec 2020 03:01:24 +0000 Subject: Change in osmo-bsc[master]: OML: sysmobts: add state to track feature negotiation References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21451 ) Change subject: OML: sysmobts: add state to track feature negotiation ...................................................................... OML: sysmobts: add state to track feature negotiation Add variables to track feature negotiation for sysmobts. In preparation for the NSVC MO which need to check for IPv6 feature. Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c 3 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/51/21451/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 22839d6..de0994f 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -295,6 +295,8 @@ uint16_t bts_id; uint32_t flags; uint32_t rsl_ip; + bool feature_dynamic; + bool feature_negotiated; } ip_access; struct { struct { diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 73dc2d0..dab5bb6 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -596,6 +596,8 @@ osmo_bts_has_feature(&bts->features, i), osmo_bts_has_feature(&bts->model->features, i)); } } + + bts->ip_access.feature_negotiated = true; } /* Parse Attribute Response Info content for 3GPP TS 52.021 ?9.4.28 Manufacturer Dependent State */ diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index f9dc8b3..32823bb 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -502,6 +502,11 @@ /* First of all, remove deferred drop if enabled */ osmo_timer_del(&bts->oml_drop_link_timer); + if (is_sysmobts_v2(bts)) { + bts->ip_access.feature_negotiated = false; + bts->ip_access.feature_dynamic = true; + } + if (!bts->oml_link) return; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 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 Dec 2 03:01:27 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 2 Dec 2020 03:01:27 +0000 Subject: Change in osmo-bsc[master]: OML: ip.access: move NSVC MO into a fsm References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: OML: ip.access: move NSVC MO into a fsm ...................................................................... OML: ip.access: move NSVC MO into a fsm It now waits for feature negotiation before configuring the NSVC MO. Todo: need to be tested with nanobts! Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 --- M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c A src/osmo-bsc/nm_nsvc_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 15 files changed, 412 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/52/21452/1 diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h index 00031fb..58bc8c9 100644 --- a/include/osmocom/bsc/nm_common_fsm.h +++ b/include/osmocom/bsc/nm_common_fsm.h @@ -35,6 +35,7 @@ NM_EV_OPSTART_NACK, NM_EV_OML_DOWN, NM_EV_FORCE_LOCK, /* Only supported by RadioCarrier so far */ + NM_EV_FEATURE_NEGOTIATED, }; extern const struct value_string nm_fsm_event_names[]; @@ -82,3 +83,12 @@ NM_CHAN_ST_OP_ENABLED, }; extern struct osmo_fsm nm_chan_fsm; + +/* NSVC */ +enum nm_nsvc_fsm_states { + NM_NSVC_ST_OP_DISABLED_NOTINSTALLED, + NM_NSVC_ST_OP_DISABLED_DEPENDENCY, + NM_NSVC_ST_OP_DISABLED_OFFLINE, + NM_NSVC_ST_OP_ENABLED, +}; +extern struct osmo_fsm nm_nsvc_fsm; diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index 1574a8b..a39186b 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -59,6 +59,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ $(NULL) @@ -80,6 +81,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ $(NULL) diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 5739885..51292d7 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -81,6 +81,7 @@ nm_bts_sm_fsm.c \ nm_bts_fsm.c \ nm_channel_fsm.c \ + nm_nsvc_fsm.c \ nm_rcarrier_fsm.c \ gsm_08_08.c \ osmo_bsc_bssap.c \ diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index dab5bb6..b0ef649 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -49,6 +49,7 @@ #include #include #include +#include #include #define OM_ALLOC_SIZE 1024 @@ -598,6 +599,8 @@ } bts->ip_access.feature_negotiated = true; + for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) + osmo_fsm_inst_dispatch(bts->gprs.nsvc[i].mo.fi, NM_EV_FEATURE_NEGOTIATED, NULL); } /* Parse Attribute Response Info content for 3GPP TS 52.021 ?9.4.28 Manufacturer Dependent State */ diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 065b8ab..6837925 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -195,6 +195,10 @@ for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) { bts->gprs.nsvc[i].bts = bts; bts->gprs.nsvc[i].id = i; + bts->gprs.nsvc[i].mo.fi = osmo_fsm_inst_alloc( + &nm_nsvc_fsm, bts, &bts->gprs.nsvc[i], + LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts->mo.fi, "bts%d-nsvc%d", bts->nr, i); gsm_mo_init(&bts->gprs.nsvc[i].mo, bts, NM_OC_GPRS_NSVC, bts->nr, i, 0xff); } diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 32823bb..e397c5f 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -214,30 +214,12 @@ bts = nsvc->bts; if (bts->gprs.mode == BTS_GPRS_NONE) break; + /* We skip NSVC1 since we only use NSVC0 */ if (nsvc->id == 1) break; - if (!osmo_bts_has_feature(&bts->features, BTS_FEAT_IPV6_NSVC) && - nsvc->remote.u.sa.sa_family == AF_INET6) { - LOGP(DLINP, LOGL_ERROR, "BTS %d does not support IPv6 but an IPv6 address was configured!\n", bts->nr); - break; - } - - if ((new_state->availability == NM_AVSTATE_OFF_LINE) || - (new_state->availability == NM_AVSTATE_DEPENDENCY)) { - msgb = nanobts_attr_nscv_get(bts); - if (!msgb) - break; - abis_nm_ipaccess_set_attr(bts, obj_class, bts->bts_nr, - nsvc->id, 0xff, - msgb->data, msgb->len); - msgb_free(msgb); - abis_nm_chg_adm_state(bts, obj_class, bts->bts_nr, - nsvc->id, 0xff, - NM_STATE_UNLOCKED); - abis_nm_opstart(bts, obj_class, bts->bts_nr, - nsvc->id, 0xff); - } + osmo_fsm_inst_dispatch(nsvc->mo.fi, NM_EV_STATE_CHG_REP, nsd); + break; default: break; } diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index 6d64a4b..48dd613 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -202,6 +202,13 @@ { struct msgb *msgb; uint8_t buf[256]; + + if (!osmo_bts_has_feature(&bts->features, BTS_FEAT_IPV6_NSVC) && + bts->gprs.nsvc[0].remote.u.sa.sa_family == AF_INET6) { + LOGP(DLINP, LOGL_ERROR, "BTS %d does not support IPv6 but an IPv6 address was configured!\n", bts->nr); + return NULL; + } + msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; diff --git a/src/osmo-bsc/nm_nsvc_fsm.c b/src/osmo-bsc/nm_nsvc_fsm.c new file mode 100644 index 0000000..131fb54 --- /dev/null +++ b/src/osmo-bsc/nm_nsvc_fsm.c @@ -0,0 +1,374 @@ +/* NM NSVC FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Alexander Couzens + * + * based on the nm_bts_fsm.c + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +#define nm_nsvc_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +////////////////////////// +// FSM STATE ACTIONS +////////////////////////// + +static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_bts_gprs_nsvc *nsvc = (struct gsm_bts_gprs_nsvc *)fi->priv; + + nsvc->mo.set_attr_sent = false; + nsvc->mo.set_attr_sent = false; + nsvc->mo.set_attr_ack_received = false; + nsvc->mo.adm_unlock_sent = false; + nsvc->mo.opstart_sent = false; +} + +static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SW_ACT_REP: + case NM_EV_FEATURE_NEGOTIATED: + break; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /*should not happen... */ + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_DEPENDENCY: + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void configure_loop(struct gsm_bts_gprs_nsvc *nsvc, struct gsm_nm_state *state, bool allow_opstart) { + struct msgb *msgb; + + if (!nsvc->mo.set_attr_sent && !nsvc->mo.set_attr_ack_received) { + /* IPv6 require to wait for negotiated features */ + if (nsvc->bts->ip_access.feature_dynamic && + !nsvc->bts->ip_access.feature_negotiated) + return; + + nsvc->mo.set_attr_sent = true; + msgb = nanobts_attr_nscv_get(nsvc->bts); + if (!msgb) + return; + abis_nm_ipaccess_set_attr(nsvc->bts, NM_OC_GPRS_NSVC, nsvc->bts->bts_nr, + nsvc->id, 0xff, + msgb->data, msgb->len); + msgb_free(msgb); + } + + if (state->administrative != NM_STATE_UNLOCKED && !nsvc->mo.adm_unlock_sent) { + nsvc->mo.adm_unlock_sent = true; + abis_nm_chg_adm_state(nsvc->bts, NM_OC_GPRS_NSVC, + nsvc->bts->bts_nr, nsvc->id, 0xff, + NM_STATE_UNLOCKED); + } + + if (allow_opstart && state->administrative == NM_STATE_UNLOCKED && + nsvc->mo.set_attr_ack_received) { + if (!nsvc->mo.opstart_sent) { + nsvc->mo.opstart_sent = true; + abis_nm_opstart(nsvc->bts, NM_OC_GPRS_NSVC, nsvc->bts->bts_nr, nsvc->id, 0xff); + } + } +} + +static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_bts_gprs_nsvc *nsvc = (struct gsm_bts_gprs_nsvc *)fi->priv; + + /* nanoBTS is broken, doesn't follow TS 12.21. Opstart MUST be sent + during Dependency, so we simply move to OFFLINE state here to avoid + duplicating code */ + if (nsvc->bts->site_mgr.peer_has_no_avstate_offline) { + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_OFFLINE); + return; + } + configure_loop(nsvc, &nsvc->mo.nm_state, false); +} + +static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_gprs_nsvc *nsvc = (struct gsm_bts_gprs_nsvc *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_FEATURE_NEGOTIATED: + configure_loop(nsvc, &nsvc->mo.nm_state, false); + return; + case NM_EV_SET_ATTR_ACK: + nsvc->mo.set_attr_ack_received = true; + nsvc->mo.set_attr_sent = false; + configure_loop(nsvc, &nsvc->mo.nm_state, false); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_OFFLINE); + return; + case NM_AVSTATE_DEPENDENCY: + configure_loop(nsvc, new_state, false); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_bts_gprs_nsvc *nsvc = (struct gsm_bts_gprs_nsvc *)fi->priv; + + /* Warning: In here we may be acessing an state older than new_state + from prev (syncrhonous) FSM state */ + configure_loop(nsvc, &nsvc->mo.nm_state, true); +} + +static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_gprs_nsvc *nsvc = (struct gsm_bts_gprs_nsvc *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_FEATURE_NEGOTIATED: + configure_loop(nsvc, &nsvc->mo.nm_state, true); + return; + case NM_EV_SET_ATTR_ACK: + nsvc->mo.set_attr_ack_received = true; + nsvc->mo.set_attr_sent = false; + configure_loop(nsvc, &nsvc->mo.nm_state, true); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + /* There's no point in moving back to Dependency, since it's broken + and it acts actually as if it was in Offline state */ + if (!nsvc->bts->site_mgr.peer_has_no_avstate_offline) { + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_DEPENDENCY); + } else { + /* Moreover, in nanoBTS we need to check here for tx + Opstart since we may have gone Unlocked state + in this event, which means Opstart may be txed here. */ + configure_loop(nsvc, new_state, true); + } + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + configure_loop(nsvc, new_state, true); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_bts_gprs_nsvc *nsvc = (struct gsm_bts_gprs_nsvc *)fi->priv; + + /* Reset state, we don't need it in this state and it will need to be + reused as soon as we move back to Disabled */ + nsvc->mo.opstart_sent = false; + nsvc->mo.adm_unlock_sent = false; + nsvc->mo.set_attr_sent = false; + nsvc->mo.set_attr_ack_received = false; +} + +static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) + return; + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_gprs_nsvc *nsvc = (struct gsm_bts_gprs_nsvc *)fi->priv; + + switch (event) { + case NM_EV_OPSTART_ACK: + case NM_EV_OPSTART_NACK: + /* TODO: if on state OFFLINE and rx NACK, try again? */ + nsvc->mo.opstart_sent = false; + break; + case NM_EV_OML_DOWN: + nm_nsvc_fsm_state_chg(fi, NM_NSVC_ST_OP_DISABLED_NOTINSTALLED); + break; + default: + OSMO_ASSERT(0); + } +} + +static struct osmo_fsm_state nm_nsvc_fsm_states[] = { + [NM_NSVC_ST_OP_DISABLED_NOTINSTALLED] = { + .in_event_mask = + X(NM_EV_SW_ACT_REP) | + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_FEATURE_NEGOTIATED), + .out_state_mask = + X(NM_NSVC_ST_OP_DISABLED_DEPENDENCY) | + X(NM_NSVC_ST_OP_DISABLED_OFFLINE) | + X(NM_NSVC_ST_OP_ENABLED), + .name = "DISABLED_NOTINSTALLED", + .onenter = st_op_disabled_notinstalled_on_enter, + .action = st_op_disabled_notinstalled, + }, + [NM_NSVC_ST_OP_DISABLED_DEPENDENCY] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK) | + X(NM_EV_FEATURE_NEGOTIATED), + .out_state_mask = + X(NM_NSVC_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_NSVC_ST_OP_DISABLED_OFFLINE) | + X(NM_NSVC_ST_OP_ENABLED), + .name = "DISABLED_DEPENDENCY", + .onenter = st_op_disabled_dependency_on_enter, + .action = st_op_disabled_dependency, + }, + [NM_NSVC_ST_OP_DISABLED_OFFLINE] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK) | + X(NM_EV_FEATURE_NEGOTIATED), + .out_state_mask = + X(NM_NSVC_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_NSVC_ST_OP_DISABLED_DEPENDENCY) | + X(NM_NSVC_ST_OP_ENABLED), + .name = "DISABLED_OFFLINE", + .onenter = st_op_disabled_offline_on_enter, + .action = st_op_disabled_offline, + }, + [NM_NSVC_ST_OP_ENABLED] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_NSVC_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_NSVC_ST_OP_DISABLED_DEPENDENCY) | + X(NM_NSVC_ST_OP_DISABLED_OFFLINE), + .name = "ENABLED", + .onenter = st_op_enabled_on_enter, + .action = st_op_enabled, + }, +}; + +struct osmo_fsm nm_nsvc_fsm = { + .name = "NM_NSVC_OP", + .states = nm_nsvc_fsm_states, + .num_states = ARRAY_SIZE(nm_nsvc_fsm_states), + .allstate_event_mask = + X(NM_EV_OPSTART_ACK) | + X(NM_EV_OPSTART_NACK) | + X(NM_EV_OML_DOWN), + .allstate_action = st_op_allstate, + .event_names = nm_fsm_event_names, + .log_subsys = DNM, +}; + +static __attribute__((constructor)) void nm_nsvc_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nm_nsvc_fsm) == 0); +} diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 65fd8fa..6a3ab00 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -61,6 +61,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ @@ -138,6 +139,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index d7d53b7..f13d64a 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -37,6 +37,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/acc/Makefile.am b/tests/acc/Makefile.am index b1315e3..c8399c2 100644 --- a/tests/acc/Makefile.am +++ b/tests/acc/Makefile.am @@ -37,6 +37,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index f040cbc..8f6893f 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -51,6 +51,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index de38747..75ad1b5 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -40,6 +40,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 42bb937..b4d40c1 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -85,6 +85,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_ctrl.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_lcls.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index 3dd7f2f..7fd6ed3 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -34,6 +34,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Dec 2 03:07:16 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 03:07:16 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc705042ad68_f3a2ae56450e5f0706736@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: [ 215s] [407/469] installing python3.9-3.9.1~rc1-2 [ 217s] Processing triggers for mailcap (3.67) ... [ 217s] Processing triggers for man-db (2.9.3-2) ... [ 217s] [408/469] installing texlive-plain-generic-2020.20201129-1 [ 224s] Processing triggers for tex-common (6.15) ... [ 225s] Running mktexlsr. This may take some time... done. [ 225s] [409/469] installing texlive-latex-base-2020.20201129-2 [ 226s] Processing triggers for man-db (2.9.3-2) ... [ 226s] Processing triggers for tex-common (6.15) ... [ 227s] Running mktexlsr. This may take some time... done. [ 228s] Running updmap-sys. This may take some time... done. [ 228s] Running mktexlsr /var/lib/texmf ... done. [ 228s] Building format(s) --all. [ 239s] This may take some time... [ 239s] fmtutil failed. Output has been stored in [ 239s] /tmp/fmtutil.3zYWlD7d [ 239s] Please include this file if you report a bug. [ 239s] dpkg: error processing package tex-common (--install): [ 239s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 239s] Errors were encountered while processing: [ 239s] tex-common [ 239s] exit ... [ 239s] ### VM INTERACTION START ### [ 242s] [ 220.370375] sysrq: Power Off [ 242s] [ 220.382713] reboot: Power down [ 242s] ### VM INTERACTION END ### [ 242s] [ 242s] old-atreju4 failed "build osmo-gsm-manuals-dev_0.3.0.37.c507.dsc" at Wed Dec 2 03:07:03 UTC 2020. [ 242s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From jenkins at lists.osmocom.org Wed Dec 2 03:10:31 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 2 Dec 2020 03:10:31 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master?= =?UTF-8?Q?-osmo-sip-connector_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,a4=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#2933?= In-Reply-To: <1815559420.609.1606867184370@jenkins.osmocom.org> References: <1815559420.609.1606867184370@jenkins.osmocom.org> Message-ID: <1832790938.636.1606878631727@jenkins.osmocom.org> See Changes: ------------------------------------------ [...truncated 228.94 KB...] make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' Making install in tests make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' Making install in contrib make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making install in systemd make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst//lib/systemd/system' /usr/bin/install -c -m 644 ../../../../contrib/systemd/osmo-sip-connector.service '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst//lib/systemd/system' make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making install in doc make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' Making install in examples make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector/examples/osmo-sip-connector' /bin/mkdir -p '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/etc/osmocom' /usr/bin/install -c -m 644 ../../../../doc/examples/osmo-sip-connector.cfg '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/etc/osmocom' /usr/bin/install -c -m 644 ../../../../doc/examples/osmo-sip-connector.cfg '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector/examples/osmo-sip-connector' make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' Making install in manuals make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' if [ "" != "1" ]; then \ for i in osmosipconnector-usermanual.pdf osmosipconnector-vty-reference.pdf; do \ install -vDm644 "$i" "/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/$i" || exit 1; \ done; \ fi install: creating directory '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc' 'osmosipconnector-usermanual.pdf' -> '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/osmosipconnector-usermanual.pdf' 'osmosipconnector-vty-reference.pdf' -> '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/osmosipconnector-vty-reference.pdf' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[5]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' Making uninstall in src make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' ( cd '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/bin' && rm -f osmo-sip-connector ) make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' Making uninstall in tests make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[2]: Nothing to be done for 'uninstall'. make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' Making uninstall in contrib make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making uninstall in systemd make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' ( cd '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst//lib/systemd/system' && rm -f osmo-sip-connector.service ) make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[3]: Nothing to be done for 'uninstall-am'. make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making uninstall in doc make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' Making uninstall in examples make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' ( cd '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/etc/osmocom' && rm -f osmo-sip-connector.cfg ) ( cd '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector/examples/osmo-sip-connector' && rm -f osmo-sip-connector.cfg ) make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' Making uninstall in manuals make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' if [ "" != "1" ]; then \ for i in osmosipconnector-usermanual.pdf osmosipconnector-vty-reference.pdf; do \ rm -v "/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/$i"; \ done; \ fi removed '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/osmosipconnector-usermanual.pdf' removed '/tmp/am-dc-15660//build/osmo-sip-connector-1.4.1.6-05ee/_inst/share/doc/osmo-sip-connector-doc/osmosipconnector-vty-reference.pdf' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[3]: Nothing to be done for 'uninstall-am'. make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[2]: Nothing to be done for 'uninstall-am'. make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make dist-bzip2 dist-gzip am__post_remove_distdir='@:' make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' if test -d "osmo-sip-connector-1.4.1.6-05ee"; then find "osmo-sip-connector-1.4.1.6-05ee" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "osmo-sip-connector-1.4.1.6-05ee" || { sleep 5 && rm -rf "osmo-sip-connector-1.4.1.6-05ee"; }; else :; fi test -d "osmo-sip-connector-1.4.1.6-05ee" || mkdir "osmo-sip-connector-1.4.1.6-05ee" (cd src && make top_distdir=../osmo-sip-connector-1.4.1.6-05ee distdir=../osmo-sip-connector-1.4.1.6-05ee/src \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' (cd tests && make top_distdir=../osmo-sip-connector-1.4.1.6-05ee distdir=../osmo-sip-connector-1.4.1.6-05ee/tests \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' (cd contrib && make top_distdir=../osmo-sip-connector-1.4.1.6-05ee distdir=../osmo-sip-connector-1.4.1.6-05ee/contrib \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' (cd systemd && make top_distdir=../../osmo-sip-connector-1.4.1.6-05ee distdir=../../osmo-sip-connector-1.4.1.6-05ee/contrib/systemd \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' (cd doc && make top_distdir=../osmo-sip-connector-1.4.1.6-05ee distdir=../osmo-sip-connector-1.4.1.6-05ee/doc \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' (cd examples && make top_distdir=../../osmo-sip-connector-1.4.1.6-05ee distdir=../../osmo-sip-connector-1.4.1.6-05ee/doc/examples \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' (cd manuals && make top_distdir=../../osmo-sip-connector-1.4.1.6-05ee distdir=../../osmo-sip-connector-1.4.1.6-05ee/doc/manuals \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[4]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[4]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make \ top_distdir="osmo-sip-connector-1.4.1.6-05ee" distdir="osmo-sip-connector-1.4.1.6-05ee" \ dist-hook make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' echo 1.4.1.6-05ee > osmo-sip-connector-1.4.1.6-05ee/.tarball-version make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' test -n "" \ || find "osmo-sip-connector-1.4.1.6-05ee" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec /bin/bash /build/osmo-sip-connector-1.4.1.6-05ee/install-sh -c -m a+r {} {} \; \ || chmod -R a+r "osmo-sip-connector-1.4.1.6-05ee" tardir=osmo-sip-connector-1.4.1.6-05ee && ${TAR-tar} chof - "$tardir" | BZIP2=${BZIP2--9} bzip2 -c >osmo-sip-connector-1.4.1.6-05ee.tar.bz2 tardir=osmo-sip-connector-1.4.1.6-05ee && ${TAR-tar} chof - "$tardir" | GZIP=--best gzip -c >osmo-sip-connector-1.4.1.6-05ee.tar.gz make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' if test -d "osmo-sip-connector-1.4.1.6-05ee"; then find "osmo-sip-connector-1.4.1.6-05ee" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "osmo-sip-connector-1.4.1.6-05ee" || { sleep 5 && rm -rf "osmo-sip-connector-1.4.1.6-05ee"; }; else :; fi make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' make[1]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' Making distclean in src make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' test -z "osmo-sip-connector" || rm -f osmo-sip-connector rm -f *.o rm -f *.tab.c test -z "" || rm -f test . = "../../../src" || test -z "" || rm -f rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags rm -rf ./.deps rm -f Makefile make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/src' Making distclean in tests make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' test -z "" || rm -f test . = "../../../tests" || test -z "" || rm -f rm -f Makefile make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/tests' Making distclean in contrib make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making distclean in systemd make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' test -z "" || rm -f test . = "../../../../contrib/systemd" || test -z "" || rm -f rm -f Makefile make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib/systemd' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' test -z "osmo-sip-connector.spec" || rm -f osmo-sip-connector.spec rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags test . = "../../../contrib" || test -z "" || rm -f make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' rm -f Makefile make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/contrib' Making distclean in doc make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' Making distclean in examples make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' test -z "" || rm -f test . = "../../../../doc/examples" || test -z "" || rm -f rm -f Makefile make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/examples' Making distclean in manuals make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' test -z "" || rm -f rm -rf osmosipconnector-usermanual__*.png osmosipconnector-usermanual__*.svg osmosipconnector-usermanual.check osmosipconnector-usermanual.pdf osmosipconnector-usermanual.html osmosipconnector-vty-reference.pdf osmosipconnector-vty-reference.lint generated common build test . = "../../../../doc/manuals" || test -z "" || rm -f rm -f Makefile make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc/manuals' make[3]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' test -z "" || rm -f rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags test . = "../../../doc" || test -z "" || rm -f make[3]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' rm -f Makefile make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub/doc' make[2]: Entering directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' test -z "" || rm -f rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags test . = "../.." || test -z "" || rm -f rm -f cscope.out cscope.in.out cscope.po.out cscope.files make[2]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' rm -f config.status config.cache config.log configure.lineno config.status.lineno rm -f Makefile make[1]: Leaving directory '/build/osmo-sip-connector-1.4.1.6-05ee/_build/sub' if test -d "osmo-sip-connector-1.4.1.6-05ee"; then find "osmo-sip-connector-1.4.1.6-05ee" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "osmo-sip-connector-1.4.1.6-05ee" || { sleep 5 && rm -rf "osmo-sip-connector-1.4.1.6-05ee"; }; else :; fi ================================================================= osmo-sip-connector-1.4.1.6-05ee archives ready for distribution: osmo-sip-connector-1.4.1.6-05ee.tar.gz osmo-sip-connector-1.4.1.6-05ee.tar.bz2 ================================================================= + '[' 1 = 1 ']' + '[' 1 = 1 ']' + make -C /build/doc/manuals publish make: Entering directory '/build/doc/manuals' rsync -avz -e "ssh -o 'UserKnownHostsFile=/build/deps/install/stow/osmo-gsm-manuals/share/osmo-gsm-manuals/build/known_hosts' -p 48" osmosipconnector-usermanual.pdf osmosipconnector-vty-reference.pdf docs at rita.osmocom.org:web-files/latest/ Warning: Permanently added the ECDSA host key for IP address '[144.76.43.76]:48' to the list of known hosts. Permission denied (publickey,keyboard-interactive). rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2] /build/deps/install/stow/osmo-gsm-manuals/share/osmo-gsm-manuals/build/Makefile.common.inc:31: recipe for target 'publish' failed make: Leaving directory '/build/doc/manuals' make: *** [publish] Error 255 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Dec 2 03:12:28 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 2 Dec 2020 03:12:28 +0000 Subject: Change in osmo-bsc[master]: OML: ip.access: move NSVC MO into a fsm 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/+/21452 to look at the new patch set (#2). Change subject: OML: ip.access: move NSVC MO into a fsm ...................................................................... OML: ip.access: move NSVC MO into a fsm It now waits for feature negotiation before configuring the NSVC MO. Todo: need to be tested with nanobts! Related: SYS#4915 OS$4870 Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 --- M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c A src/osmo-bsc/nm_nsvc_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 15 files changed, 412 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/52/21452/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 2 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 Dec 2 03:12:28 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 2 Dec 2020 03:12:28 +0000 Subject: Change in osmo-bsc[master]: OML: sysmobts: add state to track feature negotiation 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/+/21451 to look at the new patch set (#2). Change subject: OML: sysmobts: add state to track feature negotiation ...................................................................... OML: sysmobts: add state to track feature negotiation Add variables to track feature negotiation for sysmobts. In preparation for the NSVC MO which need to check for IPv6 feature. Related: SYS#4915 OS#4870 Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c 3 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/51/21451/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Dec 2 03:25:18 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 03:25:18 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc709378175a_f3a2ae56450e5f070755f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-sccp Last lines of build log: [ 120s] Processing triggers for mailcap (3.67) ... [ 120s] Processing triggers for man-db (2.9.3-2) ... [ 120s] [436/500] installing texlive-plain-generic-2020.20201129-1 [ 123s] Processing triggers for tex-common (6.15) ... [ 123s] Running mktexlsr. This may take some time... done. [ 123s] [437/500] installing libosmo-netif-dev-1.0.0.8.bd77 [ 123s] [438/500] installing texlive-latex-base-2020.20201129-2 [ 123s] Processing triggers for man-db (2.9.3-2) ... [ 124s] Processing triggers for tex-common (6.15) ... [ 124s] Running mktexlsr. This may take some time... done. [ 124s] Running updmap-sys. This may take some time... done. [ 124s] Running mktexlsr /var/lib/texmf ... done. [ 124s] Building format(s) --all. [ 130s] This may take some time... [ 130s] fmtutil failed. Output has been stored in [ 130s] /tmp/fmtutil.O6XQyd1q [ 130s] Please include this file if you report a bug. [ 130s] dpkg: error processing package tex-common (--install): [ 130s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 130s] Errors were encountered while processing: [ 130s] tex-common [ 130s] exit ... [ 130s] ### VM INTERACTION START ### [ 133s] [ 117.757603] sysrq: Power Off [ 133s] [ 117.759579] reboot: Power down [ 133s] ### VM INTERACTION END ### [ 133s] [ 133s] wildcard2 failed "build libosmo-sccp_1.3.0.25.48e2.dsc" at Wed Dec 2 03:24:48 UTC 2020. [ 133s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 03:31:33 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 03:31:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc70a9e3b740_f3a2ae56450e5f0708390@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-mgw failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: [ 175s] Processing triggers for mailcap (3.67) ... [ 175s] Processing triggers for man-db (2.9.3-2) ... [ 175s] [434/497] installing texlive-plain-generic-2020.20201129-1 [ 178s] Processing triggers for tex-common (6.15) ... [ 179s] Running mktexlsr. This may take some time... done. [ 179s] [435/497] installing libosmo-netif-dev-1.0.0.8.bd77 [ 179s] [436/497] installing texlive-latex-base-2020.20201129-2 [ 179s] Processing triggers for man-db (2.9.3-2) ... [ 180s] Processing triggers for tex-common (6.15) ... [ 180s] Running mktexlsr. This may take some time... done. [ 180s] Running updmap-sys. This may take some time... done. [ 180s] Running mktexlsr /var/lib/texmf ... done. [ 181s] Building format(s) --all. [ 188s] This may take some time... [ 188s] fmtutil failed. Output has been stored in [ 188s] /tmp/fmtutil.b2pcGs67 [ 188s] Please include this file if you report a bug. [ 188s] dpkg: error processing package tex-common (--install): [ 188s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 188s] Errors were encountered while processing: [ 188s] tex-common [ 188s] exit ... [ 188s] ### VM INTERACTION START ### [ 191s] [ 173.952038] sysrq: Power Off [ 191s] [ 173.958417] reboot: Power down [ 191s] ### VM INTERACTION END ### [ 191s] [ 191s] lamb17 failed "build osmo-mgw_1.7.0.132.6e279.dsc" at Wed Dec 2 03:30:02 UTC 2020. [ 191s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 03:42:25 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 03:42:25 +0000 Subject: Build failure of network:osmocom:nightly/osmo-hlr in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc70d30bca8b_f3a2ae56450e5f0709296@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-hlr/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-hlr failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-hlr Last lines of build log: [ 181s] Processing triggers for mailcap (3.67) ... [ 181s] Processing triggers for man-db (2.9.3-2) ... [ 181s] [436/500] installing texlive-plain-generic-2020.20201129-1 [ 185s] Processing triggers for tex-common (6.15) ... [ 185s] Running mktexlsr. This may take some time... done. [ 185s] [437/500] installing libosmo-netif-dev-1.0.0.8.bd77 [ 185s] [438/500] installing texlive-latex-base-2020.20201129-2 [ 186s] Processing triggers for man-db (2.9.3-2) ... [ 186s] Processing triggers for tex-common (6.15) ... [ 186s] Running mktexlsr. This may take some time... done. [ 187s] Running updmap-sys. This may take some time... done. [ 187s] Running mktexlsr /var/lib/texmf ... done. [ 187s] Building format(s) --all. [ 194s] This may take some time... [ 194s] fmtutil failed. Output has been stored in [ 194s] /tmp/fmtutil.ZIwcBZGd [ 194s] Please include this file if you report a bug. [ 194s] dpkg: error processing package tex-common (--install): [ 194s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 194s] Errors were encountered while processing: [ 194s] tex-common [ 194s] exit ... [ 194s] ### VM INTERACTION START ### [ 197s] [ 178.940907] sysrq: Power Off [ 197s] [ 178.945966] reboot: Power down [ 197s] ### VM INTERACTION END ### [ 197s] [ 197s] lamb51 failed "build osmo-hlr_1.2.0.67.dac8.dsc" at Wed Dec 2 03:40:44 UTC 2020. [ 197s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 03:42:25 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 03:42:25 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc70d314368c_f3a2ae56450e5f0709323@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-ggsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: [ 189s] [427/490] installing python3.9-3.9.1~rc1-2 [ 190s] Processing triggers for mailcap (3.67) ... [ 190s] Processing triggers for man-db (2.9.3-2) ... [ 190s] [428/490] installing texlive-plain-generic-2020.20201129-1 [ 194s] Processing triggers for tex-common (6.15) ... [ 194s] Running mktexlsr. This may take some time... done. [ 194s] [429/490] installing texlive-latex-base-2020.20201129-2 [ 195s] Processing triggers for man-db (2.9.3-2) ... [ 195s] Processing triggers for tex-common (6.15) ... [ 195s] Running mktexlsr. This may take some time... done. [ 196s] Running updmap-sys. This may take some time... done. [ 196s] Running mktexlsr /var/lib/texmf ... done. [ 196s] Building format(s) --all. [ 204s] This may take some time... [ 204s] fmtutil failed. Output has been stored in [ 204s] /tmp/fmtutil.MppP5uWi [ 204s] Please include this file if you report a bug. [ 204s] dpkg: error processing package tex-common (--install): [ 204s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 204s] Errors were encountered while processing: [ 204s] tex-common [ 204s] exit ... [ 204s] ### VM INTERACTION START ### [ 207s] [ 185.428263] sysrq: Power Off [ 207s] [ 185.434494] reboot: Power down [ 207s] ### VM INTERACTION END ### [ 207s] [ 207s] lamb24 failed "build osmo-ggsn_1.6.0.13.1230.dsc" at Wed Dec 2 03:40:50 UTC 2020. [ 207s] -- 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 Dec 2 03:53:53 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 2 Dec 2020 03:53:53 +0000 Subject: Change in osmo-bsc[master]: OML: ip.access: move NSVC MO into a fsm 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/+/21452 to look at the new patch set (#3). Change subject: OML: ip.access: move NSVC MO into a fsm ...................................................................... OML: ip.access: move NSVC MO into a fsm It now waits for feature negotiation before configuring the NSVC MO. Todo: need to be tested with nanobts! Related: SYS#4915 OS$4870 Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 --- M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c A src/osmo-bsc/nm_nsvc_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 17 files changed, 472 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/52/21452/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 3 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 Dec 2 04:09:39 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 2 Dec 2020 04:09:39 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: remove include References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21453 ) Change subject: gprs_ns2_fr: remove include ...................................................................... gprs_ns2_fr: remove include It's not needed because net/if.h already include the required parts. Furthermore the linux/if.h generates a compiler error in combination with net/if.h on older systems (e.g. debian jessie) Change-Id: Iccf931207d8bea19969fbfc4225f622a1a709972 --- M src/gb/gprs_ns2_fr.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21453/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 4140171..47d3a5d 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -42,7 +42,6 @@ #include #include #include -#include #include #include -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iccf931207d8bea19969fbfc4225f622a1a709972 Gerrit-Change-Number: 21453 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Dec 2 04:09:50 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:09:50 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc713a4443cd_f3a2ae56450e5f07116c3@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: [ 251s] make[2]: Nothing to be done for 'all'. [ 251s] make[2]: Leaving directory '/usr/src/packages/BUILD/include' [ 251s] Making all in src [ 251s] make[2]: Entering directory '/usr/src/packages/BUILD/src' [ 251s] CXX gprs_debug.lo [ 251s] CC csn1.lo [ 253s] CC gsm_rlcmac.lo [ 255s] CXX gprs_bssgp_pcu.lo [ 255s] gprs_bssgp_pcu.cpp: In function 'int ns_create_nsvc(gprs_rlcmac_bts*, uint16_t, const osmo_sockaddr*, const osmo_sockaddr*, const uint16_t*, uint16_t)': [ 255s] gprs_bssgp_pcu.cpp:987:13: error: 'GPRS_NS2_LL_UDP' was not declared in this scope [ 255s] GPRS_NS2_LL_UDP); [ 255s] ^ [ 255s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 255s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 255s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 255s] Makefile:405: recipe for target 'all-recursive' failed [ 255s] make[1]: *** [all-recursive] Error 1 [ 255s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 255s] dh_auto_build: make -j1 returned exit code 2 [ 255s] debian/rules:12: recipe for target 'build' failed [ 255s] make: *** [build] Error 2 [ 255s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 255s] ### VM INTERACTION START ### [ 256s] Powering off. [ 256s] [ 225.596422] reboot: Power down [ 256s] ### VM INTERACTION END ### [ 256s] [ 256s] lamb02 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Wed Dec 2 04:09:16 UTC 2020. [ 256s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:15:51 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:15:51 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc71511cbcf_f3a2ae56450e5f071242f@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: [ 171s] [436/499] installing python3.9-3.9.1~rc1-2 [ 172s] Processing triggers for mailcap (3.67) ... [ 172s] Processing triggers for man-db (2.9.3-2) ... [ 172s] [437/499] installing texlive-plain-generic-2020.20201129-1 [ 176s] Processing triggers for tex-common (6.15) ... [ 176s] Running mktexlsr. This may take some time... done. [ 176s] [438/499] installing texlive-latex-base-2020.20201129-2 [ 176s] Processing triggers for man-db (2.9.3-2) ... [ 177s] Processing triggers for tex-common (6.15) ... [ 177s] Running mktexlsr. This may take some time... done. [ 178s] Running updmap-sys. This may take some time... done. [ 178s] Running mktexlsr /var/lib/texmf ... done. [ 178s] Building format(s) --all. [ 185s] This may take some time... [ 185s] fmtutil failed. Output has been stored in [ 185s] /tmp/fmtutil.5t1SswBg [ 185s] Please include this file if you report a bug. [ 185s] dpkg: error processing package tex-common (--install): [ 185s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 185s] Errors were encountered while processing: [ 185s] tex-common [ 185s] exit ... [ 185s] ### VM INTERACTION START ### [ 188s] [ 169.946378] sysrq: Power Off [ 188s] [ 169.957163] reboot: Power down [ 188s] ### VM INTERACTION END ### [ 188s] [ 188s] lamb61 failed "build osmo-bts_1.2.0.349.5b25.dsc" at Wed Dec 2 04:14:26 UTC 2020. [ 188s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:18:59 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:18:59 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc715bf91e2b_f3a2ae56450e5f071292c@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: [ 105s] [425/488] installing python3.9-3.9.1~rc1-2 [ 106s] Processing triggers for mailcap (3.67) ... [ 106s] Processing triggers for man-db (2.9.3-2) ... [ 106s] [426/488] installing texlive-plain-generic-2020.20201129-1 [ 108s] Processing triggers for tex-common (6.15) ... [ 108s] Running mktexlsr. This may take some time... done. [ 108s] [427/488] installing texlive-latex-base-2020.20201129-2 [ 109s] Processing triggers for man-db (2.9.3-2) ... [ 109s] Processing triggers for tex-common (6.15) ... [ 109s] Running mktexlsr. This may take some time... done. [ 109s] Running updmap-sys. This may take some time... done. [ 109s] Running mktexlsr /var/lib/texmf ... done. [ 109s] Building format(s) --all. [ 113s] This may take some time... [ 113s] fmtutil failed. Output has been stored in [ 113s] /tmp/fmtutil.KbODuXrr [ 113s] Please include this file if you report a bug. [ 113s] dpkg: error processing package tex-common (--install): [ 113s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 113s] Errors were encountered while processing: [ 113s] tex-common [ 113s] exit ... [ 113s] ### VM INTERACTION START ### [ 116s] [ 102.205237] sysrq: Power Off [ 116s] [ 102.208353] reboot: Power down [ 117s] ### VM INTERACTION END ### [ 117s] [ 117s] hci-cnode2-m1 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Wed Dec 2 04:18:23 UTC 2020. [ 117s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:19:33 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:19:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc715e495a62_f3a2ae56450e5f07130ac@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-e1d failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-e1d Last lines of build log: [ 134s] [425/488] installing python3.9-3.9.1~rc1-2 [ 135s] Processing triggers for mailcap (3.67) ... [ 135s] Processing triggers for man-db (2.9.3-2) ... [ 135s] [426/488] installing texlive-plain-generic-2020.20201129-1 [ 138s] Processing triggers for tex-common (6.15) ... [ 138s] Running mktexlsr. This may take some time... done. [ 138s] [427/488] installing texlive-latex-base-2020.20201129-2 [ 139s] Processing triggers for man-db (2.9.3-2) ... [ 139s] Processing triggers for tex-common (6.15) ... [ 139s] Running mktexlsr. This may take some time... done. [ 140s] Running updmap-sys. This may take some time... done. [ 140s] Running mktexlsr /var/lib/texmf ... done. [ 140s] Building format(s) --all. [ 145s] This may take some time... [ 145s] fmtutil failed. Output has been stored in [ 145s] /tmp/fmtutil.42RMAsx3 [ 145s] Please include this file if you report a bug. [ 145s] dpkg: error processing package tex-common (--install): [ 145s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 146s] Errors were encountered while processing: [ 146s] tex-common [ 146s] exit ... [ 146s] ### VM INTERACTION START ### [ 149s] [ 134.216513] sysrq: Power Off [ 149s] [ 134.225914] reboot: Power down [ 149s] ### VM INTERACTION END ### [ 149s] [ 149s] sheep81 failed "build osmo-e1d_0.1.1.20.e542.dsc" at Wed Dec 2 04:19:04 UTC 2020. [ 149s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:24:08 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:24:08 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fc71708a173b_f3a2ae56450e5f07135b5@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: [ 162s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 162s] [COMPILING libboard/qmod/source/card_pres.c] [ 162s] [COMPILING libboard/qmod/source/wwan_led.c] [ 162s] [COMPILING libboard/qmod/source/i2c.c] [ 162s] [COMPILING libboard/qmod/source/board_qmod.c] [ 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: 16588 B 16 KB 101.25% [ 163s] 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' [ 163s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 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.767653] sysrq: Power Off [ 166s] [ 154.774199] reboot: Power down [ 166s] ### VM INTERACTION END ### [ 166s] [ 166s] lamb25 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 2 04:23:29 UTC 2020. [ 166s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:27:50 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:27:50 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc717dab9863_f3a2ae56450e5f07136b6@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: [ 260s] make[4]: Entering directory '/usr/src/packages/BUILD/src/gbproxy' [ 260s] CC gb_proxy.o [ 260s] gb_proxy.c: In function 'gbprox_relay2nse': [ 260s] gb_proxy.c:846:17: error: 'struct ' has no member named 'link_selector' [ 260s] nsp.u.unitdata.link_selector = tlli; [ 260s] ^ [ 260s] Makefile:482: recipe for target 'gb_proxy.o' failed [ 260s] make[4]: *** [gb_proxy.o] Error 1 [ 260s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/gbproxy' [ 260s] Makefile:383: recipe for target 'all-recursive' failed [ 260s] make[3]: *** [all-recursive] Error 1 [ 260s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 260s] Makefile:449: recipe for target 'all-recursive' failed [ 260s] make[2]: *** [all-recursive] Error 1 [ 260s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 260s] Makefile:380: recipe for target 'all' failed [ 260s] make[1]: *** [all] Error 2 [ 260s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 260s] dh_auto_build: make -j1 returned exit code 2 [ 260s] debian/rules:45: recipe for target 'build' failed [ 260s] make: *** [build] Error 2 [ 260s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 260s] ### VM INTERACTION START ### [ 261s] Powering off. [ 261s] [ 250.139028] reboot: Power down [ 261s] ### VM INTERACTION END ### [ 261s] [ 261s] lamb04 failed "build osmo-sgsn_1.6.0.67.d97ff.dsc" at Wed Dec 2 04:26:21 UTC 2020. [ 261s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:28:08 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:28:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc717e064ea3_f3a2ae56450e5f07140b3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 184s] Processing triggers for man-db (2.9.3-2) ... [ 185s] [507/654] installing texlive-plain-generic-2020.20201129-1 [ 188s] Processing triggers for tex-common (6.15) ... [ 188s] Running mktexlsr. This may take some time... done. [ 188s] [508/654] installing libpython3.9-3.9.1~rc1-2 [ 188s] Processing triggers for libc-bin (2.31-5) ... [ 188s] [509/654] installing texlive-latex-base-2020.20201129-2 [ 189s] Processing triggers for man-db (2.9.3-2) ... [ 189s] Processing triggers for tex-common (6.15) ... [ 189s] Running mktexlsr. This may take some time... done. [ 190s] Running updmap-sys. This may take some time... done. [ 190s] Running mktexlsr /var/lib/texmf ... done. [ 190s] Building format(s) --all. [ 197s] This may take some time... [ 197s] fmtutil failed. Output has been stored in [ 197s] /tmp/fmtutil.c7rX1C5s [ 197s] Please include this file if you report a bug. [ 197s] dpkg: error processing package tex-common (--install): [ 197s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 197s] Errors were encountered while processing: [ 197s] tex-common [ 197s] exit ... [ 197s] ### VM INTERACTION START ### [ 200s] [ 180.697192] sysrq: Power Off [ 200s] [ 180.704063] reboot: Power down [ 201s] ### VM INTERACTION END ### [ 201s] [ 201s] lamb16 failed "build osmo-trx_1.2.0.114.57db.dsc" at Wed Dec 2 04:27:38 UTC 2020. [ 201s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:28:42 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:28:42 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc71819e1e4_f3a2ae56450e5f071411d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: [ 216s] [438/513] installing python3.9-3.9.1~rc1-2 [ 217s] Processing triggers for mailcap (3.67) ... [ 217s] Processing triggers for man-db (2.9.3-2) ... [ 218s] [439/513] installing texlive-plain-generic-2020.20201129-1 [ 221s] Processing triggers for tex-common (6.15) ... [ 221s] Running mktexlsr. This may take some time... done. [ 221s] [440/513] installing texlive-latex-base-2020.20201129-2 [ 222s] Processing triggers for man-db (2.9.3-2) ... [ 222s] Processing triggers for tex-common (6.15) ... [ 222s] Running mktexlsr. This may take some time... done. [ 223s] Running updmap-sys. This may take some time... done. [ 223s] Running mktexlsr /var/lib/texmf ... done. [ 223s] Building format(s) --all. [ 231s] This may take some time... [ 231s] fmtutil failed. Output has been stored in [ 231s] /tmp/fmtutil.UfyCG64t [ 231s] Please include this file if you report a bug. [ 231s] dpkg: error processing package tex-common (--install): [ 231s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 231s] Errors were encountered while processing: [ 231s] tex-common [ 231s] exit ... [ 231s] ### VM INTERACTION START ### [ 234s] [ 214.040180] sysrq: Power Off [ 234s] [ 214.046234] reboot: Power down [ 234s] ### VM INTERACTION END ### [ 234s] [ 234s] lamb01 failed "build osmo-sip-connector_1.4.1.6.05ee.dsc" at Wed Dec 2 04:28:15 UTC 2020. [ 234s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:28:59 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:28:59 +0000 Subject: Build failure of network:osmocom:nightly/osmo-uecups in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc7181a233c3_f3a2ae56450e5f071433@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-uecups/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-uecups failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-uecups Last lines of build log: [ 202s] Processing triggers for mailcap (3.67) ... [ 202s] Processing triggers for man-db (2.9.3-2) ... [ 202s] [433/497] installing texlive-plain-generic-2020.20201129-1 [ 206s] Processing triggers for tex-common (6.15) ... [ 206s] Running mktexlsr. This may take some time... done. [ 206s] [434/497] installing libosmo-netif-dev-1.0.0.8.bd77 [ 206s] [435/497] installing texlive-latex-base-2020.20201129-2 [ 207s] Processing triggers for man-db (2.9.3-2) ... [ 207s] Processing triggers for tex-common (6.15) ... [ 207s] Running mktexlsr. This may take some time... done. [ 208s] Running updmap-sys. This may take some time... done. [ 208s] Running mktexlsr /var/lib/texmf ... done. [ 208s] Building format(s) --all. [ 216s] This may take some time... [ 216s] fmtutil failed. Output has been stored in [ 216s] /tmp/fmtutil.r3M3rbBm [ 216s] Please include this file if you report a bug. [ 216s] dpkg: error processing package tex-common (--install): [ 216s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 216s] Errors were encountered while processing: [ 216s] tex-common [ 216s] exit ... [ 216s] ### VM INTERACTION START ### [ 219s] [ 198.813851] sysrq: Power Off [ 219s] [ 198.820248] reboot: Power down [ 219s] ### VM INTERACTION END ### [ 219s] [ 219s] lamb14 failed "build osmo-uecups_0.1.3.1.8362.dsc" at Wed Dec 2 04:28:32 UTC 2020. [ 219s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:33:33 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:33:33 +0000 Subject: Build failure of network:osmocom:latest/osmo-gsm-manuals in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc7192773048_f3a2ae56450e5f0714880@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-gsm-manuals/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-gsm-manuals failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-gsm-manuals Last lines of build log: [ 120s] [407/469] installing python3.9-3.9.1~rc1-2 [ 120s] Processing triggers for mailcap (3.67) ... [ 120s] Processing triggers for man-db (2.9.3-2) ... [ 121s] [408/469] installing texlive-plain-generic-2020.20201129-1 [ 124s] Processing triggers for tex-common (6.15) ... [ 124s] Running mktexlsr. This may take some time... done. [ 124s] [409/469] installing texlive-latex-base-2020.20201129-2 [ 124s] Processing triggers for man-db (2.9.3-2) ... [ 124s] Processing triggers for tex-common (6.15) ... [ 125s] Running mktexlsr. This may take some time... done. [ 125s] Running updmap-sys. This may take some time... done. [ 125s] Running mktexlsr /var/lib/texmf ... done. [ 125s] Building format(s) --all. [ 131s] This may take some time... [ 131s] fmtutil failed. Output has been stored in [ 131s] /tmp/fmtutil.HeoWVcDm [ 131s] Please include this file if you report a bug. [ 131s] dpkg: error processing package tex-common (--install): [ 131s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 131s] Errors were encountered while processing: [ 131s] tex-common [ 131s] exit ... [ 131s] ### VM INTERACTION START ### [ 134s] [ 118.132814] sysrq: Power Off [ 134s] [ 118.136218] reboot: Power down [ 134s] ### VM INTERACTION END ### [ 134s] [ 134s] sheep85 failed "build osmo-gsm-manuals-dev_0.3.0.dsc" at Wed Dec 2 04:33:07 UTC 2020. [ 134s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:41:50 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:41:50 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc71b28218bb_f3a2ae56450e5f071577e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-bsc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 171s] Processing triggers for mailcap (3.67) ... [ 171s] Processing triggers for man-db (2.9.3-2) ... [ 172s] [439/505] installing texlive-plain-generic-2020.20201129-1 [ 175s] Processing triggers for tex-common (6.15) ... [ 175s] Running mktexlsr. This may take some time... done. [ 175s] [440/505] installing libosmo-netif-dev-1.0.0.8.bd77 [ 175s] [441/505] installing texlive-latex-base-2020.20201129-2 [ 176s] Processing triggers for man-db (2.9.3-2) ... [ 176s] Processing triggers for tex-common (6.15) ... [ 176s] Running mktexlsr. This may take some time... done. [ 177s] Running updmap-sys. This may take some time... done. [ 177s] Running mktexlsr /var/lib/texmf ... done. [ 177s] Building format(s) --all. [ 184s] This may take some time... [ 184s] fmtutil failed. Output has been stored in [ 184s] /tmp/fmtutil.1QnJwdiZ [ 184s] Please include this file if you report a bug. [ 184s] dpkg: error processing package tex-common (--install): [ 184s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 184s] Errors were encountered while processing: [ 184s] tex-common [ 184s] exit ... [ 184s] ### VM INTERACTION START ### [ 187s] [ 168.082416] sysrq: Power Off [ 187s] [ 168.089564] reboot: Power down [ 187s] ### VM INTERACTION END ### [ 187s] [ 187s] lamb09 failed "build osmo-bsc_1.6.0.416.18af.dsc" at Wed Dec 2 04:39:26 UTC 2020. [ 187s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:41:50 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:41:50 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc71b264976a_f3a2ae56450e5f071566d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-smlc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: [ 178s] Processing triggers for mailcap (3.67) ... [ 178s] Processing triggers for man-db (2.9.3-2) ... [ 179s] [429/494] installing texlive-plain-generic-2020.20201129-1 [ 182s] Processing triggers for tex-common (6.15) ... [ 182s] Running mktexlsr. This may take some time... done. [ 182s] [430/494] installing libosmo-netif-dev-1.0.0.8.bd77 [ 182s] [431/494] installing texlive-latex-base-2020.20201129-2 [ 183s] Processing triggers for man-db (2.9.3-2) ... [ 183s] Processing triggers for tex-common (6.15) ... [ 183s] Running mktexlsr. This may take some time... done. [ 184s] Running updmap-sys. This may take some time... done. [ 184s] Running mktexlsr /var/lib/texmf ... done. [ 184s] Building format(s) --all. [ 192s] This may take some time... [ 192s] fmtutil failed. Output has been stored in [ 192s] /tmp/fmtutil.huEZXByX [ 192s] Please include this file if you report a bug. [ 192s] dpkg: error processing package tex-common (--install): [ 192s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 192s] Errors were encountered while processing: [ 192s] tex-common [ 192s] exit ... [ 192s] ### VM INTERACTION START ### [ 195s] [ 176.923734] sysrq: Power Off [ 195s] [ 176.930377] reboot: Power down [ 195s] ### VM INTERACTION END ### [ 195s] [ 195s] lamb27 failed "build osmo-smlc_0.1.0.5.5dad.dsc" at Wed Dec 2 04:38:55 UTC 2020. [ 195s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:41:50 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:41:50 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc71b29c98dd_f3a2ae56450e5f0715834@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 195s] Processing triggers for mailcap (3.67) ... [ 195s] Processing triggers for man-db (2.9.3-2) ... [ 195s] [449/514] installing texlive-plain-generic-2020.20201129-1 [ 199s] Processing triggers for tex-common (6.15) ... [ 199s] Running mktexlsr. This may take some time... done. [ 199s] [450/514] installing libosmo-netif-dev-1.0.0.8.bd77 [ 199s] [451/514] installing texlive-latex-base-2020.20201129-2 [ 200s] Processing triggers for man-db (2.9.3-2) ... [ 200s] Processing triggers for tex-common (6.15) ... [ 200s] Running mktexlsr. This may take some time... done. [ 201s] Running updmap-sys. This may take some time... done. [ 201s] Running mktexlsr /var/lib/texmf ... done. [ 201s] Building format(s) --all. [ 209s] This may take some time... [ 209s] fmtutil failed. Output has been stored in [ 209s] /tmp/fmtutil.iP29P445 [ 209s] Please include this file if you report a bug. [ 209s] dpkg: error processing package tex-common (--install): [ 209s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 209s] Errors were encountered while processing: [ 209s] tex-common [ 209s] exit ... [ 209s] ### VM INTERACTION START ### [ 212s] [ 192.159865] sysrq: Power Off [ 212s] [ 192.174268] reboot: Power down [ 212s] ### VM INTERACTION END ### [ 212s] [ 212s] lamb54 failed "build osmo-msc_1.6.1.87.e917b.dsc" at Wed Dec 2 04:39:58 UTC 2020. [ 212s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:42:09 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:42:09 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fc71b2ba1508_f3a2ae56450e5f071592b@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] [ 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] [ 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] [ 149.409423] sysrq: Power Off [ 161s] [ 149.416702] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] lamb02 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 2 04:40:45 UTC 2020. [ 161s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:52:12 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:52:12 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc71d9c33d4d_f3a2ae56450e5f071661@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: [ 97s] Processing triggers for mailcap (3.67) ... [ 97s] Processing triggers for man-db (2.9.3-2) ... [ 97s] [447/511] installing texlive-plain-generic-2020.20201129-1 [ 99s] Processing triggers for tex-common (6.15) ... [ 99s] Running mktexlsr. This may take some time... done. [ 100s] [448/511] installing libosmo-netif-dev-1.0.0.8.bd77 [ 100s] [449/511] installing texlive-latex-base-2020.20201129-2 [ 100s] Processing triggers for man-db (2.9.3-2) ... [ 100s] Processing triggers for tex-common (6.15) ... [ 100s] Running mktexlsr. This may take some time... done. [ 100s] Running updmap-sys. This may take some time... done. [ 101s] Running mktexlsr /var/lib/texmf ... done. [ 101s] Building format(s) --all. [ 105s] This may take some time... [ 105s] fmtutil failed. Output has been stored in [ 105s] /tmp/fmtutil.73fcxFFL [ 105s] Please include this file if you report a bug. [ 105s] dpkg: error processing package tex-common (--install): [ 105s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 105s] Errors were encountered while processing: [ 105s] tex-common [ 105s] exit ... [ 105s] ### VM INTERACTION START ### [ 108s] [ 95.014510] sysrq: Power Off [ 108s] [ 95.015885] reboot: Power down [ 108s] ### VM INTERACTION END ### [ 108s] [ 108s] build73 failed "build osmo-sgsn_1.6.0.67.d97ff.dsc" at Wed Dec 2 04:51:48 UTC 2020. [ 108s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:56:12 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:56:12 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc71e8a653cc_f3a2ae56450e5f07168f4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-hlr failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 123s] Processing triggers for mailcap (3.67) ... [ 123s] Processing triggers for man-db (2.9.3-2) ... [ 123s] [436/500] installing texlive-plain-generic-2020.20201129-1 [ 126s] Processing triggers for tex-common (6.15) ... [ 126s] Running mktexlsr. This may take some time... done. [ 126s] [437/500] installing libosmo-netif-dev-1.0.0 [ 127s] [438/500] installing texlive-latex-base-2020.20201129-2 [ 127s] Processing triggers for man-db (2.9.3-2) ... [ 127s] Processing triggers for tex-common (6.15) ... [ 127s] Running mktexlsr. This may take some time... done. [ 128s] Running updmap-sys. This may take some time... done. [ 128s] Running mktexlsr /var/lib/texmf ... done. [ 128s] Building format(s) --all. [ 133s] This may take some time... [ 133s] fmtutil failed. Output has been stored in [ 133s] /tmp/fmtutil.nWdw4sZh [ 133s] Please include this file if you report a bug. [ 133s] dpkg: error processing package tex-common (--install): [ 133s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 133s] Errors were encountered while processing: [ 133s] tex-common [ 133s] exit ... [ 133s] ### VM INTERACTION START ### [ 137s] [ 121.512595] sysrq: Power Off [ 137s] [ 121.516606] reboot: Power down [ 137s] ### VM INTERACTION END ### [ 137s] [ 137s] sheep87 failed "build osmo-hlr_1.2.0.dsc" at Wed Dec 2 04:54:53 UTC 2020. [ 137s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:56:12 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:56:12 +0000 Subject: Build failure of network:osmocom:latest/osmo-mgw in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc71e8bb82a5_f3a2ae56450e5f07170e4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-mgw/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-mgw failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-mgw Last lines of build log: [ 174s] Processing triggers for mailcap (3.67) ... [ 174s] Processing triggers for man-db (2.9.3-2) ... [ 175s] [426/489] installing texlive-plain-generic-2020.20201129-1 [ 179s] Processing triggers for tex-common (6.15) ... [ 179s] Running mktexlsr. This may take some time... done. [ 179s] [427/489] installing libosmo-netif-dev-1.0.0 [ 179s] [428/489] installing texlive-latex-base-2020.20201129-2 [ 180s] Processing triggers for man-db (2.9.3-2) ... [ 180s] Processing triggers for tex-common (6.15) ... [ 180s] Running mktexlsr. This may take some time... done. [ 181s] Running updmap-sys. This may take some time... done. [ 181s] Running mktexlsr /var/lib/texmf ... done. [ 181s] Building format(s) --all. [ 189s] This may take some time... [ 189s] fmtutil failed. Output has been stored in [ 189s] /tmp/fmtutil.hTgdXGMw [ 189s] Please include this file if you report a bug. [ 189s] dpkg: error processing package tex-common (--install): [ 189s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 189s] Errors were encountered while processing: [ 189s] tex-common [ 189s] exit ... [ 189s] ### VM INTERACTION START ### [ 192s] [ 174.095339] sysrq: Power Off [ 192s] [ 174.101186] reboot: Power down [ 192s] ### VM INTERACTION END ### [ 192s] [ 192s] lamb23 failed "build osmo-mgw_1.7.0.dsc" at Wed Dec 2 04:55:16 UTC 2020. [ 192s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 04:57:38 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 04:57:38 +0000 Subject: Build failure of network:osmocom:latest/libosmo-sccp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc71ec714d43_f3a2ae56450e5f07173e4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-sccp/Debian_Unstable/x86_64 Package network:osmocom:latest/libosmo-sccp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-sccp Last lines of build log: [ 271s] Processing triggers for mailcap (3.67) ... [ 271s] Processing triggers for man-db (2.9.3-2) ... [ 272s] [436/500] installing texlive-plain-generic-2020.20201129-1 [ 278s] Processing triggers for tex-common (6.15) ... [ 279s] Running mktexlsr. This may take some time... done. [ 279s] [437/500] installing libosmo-netif-dev-1.0.0 [ 279s] [438/500] installing texlive-latex-base-2020.20201129-2 [ 280s] Processing triggers for man-db (2.9.3-2) ... [ 280s] Processing triggers for tex-common (6.15) ... [ 281s] Running mktexlsr. This may take some time... done. [ 281s] Running updmap-sys. This may take some time... done. [ 281s] Running mktexlsr /var/lib/texmf ... done. [ 282s] Building format(s) --all. [ 290s] This may take some time... [ 290s] fmtutil failed. Output has been stored in [ 290s] /tmp/fmtutil.sNvpy0oG [ 290s] Please include this file if you report a bug. [ 290s] dpkg: error processing package tex-common (--install): [ 290s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 290s] Errors were encountered while processing: [ 290s] tex-common [ 291s] exit ... [ 291s] ### VM INTERACTION START ### [ 294s] [ 265.403506] sysrq: Power Off [ 294s] [ 265.424865] reboot: Power down [ 294s] ### VM INTERACTION END ### [ 294s] [ 294s] cloud132 failed "build libosmo-sccp_1.3.0.dsc" at Wed Dec 2 04:56:26 UTC 2020. [ 294s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:03:20 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:03:20 +0000 Subject: Build failure of network:osmocom:latest/osmo-ggsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc7202c7fb37_f3a2ae56450e5f071798e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-ggsn/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-ggsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-ggsn Last lines of build log: [ 479s] [427/490] installing python3.9-3.9.1~rc1-2 [ 481s] Processing triggers for mailcap (3.67) ... [ 481s] Processing triggers for man-db (2.9.3-2) ... [ 483s] [428/490] installing texlive-plain-generic-2020.20201129-1 [ 492s] Processing triggers for tex-common (6.15) ... [ 492s] Running mktexlsr. This may take some time... done. [ 492s] [429/490] installing texlive-latex-base-2020.20201129-2 [ 493s] Processing triggers for man-db (2.9.3-2) ... [ 494s] Processing triggers for tex-common (6.15) ... [ 495s] Running mktexlsr. This may take some time... done. [ 496s] Running updmap-sys. This may take some time... done. [ 496s] Running mktexlsr /var/lib/texmf ... done. [ 496s] Building format(s) --all. [ 509s] This may take some time... [ 509s] fmtutil failed. Output has been stored in [ 509s] /tmp/fmtutil.w83KL3Ze [ 509s] Please include this file if you report a bug. [ 509s] dpkg: error processing package tex-common (--install): [ 509s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 509s] Errors were encountered while processing: [ 509s] tex-common [ 509s] exit ... [ 509s] ### VM INTERACTION START ### [ 512s] [ 465.383759] sysrq: Power Off [ 512s] [ 465.402432] reboot: Power down [ 512s] ### VM INTERACTION END ### [ 512s] [ 512s] lamb52 failed "build osmo-ggsn_1.6.0.dsc" at Wed Dec 2 05:02:54 UTC 2020. [ 512s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:06:14 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:06:14 +0000 Subject: Build failure of network:osmocom:latest/osmo-e1d in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc720de58a0_f3a2ae56450e5f0718430@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-e1d/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-e1d failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-e1d Last lines of build log: [ 193s] [425/488] installing python3.9-3.9.1~rc1-2 [ 194s] Processing triggers for mailcap (3.67) ... [ 194s] Processing triggers for man-db (2.9.3-2) ... [ 195s] [426/488] installing texlive-plain-generic-2020.20201129-1 [ 198s] Processing triggers for tex-common (6.15) ... [ 199s] Running mktexlsr. This may take some time... done. [ 199s] [427/488] installing texlive-latex-base-2020.20201129-2 [ 199s] Processing triggers for man-db (2.9.3-2) ... [ 199s] Processing triggers for tex-common (6.15) ... [ 200s] Running mktexlsr. This may take some time... done. [ 200s] Running updmap-sys. This may take some time... done. [ 200s] Running mktexlsr /var/lib/texmf ... done. [ 200s] Building format(s) --all. [ 209s] This may take some time... [ 209s] fmtutil failed. Output has been stored in [ 209s] /tmp/fmtutil.xezkY5iS [ 209s] Please include this file if you report a bug. [ 209s] dpkg: error processing package tex-common (--install): [ 209s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 209s] Errors were encountered while processing: [ 209s] tex-common [ 209s] exit ... [ 209s] ### VM INTERACTION START ### [ 213s] [ 193.882209] sysrq: Power Off [ 213s] [ 193.893576] reboot: Power down [ 213s] ### VM INTERACTION END ### [ 213s] [ 213s] lamb16 failed "build osmo-e1d_0.1.1.dsc" at Wed Dec 2 05:05:08 UTC 2020. [ 213s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:06:31 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:06:31 +0000 Subject: Build failure of network:osmocom:latest/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc720e04354f_f3a2ae56450e5f071858c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-pcu/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-pcu failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-pcu Last lines of build log: [ 174s] [425/488] installing python3.9-3.9.1~rc1-2 [ 176s] Processing triggers for mailcap (3.67) ... [ 176s] Processing triggers for man-db (2.9.3-2) ... [ 176s] [426/488] installing texlive-plain-generic-2020.20201129-1 [ 180s] Processing triggers for tex-common (6.15) ... [ 180s] Running mktexlsr. This may take some time... done. [ 180s] [427/488] installing texlive-latex-base-2020.20201129-2 [ 180s] Processing triggers for man-db (2.9.3-2) ... [ 181s] Processing triggers for tex-common (6.15) ... [ 181s] Running mktexlsr. This may take some time... done. [ 182s] Running updmap-sys. This may take some time... done. [ 182s] Running mktexlsr /var/lib/texmf ... done. [ 182s] Building format(s) --all. [ 190s] This may take some time... [ 190s] fmtutil failed. Output has been stored in [ 190s] /tmp/fmtutil.SI2syT9z [ 190s] Please include this file if you report a bug. [ 190s] dpkg: error processing package tex-common (--install): [ 190s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 190s] Errors were encountered while processing: [ 190s] tex-common [ 190s] exit ... [ 190s] ### VM INTERACTION START ### [ 193s] [ 174.079212] sysrq: Power Off [ 193s] [ 174.085202] reboot: Power down [ 193s] ### VM INTERACTION END ### [ 193s] [ 193s] lamb09 failed "build osmo-pcu_0.8.0.dsc" at Wed Dec 2 05:05:38 UTC 2020. [ 193s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:08:30 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:08:30 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc7215b55092_f3a2ae56450e5f07186fe@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-bts failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 199s] [436/499] installing python3.9-3.9.1~rc1-2 [ 200s] Processing triggers for mailcap (3.67) ... [ 200s] Processing triggers for man-db (2.9.3-2) ... [ 201s] [437/499] installing texlive-plain-generic-2020.20201129-1 [ 205s] Processing triggers for tex-common (6.15) ... [ 205s] Running mktexlsr. This may take some time... done. [ 205s] [438/499] installing texlive-latex-base-2020.20201129-2 [ 205s] Processing triggers for man-db (2.9.3-2) ... [ 206s] Processing triggers for tex-common (6.15) ... [ 206s] Running mktexlsr. This may take some time... done. [ 207s] Running updmap-sys. This may take some time... done. [ 207s] Running mktexlsr /var/lib/texmf ... done. [ 207s] Building format(s) --all. [ 216s] This may take some time... [ 216s] fmtutil failed. Output has been stored in [ 216s] /tmp/fmtutil.dPEnELL2 [ 216s] Please include this file if you report a bug. [ 216s] dpkg: error processing package tex-common (--install): [ 216s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 216s] Errors were encountered while processing: [ 216s] tex-common [ 216s] exit ... [ 216s] ### VM INTERACTION START ### [ 219s] [ 174.718157] sysrq: Power Off [ 219s] [ 174.723767] reboot: Power down [ 219s] ### VM INTERACTION END ### [ 219s] [ 219s] cloud116 failed "build osmo-bts_1.2.2.dsc" at Wed Dec 2 05:06:48 UTC 2020. [ 219s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:09:38 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:09:38 +0000 Subject: Build failure of network:osmocom:latest/osmo-trx in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc72197d1ecc_f3a2ae56450e5f07188b2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-trx/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-trx failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-trx Last lines of build log: [ 236s] Processing triggers for man-db (2.9.3-2) ... [ 236s] [507/654] installing texlive-plain-generic-2020.20201129-1 [ 240s] Processing triggers for tex-common (6.15) ... [ 240s] Running mktexlsr. This may take some time... done. [ 240s] [508/654] installing libpython3.9-3.9.1~rc1-2 [ 240s] Processing triggers for libc-bin (2.31-5) ... [ 240s] [509/654] installing texlive-latex-base-2020.20201129-2 [ 241s] Processing triggers for man-db (2.9.3-2) ... [ 241s] Processing triggers for tex-common (6.15) ... [ 241s] Running mktexlsr. This may take some time... done. [ 242s] Running updmap-sys. This may take some time... done. [ 242s] Running mktexlsr /var/lib/texmf ... done. [ 242s] Building format(s) --all. [ 250s] This may take some time... [ 250s] fmtutil failed. Output has been stored in [ 250s] /tmp/fmtutil.HY6PjTcw [ 250s] Please include this file if you report a bug. [ 250s] dpkg: error processing package tex-common (--install): [ 250s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 250s] Errors were encountered while processing: [ 250s] tex-common [ 250s] exit ... [ 250s] ### VM INTERACTION START ### [ 254s] [ 233.195930] sysrq: Power Off [ 254s] [ 233.200410] reboot: Power down [ 254s] ### VM INTERACTION END ### [ 254s] [ 254s] lamb28 failed "build osmo-trx_1.2.0.dsc" at Wed Dec 2 05:08:00 UTC 2020. [ 254s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:20:46 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:20:46 +0000 Subject: Build failure of network:osmocom:latest/osmo-sip-connector in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc7244974897_f3a2ae56450e5f07202f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sip-connector/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-sip-connector failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sip-connector Last lines of build log: [ 194s] [438/513] installing python3.9-3.9.1~rc1-2 [ 195s] Processing triggers for mailcap (3.67) ... [ 195s] Processing triggers for man-db (2.9.3-2) ... [ 196s] [439/513] installing texlive-plain-generic-2020.20201129-1 [ 200s] Processing triggers for tex-common (6.15) ... [ 200s] Running mktexlsr. This may take some time... done. [ 200s] [440/513] installing texlive-latex-base-2020.20201129-2 [ 200s] Processing triggers for man-db (2.9.3-2) ... [ 201s] Processing triggers for tex-common (6.15) ... [ 201s] Running mktexlsr. This may take some time... done. [ 202s] Running updmap-sys. This may take some time... done. [ 202s] Running mktexlsr /var/lib/texmf ... done. [ 202s] Building format(s) --all. [ 210s] This may take some time... [ 210s] fmtutil failed. Output has been stored in [ 210s] /tmp/fmtutil.jUqkW3ze [ 210s] Please include this file if you report a bug. [ 210s] dpkg: error processing package tex-common (--install): [ 210s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 210s] Errors were encountered while processing: [ 210s] tex-common [ 210s] exit ... [ 210s] ### VM INTERACTION START ### [ 213s] [ 177.387035] sysrq: Power Off [ 213s] [ 177.391551] reboot: Power down [ 213s] ### VM INTERACTION END ### [ 213s] [ 213s] cloud107 failed "build osmo-sip-connector_1.4.1.dsc" at Wed Dec 2 05:20:07 UTC 2020. [ 213s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:22:46 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:22:46 +0000 Subject: Build failure of network:osmocom:latest/osmo-remsim in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc724bf194d9_f3a2ae56450e5f0720558@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-remsim/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-remsim failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-remsim Last lines of build log: [ 250s] [457/524] installing python3.9-3.9.1~rc1-2 [ 251s] Processing triggers for mailcap (3.67) ... [ 251s] Processing triggers for man-db (2.9.3-2) ... [ 251s] [458/524] installing texlive-plain-generic-2020.20201129-1 [ 255s] Processing triggers for tex-common (6.15) ... [ 255s] Running mktexlsr. This may take some time... done. [ 255s] [459/524] installing texlive-latex-base-2020.20201129-2 [ 256s] Processing triggers for man-db (2.9.3-2) ... [ 256s] Processing triggers for tex-common (6.15) ... [ 256s] Running mktexlsr. This may take some time... done. [ 257s] Running updmap-sys. This may take some time... done. [ 257s] Running mktexlsr /var/lib/texmf ... done. [ 257s] Building format(s) --all. [ 266s] This may take some time... [ 266s] fmtutil failed. Output has been stored in [ 266s] /tmp/fmtutil.TxVwlpLl [ 266s] Please include this file if you report a bug. [ 266s] dpkg: error processing package tex-common (--install): [ 266s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 266s] Errors were encountered while processing: [ 266s] tex-common [ 266s] exit ... [ 266s] ### VM INTERACTION START ### [ 269s] [ 247.848383] sysrq: Power Off [ 269s] [ 247.854476] reboot: Power down [ 269s] ### VM INTERACTION END ### [ 269s] [ 269s] lamb04 failed "build osmo-remsim_0.2.3.dsc" at Wed Dec 2 05:22:02 UTC 2020. [ 269s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:26:48 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:26:48 +0000 Subject: Build failure of network:osmocom:latest/osmo-bsc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc725ae9266d_f3a2ae56450e5f0721278@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bsc/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-bsc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bsc Last lines of build log: [ 466s] Processing triggers for mailcap (3.67) ... [ 466s] Processing triggers for man-db (2.9.3-2) ... [ 468s] [439/505] installing texlive-plain-generic-2020.20201129-1 [ 476s] Processing triggers for tex-common (6.15) ... [ 476s] Running mktexlsr. This may take some time... done. [ 476s] [440/505] installing libosmo-netif-dev-1.0.0 [ 476s] [441/505] installing texlive-latex-base-2020.20201129-2 [ 478s] Processing triggers for man-db (2.9.3-2) ... [ 480s] Processing triggers for tex-common (6.15) ... [ 480s] Running mktexlsr. This may take some time... done. [ 481s] Running updmap-sys. This may take some time... done. [ 481s] Running mktexlsr /var/lib/texmf ... done. [ 481s] Building format(s) --all. [ 493s] This may take some time... [ 493s] fmtutil failed. Output has been stored in [ 493s] /tmp/fmtutil.onRbrzKz [ 493s] Please include this file if you report a bug. [ 493s] dpkg: error processing package tex-common (--install): [ 493s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 493s] Errors were encountered while processing: [ 493s] tex-common [ 493s] exit ... [ 493s] ### VM INTERACTION START ### [ 496s] [ 459.615406] sysrq: Power Off [ 496s] [ 459.654484] reboot: Power down [ 496s] ### VM INTERACTION END ### [ 497s] [ 497s] lamb52 failed "build osmo-bsc_1.6.1.dsc" at Wed Dec 2 05:25:12 UTC 2020. [ 497s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:35:03 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:35:03 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc7278fb4ca7_f3a2ae56450e5f0723865@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-sgsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 111s] Processing triggers for mailcap (3.67) ... [ 111s] Processing triggers for man-db (2.9.3-2) ... [ 111s] [447/511] installing texlive-plain-generic-2020.20201129-1 [ 114s] Processing triggers for tex-common (6.15) ... [ 114s] Running mktexlsr. This may take some time... done. [ 114s] [448/511] installing libosmo-netif-dev-1.0.0 [ 114s] [449/511] installing texlive-latex-base-2020.20201129-2 [ 114s] Processing triggers for man-db (2.9.3-2) ... [ 115s] Processing triggers for tex-common (6.15) ... [ 115s] Running mktexlsr. This may take some time... done. [ 115s] Running updmap-sys. This may take some time... done. [ 115s] Running mktexlsr /var/lib/texmf ... done. [ 115s] Building format(s) --all. [ 122s] This may take some time... [ 122s] fmtutil failed. Output has been stored in [ 122s] /tmp/fmtutil.VCsfa0cK [ 122s] Please include this file if you report a bug. [ 122s] dpkg: error processing package tex-common (--install): [ 122s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 122s] Errors were encountered while processing: [ 122s] tex-common [ 122s] exit ... [ 122s] ### VM INTERACTION START ### [ 125s] [ 112.111134] sysrq: Power Off [ 125s] [ 112.112942] reboot: Power down [ 125s] ### VM INTERACTION END ### [ 125s] [ 125s] build82 failed "build osmo-sgsn_1.6.2.dsc" at Wed Dec 2 05:34:33 UTC 2020. [ 125s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 05:36:47 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 05:36:47 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc72805385af_f3a2ae56450e5f0724054@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-msc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 179s] Processing triggers for mailcap (3.67) ... [ 179s] Processing triggers for man-db (2.9.3-2) ... [ 180s] [449/514] installing texlive-plain-generic-2020.20201129-1 [ 183s] Processing triggers for tex-common (6.15) ... [ 184s] Running mktexlsr. This may take some time... done. [ 184s] [450/514] installing libosmo-netif-dev-1.0.0 [ 184s] [451/514] installing texlive-latex-base-2020.20201129-2 [ 184s] Processing triggers for man-db (2.9.3-2) ... [ 184s] Processing triggers for tex-common (6.15) ... [ 185s] Running mktexlsr. This may take some time... done. [ 185s] Running updmap-sys. This may take some time... done. [ 185s] Running mktexlsr /var/lib/texmf ... done. [ 185s] Building format(s) --all. [ 194s] This may take some time... [ 194s] fmtutil failed. Output has been stored in [ 194s] /tmp/fmtutil.tzTakjUE [ 194s] Please include this file if you report a bug. [ 194s] dpkg: error processing package tex-common (--install): [ 194s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 194s] Errors were encountered while processing: [ 194s] tex-common [ 194s] exit ... [ 194s] ### VM INTERACTION START ### [ 197s] [ 161.451102] sysrq: Power Off [ 197s] [ 161.456401] reboot: Power down [ 197s] ### VM INTERACTION END ### [ 197s] [ 197s] cloud128 failed "build osmo-msc_1.6.3.dsc" at Wed Dec 2 05:36:03 UTC 2020. [ 197s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 2 06:17:03 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 02 Dec 2020 06:17:03 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc73166bde04_f3a2ae56450e5f0733765@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 237s] [459/526] installing python3.9-3.9.1~rc1-2 [ 239s] Processing triggers for mailcap (3.67) ... [ 239s] Processing triggers for man-db (2.9.3-2) ... [ 239s] [460/526] installing texlive-plain-generic-2020.20201129-1 [ 243s] Processing triggers for tex-common (6.15) ... [ 243s] Running mktexlsr. This may take some time... done. [ 243s] [461/526] installing texlive-latex-base-2020.20201129-2 [ 244s] Processing triggers for man-db (2.9.3-2) ... [ 244s] Processing triggers for tex-common (6.15) ... [ 245s] Running mktexlsr. This may take some time... done. [ 245s] Running updmap-sys. This may take some time... done. [ 245s] Running mktexlsr /var/lib/texmf ... done. [ 245s] Building format(s) --all. [ 255s] This may take some time... [ 255s] fmtutil failed. Output has been stored in [ 255s] /tmp/fmtutil.0i2sfw7k [ 255s] Please include this file if you report a bug. [ 255s] dpkg: error processing package tex-common (--install): [ 255s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 255s] Errors were encountered while processing: [ 255s] tex-common [ 255s] exit ... [ 255s] ### VM INTERACTION START ### [ 258s] [ 235.013038] sysrq: Power Off [ 258s] [ 235.019669] reboot: Power down [ 258s] ### VM INTERACTION END ### [ 258s] [ 258s] cumulus3 failed "build osmo-remsim_0.2.2.103.dc34.dsc" at Wed Dec 2 06:16:21 UTC 2020. [ 258s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From jenkins at lists.osmocom.org Wed Dec 2 06:52:35 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 2 Dec 2020 06:52:35 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_mast?= =?UTF-8?Q?er-simtrace2_=C2=BB_a1=3Ddefault,a2=3D?= =?UTF-8?Q?default,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#1008?= Message-ID: <216126720.659.1606891955361@jenkins.osmocom.org> See Changes: ------------------------------------------ [...truncated 137.65 KB...] UART_RX(00) UART_RX(00) UART_RX(07) uart_enable(uart_chan=42, TX) -I- 0: send_tpdu_header: a0 d2 00 00 07 -I- 0: flush_rx_buffer (5) [L1]> 01 06 00 00 00 00 13 00 [L2]> 01 00 00 00 05 00 a0 d2 00 00 07 flags=1, data= a0 d2 00 00 07 UART_TX(d2) uart_enable(uart_chan=42, RX) UART_RX(00) UART_RX(01) UART_RX(02) UART_RX(03) UART_RX(04) UART_RX(05) UART_RX(06) -I- 0: flush_rx_buffer (7) [L1]> 01 06 00 00 00 00 15 00 [L2]> 02 00 00 00 07 00 00 01 02 03 04 05 06 flags=2, data= 00 01 02 03 04 05 06 UART_TX(90) UART_TX(00) uart_enable(uart_chan=42, RX) uart_enable(uart_chan=42, RX) -I- 0: CLK deactivated -I- 0: CLK activated ==> transmitting APDU (HDR + PB + card-TX) UART_RX(a0) UART_RX(b2) UART_RX(00) UART_RX(00) UART_RX(0a) uart_enable(uart_chan=42, TX) -I- 0: send_tpdu_header: a0 b2 00 00 0a -I- 0: flush_rx_buffer (5) [L1]> 01 06 00 00 00 00 13 00 [L2]> 01 00 00 00 05 00 a0 b2 00 00 0a flags=1, data= a0 b2 00 00 0a UART_TX(b2) UART_TX(00) UART_TX(01) UART_TX(02) UART_TX(03) UART_TX(04) UART_TX(05) UART_TX(06) UART_TX(07) UART_TX(08) UART_TX(09) UART_TX(90) UART_TX(00) uart_enable(uart_chan=42, RX) uart_enable(uart_chan=42, RX) -I- 0: CLK deactivated -I- 0: CLK activated =============== HOST START ============== aclocal: warning: couldn't open directory 'm4': No such file or directory libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:20: installing './compile' configure.ac:22: installing './config.guess' configure.ac:22: installing './config.sub' configure.ac:8: installing './install-sh' configure.ac:8: installing './missing' lib/Makefile.am: installing './depcomp' checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking if gcc supports -fvisibility=hidden... yes checking for LIBOSMOCORE... yes checking for LIBOSMOSIM... yes checking for LIBOSMOUSB... yes checking for LIBUSB... yes CFLAGS="-g -O2 -Wall -fsanitize=address -fsanitize=undefined -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" CPPFLAGS=" -Wall -fsanitize=address -fsanitize=undefined -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-simtrace2.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating lib/Makefile config.status: creating contrib/Makefile config.status: creating contrib/simtrace2.spec config.status: creating Makefile config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands echo 0.7.0.69-aadd > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build/host' Making all in include make[2]: Entering directory '/build/host/include' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/host/include' Making all in lib make[2]: Entering directory '/build/host/lib' CC apdu_dispatch.lo CC gsmtap.lo CC simtrace2_api.lo CC usb_util.lo CCLD libosmo-simtrace2.la ar: `u' modifier ignored since `D' is the default (see `U') make[2]: Leaving directory '/build/host/lib' Making all in src make[2]: Entering directory '/build/host/src' CC simtrace2-cardem-pcsc.o CC simtrace2_usb.o CC simtrace2-sniff.o CCLD simtrace2-list CCLD simtrace2-sniff CCLD simtrace2-cardem-pcsc make[2]: Leaving directory '/build/host/src' Making all in contrib make[2]: Entering directory '/build/host/contrib' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/host/contrib' make[2]: Entering directory '/build/host' make[2]: Nothing to be done for 'all-am'. make[2]: Leaving directory '/build/host' make[1]: Leaving directory '/build/host' make dist-bzip2 am__post_remove_distdir='@:' make[1]: Entering directory '/build/host' if test -d "simtrace2-0.7.0.69-aadd"; then find "simtrace2-0.7.0.69-aadd" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "simtrace2-0.7.0.69-aadd" || { sleep 5 && rm -rf "simtrace2-0.7.0.69-aadd"; }; else :; fi test -d "simtrace2-0.7.0.69-aadd" || mkdir "simtrace2-0.7.0.69-aadd" (cd include && make top_distdir=../simtrace2-0.7.0.69-aadd distdir=../simtrace2-0.7.0.69-aadd/include \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory '/build/host/include' make[2]: Leaving directory '/build/host/include' (cd lib && make top_distdir=../simtrace2-0.7.0.69-aadd distdir=../simtrace2-0.7.0.69-aadd/lib \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory '/build/host/lib' make[2]: Leaving directory '/build/host/lib' (cd src && make top_distdir=../simtrace2-0.7.0.69-aadd distdir=../simtrace2-0.7.0.69-aadd/src \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory '/build/host/src' make[2]: Leaving directory '/build/host/src' (cd contrib && make top_distdir=../simtrace2-0.7.0.69-aadd distdir=../simtrace2-0.7.0.69-aadd/contrib \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory '/build/host/contrib' make[2]: Leaving directory '/build/host/contrib' make \ top_distdir="simtrace2-0.7.0.69-aadd" distdir="simtrace2-0.7.0.69-aadd" \ dist-hook make[2]: Entering directory '/build/host' echo 0.7.0.69-aadd > simtrace2-0.7.0.69-aadd/.tarball-version make[2]: Leaving directory '/build/host' test -n "" \ || find "simtrace2-0.7.0.69-aadd" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec /bin/bash /build/host/install-sh -c -m a+r {} {} \; \ || chmod -R a+r "simtrace2-0.7.0.69-aadd" tardir=simtrace2-0.7.0.69-aadd && ${TAR-tar} chof - "$tardir" | BZIP2=${BZIP2--9} bzip2 -c >simtrace2-0.7.0.69-aadd.tar.bz2 make[1]: Leaving directory '/build/host' if test -d "simtrace2-0.7.0.69-aadd"; then find "simtrace2-0.7.0.69-aadd" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "simtrace2-0.7.0.69-aadd" || { sleep 5 && rm -rf "simtrace2-0.7.0.69-aadd"; }; else :; fi =============== UPLOAD BUILD ============== Warning: Permanently added the ECDSA host key for IP address '[144.76.43.76]:48' to the list of known hosts. Permission denied (publickey,keyboard-interactive). rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2] Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Dec 2 10:46:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 10:46:01 +0000 Subject: Change in osmo-bsc[master]: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21454 ) Change subject: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() ...................................................................... gsm_08_08: fix NULL pointer dereference in bsc_cm_update() MS Classmark 3 is optional, and thus can be NULL. Change-Id: I4f1455a3db4972ea9843564b590e405c51083b47 Fixes: I39ae439d05562b35b2e47774dc92f8789fea1a57 Fixes: CID#215593 "Explicit null dereferenced" --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 9 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/54/21454/1 diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 9c5cf2f..52a92c8 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -603,13 +603,15 @@ } conn_update_ms_power_class(conn, rc8); - rc = gsm48_decode_classmark3(&conn->cm3, cm3, cm3_len); - if (rc < 0) { - LOGP(DMSC, LOGL_NOTICE, "Unable to decode classmark3 during CM Update.\n"); - memset(&conn->cm3, 0, sizeof(conn->cm3)); - conn->cm3_valid = false; - } else - conn->cm3_valid = true; + if (cm3 != NULL && cm3_len > 0) { + rc = gsm48_decode_classmark3(&conn->cm3, cm3, cm3_len); + if (rc < 0) { + LOGP(DMSC, LOGL_NOTICE, "Unable to decode classmark3 during CM Update.\n"); + memset(&conn->cm3, 0, sizeof(conn->cm3)); + conn->cm3_valid = false; + } else + conn->cm3_valid = true; + } if (!msc_connected(conn)) return; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4f1455a3db4972ea9843564b590e405c51083b47 Gerrit-Change-Number: 21454 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 Dec 2 12:46:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:46:21 +0000 Subject: Change in osmo-bts[master]: struct gsm_bts: move ul_power_{target, hysteresis} to ul_power_ctrl In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21434 ) Change subject: struct gsm_bts: move ul_power_{target,hysteresis} to ul_power_ctrl ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3886c7aedf3870536f1750f864cf698302ddf2df Gerrit-Change-Number: 21434 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:46: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 Dec 2 12:46:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:46:45 +0000 Subject: Change in osmo-bts[master]: bts: rename MS_UL_PF_ALGO_{NONE, EWMA} to BTS_PF_ALGO_{NONE, EWMA} In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21435 ) Change subject: bts: rename MS_UL_PF_ALGO_{NONE,EWMA} to BTS_PF_ALGO_{NONE,EWMA} ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I580512eea1d329a4d25ccbd6fc2ab98b083ec51d Gerrit-Change-Number: 21435 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:46: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 Dec 2 12:48:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:48:12 +0000 Subject: Change in osmo-bts[master]: bts: generalize a struct for UL/DL power control parameters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21436 ) Change subject: bts: generalize a struct for UL/DL power control parameters ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I504de17fb3c1300c2a3faa6d7d3a9eb1b74b214b Gerrit-Change-Number: 21436 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:48: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 Dec 2 12:49:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:49:08 +0000 Subject: Change in osmo-bts[master]: bts: add Downlink power control parameters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21437 ) Change subject: bts: add Downlink power control parameters ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I724f661e9ce5dd75f95fb7b270a89b2e2a73c951 Gerrit-Change-Number: 21437 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:49: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 Dec 2 12:50:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:50:24 +0000 Subject: Change in osmo-bts[master]: vty: add commands for Downlink power control In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21438 ) Change subject: vty: add commands for Downlink power control ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c at 655 PS1, Line 655: i > We definitely not going to have more directions than Uplink and Downlink, so I don't see a reason to [?] I agree with laforge in general I'd use strcmp in these scenarios. -- 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: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:50:24 +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 Wed Dec 2 12:50:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:50:50 +0000 Subject: Change in osmo-bts[master]: l1sap: make sure that UL SACCH is always 23 octets long In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21439 ) Change subject: l1sap: make sure that UL SACCH is always 23 octets long ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1c8a43337fbc1acfab3c0f0713c75ded95d69512 Gerrit-Change-Number: 21439 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:50: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 Dec 2 12:51:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:51:38 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h at 165 PS1, Line 165: uint8_t current; : uint8_t max; : bool fixed; > This structure is a bit special: in case of Downlink, it stores attenuation in dB; in case of Uplin [?] In that case what about adding a union and having 2 different variables inside the union? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:51:38 +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 Wed Dec 2 12:52:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:52:24 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21442 ) Change subject: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21442/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/21442/1//COMMIT_MSG at 7 PS1, Line 7: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr why? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Gerrit-Change-Number: 21442 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:52: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 Wed Dec 2 12:52:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:52:38 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21443 ) Change subject: power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idf46e47f20f031ff9dded1be1e6c4337d7b423e7 Gerrit-Change-Number: 21443 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:52: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 Dec 2 12:53:15 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 12:53:15 +0000 Subject: Change in osmo-bts[master]: vty: add commands for Downlink power control In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21438 ) Change subject: vty: add commands for Downlink power control ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c at 655 PS1, Line 655: i > I agree with laforge in general I'd use strcmp in these scenarios. Ok, but I still see no arguments *why* strcmp() is preferred, and what's wrong with checking the first letter? For now it sounds more like personal preferences... -- 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: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:53:15 +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 Wed Dec 2 12:53:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:53:30 +0000 Subject: Change in osmo-bts[master]: power_control: generalize and rename lchan_ul_pf_ewma() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21444 ) Change subject: power_control: generalize and rename lchan_ul_pf_ewma() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16c2e1b997f2b8af44d47809420293f072335bbd Gerrit-Change-Number: 21444 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:53: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 Dec 2 12:53:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:53:33 +0000 Subject: Change in osmo-bts[master]: power_control: generalize and rename lchan_ul_pf_ewma() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21444 ) Change subject: power_control: generalize and rename lchan_ul_pf_ewma() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16c2e1b997f2b8af44d47809420293f072335bbd Gerrit-Change-Number: 21444 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:53: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 Dec 2 12:53:59 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:53:59 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21445 ) Change subject: power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I177d82cd61d59256976007fed2f7da400b814789 Gerrit-Change-Number: 21445 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:53: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 Dec 2 12:54:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 12:54:30 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h at 165 PS1, Line 165: uint8_t current; : uint8_t max; : bool fixed; > In that case what about adding a union and having 2 different variables inside the union? I don't think it makes sense. The meaning of fields remains the same in BS/MS cases, only units are different. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:54:30 +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 Wed Dec 2 12:56:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:56:41 +0000 Subject: Change in osmo-bts[master]: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21446 ) Change subject: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/21446/1/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21446/1/src/common/power_control.c at 120 PS1, Line 120: # > I agree that this log message should go (and that for sure it never should have been LOGL_INFO). [?] agree with laforge https://gerrit.osmocom.org/c/osmo-bts/+/21446/1/src/common/power_control.c at 205 PS1, Line 205: ul_rssi_dbm, params->target); This also looks non-related to this patch, or at least may deserve a separate patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Gerrit-Change-Number: 21446 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:56:41 +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 Dec 2 12:57:26 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 12:57:26 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add logging macros for NSE and BVC References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 ) Change subject: gbproxy: Add logging macros for NSE and BVC ...................................................................... gbproxy: Add logging macros for NSE and BVC Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Related: SYS#5233 --- M include/osmocom/sgsn/gb_proxy.h 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/55/21455/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 9f91bd6..83af9d6 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -237,6 +237,17 @@ bool is_matching[GBPROX_MATCH_LAST]; }; +/* Convenience logging macros for NSE/BVC */ +#define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ + LOGP(SUBSYS, LEVEL, "NSE(%04x) " FMT, (NSE)->nsei, ## ARGS) +#define LOGPNSE(NSE, LEVEL, FMT, ARGS...) \ + LOGPNSE_CAT(NSE, DGPRS, LEVEL, FMT, ## ARGS) + +#define LOGPBVC_CAT(BVC, SUBSYS, LEVEL, FMT, ARGS...) \ + LOGP(SUBSYS, LEVEL, "NSE(%04x)-BVC(%04x/%s) " FMT, (BVC)->nse->nsei, (BVC)->bvci, \ + (BVC)->blocked ? "BLOCKED" : "UNBLOCKED", ## ARGS) +#define LOGPBVC(BVC, LEVEL, FMT, ARGS...) \ + LOGPBVC_CAT(BVC, DGPRS, LEVEL, FMT, ## ARGS) /* gb_proxy_vty .c */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Gerrit-Change-Number: 21455 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 Dec 2 12:57:27 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 12:57:27 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use LOG macros for NSE/BVC References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 ) Change subject: gbproxy: Use LOG macros for NSE/BVC ...................................................................... gbproxy: Use LOG macros for NSE/BVC Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Related: SYS#5233 --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_tlli.c 3 files changed, 72 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/56/21456/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index bd58617..50645d7 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -87,7 +87,7 @@ OSMO_ASSERT(peer->nse); if (peer->nse->nsei != nsei) { - LOGP(DGPRS, LOGL_NOTICE, "Peer entry doesn't match current NSEI " + LOGPBVC(peer, LOGL_NOTICE, "Peer entry doesn't match current NSEI " "BVCI=%u via NSEI=%u (expected NSEI=%u)\n", peer->bvci, nsei, peer->nse->nsei); rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_INV_NSEI]); @@ -224,7 +224,7 @@ } if (osmo_plmn_cmp(&old_plmn, &state->local_plmn)) - LOGP(DGPRS, LOGL_NOTICE, + LOGPBVC(peer, LOGL_NOTICE, "Patching RAID %sactivated, msg: %s, " "local: %s, core: %s\n", state->local_plmn.mcc || state->local_plmn.mnc ? @@ -257,7 +257,7 @@ } if (bss_ptmsi == GSM_RESERVED_TMSI) - LOGP(DGPRS, LOGL_ERROR, "Failed to allocate a BSS P-TMSI: %d (%s)\n", rc, strerror(-rc)); + LOGPBVC(peer, LOGL_ERROR, "Failed to allocate a BSS P-TMSI: %d (%s)\n", rc, strerror(-rc)); return bss_ptmsi; } @@ -295,7 +295,7 @@ } if (!sgsn_tlli) - LOGP(DGPRS, LOGL_ERROR, "Failed to allocate an SGSN TLLI: %d (%s)\n", rc, strerror(-rc)); + LOGPBVC(peer, LOGL_ERROR, "Failed to allocate an SGSN TLLI: %d (%s)\n", rc, strerror(-rc)); return sgsn_tlli; } @@ -335,6 +335,7 @@ { int rc; struct msgb *stored_msg; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -358,7 +359,7 @@ rc = gbproxy_update_link_state_after(peer, link_info, now, &tmp_parse_ctx); if (rc == 1) { - LOGP(DLLC, LOGL_NOTICE, "link_info deleted while flushing stored messages\n"); + LOGPBVC_CAT(peer, DLLC, LOGL_NOTICE, "link_info deleted while flushing stored messages\n"); msgb_free(stored_msg); return -1; } @@ -367,7 +368,7 @@ msgb_bvci(stored_msg), link_info->sgsn_nsei); if (rc < 0) - LOGP(DLLC, LOGL_ERROR, + LOGPBVC_CAT(peer, DLLC, LOGL_ERROR, "NSEI=%d(BSS) failed to send stored message " "(%s)\n", tmp_parse_ctx.peer_nsei, @@ -433,6 +434,7 @@ struct gprs_gb_parse_context *parse_ctx) { struct msgb *stored_msg; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -449,7 +451,7 @@ case GSM48_MT_GMM_RA_UPD_REQ: case GSM48_MT_GMM_ATTACH_REQ: if (gbproxy_restart_imsi_acquisition(link_info)) { - LOGP(DLLC, LOGL_INFO, + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, "NSEI=%d(BSS) IMSI acquisition was in progress " "when receiving an %s.\n", msgb_nsei(msg), parse_ctx->llc_msg_name); @@ -458,13 +460,13 @@ case GSM48_MT_GMM_DETACH_REQ: /* Nothing has been sent to the SGSN yet */ if (link_info->imsi_acq_pending) { - LOGP(DLLC, LOGL_INFO, + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, "NSEI=%d(BSS) IMSI acquisition was in progress " "when receiving a DETACH_REQ.\n", msgb_nsei(msg)); } if (!parse_ctx->invalidate_tlli) { - LOGP(DLLC, LOGL_INFO, + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, "NSEI=%d(BSS) IMSI not yet acquired, " "faking a DETACH_ACC.\n", msgb_nsei(msg)); @@ -483,7 +485,7 @@ gsm48_hdr_pdisc(parse_ctx->g48_hdr) == GSM48_PDISC_MM_GPRS && gsm48_hdr_msg_type(parse_ctx->g48_hdr) == GSM48_MT_GMM_ID_RESP; - LOGP(DLLC, LOGL_DEBUG, + LOGPBVC_CAT(peer, DLLC, LOGL_DEBUG, "NSEI=%d(BSS) IMSI acquisition succeeded, " "flushing stored messages\n", msgb_nsei(msg)); @@ -512,7 +514,7 @@ struct msgb *msgb_drop; msgb_drop = msgb_dequeue_count(&link_info->stored_msgs, &link_info->stored_msgs_len); - LOGP(DLLC, LOGL_INFO, + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, "NSEI=%d(BSS) Dropping stored msgb from list " "(!acq imsi, length %d, max_len exceeded)\n", msgb_nsei(msgb_drop), link_info->stored_msgs_len); @@ -522,7 +524,7 @@ } /* Enqueue unpatched messages */ - LOGP(DLLC, LOGL_INFO, + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, "NSEI=%d(BSS) IMSI acquisition in progress, " "storing message (%s)\n", msgb_nsei(msg), @@ -533,7 +535,7 @@ &link_info->stored_msgs_len); if (!link_info->imsi_acq_pending) { - LOGP(DLLC, LOGL_INFO, + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, "NSEI=%d(BSS) IMSI is required but not available, " "initiating identification procedure (%s)\n", msgb_nsei(msg), @@ -603,11 +605,11 @@ &parse_ctx); if (!rc && !parse_ctx.need_decryption) { - LOGP(DGPRS, LOGL_ERROR, + LOGPBVC(peer, LOGL_ERROR, "NSEI=%u(BSS) patching: failed to parse invalid %s message\n", msgb_nsei(msg), gprs_gb_message_name(&parse_ctx, "NS_UNITDATA")); gprs_gb_log_parse_context(LOGL_NOTICE, &parse_ctx, "NS_UNITDATA"); - LOGP(DGPRS, LOGL_NOTICE, + LOGPBVC(peer, LOGL_NOTICE, "NSEI=%u(BSS) invalid message was: %s\n", msgb_nsei(msg), msgb_hexdump(msg)); return 0; @@ -720,11 +722,11 @@ &parse_ctx); if (!rc && !parse_ctx.need_decryption) { - LOGP(DGPRS, LOGL_ERROR, + LOGPBVC(peer, LOGL_ERROR, "NSEI=%u(SGSN) patching: failed to parse invalid %s message\n", msgb_nsei(msg), gprs_gb_message_name(&parse_ctx, "NS_UNITDATA")); gprs_gb_log_parse_context(LOGL_NOTICE, &parse_ctx, "NS_UNITDATA"); - LOGP(DGPRS, LOGL_NOTICE, + LOGPBVC(peer, LOGL_NOTICE, "NSEI=%u(SGSN) invalid message was: %s\n", msgb_nsei(msg), msgb_hexdump(msg)); return; @@ -986,7 +988,7 @@ } if (peer->blocked) { - LOGP(DGPRS, LOGL_NOTICE, "Dropping PDU for " + LOGPBVC(peer, LOGL_NOTICE, "Dropping PDU for " "blocked BVCI=%u via NSEI=%u\n", ns_bvci, nsei); rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); @@ -1059,9 +1061,9 @@ memcpy(from_peer->ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), sizeof(from_peer->ra)); gsm48_parse_ra(&raid, from_peer->ra); - LOGP(DGPRS, LOGL_INFO, "NSEI=%u BSSGP SUSPEND/RESUME " + LOGPBVC(from_peer, LOGL_INFO, "BSSGP SUSPEND/RESUME " "RAI snooping: RAI %s behind BVCI=%u\n", - nsei, osmo_rai_name(&raid), from_peer->bvci); + osmo_rai_name(&raid), from_peer->bvci); /* FIXME: This only supports one BSS per RA */ break; case BSSGP_PDUT_BVC_RESET: @@ -1076,14 +1078,16 @@ struct gbproxy_nse *nse; /* Ensure the NSE peer is there and clear all PtP BVCs */ nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); - if (!nse) + if (!nse) { LOGP(DGPRS, LOGL_ERROR, "Could not allocate NSE for NSEI=%u\n", nsei); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); + } gbproxy_cleanup_peers(cfg, nsei, 0); /* FIXME: only do this if SGSN is alive! */ - LOGP(DGPRS, LOGL_INFO, "NSEI=%u Tx fake " - "BVC RESET ACK of BVCI=0\n", nsei); + LOGPNSE(nse, LOGL_INFO, "Tx fake " + "BVC RESET ACK of BVCI=0\n"); return bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, ns_bvci); } @@ -1097,21 +1101,20 @@ } /* if a PTP-BVC is reset, and we don't know that * PTP-BVCI yet, we should allocate a new peer */ - LOGP(DGPRS, LOGL_INFO, "Allocationg new peer for BVCI=%u via NSEI=%u\n", bvci, nsei); from_peer = gbproxy_peer_alloc(nse, bvci); OSMO_ASSERT(from_peer); + LOGPBVC(from_peer, LOGL_INFO, "Allocated new peer\n"); } /* Could have moved to a different NSE */ if (!check_peer_nsei(from_peer, nsei)) { - struct gbproxy_nse *nse_old = from_peer->nse; struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); if (!nse_new) { LOGP(DGPRS, LOGL_NOTICE, "Got PtP BVC reset before signalling reset for " "BVCI=%u NSEI=%u\n", bvci, nsei); return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); } - LOGP(DGPRS, LOGL_NOTICE, "Peer for BVCI=%u moved from NSEI=%u to NSEI=%u\n", bvci, nse_old->nsei, nsei); + LOGPBVC(from_peer, LOGL_NOTICE, "Peer moved to NSEI=%u\n", nsei); /* Move peer to different NSE */ gbproxy_peer_move(from_peer, nse_new); @@ -1127,8 +1130,8 @@ TLVP_VAL(&tp, BSSGP_IE_CELL_ID), sizeof(from_peer->ra)); gsm48_parse_ra(&raid, from_peer->ra); - LOGP(DGPRS, LOGL_INFO, "NSEI=%u/BVCI=%u Cell ID %s\n", - nsei, bvci, osmo_rai_name(&raid)); + LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", + osmo_rai_name(&raid)); } if (cfg->route_to_sgsn2) copy_to_sgsn2 = 1; @@ -1169,19 +1172,19 @@ /* FIXME: Handle paging logic to only page each matching NSE */ - LOGP(DGPRS, LOGL_INFO, "NSEI=%u(SGSN) BSSGP PAGING ", + LOGP(DGPRS, LOGL_INFO, "NSEI=%u(SGSN) BSSGP PAGING\n", nsei); if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; peer = gbproxy_peer_by_bvci(cfg, bvci); - LOGPC(DGPRS, LOGL_INFO, "routing by BVCI to peer BVCI=%u\n", bvci); if (!peer) { LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u(SGSN) BSSGP PAGING: " "unable to route: BVCI=%u unknown\n", nsei, bvci); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } + LOGPBVC(peer, LOGL_INFO, "routing by BVCI\n"); return gbprox_relay2peer(msg, peer, ns_bvci); } else if (TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA)) { errctr = GBPROX_GLOB_CTR_INV_RAI; @@ -1189,7 +1192,7 @@ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { - LOGPC(DGPRS, LOGL_INFO, "routing by RAI to peer NSEI=%u\n", peer->bvci); + LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; /* Only send it once to each NSE */ @@ -1203,7 +1206,7 @@ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { - LOGPC(DGPRS, LOGL_INFO, "routing by LAI to peer BVCI=%u\n", peer->bvci); + LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; /* Only send it once to each NSE */ @@ -1215,7 +1218,7 @@ /* iterate over all peers and dispatch the paging to each matching one */ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { - LOGPC(DGPRS, LOGL_INFO, "broadcasting to peer BVCI=%u\n", peer->bvci); + LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; /* Only send it once to each NSE */ @@ -1223,7 +1226,6 @@ } } } else { - LOGPC(DGPRS, LOGL_INFO, "\n"); LOGP(DGPRS, LOGL_ERROR, "NSEI=%u(SGSN) BSSGP PAGING: " "unable to route, missing IE\n", nsei); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); diff --git a/src/gbproxy/gb_proxy_patch.c b/src/gbproxy/gb_proxy_patch.c index 6601657..568982d 100644 --- a/src/gbproxy/gb_proxy_patch.c +++ b/src/gbproxy/gb_proxy_patch.c @@ -36,6 +36,7 @@ static void gbproxy_patch_raid(struct gsm48_ra_id *raid_enc, struct gbproxy_peer *peer, int to_bss, const char *log_text) { + OSMO_ASSERT(peer); struct gbproxy_patch_state *state = &peer->patch_state; struct osmo_plmn_id old_plmn; struct gprs_ra_id raid; @@ -79,7 +80,7 @@ } } - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %s to %s: " "%s-%d-%d -> %s\n", log_text, @@ -104,6 +105,7 @@ size_t apn_len = hdr->apn_len; uint8_t *apn = hdr->apn; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -114,7 +116,7 @@ if (cfg->core_apn_size == 0) { char str1[110]; /* Remove the IE */ - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %s to SGSN: Removing APN '%s'\n", log_text, osmo_apn_to_str(str1, apn, apn_len)); @@ -128,7 +130,7 @@ OSMO_ASSERT(cfg->core_apn_size <= 100); - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %s to SGSN: " "Replacing APN '%s' -> '%s'\n", log_text, @@ -156,6 +158,7 @@ to_bss ? GBPROX_PEER_CTR_TLLI_PATCHED_SGSN : GBPROX_PEER_CTR_TLLI_PATCHED_BSS; + OSMO_ASSERT(peer); memcpy(&tlli_be, tlli_enc, sizeof(tlli_be)); tlli = ntohl(tlli_be); @@ -163,7 +166,7 @@ if (tlli == new_tlli) return 0; - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %ss: " "Replacing %08x -> %08x\n", log_text, tlli, new_tlli); @@ -187,13 +190,15 @@ to_bss ? GBPROX_PEER_CTR_PTMSI_PATCHED_SGSN : GBPROX_PEER_CTR_PTMSI_PATCHED_BSS; + OSMO_ASSERT(peer); + memcpy(&ptmsi_be, ptmsi_enc, sizeof(ptmsi_be)); ptmsi = ntohl(ptmsi_be); if (ptmsi == new_ptmsi) return 0; - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %ss: " "Replacing %08x -> %08x\n", log_text, ptmsi, new_ptmsi); @@ -214,6 +219,7 @@ struct gprs_llc_hdr_parsed *ghp = &parse_ctx->llc_hdr_parsed; int have_patched = 0; int fcs; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -281,7 +287,7 @@ /* Fix FCS */ fcs = gprs_llc_fcs(llc, ghp->crc_length); - LOGP(DLLC, LOGL_DEBUG, "Updated LLC message, CRC: %06x -> %06x\n", + LOGPBVC_CAT(peer, DLLC, LOGL_DEBUG, "Updated LLC message, CRC: %06x -> %06x\n", ghp->fcs, fcs); llc[llc_len - 3] = fcs & 0xff; @@ -401,7 +407,7 @@ patch_error: OSMO_ASSERT(err_ctr >= 0); rate_ctr_inc(&peer->ctrg->ctr[err_ctr]); - LOGP(DGPRS, LOGL_ERROR, + LOGPBVC(peer, LOGL_ERROR, "NSEI=%u(%s) failed to patch BSSGP message as requested: %s.\n", msgb_nsei(msg), parse_ctx->to_bss ? "SGSN" : "BSS", err_info); diff --git a/src/gbproxy/gb_proxy_tlli.c b/src/gbproxy/gb_proxy_tlli.c index 9487459..b84d1ea 100644 --- a/src/gbproxy/gb_proxy_tlli.c +++ b/src/gbproxy/gb_proxy_tlli.c @@ -179,6 +179,7 @@ int gbproxy_remove_stale_link_infos(struct gbproxy_peer *peer, time_t now) { + OSMO_ASSERT(peer); struct gbproxy_patch_state *state = &peer->patch_state; int exceeded_max_len = 0; int deleted_count = 0; @@ -199,7 +200,7 @@ link_info = llist_entry(state->logical_links.prev, struct gbproxy_link_info, list); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list " "(stale, length %d, max_len exceeded)\n", link_info->tlli.current, state->logical_link_count); @@ -221,7 +222,7 @@ continue; } - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list " "(stale, age %d, max_age exceeded)\n", link_info->tlli.current, (int)age); @@ -278,10 +279,11 @@ void gbproxy_reassign_tlli(struct gbproxy_tlli_state *tlli_state, struct gbproxy_peer *peer, uint32_t new_tlli) { + OSMO_ASSERT(peer); if (new_tlli == tlli_state->current) return; - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "The TLLI has been reassigned from %08x to %08x\n", tlli_state->current, new_tlli); @@ -354,11 +356,12 @@ static int gbproxy_unregister_link_info(struct gbproxy_peer *peer, struct gbproxy_link_info *link_info) { + OSMO_ASSERT(peer); if (!link_info) return 1; if (link_info->tlli.ptmsi == GSM_RESERVED_TMSI && !link_info->imsi_len) { - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list (P-TMSI or IMSI are not set)\n", link_info->tlli.current); gbproxy_delete_link_info(peer, link_info); @@ -398,6 +401,7 @@ int imsi_matches; struct gbproxy_link_info *other_link_info; enum gbproxy_match_id match_id; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -410,9 +414,9 @@ struct osmo_mobile_identity mi; if (osmo_mobile_identity_decode(&mi, parse_ctx->imsi, parse_ctx->imsi_len, false) || mi.type != GSM_MI_TYPE_IMSI) { - LOGP(DGPRS, LOGL_ERROR, "Failed to decode Mobile Identity\n"); + LOGPBVC(peer, LOGL_ERROR, "Failed to decode Mobile Identity\n"); } else { - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list (IMSI %s re-used)\n", other_link_info->tlli.current, mi.imsi); gbproxy_delete_link_info(peer, other_link_info); @@ -454,6 +458,7 @@ static void gbproxy_remove_matching_link_infos( struct gbproxy_peer *peer, struct gbproxy_link_info *link_info) { + OSMO_ASSERT(peer); struct gbproxy_link_info *info, *nxt; struct gbproxy_patch_state *state = &peer->patch_state; @@ -467,7 +472,7 @@ !gbproxy_tlli_match(&link_info->sgsn_tlli, &info->sgsn_tlli))) continue; - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list (P-TMSI/TLLI re-used)\n", info->tlli.current); gbproxy_delete_link_info(peer, info); @@ -518,6 +523,7 @@ { struct gbproxy_link_info *link_info; int tlli_is_valid; + OSMO_ASSERT(peer); link_info = gbproxy_get_link_info_ul(peer, &tlli_is_valid, parse_ctx); @@ -525,7 +531,7 @@ uint32_t sgsn_tlli; if (!link_info) { - LOGP(DGPRS, LOGL_INFO, "Adding TLLI %08x to list\n", + LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list\n", parse_ctx->tlli); link_info = gbproxy_link_info_alloc(peer); gbproxy_attach_link_info(peer, now, link_info); @@ -596,6 +602,7 @@ struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info = NULL; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -615,7 +622,7 @@ if (new_bss_ptmsi == GSM_RESERVED_TMSI) new_bss_ptmsi = gbproxy_make_bss_ptmsi(peer, new_sgsn_ptmsi); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Got new PTMSI %08x from SGSN, using %08x for BSS\n", new_sgsn_ptmsi, new_bss_ptmsi); /* Setup PTMSIs */ @@ -629,7 +636,7 @@ uint32_t new_ptmsi; gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list (SGSN, new P-TMSI is %08x)\n", parse_ctx->tlli, new_ptmsi); @@ -644,7 +651,7 @@ /* Unknown SGSN TLLI, create a new link_info */ uint32_t new_ptmsi; link_info = gbproxy_link_info_alloc(peer); - LOGP(DGPRS, LOGL_INFO, "Adding TLLI %08x to list (SGSN)\n", + LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list (SGSN)\n", parse_ctx->tlli); gbproxy_attach_link_info(peer, now, link_info); @@ -658,7 +665,7 @@ /* A new P-TMSI has been signalled in the message */ gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Assigning new P-TMSI %08x\n", new_ptmsi); /* Setup P-TMSIs */ link_info->sgsn_tlli.ptmsi = new_ptmsi; @@ -686,6 +693,7 @@ struct gprs_gb_parse_context *parse_ctx) { int rc = 0; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -698,11 +706,11 @@ (cfg->keep_link_infos == GBPROX_KEEP_IDENTIFIED && link_info->imsi_len > 0); if (keep_info) { - LOGP(DGPRS, LOGL_INFO, "Unregistering TLLI %08x\n", + LOGPBVC(peer, LOGL_INFO, "Unregistering TLLI %08x\n", link_info->tlli.current); rc = gbproxy_unregister_link_info(peer, link_info); } else { - LOGP(DGPRS, LOGL_INFO, "Removing TLLI %08x from list\n", + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list\n", link_info->tlli.current); gbproxy_delete_link_info(peer, link_info); rc = 1; @@ -719,7 +727,7 @@ new_sgsn_tlli = gprs_tmsi2tlli(new_sgsn_ptmsi, TLLI_LOCAL); if (new_bss_ptmsi != GSM_RESERVED_TMSI) new_bss_tlli = gprs_tmsi2tlli(new_bss_ptmsi, TLLI_LOCAL); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Assigning new TLLI %08x to SGSN, %08x to BSS\n", new_sgsn_tlli, new_bss_tlli); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Gerrit-Change-Number: 21456 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 Dec 2 12:57:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:57:30 +0000 Subject: Change in osmo-bts[master]: vty: fix dump_lchan_trx_ts(): dump dedicated channels only In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21450 ) Change subject: vty: fix dump_lchan_trx_ts(): dump dedicated channels only ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 Gerrit-Change-Number: 21450 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 12:57: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 Dec 2 12:59:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 12:59:03 +0000 Subject: Change in osmo-bsc[master]: Store GPRS MOs directly under BTS SiteMgr object In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21423 ) Change subject: Store GPRS MOs directly under BTS SiteMgr object ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/src/osmo-bsc/bts_ipaccess_nanobts.c File src/osmo-bsc/bts_ipaccess_nanobts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/src/osmo-bsc/bts_ipaccess_nanobts.c at 214 PS1, Line 214: case NM_OC_GPRS_NSVC: > Why you don't also change NSVCs? because nsvc due to being an array (2 nsvcs per bts) there was already a seaprate struct with a backpinter to bts. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 Gerrit-Change-Number: 21423 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Wed, 02 Dec 2020 12:59: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 Wed Dec 2 13:00:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 13:00:35 +0000 Subject: Change in osmo-bsc[master]: Store GPRS MOs directly under BTS SiteMgr object In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21423 ) Change subject: Store GPRS MOs directly under BTS SiteMgr object ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21423/1/include/osmocom/bsc/bts.h at a362 PS1, Line 362: struct { : struct gsm_abis_mo mo; : uint16_t bvci; : uint8_t timer[11]; : struct gprs_rlc_cfg rlc_cfg; : } cell; > the "cell" could actually stay here, as there is always exactly one per BTS. ACK -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 Gerrit-Change-Number: 21423 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Wed, 02 Dec 2020 13: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 Wed Dec 2 13:02:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 13:02:19 +0000 Subject: Change in osmo-bsc[master]: OML: sysmobts: add state to track feature negotiation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21451 ) Change subject: OML: sysmobts: add state to track feature negotiation ...................................................................... Patch Set 2: (1 comment) If you plan me using this in a later commit please describe it better :P https://gerrit.osmocom.org/c/osmo-bsc/+/21451/2/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21451/2/include/osmocom/bsc/bts.h at 298 PS2, Line 298: bool feature_dynamic; Add some description of the meaning. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:02: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 Wed Dec 2 13:03:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 13:03:07 +0000 Subject: Change in osmo-bsc[master]: OML: ip.access: move NSVC MO into a fsm In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: OML: ip.access: move NSVC MO into a fsm ...................................................................... Patch Set 3: Oh so you were actualyl working on this, it seems we had some sort of unexpected overlap. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:03: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 Wed Dec 2 13:06:01 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 2 Dec 2020 13:06:01 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 1: Code-Review-1 Can you add a default value for the osmocom_mirror in the dockerfile? -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:06: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 Dec 2 13:06:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 13:06:14 +0000 Subject: Change in osmo-bsc[master]: OML: ip.access: move NSVC MO into a fsm In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: OML: ip.access: move NSVC MO into a fsm ...................................................................... Patch Set 3: Thanks for working on the topic! However it seems to collide a bit with my parallel work of moving stuff into bts-sm. If you don't mind let's keep this here and I'll rebase this commit on top of my work which is also adding FSMs for NSE and GPRS Cell. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:06: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 Wed Dec 2 13:06:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 13:06:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: remove include In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21453 ) Change subject: gprs_ns2_fr: remove include ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iccf931207d8bea19969fbfc4225f622a1a709972 Gerrit-Change-Number: 21453 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 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 Dec 2 13:07:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 13:07:49 +0000 Subject: Change in osmo-bsc[master]: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21454 ) Change subject: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21454/1/src/osmo-bsc/gsm_08_08.c File src/osmo-bsc/gsm_08_08.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21454/1/src/osmo-bsc/gsm_08_08.c at 613 PS1, Line 613: conn->cm3_valid = true; missing brackets in else {} -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4f1455a3db4972ea9843564b590e405c51083b47 Gerrit-Change-Number: 21454 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:07:49 +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 Dec 2 13:09:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 13:09:48 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use LOG macros for NSE/BVC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 ) Change subject: gbproxy: Use LOG macros for NSE/BVC ...................................................................... Patch Set 1: imho it's fine squashing both patches, but however you prefer is fine. Wiating for jenkins verification to pass. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Gerrit-Change-Number: 21456 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:09: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 Wed Dec 2 13:11:22 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 2 Dec 2020 13:11:22 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 1: (1 comment) On some Dockerfile you add the ARG twice, even when the ARG is not used in FROM. https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-bsc-master/Dockerfile File osmo-bsc-master/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-bsc-master/Dockerfile at 3 PS1, Line 3: ARG OSMOCOM_REPO_MIRROR Do we need it twice when not used in FROM? -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:11: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 Dec 2 13:14:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 13:14:16 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-bsc-master/Dockerfile File osmo-bsc-master/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-bsc-master/Dockerfile at 3 PS1, Line 3: ARG OSMOCOM_REPO_MIRROR > Do we need it twice when not used in FROM? It may actually be used in the Dockerfile $USER/$DISTRO-build, that's why. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:14:16 +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 Wed Dec 2 13:23:11 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 13:23:11 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use LOG macros for NSE/BVC In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 ) Change subject: gbproxy: Use LOG macros for NSE/BVC ...................................................................... Patch Set 1: > Patch Set 1: > > imho it's fine squashing both patches, but however you prefer is fine. > Wiating for jenkins verification to pass. ...jenkins fails in the VTY tests for gtphub. It just succeeded for me locally, so maybe retriggering will help. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Gerrit-Change-Number: 21456 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:23: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 Wed Dec 2 13:29:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 13:29:46 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: Hello laforge, fixeria, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/21239 to look at the new patch set (#2). Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... common: Introduce OSMOCOM_REPO_MIRROR param This allows easily changing to another osmocom repo base URL if the default one is down. Related: OS#4862 Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e --- M debian-buster-erlang/Dockerfile M debian-buster-simtrace2/Dockerfile M debian-jessie-osmocom/Dockerfile M debian-stretch-build-dist/Dockerfile M debian-stretch-jenkins/Dockerfile M debian-stretch-titan/Dockerfile M make/Makefile M osmo-bsc-latest/Dockerfile M osmo-bsc-master/Dockerfile M osmo-bts-latest/Dockerfile M osmo-bts-master/Dockerfile M osmo-cn-latest/Dockerfile M osmo-ggsn-latest/Dockerfile M osmo-ggsn-master/Dockerfile M osmo-gsm-tester/Dockerfile M osmo-hlr-latest/Dockerfile M osmo-hlr-master/Dockerfile M osmo-hnbgw-latest/Dockerfile M osmo-hnbgw-master/Dockerfile M osmo-mgw-latest/Dockerfile M osmo-mgw-master/Dockerfile M osmo-msc-latest/Dockerfile M osmo-msc-master/Dockerfile M osmo-nitb-latest/Dockerfile M osmo-nitb-master/Dockerfile M osmo-pcu-latest/Dockerfile M osmo-pcu-master/Dockerfile M osmo-remsim-latest/Dockerfile M osmo-remsim-master/Dockerfile M osmo-sgsn-latest/Dockerfile M osmo-sgsn-master/Dockerfile M osmo-sip-latest/Dockerfile M osmo-sip-master/Dockerfile M osmo-smlc-master/Dockerfile M osmo-stp-latest/Dockerfile M osmo-stp-master/Dockerfile M osmo-uecups-master/Dockerfile M osmocom-bb-host-master/Dockerfile 38 files changed, 142 insertions(+), 57 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/39/21239/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Dec 2 13:37:47 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 13:37:47 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 2: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-hnbgw-master/Dockerfile File osmo-hnbgw-master/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-hnbgw-master/Dockerfile at 6 PS1, Line 6: ARG OSMOCOM_REPO_MIRROR > Here you don't add DISTRO again Done https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-nitb-master/Dockerfile File osmo-nitb-master/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21239/1/osmo-nitb-master/Dockerfile at 6 PS1, Line 6: ARG DISTRO > I would say it doesn't really matter if it's added or not here if it's not used later on, I see poin [?] I was just aiming for consistency, either way would be fine. I don't care that much, though. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:37:47 +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 Wed Dec 2 13:41:45 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 13:41:45 +0000 Subject: Change in osmo-bsc[master]: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21454 ) Change subject: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21454/1/src/osmo-bsc/gsm_08_08.c File src/osmo-bsc/gsm_08_08.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21454/1/src/osmo-bsc/gsm_08_08.c at 613 PS1, Line 613: conn->cm3_valid = true; > missing brackets in else {} Fixing indention in the original code is not related to fixing a buffer overrun. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4f1455a3db4972ea9843564b590e405c51083b47 Gerrit-Change-Number: 21454 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:41: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 gerrit-no-reply at lists.osmocom.org Wed Dec 2 13:55:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 13:55:06 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 2: I am not sure if I understand why in some places OSMOCOM_REPO_MIRROR is defined once, and in other places twice... -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 13:55:06 +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 Dec 2 13:56:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 13:56:50 +0000 Subject: Change in osmo-bts[master]: struct gsm_bts: move ul_power_{target, hysteresis} to ul_power_ctrl In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21434 ) Change subject: struct gsm_bts: move ul_power_{target,hysteresis} to ul_power_ctrl ...................................................................... struct gsm_bts: move ul_power_{target,hysteresis} to ul_power_ctrl Change-Id: I3886c7aedf3870536f1750f864cf698302ddf2df Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M src/common/power_control.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/power_test.c 10 files changed, 37 insertions(+), 37 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index ce7d9d4..66b03e1 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -299,12 +299,12 @@ bool vty_override; /* OML value overridden by VTY */ } radio_link_timeout; - /* TODO: move it to bts->ul_power_ctrl struct */ - int ul_power_target; /* Uplink Rx power target */ - int ul_power_hysteresis; /* Tolerable Uplink Rx power deviation */ - /* Uplink power control */ struct { + /* Target value to strive to */ + int target; + /* Tolerated deviation from target */ + int hysteresis; /* UL RSSI filtering algorithm */ enum ms_ul_pf_algo pf_algo; /* (Optional) filtering parameters */ diff --git a/src/common/bts.c b/src/common/bts.c index a1f9101..6375241 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -323,8 +323,8 @@ /* configurable via VTY */ bts->paging_state = paging_init(bts, 200, 0); - bts->ul_power_target = -75; /* dBm default */ - bts->ul_power_hysteresis = 3; /* -78 .. -72 dBm */ + bts->ul_power_ctrl.target = -75; /* dBm default */ + bts->ul_power_ctrl.hysteresis = 3; /* -78 .. -72 dBm */ bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_EWMA; bts->ul_power_ctrl.pf.ewma.alpha = 50; /* 50% smoothing */ bts->rtp_jitter_adaptive = false; diff --git a/src/common/power_control.c b/src/common/power_control.c index be6df48..dc5636c 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -141,15 +141,15 @@ /* How many dBs measured power should be increased (+) or decreased (-) to reach expected power. */ - diff = bts->ul_power_target - avg_ul_rssi_dbm; + diff = bts->ul_power_ctrl.target - avg_ul_rssi_dbm; /* Tolerate small deviations from 'rx-target' */ - if (abs(diff) <= bts->ul_power_hysteresis) { + if (abs(diff) <= bts->ul_power_ctrl.hysteresis) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm) because diff %d dBm " "from 'rx-target' %d dBm is not significant (hysteresis %d dBm)\n", - ms_power_lvl, ms_dbm, diff, bts->ul_power_target, bts->ul_power_hysteresis); + ms_power_lvl, ms_dbm, diff, bts->ul_power_ctrl.target, bts->ul_power_ctrl.hysteresis); /* Keep the current power level in sync (just to be sure) */ lchan->ms_power_ctrl.current = ms_power_lvl; bts_model_adjst_ms_pwr(lchan); @@ -188,7 +188,7 @@ "(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, lchan->ms_power_ctrl.max, - avg_ul_rssi_dbm, bts->ul_power_target); + avg_ul_rssi_dbm, bts->ul_power_ctrl.target); return 0; } @@ -198,7 +198,7 @@ (new_dbm > current_dbm) ? "Raising" : "Lowering", lchan->ms_power_ctrl.current, current_dbm, new_power_lvl, new_dbm, ms_power_lvl, lchan->ms_power_ctrl.max, - avg_ul_rssi_dbm, bts->ul_power_target); + avg_ul_rssi_dbm, bts->ul_power_ctrl.target); /* store the resulting new MS power level in the lchan */ lchan->ms_power_ctrl.current = new_power_lvl; diff --git a/src/common/vty.c b/src/common/vty.c index 7baddef..34e7cfa 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -255,9 +255,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_target); - if (bts->ul_power_hysteresis > 0) - vty_out(vty, " hysteresis %d", bts->ul_power_hysteresis); + vty_out(vty, " uplink-power-target %d", bts->ul_power_ctrl.target); + if (bts->ul_power_ctrl.hysteresis > 0) + vty_out(vty, " hysteresis %d", bts->ul_power_ctrl.hysteresis); vty_out(vty, "%s", VTY_NEWLINE); /* MS Tx power filtering algorithm and parameters */ @@ -633,8 +633,8 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_target = atoi(argv[0]); - bts->ul_power_hysteresis = 0; + bts->ul_power_ctrl.target = atoi(argv[0]); + bts->ul_power_ctrl.hysteresis = 0; return CMD_SUCCESS; } @@ -650,8 +650,8 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_target = atoi(argv[0]); - bts->ul_power_hysteresis = atoi(argv[1]); + bts->ul_power_ctrl.target = atoi(argv[0]); + bts->ul_power_ctrl.hysteresis = atoi(argv[1]); return CMD_SUCCESS; } diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index dee5feb..0fb9d00 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -434,7 +434,7 @@ 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_target; + ? 0.0 : trx->bts->ul_power_ctrl.target; 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 9a7751b..be0ec30 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -449,7 +449,7 @@ 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_target; + ? 0.0 : trx->bts->ul_power_ctrl.target; 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 4a8a6c2..5f638e6 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -429,7 +429,7 @@ 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_target; + ? 0.0 : trx->bts->ul_power_ctrl.target; 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 f575884..1f2aefb 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -154,7 +154,7 @@ { struct gsm_bts_trx *trx = vty->index; - trx->bts->ul_power_target = atoi(argv[0]); + trx->bts->ul_power_ctrl.target = atoi(argv[0]); return CMD_SUCCESS; } diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index ceca330..0353064 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -198,7 +198,7 @@ { vty_out (vty, "'osmotrx ms-power-loop' is deprecated, use 'uplink-power-target' instead%s", VTY_NEWLINE); - g_bts->ul_power_target = atoi(argv[0]); + g_bts->ul_power_ctrl.target = atoi(argv[0]); return CMD_SUCCESS; } diff --git a/tests/power/power_test.c b/tests/power/power_test.c index c5c4db3..a686134 100644 --- a/tests/power/power_test.c +++ b/tests/power/power_test.c @@ -47,7 +47,7 @@ g_trx->ms_pwr_ctl_soft = true; - g_bts->ul_power_target = -75; + g_bts->ul_power_ctrl.target = -75; g_bts->band = GSM_BAND_1800; g_bts->c0 = g_trx; @@ -98,7 +98,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_target, 0, 5); + apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 5); apply_power_test(lchan, -90, 1, 3); apply_power_test(lchan, -90, 1, 2); /* .max is pwr lvl 2 */ @@ -116,7 +116,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_target, 0, 29); + apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 29); /* Now go down, steps are double size in this direction: */ apply_power_test(lchan, -45, 1, 1); @@ -124,13 +124,13 @@ apply_power_test(lchan, -45, 1, 9); /* Go down only one level down and up: */ - apply_power_test(lchan, g_bts->ul_power_target + 2, 1, 10); - apply_power_test(lchan, g_bts->ul_power_target - 2, 1, 9); + apply_power_test(lchan, g_bts->ul_power_ctrl.target + 2, 1, 10); + apply_power_test(lchan, g_bts->ul_power_ctrl.target - 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_target + 2, 1, 14); + apply_power_test(lchan, g_bts->ul_power_ctrl.target + 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); @@ -214,22 +214,22 @@ lchan = &g_trx->ts[0].lchan[0]; /* Tolerate power deviations in range -80 .. -70 */ - g_bts->ul_power_hysteresis = 5; + g_bts->ul_power_ctrl.hysteresis = 5; 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_target, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target + 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target - 3, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target + 3, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target - 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target + 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target - 5, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target + 5, 0, 15); + apply_power_test(lchan, g_bts->ul_power_ctrl.target - 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_target - 10, 1, 13); + apply_power_test(lchan, g_bts->ul_power_ctrl.target - 10, 1, 13); } int main(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3886c7aedf3870536f1750f864cf698302ddf2df Gerrit-Change-Number: 21434 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 Dec 2 13:56:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 13:56:51 +0000 Subject: Change in osmo-bts[master]: bts: rename MS_UL_PF_ALGO_{NONE, EWMA} to BTS_PF_ALGO_{NONE, EWMA} In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21435 ) Change subject: bts: rename MS_UL_PF_ALGO_{NONE,EWMA} to BTS_PF_ALGO_{NONE,EWMA} ...................................................................... bts: rename MS_UL_PF_ALGO_{NONE,EWMA} to BTS_PF_ALGO_{NONE,EWMA} Change-Id: I580512eea1d329a4d25ccbd6fc2ab98b083ec51d Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M src/common/power_control.c M src/common/vty.c M tests/power/power_test.c 5 files changed, 12 insertions(+), 12 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 66b03e1..37d4c7d 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -96,9 +96,9 @@ }; /* Tx power filtering algorithm */ -enum ms_ul_pf_algo { - MS_UL_PF_ALGO_NONE = 0, - MS_UL_PF_ALGO_EWMA, +enum bts_pf_algo { + BTS_PF_ALGO_NONE = 0, + BTS_PF_ALGO_EWMA, }; /* BTS Site Manager */ @@ -306,7 +306,7 @@ /* Tolerated deviation from target */ int hysteresis; /* UL RSSI filtering algorithm */ - enum ms_ul_pf_algo pf_algo; + enum bts_pf_algo pf_algo; /* (Optional) filtering parameters */ union { /* Exponentially Weighted Moving Average */ diff --git a/src/common/bts.c b/src/common/bts.c index 6375241..80f4fdd 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -325,7 +325,7 @@ bts->paging_state = paging_init(bts, 200, 0); bts->ul_power_ctrl.target = -75; /* dBm default */ bts->ul_power_ctrl.hysteresis = 3; /* -78 .. -72 dBm */ - bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_EWMA; + bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; bts->ul_power_ctrl.pf.ewma.alpha = 50; /* 50% smoothing */ bts->rtp_jitter_adaptive = false; bts->rtp_port_range_start = 16384; diff --git a/src/common/power_control.c b/src/common/power_control.c index dc5636c..e022e59 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -130,10 +130,10 @@ /* Filter UL RSSI to reduce unnecessary Tx power oscillations */ switch (bts->ul_power_ctrl.pf_algo) { - case MS_UL_PF_ALGO_EWMA: + case BTS_PF_ALGO_EWMA: avg_ul_rssi_dbm = lchan_ul_pf_ewma(bts, lchan, ul_rssi_dbm); break; - case MS_UL_PF_ALGO_NONE: + case BTS_PF_ALGO_NONE: default: /* No filtering (pass through) */ avg_ul_rssi_dbm = ul_rssi_dbm; diff --git a/src/common/vty.c b/src/common/vty.c index 34e7cfa..f32f6cd 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -262,11 +262,11 @@ /* MS Tx power filtering algorithm and parameters */ switch (bts->ul_power_ctrl.pf_algo) { - case MS_UL_PF_ALGO_EWMA: + 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 MS_UL_PF_ALGO_NONE: + case BTS_PF_ALGO_NONE: default: vty_out(vty, " no uplink-power-filtering%s", VTY_NEWLINE); break; @@ -664,7 +664,7 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_NONE; + bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_NONE; return CMD_SUCCESS; } @@ -681,7 +681,7 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_EWMA; + bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; bts->ul_power_ctrl.pf.ewma.alpha = 100 - atoi(argv[0]); return CMD_SUCCESS; diff --git a/tests/power/power_test.c b/tests/power/power_test.c index a686134..14bef08 100644 --- a/tests/power/power_test.c +++ b/tests/power/power_test.c @@ -153,7 +153,7 @@ lchan = &g_trx->ts[0].lchan[0]; avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi; - g_bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_EWMA; + g_bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; g_bts->ul_power_ctrl.pf.ewma.alpha = 20; /* 80% smoothing */ lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I580512eea1d329a4d25ccbd6fc2ab98b083ec51d Gerrit-Change-Number: 21435 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 Dec 2 13:56:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 13:56:51 +0000 Subject: Change in osmo-bts[master]: bts: generalize a struct for UL/DL power control parameters In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21436 ) Change subject: bts: generalize a struct for UL/DL power control parameters ...................................................................... bts: generalize a struct for UL/DL power control parameters Change-Id: I504de17fb3c1300c2a3faa6d7d3a9eb1b74b214b Related: SYS#4918 --- M include/osmo-bts/bts.h 1 file changed, 19 insertions(+), 16 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 37d4c7d..129764e 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -101,6 +101,24 @@ BTS_PF_ALGO_EWMA, }; +/* UL/DL power control parameters */ +struct bts_power_ctrl_params { + /* Target value to strive to */ + int target; + /* Tolerated deviation from target */ + int hysteresis; + /* RxLev filtering algorithm */ + enum bts_pf_algo pf_algo; + /* (Optional) filtering parameters */ + union { + /* Exponentially Weighted Moving Average */ + struct { + /* Smoothing factor: higher the value - less smoothing */ + uint8_t alpha; /* 1 .. 99 (in %) */ + } ewma; + } pf; +}; + /* BTS Site Manager */ struct gsm_bts_sm { struct gsm_abis_mo mo; @@ -300,22 +318,7 @@ } radio_link_timeout; /* Uplink power control */ - struct { - /* Target value to strive to */ - int target; - /* Tolerated deviation from target */ - int hysteresis; - /* UL RSSI filtering algorithm */ - enum bts_pf_algo pf_algo; - /* (Optional) filtering parameters */ - union { - /* Exponentially Weighted Moving Average */ - struct { - /* Smoothing factor: higher the value - less smoothing */ - uint8_t alpha; /* 1 .. 99 (in %) */ - } ewma; - } pf; - } ul_power_ctrl; + struct bts_power_ctrl_params ul_power_ctrl; /* used by the sysmoBTS to adjust band */ uint8_t auto_band; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I504de17fb3c1300c2a3faa6d7d3a9eb1b74b214b Gerrit-Change-Number: 21436 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 Dec 2 13:56:52 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 13:56:52 +0000 Subject: Change in osmo-bts[master]: bts: add Downlink power control parameters In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21437 ) Change subject: bts: add Downlink power control parameters ...................................................................... bts: add Downlink power control parameters Change-Id: I724f661e9ce5dd75f95fb7b270a89b2e2a73c951 Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M tests/power/power_test.c 3 files changed, 17 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 129764e..3847a26 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -317,8 +317,9 @@ bool vty_override; /* OML value overridden by VTY */ } radio_link_timeout; - /* Uplink power control */ + /* Uplink/Downlink power control */ struct bts_power_ctrl_params ul_power_ctrl; + struct bts_power_ctrl_params dl_power_ctrl; /* used by the sysmoBTS to adjust band */ uint8_t auto_band; diff --git a/src/common/bts.c b/src/common/bts.c index 80f4fdd..a974b9f 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -323,16 +323,26 @@ /* configurable via VTY */ bts->paging_state = paging_init(bts, 200, 0); - bts->ul_power_ctrl.target = -75; /* dBm default */ - bts->ul_power_ctrl.hysteresis = 3; /* -78 .. -72 dBm */ - bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; - bts->ul_power_ctrl.pf.ewma.alpha = 50; /* 50% smoothing */ bts->rtp_jitter_adaptive = false; bts->rtp_port_range_start = 16384; bts->rtp_port_range_end = 17407; bts->rtp_port_range_next = bts->rtp_port_range_start; bts->rtp_ip_dscp = -1; + /* Default UL/DL power control parameters */ + bts->ul_power_ctrl = bts->dl_power_ctrl = \ + (struct bts_power_ctrl_params) { + .target = -75, /* dBm default */ + .hysteresis = 3, /* -78 .. -72 dBm */ + .pf_algo = BTS_PF_ALGO_EWMA, + .pf = { + .ewma = { + /* 50% smoothing */ + .alpha = 50 + } + } + }; + /* configurable via OML */ bts->load.ccch.load_ind_period = 112; load_timer_start(bts); diff --git a/tests/power/power_test.c b/tests/power/power_test.c index 14bef08..f1b910b 100644 --- a/tests/power/power_test.c +++ b/tests/power/power_test.c @@ -48,6 +48,7 @@ g_trx->ms_pwr_ctl_soft = true; g_bts->ul_power_ctrl.target = -75; + g_bts->dl_power_ctrl.target = -75; g_bts->band = GSM_BAND_1800; g_bts->c0 = g_trx; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I724f661e9ce5dd75f95fb7b270a89b2e2a73c951 Gerrit-Change-Number: 21437 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 Dec 2 14:05:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 14:05:44 +0000 Subject: Change in osmo-bsc[master]: Store GPRS MOs directly under BTS SiteMgr 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-bsc/+/21423 to look at the new patch set (#2). Change subject: Store GPRS MOs directly under BTS SiteMgr object ...................................................................... Store GPRS MOs directly under BTS SiteMgr object The only real 1-1 relationship between BTS NM objects is the one between GPRS Cell and BTS (which is actually a BTS cell). In our current osmo-bts implementation we don't care much since we only handle 1-cell BTSses, but let's make the data structure organization more generic. Implementation notes: The gsm_bts_sm is moved to its own file, APIs to allocate are added and the new public object is hooked correctly in the allocation process of osmo-bsc. Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bts.h A include/osmocom/bsc/bts_sm.h M include/osmocom/bsc/gsm_data.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_nokia_site.c A src/osmo-bsc/bts_sm.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/nm_bb_transc_fsm.c M src/osmo-bsc/nm_bts_fsm.c M src/osmo-bsc/nm_bts_sm_fsm.c M src/osmo-bsc/nm_channel_fsm.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/pcu_sock.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.c M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 30 files changed, 270 insertions(+), 138 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/23/21423/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 Gerrit-Change-Number: 21423 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Wed Dec 2 14:07:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 14:07:36 +0000 Subject: Change in osmo-bts[master]: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21446 ) Change subject: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/21446/1/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21446/1/src/common/power_control.c at 120 PS1, Line 120: # > agree with laforge Ack https://gerrit.osmocom.org/c/osmo-bts/+/21446/1/src/common/power_control.c at 205 PS1, Line 205: ul_rssi_dbm, params->target); > This also looks non-related to this patch, or at least may deserve a separate patch. It's actually a side effect of this patch that this logging statement loses access to the averaged value. On the other hand, printing the average value as 'rx-current' is confusing, because this is not the actual RxLev. I'll separate it too then. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Gerrit-Change-Number: 21446 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 14:07: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 Wed Dec 2 14:12:05 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 14:12:05 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add logging macros for NSE and BVC In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 ) Change subject: gbproxy: Add logging macros for NSE and BVC ...................................................................... Patch Set 2: *sigh*, it seems some NS2 VTY commands in libosmocor are missing documentation which causes the error here... -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Gerrit-Change-Number: 21455 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 02 Dec 2020 14:12: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 Dec 2 14:25:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 14:25:42 +0000 Subject: Change in libosmocore[master]: Integrate libmnl (minimal netlink) library with libosmocore select loop References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21457 ) Change subject: Integrate libmnl (minimal netlink) library with libosmocore select loop ...................................................................... Integrate libmnl (minimal netlink) library with libosmocore select loop This adds an easy way to listen to netlink events form the Linux kernel from within libosmocore applications. The new dependency can be disabled via the "--disable-lbimnl" configure flag. Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f --- M configure.ac M contrib/jenkins_arm.sh M contrib/libosmocore.spec.in M debian/control M src/Makefile.am M src/gb/gprs_ns2_internal.h A src/mnl.c 7 files changed, 109 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/21457/1 diff --git a/configure.ac b/configure.ac index 7de495b..10fb496 100644 --- a/configure.ac +++ b/configure.ac @@ -194,6 +194,19 @@ AM_CONDITIONAL(ENABLE_SYSTEMD_LOGGING, test "x$systemd_logging" = "xyes") AC_SUBST(ENABLE_SYSTEMD_LOGGING) +AC_ARG_ENABLE([libmnl], + [AS_HELP_STRING( + [--disable-libmnl], + [Build without netlink socket support via libmnl] + )], + [mnl=$enableval], [mnl="yes"]) +AS_IF([test "x$mnl" = "xyes"], [ + PKG_CHECK_MODULES(LIBMNL, libmnl) + AC_DEFINE([ENABLE_LIBMNL], [1], [Enable netlink socket support via libmnl]) +]) +AM_CONDITIONAL(ENABLE_LIBMNL, test "x$mnl" = "xyes") +AC_SUBST(ENABLE_LIBMNL) + AC_ARG_ENABLE([libsctp], [AS_HELP_STRING([--disable-libsctp], [Do not enable socket multiaddr APIs requiring libsctp])], [ENABLE_LIBSCTP=$enableval], [ENABLE_LIBSCTP="yes"]) AM_CONDITIONAL(ENABLE_LIBSCTP, test x"$ENABLE_LIBSCTP" = x"yes") diff --git a/contrib/jenkins_arm.sh b/contrib/jenkins_arm.sh index c9cd922..e7df37d 100755 --- a/contrib/jenkins_arm.sh +++ b/contrib/jenkins_arm.sh @@ -20,6 +20,7 @@ --disable-shared \ --disable-libsctp \ --disable-libusb \ + --disable-libmnl \ --enable-external-tests \ CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs $WERROR_FLAGS" diff --git a/contrib/libosmocore.spec.in b/contrib/libosmocore.spec.in index fb45516..728a0fb 100644 --- a/contrib/libosmocore.spec.in +++ b/contrib/libosmocore.spec.in @@ -30,6 +30,7 @@ BuildRequires: pkgconfig(libpcsclite) BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(talloc) >= 2.0.1 +BuildRequires: pkgconfig(libmnl) %description libosmocore is a package with various utility functions that were diff --git a/debian/control b/debian/control index 381e291..24e729a 100644 --- a/debian/control +++ b/debian/control @@ -17,6 +17,7 @@ libtalloc-dev, libsctp-dev, libusb-1.0-0-dev, + libmnl-dev, python3:native Standards-Version: 3.9.8 Vcs-Git: git://git.osmocom.org/libosmocore.git diff --git a/src/Makefile.am b/src/Makefile.am index b2c9204..5ff1a42 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,7 +4,7 @@ LIBVERSION=16:0:0 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -AM_CFLAGS = -Wall $(TALLOC_CFLAGS) $(PTHREAD_CFLAGS) $(LIBSCTP_CFLAGS) +AM_CFLAGS = -Wall $(TALLOC_CFLAGS) $(PTHREAD_CFLAGS) $(LIBSCTP_CFLAGS) $(LIBMNL_CFLAGS) if ENABLE_PSEUDOTALLOC AM_CPPFLAGS += -I$(top_srcdir)/src/pseudotalloc @@ -76,5 +76,10 @@ libosmocore_la_LIBADD += $(SYSTEMD_LIBS) endif +if ENABLE_LIBMNL +libosmocore_la_SOURCES += mnl.c +libosmocore_la_LIBADD += $(LIBMNL_LIBS) +endif + crc%gen.c: crcXXgen.c.tpl $(AM_V_GEN)sed -e's/XX/$*/g' $< > $@ diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 08ffac2..e72deff 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -95,8 +95,12 @@ /*! workaround for rate counter until rate counter accepts char str as index */ uint32_t rate_ctr_idx; + + /*! libmnl netlink socket for link state monitoring */ + struct osmo_mnl *linkmon_mnl; }; + /*! Structure repesenting a NSE. The BSS/PCU will only have a single NSE, while SGSN has one for each BSS/PCU */ struct gprs_ns2_nse { uint16_t nsei; diff --git a/src/mnl.c b/src/mnl.c new file mode 100644 index 0000000..abde74b --- /dev/null +++ b/src/mnl.c @@ -0,0 +1,83 @@ +#include +#include +#include +#include + +#include + +#include +#include + +/* osmo_fd call-back for when RTNL socket is readable */ +static int osmo_mnl_fd_cb(struct osmo_fd *ofd, unsigned int what) +{ + uint8_t buf[MNL_SOCKET_BUFFER_SIZE]; + struct osmo_mnl *omnl = ofd->data; + int rc; + + if (!(what & OSMO_FD_READ)) + return 0; + + rc = mnl_socket_recvfrom(omnl->mnls, buf, sizeof(buf)); + if (rc <= 0) { + LOGP(DLGLOBAL, LOGL_ERROR, "Error in mnl_socket_recvfrom(): %s\n", + strerror(errno)); + return -EIO; + } + + return mnl_cb_run(buf, rc, 0, 0, omnl->mnl_cb, omnl); +} + +/*! create an osmocom-wrapped limnl netlink socket. + * \parma[in] ctx talloc context from which to allocate + * \param[in] bus netlink socket bus ID (see NETLINK_* constants) + * \param[in] groups groups of messages to bind/subscribe to + * \param[in] mnl_cb callback function called for each incoming message + * \returns newly-allocated osmo_mnl or NULL in case of error. */ +struct osmo_mnl *osmo_mnl_init(void *ctx, int bus, unsigned int groups, mnl_cb_t mnl_cb, void *priv) +{ + struct osmo_mnl *olm = talloc_zero(ctx, struct osmo_mnl); + + if (!olm) + return NULL; + + olm->priv = priv; + olm->mnl_cb = mnl_cb; + olm->mnls = mnl_socket_open2(bus, SOCK_CLOEXEC); + if (!olm->mnls) { + LOGP(DLGLOBAL, LOGL_ERROR, "Error creating netlink socket for bus %d: %s\n", + bus, strerror(errno)); + goto out_free; + } + + if (mnl_socket_bind(olm->mnls, groups, MNL_SOCKET_AUTOPID) < 0) { + LOGP(DLGLOBAL, LOGL_ERROR, "Error binding netlink socket for bus %d to groups 0x%x: %s\n", + bus, groups, strerror(errno)); + goto out_close; + } + + osmo_fd_setup(&olm->ofd, mnl_socket_get_fd(olm->mnls), OSMO_FD_READ, osmo_mnl_fd_cb, olm, 0); + + if (osmo_fd_register(&olm->ofd)) { + LOGP(DLGLOBAL, LOGL_ERROR, "Error registering netlinks socket\n"); + goto out_close; + } + + return olm; + +out_close: + mnl_socket_close(olm->mnls); +out_free: + talloc_free(olm); + return NULL; +} + +void osmo_mnl_destroy(struct osmo_mnl *omnl) +{ + if (!omnl) + return; + + osmo_fd_unregister(&omnl->ofd); + mnl_socket_close(omnl->mnls); + talloc_free(omnl); +} -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f Gerrit-Change-Number: 21457 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 Dec 2 14:25:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 14:25:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Monitor the kernel net-device link state References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21458 ) Change subject: gprs_ns2_fr: Monitor the kernel net-device link state ...................................................................... gprs_ns2_fr: Monitor the kernel net-device link state We use the newly-introduced libmnl integration of libosmocore in order to receive netlink events from the kernel on link state changes. If one of "our" interfaces changed link state, we report this in the log and also store it within the "bind". Change-Id: I779556991bfc88b7751b2be17bb81c329cfb9e01 --- M src/gb/gprs_ns2_fr.c 1 file changed, 100 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/21458/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 4140171..7e01848 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -51,8 +51,10 @@ #include #include #include +#include #include +#include "config.h" #include "common_vty.h" #include "gprs_ns2_internal.h" @@ -82,6 +84,7 @@ struct osmo_fd fd; char netif[IF_NAMESIZE]; struct osmo_fr_link *link; + bool if_running; }; struct priv_vc { @@ -113,8 +116,8 @@ priv = bind->priv; fr_link = priv->link; - vty_out(vty, "FR bind: %s, role: %s%s", priv->netif, - osmo_fr_role_str(fr_link->role), VTY_NEWLINE); + vty_out(vty, "FR bind: %s, role: %s, link: %s%s", priv->netif, + osmo_fr_role_str(fr_link->role), priv->if_running ? "UP" : "DOWN", VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { vty_out(vty, " NSVCI %05u: %s%s", nsvc->nsvci, gprs_ns2_ll_str(nsvc), VTY_NEWLINE); @@ -335,6 +338,96 @@ return fd; } +#ifdef ENABLE_LIBMNL + +#include +#include +#include +#include + +#ifndef ARPHRD_FRAD +#define ARPHRD_FRAD 770 +#endif + +/* validate the netlink attributes */ +static int data_attr_cb(const struct nlattr *attr, void *data) +{ + const struct nlattr **tb = data; + int type = mnl_attr_get_type(attr); + + if (mnl_attr_type_valid(attr, IFLA_MAX) < 0) + return MNL_CB_OK; + + switch (type) { + case IFLA_MTU: + if (mnl_attr_validate(attr, MNL_TYPE_U32) < 0) + return MNL_CB_ERROR; + break; + case IFLA_IFNAME: + if (mnl_attr_validate(attr, MNL_TYPE_STRING) < 0) + return MNL_CB_ERROR; + break; + } + tb[type] = attr; + return MNL_CB_OK; +} + +/* find the bind for the netdev (if any) */ +static struct gprs_ns2_vc_bind *bind4netdev(struct gprs_ns2_inst *nsi, const char *ifname) +{ + struct gprs_ns2_vc_bind *bind; + + llist_for_each_entry(bind, &nsi->binding, list) { + struct priv_bind *bpriv = bind->priv; + if (!strcmp(bpriv->netif, ifname)) + return bind; + } + + return NULL; +} + +/* handle a single netlink message received via libmnl */ +static int linkmon_mnl_cb(const struct nlmsghdr *nlh, void *data) +{ + struct osmo_mnl *omnl = data; + struct gprs_ns2_vc_bind *bind; + struct nlattr *tb[IFLA_MAX+1] = {}; + struct ifinfomsg *ifm = mnl_nlmsg_get_payload(nlh); + struct gprs_ns2_inst *nsi; + const char *ifname; + bool if_running; + + OSMO_ASSERT(omnl); + OSMO_ASSERT(ifm); + + nsi = omnl->priv; + + if (ifm->ifi_type != ARPHRD_FRAD) + return 0; + + mnl_attr_parse(nlh, sizeof(*ifm), data_attr_cb, tb); + + if (!tb[IFLA_IFNAME]) + return 0; + ifname = mnl_attr_get_str(tb[IFLA_IFNAME]); + if_running = !!(ifm->ifi_flags & IFF_RUNNING); + + bind = bind4netdev(nsi, ifname); + if (bind) { + 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"); + bpriv->if_running = if_running; + } + } + + return 0; +} +#endif /* LIBMNL */ + + /*! Create a new bind for NS over FR. * \param[in] nsi NS instance in which to create the bind * \param[in] netif Network interface to bind to @@ -402,6 +495,11 @@ 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); +#endif + return rc; err_fd: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I779556991bfc88b7751b2be17bb81c329cfb9e01 Gerrit-Change-Number: 21458 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 Dec 2 14:28:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 14:28:32 +0000 Subject: Change in libosmocore[master]: Integrate libmnl (minimal netlink) library with libosmocore select loop 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/+/21457 to look at the new patch set (#2). Change subject: Integrate libmnl (minimal netlink) library with libosmocore select loop ...................................................................... Integrate libmnl (minimal netlink) library with libosmocore select loop This adds an easy way to listen to netlink events form the Linux kernel from within libosmocore applications. The new dependency can be disabled via the "--disable-lbimnl" configure flag. Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f --- M configure.ac M contrib/jenkins_arm.sh M contrib/libosmocore.spec.in M debian/control M include/Makefile.am M src/Makefile.am M src/gb/gprs_ns2_internal.h A src/mnl.c 8 files changed, 110 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/21457/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f Gerrit-Change-Number: 21457 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 Dec 2 14:34:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 14:34:44 +0000 Subject: Change in libosmocore[master]: Integrate libmnl (minimal netlink) library with libosmocore select loop 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/+/21457 to look at the new patch set (#3). Change subject: Integrate libmnl (minimal netlink) library with libosmocore select loop ...................................................................... Integrate libmnl (minimal netlink) library with libosmocore select loop This adds an easy way to listen to netlink events form the Linux kernel from within libosmocore applications. The new dependency can be disabled via the "--disable-lbimnl" configure flag. Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f --- M configure.ac M contrib/jenkins_arm.sh M contrib/libosmocore.spec.in M debian/control M include/Makefile.am A include/osmocom/core/mnl.h M src/Makefile.am M src/gb/gprs_ns2_internal.h A src/mnl.c 9 files changed, 165 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/21457/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f Gerrit-Change-Number: 21457 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Dec 2 14:52:38 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 14:52:38 +0000 Subject: Change in libosmocore[master]: ns2: Fix docs for some NS2 vty commands References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21459 ) Change subject: ns2: Fix docs for some NS2 vty commands ...................................................................... ns2: Fix docs for some NS2 vty commands Change-Id: Ie58607424340c102c930330e444c2e219c1803e0 --- M src/gb/gprs_ns2_vty.c 1 file changed, 6 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/59/21459/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index b244a96..97becf6 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -54,6 +54,8 @@ #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; @@ -323,7 +325,7 @@ } DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", - SHOW_STR + SHOW_STR SHOW_NS_STR "Display information about the NS protocol binds\n" "Include statistic\n") { @@ -336,7 +338,7 @@ } DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", - SHOW_STR + SHOW_STR SHOW_NS_STR "Display information about the NS protocol entities (NSEs)\n" "Include statistics\n") { @@ -349,8 +351,7 @@ } DEFUN(show_ns_pers, show_ns_pers_cmd, "show ns persistent", - SHOW_STR - "Display information about the NS protocol\n" + SHOW_STR SHOW_NS_STR "Show only persistent NS\n") { dump_ns_entities(vty, vty_nsi, true, true); @@ -358,7 +359,7 @@ } DEFUN(show_nse, show_nse_cmd, "show ns (nsei|nsvc) <0-65535> [stats]", - SHOW_STR "Display information about the NS protocol\n" + 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" -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie58607424340c102c930330e444c2e219c1803e0 Gerrit-Change-Number: 21459 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 Dec 2 15:12:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 15:12:40 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Monitor the kernel net-device link state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21458 ) Change subject: gprs_ns2_fr: Monitor the kernel net-device link state ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I779556991bfc88b7751b2be17bb81c329cfb9e01 Gerrit-Change-Number: 21458 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 02 Dec 2020 15:12:40 +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 Dec 2 15:14:55 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 15:14:55 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add logging macros for NSE and BVC 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/+/21455 to look at the new patch set (#3). Change subject: gbproxy: Add logging macros for NSE and BVC ...................................................................... gbproxy: Add logging macros for NSE and BVC Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Related: SYS#5233 --- M include/osmocom/sgsn/gb_proxy.h 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/55/21455/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Gerrit-Change-Number: 21455 Gerrit-PatchSet: 3 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 Wed Dec 2 15:14:56 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 15:14:56 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 ) Change subject: gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent ...................................................................... gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent Fixes: SYS#5233 Change-Id: I93296353dd964602699480faae1248096e331c6a --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_main.c 2 files changed, 18 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/60/21460/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index af8c5fc..bad3838 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -570,7 +570,7 @@ if (!peer) { LOGP(DLLC, LOGL_INFO, - "NSEI=%d(%s) patching: didn't find peer for message, " + "NSE(%05u)(%s) patching: didn't find peer for message, " "PDU %d\n", msgb_nsei(msg), parse_ctx->to_bss ? "BSS" : "SGSN", parse_ctx->pdu_type); @@ -878,7 +878,7 @@ peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); if (!peer) { - LOGP(DGPRS, LOGL_ERROR, "BVCI=%u: Cannot find BSS\n", + LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", ptp_bvci); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); return -ENOENT; @@ -908,7 +908,7 @@ peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); if (!peer) { - LOGP(DGPRS, LOGL_ERROR, "BVCI=%u: Cannot find BSS\n", + LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", ptp_bvci); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); return -ENOENT; @@ -934,8 +934,8 @@ peer = gbproxy_peer_by_bvci(cfg, ns_bvci); if (!peer) { - LOGP(DGPRS, LOGL_NOTICE, "Didn't find peer for " - "BVCI=%u for PTP message from NSEI=%u (BSS), " + LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find peer " + "for PTP message from NSE(%05u/BSS), " "discarding message\n", ns_bvci, nsei); return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, @@ -978,8 +978,8 @@ /* Send status messages before patching */ if (!peer) { - LOGP(DGPRS, LOGL_INFO, "Didn't find peer for " - "BVCI=%u for message from NSEI=%u (SGSN)\n", + LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find peer for " + "for message from NSE(%05u/SGSN)\n", ns_bvci, nsei); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_BVCI]); @@ -1029,7 +1029,7 @@ int rc; if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u BVCI=%u is not signalling\n", + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) BVCI=%05u is not signalling\n", nsei, ns_bvci); return -EINVAL; } @@ -1038,7 +1038,7 @@ * just to make sure */ if (pdu_type == BSSGP_PDUT_UL_UNITDATA || pdu_type == BSSGP_PDUT_DL_UNITDATA) { - LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u UNITDATA not allowed in " + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) UNITDATA not allowed in " "signalling\n", nsei); return -EINVAL; } @@ -1072,14 +1072,14 @@ * is common for all point-to-point BVCs (and thus all BTS) */ if (TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) { uint16_t bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - LOGP(DGPRS, LOGL_INFO, "NSEI=%u Rx BVC RESET (BVCI=%u)\n", + LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); if (bvci == 0) { struct gbproxy_nse *nse; /* Ensure the NSE peer is there and clear all PtP BVCs */ nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); if (!nse) { - LOGP(DGPRS, LOGL_ERROR, "Could not allocate NSE for NSEI=%u\n", nsei); + LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); } @@ -1095,8 +1095,8 @@ if (!from_peer) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); if (!nse) { - LOGP(DGPRS, LOGL_NOTICE, "Got PtP BVC reset before signalling reset for " - "BVCI=%u NSEI=%u\n", bvci, nsei); + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " + "BVCI=%05u\n", nsei, bvci); return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); } /* if a PTP-BVC is reset, and we don't know that @@ -1108,13 +1108,14 @@ /* Could have moved to a different NSE */ if (!check_peer_nsei(from_peer, nsei)) { + LOGPBVC(from_peer, LOGL_NOTICE, "moving peer to NSE(%05u)\n", nsei); + struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); if (!nse_new) { - LOGP(DGPRS, LOGL_NOTICE, "Got PtP BVC reset before signalling reset for " - "BVCI=%u NSEI=%u\n", bvci, nsei); + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " + "BVCI=%05u\n", bvci, nsei); return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); } - LOGPBVC(from_peer, LOGL_NOTICE, "Peer moved to NSEI=%u\n", nsei); /* Move peer to different NSE */ gbproxy_peer_move(from_peer, nse_new); diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index 3ab8e49..c7ff78c 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -321,7 +321,7 @@ } if (!gprs_ns2_nse_by_nsei(gbcfg->nsi, gbcfg->nsip_sgsn_nsei)) { - LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSEI %u " + LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSE(%05u) " "without creating that NSEI before\n", gbcfg->nsip_sgsn_nsei); exit(2); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I93296353dd964602699480faae1248096e331c6a Gerrit-Change-Number: 21460 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 Dec 2 15:15:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 15:15:01 +0000 Subject: Change in libosmocore[master]: ns2: Fix docs for some NS2 vty commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21459 ) Change subject: ns2: Fix docs for some NS2 vty commands ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie58607424340c102c930330e444c2e219c1803e0 Gerrit-Change-Number: 21459 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 15:15: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 Dec 2 15:15:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 15:15:05 +0000 Subject: Change in libosmocore[master]: ns2: Fix docs for some NS2 vty commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21459 ) Change subject: ns2: Fix docs for some NS2 vty commands ...................................................................... Patch Set 1: thanks! -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie58607424340c102c930330e444c2e219c1803e0 Gerrit-Change-Number: 21459 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 15:15: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 Dec 2 15:15:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 15:15:07 +0000 Subject: Change in libosmocore[master]: ns2: Fix docs for some NS2 vty commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21459 ) Change subject: ns2: Fix docs for some NS2 vty commands ...................................................................... ns2: Fix docs for some NS2 vty commands Change-Id: Ie58607424340c102c930330e444c2e219c1803e0 --- M src/gb/gprs_ns2_vty.c 1 file changed, 6 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index b244a96..97becf6 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -54,6 +54,8 @@ #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; @@ -323,7 +325,7 @@ } DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", - SHOW_STR + SHOW_STR SHOW_NS_STR "Display information about the NS protocol binds\n" "Include statistic\n") { @@ -336,7 +338,7 @@ } DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", - SHOW_STR + SHOW_STR SHOW_NS_STR "Display information about the NS protocol entities (NSEs)\n" "Include statistics\n") { @@ -349,8 +351,7 @@ } DEFUN(show_ns_pers, show_ns_pers_cmd, "show ns persistent", - SHOW_STR - "Display information about the NS protocol\n" + SHOW_STR SHOW_NS_STR "Show only persistent NS\n") { dump_ns_entities(vty, vty_nsi, true, true); @@ -358,7 +359,7 @@ } DEFUN(show_nse, show_nse_cmd, "show ns (nsei|nsvc) <0-65535> [stats]", - SHOW_STR "Display information about the NS protocol\n" + 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" -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie58607424340c102c930330e444c2e219c1803e0 Gerrit-Change-Number: 21459 Gerrit-PatchSet: 1 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 Wed Dec 2 15:15:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 15:15:50 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add logging macros for NSE and BVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 ) Change subject: gbproxy: Add logging macros for NSE and BVC ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Gerrit-Change-Number: 21455 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 15:15: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 Dec 2 15:19:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 15:19:35 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use LOG macros for NSE/BVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 ) Change subject: gbproxy: Use LOG macros for NSE/BVC ...................................................................... Patch Set 3: (14 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a462 PS3, Line 462: "NSEI=%d(BSS) IMSI acquisition was in progress " NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a468 PS3, Line 468: "NSEI=%d(BSS) IMSI not yet acquired, " NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a487 PS3, Line 487: "NSEI=%d(BSS) IMSI acquisition succeeded, " NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a516 PS3, Line 516: "NSEI=%d(BSS) Dropping stored msgb from list " NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a526 PS3, Line 526: "NSEI=%d(BSS) IMSI acquisition in progress, " NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a537 PS3, Line 537: "NSEI=%d(BSS) IMSI is required but not available, " NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a607 PS3, Line 607: "NSEI=%u(BSS) patching: failed to parse invalid %s message\n", NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a724 PS3, Line 724: "NSEI=%u(SGSN) patching: failed to parse invalid %s message\n", NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a728 PS3, Line 728: "NSEI=%u(SGSN) invalid message was: %s\n", NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a990 PS3, Line 990: "blocked BVCI=%u via NSEI=%u\n", Both NSEI and BVCI can go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a1063 PS3, Line 1063: "RAI snooping: RAI %s behind BVCI=%u\n", BVCI can go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at 91 PS3, Line 91: expected NSEI=%u expected that part can go as it's now logged by the macro, right? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at 455 PS3, Line 455: "NSEI=%d( NSEI can now go? https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at 612 PS3, Line 612: LOGPBVC(peer, LOGL_NOTICE, NSEI can now go? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Gerrit-Change-Number: 21456 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 15:19: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 Wed Dec 2 15:20:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 15:20:27 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 ) Change subject: gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I93296353dd964602699480faae1248096e331c6a Gerrit-Change-Number: 21460 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 15:20: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 Dec 2 15:24:00 2020 From: gerrit-no-reply at lists.osmocom.org (ninjab3s) Date: Wed, 2 Dec 2020 15:24:00 +0000 Subject: Change in osmo-gsm-tester[master]: Introduce Android UEs as new modems 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/+/21302 to look at the new patch set (#4). Change subject: Introduce Android UEs as new modems ...................................................................... Introduce Android UEs as new modems To expand the test capacities we would like to introduce Android UEs as new modems. Currently the following tests are supported: - Ping - iPerf3 DL/UL - RRC Mobile MT Ping In the following is a small description. Prerequisites: - Android UE - Rooted (Ping, iPerf, RRC Idle MT Ping) - Qualcomm baseband with working diag_mdlog (RRC Idle MT Ping) - iPerf3 - Dropbear - OGT Slave Unit - Android SDK Platform-Tools (https://developer.android.com/studio/releases/platform-tools#downloads) - Pycrate (https://github.com/P1sec/pycrate) - SCAT clone https://github.com/bedrankara/scat/ & install dependencies checkout branch ogt symlink scat (ln -s ~/scat/scat.py /usr/local/bin/scat) Infrastructure explaination: The Android UEs are connected to the OGT Units via USB. We activate tethering and set up a SSH server (with Dropbear). We chose tethering over WiFi to have a more stable route for the ssh connection. We forward incoming connections to the OGT unit hosting the Android UE(s) on specific ports to the UEs via iptables. This enables OGT to issue commands directly to the UEs. In case of local execution we use ADB to issue commands to the AndroidUE. The set up was tested with 5 Android UEs connected in parallel but it should be scalable to the number of available IPs in the respective subnet. Furthermore, we need to cross compile Dropbear and iPerf3 to use them on the UEs. These tools have to be added to the $PATH variable of the UEs. Examplary set up: In this example we have two separate OGT units (master and slave) and two Android UEs that are connected to the slave unit. An illustration may be found here: https://ibb.co/6BXSP2C On UE 1: ip address add 192.168.42.130/24 dev rndis0 ip route add 192.168.42.0/24 dev rndis0 table local_network dropbearmulti dropbear -F -E -p 130 -R -T /data/local/tmp/authorized_keys -U 0 -G 0 -N root -A On UE 2: ip address add 192.168.42.131/24 dev rndis0 ip route add 192.168.42.0/24 dev rndis0 table local_network dropbearmulti dropbear -F -E -p 131 -R -T /data/local/tmp/authorized_keys -U 0 -G 0 -N root -A On OGT slave unit: sudo ip link add name ogt type bridge sudo ip l set eth0 master ogt sudo ip l set enp0s20f0u1 master ogt sudo ip l set enp0s20f0u2 master ogt sudo ip a a 192.168.42.1/24 dev ogt sudo ip link set ogt up Now we have to manually connect to every UE from OGT Master to set up SSH keys and verify that the setup works. Therefore, use: ssh -p [UE-PORT] root@[OGT SLAVE UNIT's IP] Finally, to finish the setup procedure create the remote_run_dir for Android UEs on the slave unit like following: mkdir /osmo-gsm-tester-androidue chown jenkins /osmo-gsm-tester-androidue Example for modem in resource.conf: - label: mi5g type: androidue imsi: '901700000034757' ki: '85E9E9A947B9ACBB966ED7113C7E1B8A' opc: '3E1C73A29B9C293DC5A763E42C061F15' ue_serial: '8d9d79a9' apn: apn: 'srsapn' mcc: '901' mnc: '70' select: 'True' auth_algo: 'milenage' features: ['4g', 'dl_qam256', 'qc_diag'] run_node: run_type: ssh run_addr: 100.113.1.170 ssh_user: jenkins ssh_addr: 100.113.1.170 ue_ssh_port: 130 adb_serial_id: '8d3c79a7' Example for default-suites.conf: - 4g:ms-label at mi5g+srsenb-rftype@uhd+mod-enb-nprb at 25+mod-enb-txmode@1 Change-Id: I79a5d803e869a868d4dac5e0d4c2feb38038dc5c --- M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/core/schema.py A src/osmo_gsm_tester/obj/android_apn.py A src/osmo_gsm_tester/obj/android_bitrate_monitor.py A src/osmo_gsm_tester/obj/android_host.py M src/osmo_gsm_tester/obj/iperf3.py M src/osmo_gsm_tester/obj/ms.py A src/osmo_gsm_tester/obj/ms_android.py A src/osmo_gsm_tester/obj/qc_diag.py M src/osmo_gsm_tester/obj/run_node.py A sysmocom/scenarios/ms-label.conf A utils/bin/osmo-gsm-tester_androidue_conn_chk.sh A utils/bin/osmo-gsm-tester_androidue_diag_parser.sh 13 files changed, 848 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/02/21302/4 -- 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: 4 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Dec 2 15:25:08 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 2 Dec 2020 15:25:08 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:?= =?UTF-8?Q?_master-osmo-sip-connector_=C2=BB_a1=3Dde?= =?UTF-8?Q?fault,a2=3Ddefault,a3=3Ddefault,a4=3Dde?= =?UTF-8?Q?fault,osmocom-master-debian9_#2934?= In-Reply-To: <1832790938.636.1606878631727@jenkins.osmocom.org> References: <1832790938.636.1606878631727@jenkins.osmocom.org> Message-ID: <1380978722.689.1606922708269@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Wed Dec 2 15:44:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 15:44:44 +0000 Subject: Change in libosmocore[master]: Integrate libmnl (minimal netlink) library with libosmocore select loop In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21457 ) Change subject: Integrate libmnl (minimal netlink) library with libosmocore select loop ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21457/3/include/osmocom/core/mnl.h File include/osmocom/core/mnl.h: https://gerrit.osmocom.org/c/libosmocore/+/21457/3/include/osmocom/core/mnl.h at 16 PS3, Line 16: mnl_cb_t mnl_cb; What about using something osmocom specific here so we don't depent on libmnl in the public API? It seems the only real use and can easily be circumvented. This way we can choose other implementations if we want in the future. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f Gerrit-Change-Number: 21457 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 15:44:44 +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 Dec 2 15:45:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 15:45:19 +0000 Subject: Change in libosmocore[master]: Integrate libmnl (minimal netlink) library with libosmocore select loop In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21457 ) Change subject: Integrate libmnl (minimal netlink) library with libosmocore select loop ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f Gerrit-Change-Number: 21457 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 15:45: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 Dec 2 15:46:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 15:46:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Monitor the kernel net-device link state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21458 ) Change subject: gprs_ns2_fr: Monitor the kernel net-device link state ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I779556991bfc88b7751b2be17bb81c329cfb9e01 Gerrit-Change-Number: 21458 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 15:46: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 Dec 2 15:59:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 15:59:00 +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 4: Code-Review+1 (3 comments) Mostly fine, let's simply try to address the couple issues I pointed out, specially the iperf3 ssh_port thing. I'm open to merge as it is but I'd like to find a better solution if possible. So waiting for your feedback, feel free to reach me by email or jabber if you want. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302/4/src/osmo_gsm_tester/obj/android_host.py File src/osmo_gsm_tester/obj/android_host.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302/4/src/osmo_gsm_tester/obj/android_host.py at 69 PS4, Line 69: # to execute commands on the machine that hosts the Android UE. This function complements with "hosts" you mean "is attached to" right? by means of USB adb? https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302/4/src/osmo_gsm_tester/obj/iperf3.py File src/osmo_gsm_tester/obj/iperf3.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302/4/src/osmo_gsm_tester/obj/iperf3.py at 349 PS4, Line 349: if self._run_node.adb_serial_id() or self._run_node.ssh_port(): we should really find some way to differentiate between run_nodes containing ssh_port and which are still not AndroidUE. For instance, a run_node to a regular host which runs ssh on port != 22. Can you give that another try? Feel free to describe to me the exact problem/scenarios you face somewhere. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302/4/src/osmo_gsm_tester/obj/qc_diag.py File src/osmo_gsm_tester/obj/qc_diag.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302/4/src/osmo_gsm_tester/obj/qc_diag.py at 79 PS4, Line 79: MainLoop.wait(self.finished_parsing, timeout=300) You can pass timestemp=2 if you want to keep the sleep(2) behavior, up to you. -- 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: 4 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 15:59: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 Wed Dec 2 16:42:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 16:42:05 +0000 Subject: Change in osmo-bsc[master]: WIP: Introduce NM GPRS NSE FSM References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21461 ) Change subject: WIP: Introduce NM GPRS NSE FSM ...................................................................... WIP: Introduce NM GPRS NSE FSM Change-Id: I91a5f40324d5373eac885032295690cec97214a6 --- M include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h M include/osmocom/bsc/nm_common_fsm.h M include/osmocom/bsc/signal.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nse_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 19 files changed, 503 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/21461/1 diff --git a/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h b/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h index bc7860b..22a8c34 100644 --- a/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h +++ b/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h @@ -24,8 +24,12 @@ #include #include +struct gsm_bts_sm; +struct gsm_bts; +struct gsm_bts_trx; + struct msgb *nanobts_attr_bts_get(struct gsm_bts *bts); -struct msgb *nanobts_attr_nse_get(struct gsm_bts *bts); +struct msgb *nanobts_attr_nse_get(struct gsm_bts_sm *bts_sm); struct msgb *nanobts_attr_cell_get(struct gsm_bts *bts); struct msgb *nanobts_attr_nscv_get(struct gsm_bts *bts); struct msgb *nanobts_attr_radio_get(struct gsm_bts *bts, diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h index 00031fb..b8b821f 100644 --- a/include/osmocom/bsc/nm_common_fsm.h +++ b/include/osmocom/bsc/nm_common_fsm.h @@ -82,3 +82,12 @@ NM_CHAN_ST_OP_ENABLED, }; extern struct osmo_fsm nm_chan_fsm; + +/* GPRS NSE */ +enum nm_gprs_op_nse_states { + NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED, + NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY, + NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE, + NM_GPRS_NSE_ST_OP_ENABLED, +}; +extern struct osmo_fsm nm_gprs_nse_fsm; diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h index 088d4f2..4933703 100644 --- a/include/osmocom/bsc/signal.h +++ b/include/osmocom/bsc/signal.h @@ -65,6 +65,7 @@ S_NM_NACK, /* GSM 12.21 various NM_MT_*_NACK happened */ S_NM_IPACC_NACK, /* GSM 12.21 nanoBTS extensions NM_MT_IPACC_*_*_NACK happened */ S_NM_IPACC_ACK, /* GSM 12.21 nanoBTS extensions NM_MT_IPACC_*_*_ACK happened */ + S_NM_IPACC_SET_ATTR_ACK,/* GSM 12.21 nanoBTS extensions NM_MT_IPACC_SET_ATTR_ACK happened */ S_NM_IPACC_RESTART_ACK, /* nanoBTS has send a restart ack */ S_NM_IPACC_RESTART_NACK,/* nanoBTS has send a restart ack */ S_NM_TEST_REP, /* GSM 12.21 Test Report */ diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index c489e0a..e226206 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -60,6 +60,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ $(NULL) @@ -82,6 +83,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ $(NULL) diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 89f869d..b1b2cc6 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -81,6 +81,7 @@ nm_bb_transc_fsm.c \ nm_bts_sm_fsm.c \ nm_bts_fsm.c \ + nm_gprs_nse_fsm.c \ nm_channel_fsm.c \ nm_rcarrier_fsm.c \ gsm_08_08.c \ diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 657948f..d837779 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -2922,6 +2922,9 @@ signal.msg_type = foh->msg_type; osmo_signal_dispatch(SS_NM, S_NM_IPACC_ACK, &signal); break; + case NM_MT_IPACC_SET_ATTR_ACK: + osmo_signal_dispatch(SS_NM, S_NM_IPACC_SET_ATTR_ACK, msg); + break; default: break; } diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 73d6318..8023323 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -46,6 +46,7 @@ #include #include #include +#include #include static int bts_model_nanobts_start(struct gsm_network *net); @@ -134,6 +135,7 @@ struct gsm_bts_bb_trx *bb_transc; struct gsm_bts_trx_ts *ts; struct gsm_gprs_nsvc *nsvc; + struct gsm_gprs_nse *nse; struct msgb *msgb; @@ -174,21 +176,8 @@ osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_NSE: - bts_sm = container_of(obj, struct gsm_bts_sm, gprs.nse); - bts = bts_sm->bts[0]; - if (bts->gprs.mode == BTS_GPRS_NONE) - break; - if (new_state->availability == NM_AVSTATE_DEPENDENCY) { - msgb = nanobts_attr_nse_get(bts); - if (!msgb) - break; - abis_nm_ipaccess_set_attr(bts, obj_class, bts->bts_nr, - 0xff, 0xff, msgb->data, - msgb->len); - msgb_free(msgb); - abis_nm_opstart(bts, obj_class, bts->bts_nr, - 0xff, 0xff); - } + nse = obj; + osmo_fsm_inst_dispatch(nse->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_CELL: bts = container_of(obj, struct gsm_bts, gprs.cell); @@ -204,8 +193,6 @@ msgb_free(msgb); abis_nm_chg_adm_state(bts, obj_class, bts->bts_nr, 0, 0xff, NM_STATE_UNLOCKED); - abis_nm_chg_adm_state(bts, NM_OC_GPRS_NSE, bts->bts_nr, - 0xff, 0xff, NM_STATE_UNLOCKED); abis_nm_opstart(bts, obj_class, bts->bts_nr, 0, 0xff); } @@ -279,6 +266,9 @@ return -EINVAL; osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_SW_ACT_REP, NULL); break; + case NM_OC_GPRS_NSE: + osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_SW_ACT_REP, NULL); + break; } return 0; } @@ -325,6 +315,9 @@ case NM_OC_CHANNEL: nm_rx_opstart_ack_chan(oml_msg); break; + case NM_OC_GPRS_NSE: + osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OPSTART_ACK, NULL); + break; default: break; } @@ -360,6 +353,9 @@ return; osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_OPSTART_NACK, NULL); break; + case NM_OC_GPRS_NSE: + osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OPSTART_NACK, NULL); + break; default: break; } @@ -405,6 +401,29 @@ osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_SET_ATTR_ACK, NULL); } +static void nm_rx_ipacc_set_attr_ack(struct msgb *oml_msg) +{ + struct e1inp_sign_link *sign_link = oml_msg->dst; + struct gsm_bts *bts = sign_link->trx->bts; + struct abis_om_hdr *oh = msgb_l2(oml_msg); + uint8_t idstrlen = oh->data[0]; + struct abis_om_fom_hdr *foh; + void *obj; + struct gsm_gprs_nse *nse; + + foh = (struct abis_om_fom_hdr *) (oh->data + 1 + idstrlen); + obj = gsm_objclass2obj(bts, foh->obj_class, &foh->obj_inst); + + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + nse = obj; + osmo_fsm_inst_dispatch(nse->mo.fi, NM_EV_SET_ATTR_ACK, NULL); + break; + default: + LOGPFOH(DNM, LOGL_ERROR, foh, "IPACC Set Attr Ack received on incorrect object class %d!\n", foh->obj_class); + } +} + /* Callback function to be called every time we receive a signal from NM */ static int bts_ipa_nm_sig_cb(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) @@ -433,6 +452,9 @@ case S_NM_SET_CHAN_ATTR_ACK: nm_rx_set_chan_attr_ack(signal_data); return 0; + case S_NM_IPACC_SET_ATTR_ACK: + nm_rx_ipacc_set_attr_ack(signal_data); + return 0; default: break; } @@ -524,6 +546,7 @@ } osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OML_DOWN, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OML_DOWN, NULL); osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OML_DOWN, NULL); gsm_bts_all_ts_dispatch(bts, TS_EV_OML_DOWN, NULL); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index 5ad0f47..e23a688 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -101,11 +101,11 @@ return msgb; } -struct msgb *nanobts_attr_nse_get(struct gsm_bts *bts) +struct msgb *nanobts_attr_nse_get(struct gsm_bts_sm *bts_sm) { struct msgb *msgb; uint8_t buf[256]; - struct gsm_bts_sm *bts_sm = bts->site_mgr; + struct gsm_bts *bts = gsm_bts_sm_get_bts(bts_sm); msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; diff --git a/src/osmo-bsc/bts_sm.c b/src/osmo-bsc/bts_sm.c index a016124..296a21d 100644 --- a/src/osmo-bsc/bts_sm.c +++ b/src/osmo-bsc/bts_sm.c @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -29,6 +30,11 @@ static int gsm_bts_sm_talloc_destructor(struct gsm_bts_sm *bts_sm) { + if (bts_sm->gprs.nse.mo.fi) { + osmo_fsm_inst_free(bts_sm->gprs.nse.mo.fi); + bts_sm->gprs.nse.mo.fi = NULL; + } + if (bts_sm->mo.fi) { osmo_fsm_inst_free(bts_sm->mo.fi); bts_sm->mo.fi = NULL; @@ -58,6 +64,14 @@ gsm_mo_init(&bts_sm->mo, bts, NM_OC_SITE_MANAGER, 0xff, 0xff, 0xff); + + bts_sm->gprs.nse.mo.fi = osmo_fsm_inst_alloc(&nm_gprs_nse_fsm, bts_sm, &bts_sm->gprs.nse, + LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts_sm->gprs.nse.mo.fi, "nse%d", bts_num); + gsm_mo_init(&bts_sm->gprs.nse.mo, bts, NM_OC_GPRS_NSE, bts->nr, 0xff, 0xff); + memcpy(&bts_sm->gprs.nse.timer, bts_nse_timer_default, + sizeof(bts_sm->gprs.nse.timer)); + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { bts_sm->gprs.nsvc[i].bts = bts; bts_sm->gprs.nsvc[i].id = i; diff --git a/src/osmo-bsc/nm_gprs_nse_fsm.c b/src/osmo-bsc/nm_gprs_nse_fsm.c new file mode 100644 index 0000000..ea140e4 --- /dev/null +++ b/src/osmo-bsc/nm_gprs_nse_fsm.c @@ -0,0 +1,359 @@ +/* NM Radio Carrier FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +#define nm_gprs_nse_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +////////////////////////// +// FSM STATE ACTIONS +////////////////////////// + +static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + + nse->mo.set_attr_sent = false; + nse->mo.set_attr_ack_received = false; + nse->mo.adm_unlock_sent = false; + nse->mo.opstart_sent = false; +} + +static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SW_ACT_REP: + break; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_DEPENDENCY: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void configure_loop(struct gsm_gprs_nse *nse, struct gsm_nm_state *state, bool allow_opstart) { + struct msgb *msgb; + struct gsm_bts_sm *bts_sm = container_of(nse, struct gsm_bts_sm, gprs.nse); + struct gsm_bts *bts = gsm_bts_sm_get_bts(bts_sm); + + if (!nse->mo.set_attr_sent && !nse->mo.set_attr_ack_received) { + nse->mo.set_attr_sent = true; + msgb = nanobts_attr_nse_get(bts_sm); + abis_nm_ipaccess_set_attr(bts, NM_OC_GPRS_NSE, bts->bts_nr, + 0xff, 0xff, msgb->data, + msgb->len); + msgb_free(msgb); + } + + if (state->administrative != NM_STATE_UNLOCKED && !nse->mo.adm_unlock_sent) { + nse->mo.adm_unlock_sent = true; + abis_nm_chg_adm_state(bts, NM_OC_GPRS_NSE, + bts->bts_nr, 0xff, 0xff, + NM_STATE_UNLOCKED); + } + + if (allow_opstart && state->administrative == NM_STATE_UNLOCKED && + nse->mo.set_attr_ack_received) { + if (!nse->mo.opstart_sent) { + nse->mo.opstart_sent = true; + abis_nm_opstart(bts, NM_OC_GPRS_NSE, bts->bts_nr, 0xff, 0xff); + } + } +} + +static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct gsm_bts_sm *bts_sm = container_of(nse, struct gsm_bts_sm, gprs.nse); + + /* nanoBTS is broken, doesn't follow TS 12.21. Opstart MUST be sent + during Dependency, so we simply move to OFFLINE state here to avoid + duplicating code */ + if (bts_sm->peer_has_no_avstate_offline) { + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE); + return; + } + configure_loop(nse, &nse->mo.nm_state, false); +} + +static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + nse->mo.set_attr_ack_received = true; + nse->mo.set_attr_sent = false; + configure_loop(nse, &nse->mo.nm_state, false); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE); + return; + case NM_AVSTATE_DEPENDENCY: + configure_loop(nse, new_state, false); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + + /* Warning: In here we may be acessing an state older than new_state + from prev (syncrhonous) FSM state */ + configure_loop(nse, &nse->mo.nm_state, true); +} + +static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + nse->mo.set_attr_ack_received = true; + nse->mo.set_attr_sent = false; + configure_loop(nse, &nse->mo.nm_state, true); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + configure_loop(nse, new_state, true); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + + /* Reset state, we don't need it in this state and it will need to be + reused as soon as we move back to Disabled */ + nse->mo.opstart_sent = false; + nse->mo.adm_unlock_sent = false; + nse->mo.set_attr_ack_received = false; + nse->mo.set_attr_sent = false; +} + +static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) + return; + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct gsm_bts_sm *bts_sm = container_of(nse, struct gsm_bts_sm, gprs.nse); + struct gsm_bts *bts = gsm_bts_sm_get_bts(bts_sm); + + switch (event) { + case NM_EV_OPSTART_ACK: + case NM_EV_OPSTART_NACK: + /* TODO: if on state OFFLINE and rx NACK, try again? */ + nse->mo.opstart_sent = false; + break; + case NM_EV_FORCE_LOCK: + nse->mo.force_rf_lock = (bool)(intptr_t)data; + abis_nm_chg_adm_state(bts, NM_OC_GPRS_NSE, + bts->bts_nr, 0xff, 0xff, + nse->mo.force_rf_lock ? NM_STATE_LOCKED : NM_STATE_UNLOCKED); + break; + case NM_EV_OML_DOWN: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + break; + default: + OSMO_ASSERT(0); + } +} + +static struct osmo_fsm_state nm_gprs_nse_fsm_states[] = { + [NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED] = { + .in_event_mask = + X(NM_EV_SW_ACT_REP) | + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_NSE_ST_OP_ENABLED), + .name = "DISABLED_NOTINSTALLED", + .onenter = st_op_disabled_notinstalled_on_enter, + .action = st_op_disabled_notinstalled, + }, + [NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_NSE_ST_OP_ENABLED), + .name = "DISABLED_DEPENDENCY", + .onenter = st_op_disabled_dependency_on_enter, + .action = st_op_disabled_dependency, + }, + [NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSE_ST_OP_ENABLED), + .name = "DISABLED_OFFLINE", + .onenter = st_op_disabled_offline_on_enter, + .action = st_op_disabled_offline, + }, + [NM_GPRS_NSE_ST_OP_ENABLED] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE), + .name = "ENABLED", + .onenter = st_op_enabled_on_enter, + .action = st_op_enabled, + }, +}; + +struct osmo_fsm nm_gprs_nse_fsm = { + .name = "NM_GPRS_NSE_OP", + .states = nm_gprs_nse_fsm_states, + .num_states = ARRAY_SIZE(nm_gprs_nse_fsm_states), + .allstate_event_mask = + X(NM_EV_OPSTART_ACK) | + X(NM_EV_OPSTART_NACK) | + X(NM_EV_FORCE_LOCK) | + X(NM_EV_OML_DOWN), + .allstate_action = st_op_allstate, + .event_names = nm_fsm_event_names, + .log_subsys = DNM, +}; + +static __attribute__((constructor)) void nm_gprs_nse_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nm_gprs_nse_fsm) == 0); +} diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index dfc68c5..5755258 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -62,6 +62,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ @@ -140,6 +141,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index 681e35a..daaca66 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -38,6 +38,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/acc/Makefile.am b/tests/acc/Makefile.am index 1536365..44e5107 100644 --- a/tests/acc/Makefile.am +++ b/tests/acc/Makefile.am @@ -38,6 +38,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/acc/acc_test.ok b/tests/acc/acc_test.ok index 069ad74..9a099f9 100644 --- a/tests/acc/acc_test.ok +++ b/tests/acc/acc_test.ok @@ -12,6 +12,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_no_ramp() do_allowed_len_adm_loop(1) (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fe (active_len=9, ramp_len=10, adm_len=9, perm_len=10, rotation=on) @@ -117,6 +118,7 @@ *** Barring zero ACCs *** (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -144,6 +146,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_manual_ramp() do_allowed_len_ramp_loop(1) (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fe (active_len=9, ramp_len=9, adm_len=10, perm_len=10, rotation=on) @@ -379,6 +382,7 @@ pcu_info_update(): t2=0x03 t3=0xff, allowed: (bts=0) ACC: New ACC allowed subset 0x24c (active_len=4, ramp_len=4, adm_len=4, perm_len=4, rotation=off) pcu_info_update(): t2=0x01 t3=0xb3, allowed: 2 3 6 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -406,6 +410,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -472,6 +477,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x001 -> 0x002 (active_len=1, ramp_len=10, adm_len=1, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xfd, allowed: 1 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -499,6 +505,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x200 (active_len=1, ramp_len=10, adm_len=1, perm_len=10, rotation=on) pcu_info_update(): t2=0x01 t3=0xff, allowed: 9 @@ -562,6 +569,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x100 -> 0x200 (active_len=1, ramp_len=10, adm_len=1, perm_len=10, rotation=on) pcu_info_update(): t2=0x01 t3=0xff, allowed: 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -589,6 +597,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -655,6 +664,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x101 -> 0x003 (active_len=2, ramp_len=10, adm_len=2, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xfc, allowed: 0 1 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -682,6 +692,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x300 (active_len=2, ramp_len=10, adm_len=2, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0xff, allowed: 8 9 @@ -745,6 +756,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x180 -> 0x300 (active_len=2, ramp_len=10, adm_len=2, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0xff, allowed: 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -772,6 +784,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -838,6 +851,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x181 -> 0x103 (active_len=3, ramp_len=10, adm_len=3, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0xfc, allowed: 0 1 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -865,6 +879,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x380 (active_len=3, ramp_len=10, adm_len=3, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x7f, allowed: 7 8 9 @@ -928,6 +943,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1c0 -> 0x380 (active_len=3, ramp_len=10, adm_len=3, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x7f, allowed: 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -955,6 +971,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1021,6 +1038,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1c1 -> 0x183 (active_len=4, ramp_len=10, adm_len=4, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x7c, allowed: 0 1 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1048,6 +1066,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3c0 (active_len=4, ramp_len=10, adm_len=4, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x3f, allowed: 6 7 8 9 @@ -1111,6 +1130,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1e0 -> 0x3c0 (active_len=4, ramp_len=10, adm_len=4, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x3f, allowed: 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1138,6 +1158,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1204,6 +1225,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1e1 -> 0x1c3 (active_len=5, ramp_len=10, adm_len=5, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x3c, allowed: 0 1 6 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1231,6 +1253,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3e0 (active_len=5, ramp_len=10, adm_len=5, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x1f, allowed: 5 6 7 8 9 @@ -1294,6 +1317,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f0 -> 0x3e0 (active_len=5, ramp_len=10, adm_len=5, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x1f, allowed: 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1321,6 +1345,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1387,6 +1412,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f1 -> 0x1e3 (active_len=6, ramp_len=10, adm_len=6, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x1c, allowed: 0 1 5 6 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1414,6 +1440,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3f0 (active_len=6, ramp_len=10, adm_len=6, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x0f, allowed: 4 5 6 7 8 9 @@ -1477,6 +1504,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f8 -> 0x3f0 (active_len=6, ramp_len=10, adm_len=6, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x0f, allowed: 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1504,6 +1532,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1570,6 +1599,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f9 -> 0x1f3 (active_len=7, ramp_len=10, adm_len=7, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x0c, allowed: 0 1 4 5 6 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1597,6 +1627,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3f8 (active_len=7, ramp_len=10, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 @@ -1660,6 +1691,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1fc -> 0x3f8 (active_len=7, ramp_len=10, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1687,6 +1719,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1753,6 +1786,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1fd -> 0x1fb (active_len=8, ramp_len=10, adm_len=8, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x04, allowed: 0 1 3 4 5 6 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1780,6 +1814,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fc (active_len=8, ramp_len=10, adm_len=8, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x03, allowed: 2 3 4 5 6 7 8 9 @@ -1843,6 +1878,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1fe -> 0x3fc (active_len=8, ramp_len=10, adm_len=8, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x03, allowed: 2 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1870,6 +1906,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fe (active_len=9, ramp_len=10, adm_len=9, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x01, allowed: 1 2 3 4 5 6 7 8 9 @@ -1933,6 +1970,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1ff -> 0x3fe (active_len=9, ramp_len=10, adm_len=9, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x01, allowed: 1 2 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1960,6 +1998,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x000 (active_len=0, ramp_len=0, adm_len=10, perm_len=10, rotation=off) pcu_info_update(): t2=0x03 t3=0xff, allowed: @@ -1992,6 +2031,7 @@ sys={450.000000}: select() (bts=0) ACC: update ACC allowed active subset 0x1ff -> 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2019,6 +2059,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp2() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3f8 (active_len=7, ramp_len=10, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 @@ -2033,6 +2074,7 @@ (bts=0) ACC: update ACC allowed active subset 0x03f -> 0x07f (active_len=7, ramp_len=7, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x03 t3=0x80, allowed: 0 1 2 3 4 5 6 sys={15.000000}: select() +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2060,6 +2102,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp3() *** Barring some ACCs *** (bts=0) ACC: New ACC allowed subset 0x15a (active_len=5, ramp_len=10, adm_len=10, perm_len=5, rotation=off) @@ -2090,6 +2133,7 @@ (bts=0) ACC: update ACC allowed active subset 0x15a -> 0x15a (active_len=5, ramp_len=9, adm_len=10, perm_len=5, rotation=off) sys={45.000000}: select() (bts=0) ACC: update ACC allowed active subset 0x15a -> 0x15a (active_len=5, ramp_len=10, adm_len=10, perm_len=5, rotation=off) +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2117,6 +2161,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_up_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2203,6 +2248,7 @@ sys={2750.000000}: select() sys={3000.000000}: select() sys={3250.000000}: select() +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2230,6 +2276,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_up_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2316,6 +2363,7 @@ sys={2750.000000}: select() sys={3000.000000}: select() sys={3250.000000}: select() +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2343,6 +2391,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_up_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2429,6 +2478,7 @@ sys={2750.000000}: select() sys={3000.000000}: select() sys={3250.000000}: select() +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2456,6 +2506,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2572,6 +2623,7 @@ sys={7000.000000}: select(47): chan_load_avg=75 sys={7250.000000}: select(48): chan_load_avg=90 sys={7500.000000}: select(49): chan_load_avg=100 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2599,6 +2651,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2739,6 +2792,7 @@ sys={4200.000000}: select(49): chan_load_avg=25 (bts=0) ACC: rotate ACC allowed active subset 0x003 -> 0x006 (active_len=2, ramp_len=2, adm_len=10, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xf9, allowed: 1 2 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2766,6 +2820,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2916,6 +2971,7 @@ sys={4200.000000}: select(49): chan_load_avg=90 (bts=0) ACC: rotate ACC allowed active subset 0x01c -> 0x038 (active_len=3, ramp_len=3, adm_len=10, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xc7, allowed: 3 4 5 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2943,6 +2999,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2999,6 +3056,7 @@ sys={12000.000000}: select(47): chan_load_avg=65 sys={12250.000000}: select(48): chan_load_avg=70 sys={12500.000000}: select(49): chan_load_avg=75 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index 02842eb..770b73b 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -52,6 +52,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index c04a5ae..7fb62db 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -41,6 +41,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 02fcdc1..1a75ea0 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -86,6 +86,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_ctrl.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_lcls.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index 29097b8..8bd2ba9 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -35,6 +35,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index c36abc6..6e85138 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -125,7 +125,7 @@ printf("Testing nanobts_attr_nse_get()...\n"); - msgb = nanobts_attr_nse_get(bts); + msgb = nanobts_attr_nse_get(bts->site_mgr); printf("result= %s\n", osmo_hexdump_nospc(msgb->data, msgb->len)); printf("expected=%s\n", osmo_hexdump_nospc(expected, msgb->len)); OSMO_ASSERT(memcmp(msgb->data, expected, msgb->len) == 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 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 Dec 2 16:44:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 16:44:13 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/21461 ) Change subject: Introduce NM GPRS NSE FSM ...................................................................... Introduce NM GPRS NSE FSM Related: OS#4870 Change-Id: I91a5f40324d5373eac885032295690cec97214a6 --- M include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h M include/osmocom/bsc/nm_common_fsm.h M include/osmocom/bsc/signal.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nse_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 19 files changed, 503 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/21461/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 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 Wed Dec 2 16:48:04 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 16:48:04 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add logging macros for NSE and BVC 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/+/21455 to look at the new patch set (#4). Change subject: gbproxy: Add logging macros for NSE and BVC ...................................................................... gbproxy: Add logging macros for NSE and BVC Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Related: SYS#5233 --- M include/osmocom/sgsn/gb_proxy.h 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/55/21455/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Gerrit-Change-Number: 21455 Gerrit-PatchSet: 4 Gerrit-Owner: daniel 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 Dec 2 16:48:04 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 16:48:04 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use LOG macros for NSE/BVC 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/+/21456 to look at the new patch set (#4). Change subject: gbproxy: Use LOG macros for NSE/BVC ...................................................................... gbproxy: Use LOG macros for NSE/BVC Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Related: SYS#5233 --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_tlli.c 3 files changed, 86 insertions(+), 77 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/56/21456/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Gerrit-Change-Number: 21456 Gerrit-PatchSet: 4 Gerrit-Owner: daniel 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 Dec 2 16:48:04 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 16:48:04 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent 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/+/21460 to look at the new patch set (#2). Change subject: gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent ...................................................................... gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent Fixes: SYS#5233 Change-Id: I93296353dd964602699480faae1248096e331c6a --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_main.c 2 files changed, 42 insertions(+), 40 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/60/21460/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I93296353dd964602699480faae1248096e331c6a Gerrit-Change-Number: 21460 Gerrit-PatchSet: 2 Gerrit-Owner: daniel 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 Dec 2 16:48:06 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 16:48:06 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add todos encountered while going through the code References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21462 ) Change subject: gbproxy: Add todos encountered while going through the code ...................................................................... gbproxy: Add todos encountered while going through the code Change-Id: I8c3a788f008d3cb2d067d974c2b1b9ca45185d8d --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/62/21462/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 2c58e80..0d79ff7 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -936,6 +936,7 @@ &ns_bvci, msg); } + /* TODO: Should we discard this message if the check fails */ check_peer_nsei(peer, nsei); rc = gbprox_process_bssgp_ul(cfg, msg, peer); @@ -1390,7 +1391,7 @@ LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP " "%sBLOCK_ACK for signalling BVCI ?!?\n", nsei, pdu_type == BSSGP_PDUT_BVC_UNBLOCK_ACK ? "UN":""); - /* should we send STATUS ? */ + /* TODO: should we send STATUS ? */ rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_BVCI]); } else { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8c3a788f008d3cb2d067d974c2b1b9ca45185d8d Gerrit-Change-Number: 21462 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 Dec 2 16:48:13 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 16:48:13 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use LOG macros for NSE/BVC In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 ) Change subject: gbproxy: Use LOG macros for NSE/BVC ...................................................................... Patch Set 4: (14 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a462 PS3, Line 462: "NSEI=%d(BSS) IMSI acquisition was in progress " > NSEI can now go? Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a468 PS3, Line 468: "NSEI=%d(BSS) IMSI not yet acquired, " > NSEI can now go? Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a487 PS3, Line 487: "NSEI=%d(BSS) IMSI acquisition succeeded, " > NSEI can now go? Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a516 PS3, Line 516: "NSEI=%d(BSS) Dropping stored msgb from list " > NSEI can now go? Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a526 PS3, Line 526: "NSEI=%d(BSS) IMSI acquisition in progress, " > NSEI can now go? Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a537 PS3, Line 537: "NSEI=%d(BSS) IMSI is required but not available, " > NSEI can now go? Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a607 PS3, Line 607: "NSEI=%u(BSS) patching: failed to parse invalid %s message\n", > NSEI can now go? peer can actually be NULL here, I'll revert and just adjust the formatting https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a724 PS3, Line 724: "NSEI=%u(SGSN) patching: failed to parse invalid %s message\n", > NSEI can now go? peer can actually be NULL here, I'll revert and just adjust the formatting https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a728 PS3, Line 728: "NSEI=%u(SGSN) invalid message was: %s\n", > NSEI can now go? Same https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a990 PS3, Line 990: "blocked BVCI=%u via NSEI=%u\n", > Both NSEI and BVCI can go? The nsei here is the one from the SGSN, so should stay https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at a1063 PS3, Line 1063: "RAI snooping: RAI %s behind BVCI=%u\n", > BVCI can go? Ack https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at 91 PS3, Line 91: expected NSEI=%u > expected that part can go as it's now logged by the macro, right? The BVCI as well, yeah. https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at 455 PS3, Line 455: "NSEI=%d( > NSEI can now go? Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21456/3/src/gbproxy/gb_proxy.c at 612 PS3, Line 612: LOGPBVC(peer, LOGL_NOTICE, > NSEI can now go? Same -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Gerrit-Change-Number: 21456 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 16:48:13 +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 Dec 2 16:54:07 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 2 Dec 2020 16:54:07 +0000 Subject: Change in osmo-bsc[master]: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21454 ) Change subject: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4f1455a3db4972ea9843564b590e405c51083b47 Gerrit-Change-Number: 21454 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 16:54: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 Dec 2 17:27:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 17:27:58 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21463 ) Change subject: Introduce NM GPRS CELL FSM ...................................................................... Introduce NM GPRS CELL FSM Related: OS#4870 Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 --- M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c A src/osmo-bsc/nm_gprs_cell_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 14 files changed, 469 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/63/21463/1 diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h index b8b821f..a18da3a 100644 --- a/include/osmocom/bsc/nm_common_fsm.h +++ b/include/osmocom/bsc/nm_common_fsm.h @@ -91,3 +91,12 @@ NM_GPRS_NSE_ST_OP_ENABLED, }; extern struct osmo_fsm nm_gprs_nse_fsm; + +/* GPRS Cell */ +enum nm_gprs_op_cell_states { + NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED, + NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY, + NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE, + NM_GPRS_CELL_ST_OP_ENABLED, +}; +extern struct osmo_fsm nm_gprs_cell_fsm; diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index e226206..eadb30e 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -60,6 +60,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ @@ -83,6 +84,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index b1b2cc6..79fc164 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -81,6 +81,7 @@ nm_bb_transc_fsm.c \ nm_bts_sm_fsm.c \ nm_bts_fsm.c \ + nm_gprs_cell_fsm.c \ nm_gprs_nse_fsm.c \ nm_channel_fsm.c \ nm_rcarrier_fsm.c \ diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 2c6b0f1..0c7fde9 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -149,6 +149,12 @@ static int gsm_bts_talloc_destructor(struct gsm_bts *bts) { bts->site_mgr->bts[0] = NULL; + + if (bts->gprs.cell.mo.fi) { + osmo_fsm_inst_free(bts->gprs.cell.mo.fi); + bts->gprs.cell.mo.fi = NULL; + } + if (bts->mo.fi) { osmo_fsm_inst_free(bts->mo.fi); bts->mo.fi = NULL; @@ -185,15 +191,17 @@ osmo_fsm_inst_update_id_f(bts->mo.fi, "bts%d", bts->nr); gsm_mo_init(&bts->mo, bts, NM_OC_BTS, bts->nr, 0xff, 0xff); - memcpy(&bts->gprs.cell.timer, bts_cell_timer_default, - sizeof(bts->gprs.cell.timer)); - gsm_mo_init(&bts->gprs.cell.mo, bts, NM_OC_GPRS_CELL, - bts->nr, 0xff, 0xff); - memcpy(&bts->gprs.cell.rlc_cfg, &rlc_cfg_default, - sizeof(bts->gprs.cell.rlc_cfg)); - /* 3GPP TS 08.18, chapter 5.4.1: 0 is reserved for signalling */ bts->gprs.cell.bvci = 2; + memcpy(&bts->gprs.cell.timer, bts_cell_timer_default, + sizeof(bts->gprs.cell.timer)); + memcpy(&bts->gprs.cell.rlc_cfg, &rlc_cfg_default, + sizeof(bts->gprs.cell.rlc_cfg)); + bts->gprs.cell.mo.fi = osmo_fsm_inst_alloc(&nm_gprs_cell_fsm, bts, + &bts->gprs.cell, LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts->gprs.cell.mo.fi, "gprs-cell%d", bts->nr); + gsm_mo_init(&bts->gprs.cell.mo, bts, NM_OC_GPRS_CELL, + bts->nr, 0xff, 0xff); /* init statistics */ bts->bts_ctrs = rate_ctr_group_alloc(bts, &bts_ctrg_desc, bts->nr); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 8023323..88e8067 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -136,6 +136,7 @@ struct gsm_bts_trx_ts *ts; struct gsm_gprs_nsvc *nsvc; struct gsm_gprs_nse *nse; + struct gsm_gprs_cell *cell; struct msgb *msgb; @@ -180,22 +181,8 @@ osmo_fsm_inst_dispatch(nse->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_CELL: - bts = container_of(obj, struct gsm_bts, gprs.cell); - if (bts->gprs.mode == BTS_GPRS_NONE) - break; - if (new_state->availability == NM_AVSTATE_DEPENDENCY) { - msgb = nanobts_attr_cell_get(bts); - if (!msgb) - break; - abis_nm_ipaccess_set_attr(bts, obj_class, bts->bts_nr, - 0, 0xff, msgb->data, - msgb->len); - msgb_free(msgb); - abis_nm_chg_adm_state(bts, obj_class, bts->bts_nr, - 0, 0xff, NM_STATE_UNLOCKED); - abis_nm_opstart(bts, obj_class, bts->bts_nr, - 0, 0xff); - } + cell = obj; + osmo_fsm_inst_dispatch(cell->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_NSVC: nsvc = obj; @@ -269,6 +256,9 @@ case NM_OC_GPRS_NSE: osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_SW_ACT_REP, NULL); break; + case NM_OC_GPRS_CELL: + osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_SW_ACT_REP, NULL); + break; } return 0; } @@ -318,6 +308,9 @@ case NM_OC_GPRS_NSE: osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OPSTART_ACK, NULL); break; + case NM_OC_GPRS_CELL: + osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_OPSTART_ACK, NULL); + break; default: break; } @@ -356,6 +349,9 @@ case NM_OC_GPRS_NSE: osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OPSTART_NACK, NULL); break; + case NM_OC_GPRS_CELL: + osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_OPSTART_NACK, NULL); + break; default: break; } @@ -410,6 +406,7 @@ struct abis_om_fom_hdr *foh; void *obj; struct gsm_gprs_nse *nse; + struct gsm_gprs_nse *cell; foh = (struct abis_om_fom_hdr *) (oh->data + 1 + idstrlen); obj = gsm_objclass2obj(bts, foh->obj_class, &foh->obj_inst); @@ -419,6 +416,10 @@ nse = obj; osmo_fsm_inst_dispatch(nse->mo.fi, NM_EV_SET_ATTR_ACK, NULL); break; + case NM_OC_GPRS_CELL: + cell = obj; + osmo_fsm_inst_dispatch(cell->mo.fi, NM_EV_SET_ATTR_ACK, NULL); + break; default: LOGPFOH(DNM, LOGL_ERROR, foh, "IPACC Set Attr Ack received on incorrect object class %d!\n", foh->obj_class); } diff --git a/src/osmo-bsc/nm_gprs_cell_fsm.c b/src/osmo-bsc/nm_gprs_cell_fsm.c new file mode 100644 index 0000000..6ddccfc --- /dev/null +++ b/src/osmo-bsc/nm_gprs_cell_fsm.c @@ -0,0 +1,359 @@ +/* NM Radio Carrier FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +#define nm_gprs_cell_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +////////////////////////// +// FSM STATE ACTIONS +////////////////////////// + +static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + + cell->mo.set_attr_sent = false; + cell->mo.set_attr_ack_received = false; + cell->mo.adm_unlock_sent = false; + cell->mo.opstart_sent = false; +} + +static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SW_ACT_REP: + break; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_DEPENDENCY: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void configure_loop(struct gsm_gprs_cell *cell, struct gsm_nm_state *state, bool allow_opstart) { + struct msgb *msgb; + struct gsm_bts *bts = container_of(cell, struct gsm_bts, gprs.cell); + + if (bts->gprs.mode == BTS_GPRS_NONE) + return; + + if (!cell->mo.set_attr_sent && !cell->mo.set_attr_ack_received) { + cell->mo.set_attr_sent = true; + msgb = nanobts_attr_cell_get(bts); + OSMO_ASSERT(msgb); /* if (!msgb); break; */ + abis_nm_ipaccess_set_attr(bts, NM_OC_GPRS_CELL, bts->bts_nr, + 0, 0xff, msgb->data, msgb->len); + msgb_free(msgb); + } + + if (state->administrative != NM_STATE_UNLOCKED && !cell->mo.adm_unlock_sent) { + cell->mo.adm_unlock_sent = true; + abis_nm_chg_adm_state(bts, NM_OC_GPRS_CELL, + bts->bts_nr, 0, 0xff, + NM_STATE_UNLOCKED); + } + + if (allow_opstart && state->administrative == NM_STATE_UNLOCKED && + cell->mo.set_attr_ack_received) { + if (!cell->mo.opstart_sent) { + cell->mo.opstart_sent = true; + abis_nm_opstart(bts, NM_OC_GPRS_CELL, bts->bts_nr, 0, 0xff); + } + } +} + +static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + struct gsm_bts *bts = container_of(cell, struct gsm_bts, gprs.cell); + + /* nanoBTS is broken, doesn't follow TS 12.21. Opstart MUST be sent + during Dependency, so we simply move to OFFLINE state here to avoid + duplicating code */ + if (bts->site_mgr->peer_has_no_avstate_offline) { + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE); + return; + } + configure_loop(cell, &cell->mo.nm_state, false); +} + +static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + cell->mo.set_attr_ack_received = true; + cell->mo.set_attr_sent = false; + configure_loop(cell, &cell->mo.nm_state, false); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE); + return; + case NM_AVSTATE_DEPENDENCY: + configure_loop(cell, new_state, false); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + + /* Warning: In here we may be acessing an state older than new_state + from prev (syncrhonous) FSM state */ + configure_loop(cell, &cell->mo.nm_state, true); +} + +static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + cell->mo.set_attr_ack_received = true; + cell->mo.set_attr_sent = false; + configure_loop(cell, &cell->mo.nm_state, true); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + configure_loop(cell, new_state, true); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + + /* Reset state, we don't need it in this state and it will need to be + reused as soon as we move back to Disabled */ + cell->mo.opstart_sent = false; + cell->mo.adm_unlock_sent = false; + cell->mo.set_attr_ack_received = false; + cell->mo.set_attr_sent = false; +} + +static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) + return; + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + struct gsm_bts *bts = container_of(cell, struct gsm_bts, gprs.cell); + + switch (event) { + case NM_EV_OPSTART_ACK: + case NM_EV_OPSTART_NACK: + /* TODO: if on state OFFLINE and rx NACK, try again? */ + cell->mo.opstart_sent = false; + break; + case NM_EV_FORCE_LOCK: + cell->mo.force_rf_lock = (bool)(intptr_t)data; + abis_nm_chg_adm_state(bts, NM_OC_GPRS_CELL, + bts->bts_nr, 0, 0xff, + cell->mo.force_rf_lock ? NM_STATE_LOCKED : NM_STATE_UNLOCKED); + break; + case NM_EV_OML_DOWN: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); + break; + default: + OSMO_ASSERT(0); + } +} + +static struct osmo_fsm_state nm_gprs_cell_fsm_states[] = { + [NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED] = { + .in_event_mask = + X(NM_EV_SW_ACT_REP) | + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_CELL_ST_OP_ENABLED), + .name = "DISABLED_NOTINSTALLED", + .onenter = st_op_disabled_notinstalled_on_enter, + .action = st_op_disabled_notinstalled, + }, + [NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_CELL_ST_OP_ENABLED), + .name = "DISABLED_DEPENDENCY", + .onenter = st_op_disabled_dependency_on_enter, + .action = st_op_disabled_dependency, + }, + [NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_CELL_ST_OP_ENABLED), + .name = "DISABLED_OFFLINE", + .onenter = st_op_disabled_offline_on_enter, + .action = st_op_disabled_offline, + }, + [NM_GPRS_CELL_ST_OP_ENABLED] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE), + .name = "ENABLED", + .onenter = st_op_enabled_on_enter, + .action = st_op_enabled, + }, +}; + +struct osmo_fsm nm_gprs_cell_fsm = { + .name = "NM_GPRS_CELL_OP", + .states = nm_gprs_cell_fsm_states, + .num_states = ARRAY_SIZE(nm_gprs_cell_fsm_states), + .allstate_event_mask = + X(NM_EV_OPSTART_ACK) | + X(NM_EV_OPSTART_NACK) | + X(NM_EV_FORCE_LOCK) | + X(NM_EV_OML_DOWN), + .allstate_action = st_op_allstate, + .event_names = nm_fsm_event_names, + .log_subsys = DNM, +}; + +static __attribute__((constructor)) void nm_gprs_cell_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nm_gprs_cell_fsm) == 0); +} diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 5755258..03722ab 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -62,6 +62,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ @@ -141,6 +142,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index daaca66..88477b7 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -38,6 +38,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/acc/Makefile.am b/tests/acc/Makefile.am index 44e5107..9ddb93d 100644 --- a/tests/acc/Makefile.am +++ b/tests/acc/Makefile.am @@ -38,6 +38,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/acc/acc_test.ok b/tests/acc/acc_test.ok index 9a099f9..aebd2af 100644 --- a/tests/acc/acc_test.ok +++ b/tests/acc/acc_test.ok @@ -1,6 +1,7 @@ ===test_acc_mgr_no_ramp=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -120,6 +121,7 @@ pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -135,6 +137,7 @@ ===test_acc_mgr_manual_ramp=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -384,6 +387,7 @@ pcu_info_update(): t2=0x01 t3=0xb3, allowed: 2 3 6 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -399,6 +403,7 @@ ===test_acc_mgr_rotate(true, 1)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -479,6 +484,7 @@ pcu_info_update(): t2=0x03 t3=0xfd, allowed: 1 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -494,6 +500,7 @@ ===test_acc_mgr_rotate(false, 1)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -571,6 +578,7 @@ pcu_info_update(): t2=0x01 t3=0xff, allowed: 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -586,6 +594,7 @@ ===test_acc_mgr_rotate(true, 2)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -666,6 +675,7 @@ pcu_info_update(): t2=0x03 t3=0xfc, allowed: 0 1 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -681,6 +691,7 @@ ===test_acc_mgr_rotate(false, 2)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -758,6 +769,7 @@ pcu_info_update(): t2=0x00 t3=0xff, allowed: 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -773,6 +785,7 @@ ===test_acc_mgr_rotate(true, 3)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -853,6 +866,7 @@ pcu_info_update(): t2=0x02 t3=0xfc, allowed: 0 1 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -868,6 +882,7 @@ ===test_acc_mgr_rotate(false, 3)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -945,6 +960,7 @@ pcu_info_update(): t2=0x00 t3=0x7f, allowed: 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -960,6 +976,7 @@ ===test_acc_mgr_rotate(true, 4)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1040,6 +1057,7 @@ pcu_info_update(): t2=0x02 t3=0x7c, allowed: 0 1 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1055,6 +1073,7 @@ ===test_acc_mgr_rotate(false, 4)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1132,6 +1151,7 @@ pcu_info_update(): t2=0x00 t3=0x3f, allowed: 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1147,6 +1167,7 @@ ===test_acc_mgr_rotate(true, 5)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1227,6 +1248,7 @@ pcu_info_update(): t2=0x02 t3=0x3c, allowed: 0 1 6 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1242,6 +1264,7 @@ ===test_acc_mgr_rotate(false, 5)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1319,6 +1342,7 @@ pcu_info_update(): t2=0x00 t3=0x1f, allowed: 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1334,6 +1358,7 @@ ===test_acc_mgr_rotate(true, 6)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1414,6 +1439,7 @@ pcu_info_update(): t2=0x02 t3=0x1c, allowed: 0 1 5 6 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1429,6 +1455,7 @@ ===test_acc_mgr_rotate(false, 6)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1506,6 +1533,7 @@ pcu_info_update(): t2=0x00 t3=0x0f, allowed: 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1521,6 +1549,7 @@ ===test_acc_mgr_rotate(true, 7)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1601,6 +1630,7 @@ pcu_info_update(): t2=0x02 t3=0x0c, allowed: 0 1 4 5 6 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1616,6 +1646,7 @@ ===test_acc_mgr_rotate(false, 7)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1693,6 +1724,7 @@ pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1708,6 +1740,7 @@ ===test_acc_mgr_rotate(true, 8)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1788,6 +1821,7 @@ pcu_info_update(): t2=0x02 t3=0x04, allowed: 0 1 3 4 5 6 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1803,6 +1837,7 @@ ===test_acc_mgr_rotate(false, 8)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1880,6 +1915,7 @@ pcu_info_update(): t2=0x00 t3=0x03, allowed: 2 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1895,6 +1931,7 @@ ===test_acc_mgr_rotate(false, 9)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1972,6 +2009,7 @@ pcu_info_update(): t2=0x00 t3=0x01, allowed: 1 2 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1987,6 +2025,7 @@ ===test_acc_ramp=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2033,6 +2072,7 @@ pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2048,6 +2088,7 @@ ===test_acc_ramp2=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2076,6 +2117,7 @@ sys={15.000000}: select() NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2091,6 +2133,7 @@ ===test_acc_ramp3=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2135,6 +2178,7 @@ (bts=0) ACC: update ACC allowed active subset 0x15a -> 0x15a (active_len=5, ramp_len=10, adm_len=10, perm_len=5, rotation=off) NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2150,6 +2194,7 @@ ===test_acc_ramp_up_rotate(0, 100, 100)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2250,6 +2295,7 @@ sys={3250.000000}: select() NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2265,6 +2311,7 @@ ===test_acc_ramp_up_rotate(0, 20, 50)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2365,6 +2412,7 @@ sys={3250.000000}: select() NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2380,6 +2428,7 @@ ===test_acc_ramp_up_rotate(70, 80, 90)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2480,6 +2529,7 @@ sys={3250.000000}: select() NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2495,6 +2545,7 @@ ===test_acc_ramp_updown_rotate(80, 90, 0, 100, 15)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2625,6 +2676,7 @@ sys={7500.000000}: select(49): chan_load_avg=100 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2640,6 +2692,7 @@ ===test_acc_ramp_updown_rotate(30, 50, 10, 100, 15)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2794,6 +2847,7 @@ pcu_info_update(): t2=0x03 t3=0xf9, allowed: 1 2 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2809,6 +2863,7 @@ ===test_acc_ramp_updown_rotate(50, 49, 0, 100, 10)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2973,6 +3028,7 @@ pcu_info_update(): t2=0x03 t3=0xc7, allowed: 3 4 5 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2988,6 +3044,7 @@ ===test_acc_ramp_updown_rotate(30, 80, 30, 80, 5)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -3058,6 +3115,7 @@ sys={12500.000000}: select(49): chan_load_avg=75 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index 770b73b..18b82b6 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -52,6 +52,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index 7fb62db..6bf73af 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -41,6 +41,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 1a75ea0..444c097 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -86,6 +86,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_ctrl.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index 8bd2ba9..1e5712e 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -35,6 +35,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 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 Dec 2 17:33:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 17:33:53 +0000 Subject: Change in osmo-bsc[master]: OML: sysmobts: add state to track feature negotiation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21451 ) Change subject: OML: sysmobts: add state to track feature negotiation ...................................................................... Patch Set 2: Code-Review-1 This needs to be integrated into "BTS" and "Baseband Transceiver" NM object FSMs, for which "Get Attributes" is requested by BSC. Those flags hence should go in the respective mo structs. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 17:33: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 Dec 2 17:34:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 17:34:07 +0000 Subject: Change in osmo-bsc[master]: OML: sysmobts: add state to track feature negotiation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21451 ) Change subject: OML: sysmobts: add state to track feature negotiation ...................................................................... Patch Set 2: I'll take care of it when rebasing it on top of my work -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 17:34: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 Wed Dec 2 18:04:23 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 18:04:23 +0000 Subject: Change in libosmocore[master]: logging: Calculate LOG_MAX_{CTX, FILTERS} from the enum References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21464 ) Change subject: logging: Calculate LOG_MAX_{CTX,FILTERS} from the enum ...................................................................... logging: Calculate LOG_MAX_{CTX,FILTERS} from the enum Change-Id: I1ee1278b029e42321932b87f94aa3e0eeed4108a Related: SYS#5232 --- M include/osmocom/core/logging.h 1 file changed, 10 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/21464/1 diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index 6d0d5a3..38b465c 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -11,11 +11,6 @@ #include #include -/*! Maximum number of logging contexts */ -#define LOG_MAX_CTX 8 -/*! Maximum number of logging filters */ -#define LOG_MAX_FILTERS 8 - #ifndef DEBUG #define DEBUG #endif @@ -162,11 +157,6 @@ uint8_t enabled; /*!< is this category enabled or not */ }; -/*! Log context information, passed to filter */ -struct log_context { - void *ctx[LOG_MAX_CTX+1]; -}; - /*! Indexes to indicate the object currently acted upon. * Array indexes for the global \a log_context array. */ enum log_ctx_index { @@ -191,6 +181,16 @@ _LOG_FLT_COUNT }; +/*! Maximum number of logging contexts */ +#define LOG_MAX_CTX _LOG_CTX_COUNT +/*! Maximum number of logging filters */ +#define LOG_MAX_FILTERS _LOG_FLT_COUNT + +/*! Log context information, passed to filter */ +struct log_context { + void *ctx[LOG_MAX_CTX+1]; +}; + /*! Compatibility with older libosmocore versions */ #define LOG_FILTER_ALL (1< Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 2 18:04:24 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 18:04:24 +0000 Subject: Change in libosmocore[master]: ns2: Add filtering by NSE/NSEI References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21465 ) Change subject: ns2: Add filtering by NSE/NSEI ...................................................................... ns2: Add filtering by NSE/NSEI Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Related: SYS#5232 --- M include/osmocom/core/logging.h M src/gb/common_vty.c M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vty.c 4 files changed, 69 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/65/21465/1 diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index 38b465c..418a42e 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -165,6 +165,7 @@ LOG_CTX_BSC_SUBSCR, LOG_CTX_VLR_SUBSCR, LOG_CTX_L1_SAPI, + LOG_CTX_GB_NSE, _LOG_CTX_COUNT }; @@ -178,6 +179,7 @@ LOG_FLT_BSC_SUBSCR, LOG_FLT_VLR_SUBSCR, LOG_FLT_L1_SAPI, + LOG_FLT_GB_NSE, _LOG_FLT_COUNT }; diff --git a/src/gb/common_vty.c b/src/gb/common_vty.c index eb665d5..42f3404 100644 --- a/src/gb/common_vty.c +++ b/src/gb/common_vty.c @@ -40,15 +40,21 @@ int gprs_log_filter_fn(const struct log_context *ctx, struct log_target *tar) { + const void *nse = ctx->ctx[LOG_CTX_GB_NSE]; const void *nsvc = ctx->ctx[LOG_CTX_GB_NSVC]; const void *bvc = ctx->ctx[LOG_CTX_GB_BVC]; + /* Filter on the NS Entity */ + if ((tar->filter_map & (1 << LOG_FLT_GB_NSE)) != 0 + && nse && (nse == tar->filter_data[LOG_FLT_GB_NSE])) + return 1; + /* Filter on the NS Virtual Connection */ if ((tar->filter_map & (1 << LOG_FLT_GB_NSVC)) != 0 && nsvc && (nsvc == tar->filter_data[LOG_FLT_GB_NSVC])) return 1; - /* Filter on the NS Virtual Connection */ + /* Filter on the BSSGP Virtual Connection */ if ((tar->filter_map & (1 << LOG_FLT_GB_BVC)) != 0 && bvc && (bvc == tar->filter_data[LOG_FLT_GB_BVC])) return 1; diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index fac6108..69c833e 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -189,6 +189,7 @@ struct msgb *msg = gprs_ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) @@ -212,6 +213,7 @@ struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK"); @@ -244,6 +246,7 @@ struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK ACK"); @@ -275,6 +278,7 @@ uint16_t nsvci = osmo_htons(nsvc->nsvci); uint16_t nsei = osmo_htons(nsvc->nse->nsei); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET"); @@ -307,6 +311,7 @@ uint16_t nsvci, nsei; /* Section 9.2.6 */ + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET ACK"); @@ -337,6 +342,7 @@ * \returns 0 in case of success */ int ns2_tx_unblock(struct gprs_ns2_vc *nsvc) { + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK"); @@ -353,6 +359,7 @@ * \returns 0 in case of success */ int ns2_tx_unblock_ack(struct gprs_ns2_vc *nsvc) { + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK ACK"); @@ -368,6 +375,7 @@ * \returns 0 in case of success */ int ns2_tx_alive(struct gprs_ns2_vc *nsvc) { + 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); @@ -380,6 +388,7 @@ * \returns 0 in case of success */ int ns2_tx_alive_ack(struct gprs_ns2_vc *nsvc) { + 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); @@ -399,6 +408,7 @@ { struct gprs_ns_hdr *nsh; + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); msg->l2h = msgb_push(msg, sizeof(*nsh) + 3); @@ -430,6 +440,7 @@ struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); bvci = osmo_htons(bvci); @@ -495,6 +506,7 @@ msg = gprs_ns2_msgb_alloc(); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; @@ -553,6 +565,7 @@ msg = gprs_ns2_msgb_alloc(); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; @@ -601,6 +614,7 @@ return -1; msg = gprs_ns2_msgb_alloc(); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; @@ -646,6 +660,7 @@ msg = gprs_ns2_msgb_alloc(); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; @@ -685,6 +700,7 @@ struct gprs_ns_hdr *nsh; uint16_t nsei; + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 97becf6..f41620f 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -110,6 +110,18 @@ { 0, NULL } }; +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) { @@ -745,7 +757,37 @@ /* TODO: allow vty to reset/block/unblock nsvc/nsei */ -/* TODO: add filter for NSEI as ns1 code does */ +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[1]); + + 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, @@ -806,6 +848,7 @@ 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); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Gerrit-Change-Number: 21465 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 Dec 2 18:10:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:10:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use "force-unconifgured" als on BSS-side NSEs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21466 ) Change subject: gbproxy: Use "force-unconifgured" als on BSS-side NSEs ...................................................................... gbproxy: Use "force-unconifgured" als on BSS-side NSEs Any NSE should be unconfigured at start up of the test case in order to avoid any state leakage from previous test executions into the newly-started test case. Change-Id: I1dd491d5bce17b4602f1e26b42df003f1627714a --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/66/21466/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 2797a2c..5bb77d3 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -375,6 +375,7 @@ } f_sleep(4.0); for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) { + f_vty_transceive(GBPVTY, "nsvc nsei " & int2str(g_pcu[i].cfg.nsei) & " force-unconfigured"); f_init_gb_pcu(g_pcu[i], "GbProxy_Test", i); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1dd491d5bce17b4602f1e26b42df003f1627714a Gerrit-Change-Number: 21466 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 Dec 2 18:10:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:10:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Make sure all BssgpCfg have a valid create_cb References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21467 ) Change subject: gbproxy: Make sure all BssgpCfg have a valid create_cb ...................................................................... gbproxy: Make sure all BssgpCfg have a valid create_cb We cannot specify create_cb function references from the config file, so let's patch them into the data structure at start-up. Change-Id: Idac9e97dde62b61d0423fdde16e3bd700d5287c0 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 12 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/67/21467/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 5bb77d3..30a019e 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -289,6 +289,15 @@ return ret; }; +private function f_fix_create_cb(inout BssgpConfig cfg) +{ + for (var integer i := 0; i < lengthof(cfg.bvc); i := i + 1) { + if (not isbound(cfg.bvc[i].create_cb)) { + cfg.bvc[i].create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) + } + } +} + private function f_init_gb_pcu(inout GbInstance gb, charstring id, integer offset) runs on test_CT { var charstring ns_id := id & "-NS(PCU[" & int2str(offset) & "])"; var charstring bssgp_id := id & "-BSSGP(PCU[" & int2str(offset) & "])"; @@ -364,8 +373,10 @@ } 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 & mp_gbconfigs[i].bvc; + g_sgsn[0].cfg.bvc := g_sgsn[0].cfg.bvc & g_pcu[i].cfg.bvc; } f_init_vty(); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idac9e97dde62b61d0423fdde16e3bd700d5287c0 Gerrit-Change-Number: 21467 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 Dec 2 18:19:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:19:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use "force-unconifgured" als on BSS-side NSEs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21466 ) Change subject: gbproxy: Use "force-unconifgured" als on BSS-side NSEs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1dd491d5bce17b4602f1e26b42df003f1627714a Gerrit-Change-Number: 21466 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 18:19: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 Dec 2 18:19:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:19:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use "force-unconifgured" als on BSS-side NSEs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21466 ) Change subject: gbproxy: Use "force-unconifgured" als on BSS-side NSEs ...................................................................... gbproxy: Use "force-unconifgured" als on BSS-side NSEs Any NSE should be unconfigured at start up of the test case in order to avoid any state leakage from previous test executions into the newly-started test case. Change-Id: I1dd491d5bce17b4602f1e26b42df003f1627714a --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 2797a2c..5bb77d3 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -375,6 +375,7 @@ } f_sleep(4.0); for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) { + f_vty_transceive(GBPVTY, "nsvc nsei " & int2str(g_pcu[i].cfg.nsei) & " force-unconfigured"); f_init_gb_pcu(g_pcu[i], "GbProxy_Test", i); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1dd491d5bce17b4602f1e26b42df003f1627714a Gerrit-Change-Number: 21466 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 2 18:19:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:19:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Make sure all BssgpCfg have a valid create_cb In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21467 ) Change subject: gbproxy: Make sure all BssgpCfg have a valid create_cb ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idac9e97dde62b61d0423fdde16e3bd700d5287c0 Gerrit-Change-Number: 21467 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 18:19: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 Dec 2 18:19:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:19:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Make sure all BssgpCfg have a valid create_cb In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21467 ) Change subject: gbproxy: Make sure all BssgpCfg have a valid create_cb ...................................................................... gbproxy: Make sure all BssgpCfg have a valid create_cb We cannot specify create_cb function references from the config file, so let's patch them into the data structure at start-up. Change-Id: Idac9e97dde62b61d0423fdde16e3bd700d5287c0 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 12 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 5bb77d3..30a019e 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -289,6 +289,15 @@ return ret; }; +private function f_fix_create_cb(inout BssgpConfig cfg) +{ + for (var integer i := 0; i < lengthof(cfg.bvc); i := i + 1) { + if (not isbound(cfg.bvc[i].create_cb)) { + cfg.bvc[i].create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) + } + } +} + private function f_init_gb_pcu(inout GbInstance gb, charstring id, integer offset) runs on test_CT { var charstring ns_id := id & "-NS(PCU[" & int2str(offset) & "])"; var charstring bssgp_id := id & "-BSSGP(PCU[" & int2str(offset) & "])"; @@ -364,8 +373,10 @@ } 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 & mp_gbconfigs[i].bvc; + g_sgsn[0].cfg.bvc := g_sgsn[0].cfg.bvc & g_pcu[i].cfg.bvc; } f_init_vty(); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idac9e97dde62b61d0423fdde16e3bd700d5287c0 Gerrit-Change-Number: 21467 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 Dec 2 18:20:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:20:39 +0000 Subject: Change in osmo-bsc[master]: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21454 ) Change subject: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4f1455a3db4972ea9843564b590e405c51083b47 Gerrit-Change-Number: 21454 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 18:20: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 Dec 2 18:20:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:20:42 +0000 Subject: Change in osmo-bsc[master]: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21454 ) Change subject: gsm_08_08: fix NULL pointer dereference in bsc_cm_update() ...................................................................... gsm_08_08: fix NULL pointer dereference in bsc_cm_update() MS Classmark 3 is optional, and thus can be NULL. Change-Id: I4f1455a3db4972ea9843564b590e405c51083b47 Fixes: I39ae439d05562b35b2e47774dc92f8789fea1a57 Fixes: CID#215593 "Explicit null dereferenced" --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 9 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 9c5cf2f..52a92c8 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -603,13 +603,15 @@ } conn_update_ms_power_class(conn, rc8); - rc = gsm48_decode_classmark3(&conn->cm3, cm3, cm3_len); - if (rc < 0) { - LOGP(DMSC, LOGL_NOTICE, "Unable to decode classmark3 during CM Update.\n"); - memset(&conn->cm3, 0, sizeof(conn->cm3)); - conn->cm3_valid = false; - } else - conn->cm3_valid = true; + if (cm3 != NULL && cm3_len > 0) { + rc = gsm48_decode_classmark3(&conn->cm3, cm3, cm3_len); + if (rc < 0) { + LOGP(DMSC, LOGL_NOTICE, "Unable to decode classmark3 during CM Update.\n"); + memset(&conn->cm3, 0, sizeof(conn->cm3)); + conn->cm3_valid = false; + } else + conn->cm3_valid = true; + } if (!msc_connected(conn)) return; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4f1455a3db4972ea9843564b590e405c51083b47 Gerrit-Change-Number: 21454 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Dec 2 18:21:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:21:34 +0000 Subject: Change in libosmocore[master]: logging: Calculate LOG_MAX_{CTX, FILTERS} from the enum In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21464 ) Change subject: logging: Calculate LOG_MAX_{CTX,FILTERS} from the enum ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1ee1278b029e42321932b87f94aa3e0eeed4108a Gerrit-Change-Number: 21464 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 02 Dec 2020 18:21: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 Dec 2 18:23:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:23:37 +0000 Subject: Change in libosmocore[master]: ns2: Add filtering by NSE/NSEI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21465 ) Change subject: ns2: Add filtering by NSE/NSEI ...................................................................... Patch Set 1: looks good. But somehow I cannot find any place where the NSE log context is set on packet receive? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Gerrit-Change-Number: 21465 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 02 Dec 2020 18:23: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 Wed Dec 2 18:24:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:24:26 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add logging macros for NSE and BVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 ) Change subject: gbproxy: Add logging macros for NSE and BVC ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Gerrit-Change-Number: 21455 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 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 Dec 2 18:25:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:25:27 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use LOG macros for NSE/BVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 ) Change subject: gbproxy: Use LOG macros for NSE/BVC ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Gerrit-Change-Number: 21456 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 18:25: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 Dec 2 18:25:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:25:36 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 ) Change subject: gbproxy: Change generic LOG messageas so BVCI/NSEI fmt is consistent ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I93296353dd964602699480faae1248096e331c6a Gerrit-Change-Number: 21460 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 18:25: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 Dec 2 18:25:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 18:25:55 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add todos encountered while going through the code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21462 ) Change subject: gbproxy: Add todos encountered while going through the code ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8c3a788f008d3cb2d067d974c2b1b9ca45185d8d Gerrit-Change-Number: 21462 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 18: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 Wed Dec 2 18:30:45 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 18:30:45 +0000 Subject: Change in libosmocore[master]: ns2: Add filtering by NSE/NSEI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21465 ) Change subject: ns2: Add filtering by NSE/NSEI ...................................................................... Patch Set 1: > Patch Set 1: > > looks good. But somehow I cannot find any place where the NSE log context is set on packet receive? Interesting, I added the NSE context everywhere I found the NSVC context being set. I'll check what's up with rx -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Gerrit-Change-Number: 21465 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 02 Dec 2020 18:30: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 Dec 2 19:02:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 19:02:05 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Update enums for message types and IEs with Release 15 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21468 ) Change subject: gsm_08_18.h: Update enums for message types and IEs with Release 15 ...................................................................... gsm_08_18.h: Update enums for message types and IEs with Release 15 Lots of newly introduced message types and information elements. Change-Id: I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 123 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/68/21468/1 diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index af6caf3..70ab011 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -1,4 +1,5 @@ /*! \file gsm_08_18.h */ +/* Updated to reflect TS 48.018 version 15.0.0 Release 15 */ #pragma once @@ -14,7 +15,10 @@ BSSGP_PDUT_DL_UNITDATA = 0x00, BSSGP_PDUT_UL_UNITDATA = 0x01, BSSGP_PDUT_RA_CAPABILITY = 0x02, - BSSGP_PDUT_PTM_UNITDATA = 0x03, + /* PDUs between MBMS SAPs */ + BSSGP_PDUT_PTM_UNITDATA = 0x03, /* reserved in later specs */ + BSSGP_PDUT_DL_MMBS_UNITDATA = 0x04, + BSSGP_PDUT_UL_MMBS_UNITDATA = 0x05, /* PDUs between GMM SAPs */ BSSGP_PDUT_PAGING_PS = 0x06, BSSGP_PDUT_PAGING_CS = 0x07, @@ -27,6 +31,11 @@ BSSGP_PDUT_RESUME = 0x0e, BSSGP_PDUT_RESUME_ACK = 0x0f, BSSGP_PDUT_RESUME_NACK = 0x10, + BSSGP_PDUT_PAGING_PS_REJECT = 0x11, + BSSGP_PDUT_DUMMY_PAGING_PS = 0x12, + BSSGP_PDUT_DUMMY_PAGING_PS_RESP = 0x13, + BSSGP_PDUT_MS_REGISTR_ENQ = 0x14, + BSSGP_PDUT_MS_REGISTR_ENQ_RESP = 0x15, /* PDus between NM SAPs */ BSSGP_PDUT_BVC_BLOCK = 0x20, BSSGP_PDUT_BVC_BLOCK_ACK = 0x21, @@ -41,8 +50,11 @@ BSSGP_PDUT_FLUSH_LL = 0x2a, BSSGP_PDUT_FLUSH_LL_ACK = 0x2b, BSSGP_PDUT_LLC_DISCARD = 0x2c, + BSSGP_PDUT_FLOW_CONTROL_PFC = 0x2d, + BSSGP_PDUT_FLOW_CONTROL_PFC_ACK = 0x2e, BSSGP_PDUT_SGSN_INVOKE_TRACE = 0x40, BSSGP_PDUT_STATUS = 0x41, + BSSGP_PDUT_OVERLOAD = 0x42, /* PDUs between PFM SAP's */ BSSGP_PDUT_DOWNLOAD_BSS_PFC = 0x50, BSSGP_PDUT_CREATE_BSS_PFC = 0x51, @@ -52,6 +64,16 @@ BSSGP_PDUT_MODIFY_BSS_PFC_ACK = 0x55, BSSGP_PDUT_DELETE_BSS_PFC = 0x56, BSSGP_PDUT_DELETE_BSS_PFC_ACK = 0x57, + BSSGP_PDUT_DELETE_BSS_PFC_REQ = 0x58, + BSSGP_PDUT_PS_HO_REQUIRED = 0x59, + BSSGP_PDUT_PS_HO_REQUIRED_ACK = 0x5a, + BSSGP_PDUT_PS_HO_REQUIRED_NACK = 0x5b, + BSSGP_PDUT_PS_HO_REQUEST = 0x5c, + BSSGP_PDUT_PS_HO_REQUEST_ACK = 0x5d, + BSSGP_PDUT_PS_HO_REQUEST_NACK = 0x5e, + BSSGP_PDUT_PS_HO_COMPLETE = 0x91, + BSSGP_PDUT_PS_HO_CANCEL = 0x92, + BSSGP_PDUT_PS_HO_COMPLETE_ACK = 0x93, }; /*! BSSGP User-Data header (Section 10.2.1 and 10.2.2) */ @@ -68,7 +90,7 @@ uint8_t data[0]; /*!< optional/conditional IEs as TLVs */ }; -/*! BSSGP Information Element Identifiers */ +/*! BSSGP Information Element Identifiers (Section 11.3 / Table 11.3) */ enum bssgp_iei_type { BSSGP_IE_ALIGNMENT = 0x00, BSSGP_IE_BMAX_DEFAULT_MS = 0x01, @@ -116,6 +138,105 @@ BSSGP_IE_FEATURE_BITMAP = 0x3b, BSSGP_IE_BUCKET_FULL_RATIO = 0x3c, BSSGP_IE_SERVICE_UTRAN_CCO = 0x3d, + BSSGP_IE_NSEI = 0x3e, + BSSGP_IE_RRLP_APDU = 0x3f, + BSSGP_IE_LCS_QOS = 0x40, + BSSGP_IE_LCS_CLIENT_TYPE = 0x41, + BSSGP_IE_REQUESTED_GPS_AST_DATA = 0x42, + BSSGP_IE_LOCATION_TYPE = 0x43, + BSSGP_IE_LOCATION_ESTIMATE = 0x44, + BSSGP_IE_POSITIONING_DATA = 0x45, + BSSGP_IE_DECIPHERING_KEYS = 0x46, + BSSGP_IE_LCS_PRIORITY = 0x47, + BSSGP_IE_LCS_CAUSE = 0x48, + BSSGP_IE_LCS_CAPABILITY = 0x49, + BSSGP_IE_RRLP_FLAGS = 0x4a, + BSSGP_IE_RIM_APP_IDENTITY = 0x4b, + BSSGP_IE_RIM_SEQ_NR = 0x4c, + BSSGP_IE_RIM_REQ_APP_CONTAINER = 0x4d, + BSSGP_IE_RAN_INFO_APP_CONTAINER = 0x4e, + BSSGP_IE_RIM_PDU_INDICATIONS = 0x4f, + BSSGP_IE_PFC_FLOW_CTRL_PARAMS = 0x52, + BSSGP_IE_GLOBAL_CN_ID = 0x53, + BSSGP_IE_RIM_ROUTING_INFO = 0x54, + BSSGP_IE_RIM_PROTOCOL_VERSION = 0x55, + BSSGP_IE_APP_ERROR_CONTAINER = 0x56, + BSSGP_IE_RI_REQ_RIM_CONTAINER = 0x57, + BSSGP_IE_RI_RIM_CONTAINER = 0x58, + BSSGP_IE_RI_APP_ERROR_RIM_CONT = 0x59, + BSSGP_IE_RI_ACK_RIM_CONTAINER = 0x5a, + BSSGP_IE_RI_ERROR_RIM_COINTAINER= 0x5b, + BSSGP_IE_TMGI = 0x5c, + BSSGP_IE_MBMS_SESSION_ID = 0x5d, + BSSGP_IE_MBMS_SESSION_DURATION = 0x5e, + BSSGP_IE_MBMS_SA_ID_LIST = 0x5f, + BSSGP_IE_MBMS_RESPONSE = 0x60, + BSSGP_IE_MBMS_RA_LIST = 0x61, + BSSGP_IE_MBMS_SESSION_INFO = 0x62, + BSSGP_IE_MBMS_STOP_CAUSE = 0x63, + BSSGP_IE_SBSS_TO_TBSS_TR_CONT = 0x64, + BSSGP_IE_TBSS_TO_SBSS_TR_CONT = 0x65, + BSSGP_IE_NAS_CONT_FOR_PS_HO = 0x66, + BSSGP_IE_PFC_TO_BE_SETUP_LIST = 0x67, + BSSGP_IE_LIST_OF_SETUP_PFC = 0x68, + BSSGP_IE_EXT_FEATURE_BITMAP = 0x69, + BSSGP_IE_SRC_TO_TGT_TR_CONT = 0x6a, + BSSGP_IE_TGT_TO_SRC_TR_CONT = 0x6b, + BSSGP_IE_NC_ID = 0x6c, + BSSGP_IE_PAGE_MODE = 0x6d, + BSSGP_IE_CONTAINER_ID = 0x6e, + BSSGP_IE_GLOBAL_TFI = 0x6f, + BSSGP_IE_IMEI = 0x70, + BSSGP_IE_TIME_TO_MBMS_DATA_XFR = 0x71, + BSSGP_IE_MBMS_SESSION_REP_NR = 0x72, + BSSGP_IE_INTER_RAT_HO_INFO = 0x73, + BSSGP_IE_PS_HO_COMMAND = 0x74, + BSSGP_IE_PS_HO_INDICATIONS = 0x75, + BSSGP_IE_SI_PSI_CONTAINER = 0x76, + BSSGP_IE_ACTIVE_PFC_LIST = 0x77, + BSSGP_IE_VELOCITY_DATA = 0x78, + BSSGP_IE_DTM_HO_COMMAND = 0x79, + BSSGP_IE_CS_INDICATION = 0x7a, + BSSGP_IE_RQD_GANNS_AST_DATA = 0x7b, + BSSGP_IE_GANSS_LOCATION_TYPE = 0x7c, + BSSGP_IE_GANSS_POSITIONING_DATA = 0x7d, + BSSGP_IE_FLOW_CTRL_GRANULARITY = 0x7e, + BSSGP_IE_ENB_ID = 0x7f, + BSSGP_IE_EUTRAN_IRAT_HO_INFO = 0x80, + BSSGP_IE_SUB_PID4RAT_FREQ_PRIO = 0x81, + BSSGP_IE_REQ4IRAT_HO_INFO = 0x82, + BSSGP_IE_RELIABLE_IRAT_HO_INFO = 0x83, + BSSGP_IE_SON_TRANSFER_APP_ID = 0x84, + BSSGP_IE_CSG_ID = 0x85, + BSSGP_IE_TAC = 0x86, + BSSGP_IE_REDIRECT_ATTEMPT_FLAG = 0x87, + BSSGP_IE_REDIRECTION_INDICATION = 0x88, + BSSGP_IE_REDIRECTION_COMPLETED = 0x89, + BSSGP_IE_UNCONF_SEND_STATE_VAR = 0x8a, + BSSGP_IE_IRAT_MEASUREMENT_CONF = 0x8b, + BSSGP_IE_SCI = 0x8c, + BSSGP_IE_GGSN_PGW_LOCATION = 0x8d, + BSSGP_IE_SELECTED_PLMN_ID = 0x8e, + BSSGP_IE_PRIO_CLASS_IND = 0x8f, + BSSGP_IE_SOURCE_CELL_ID = 0x90, + BSSGP_IE_IRAT_MEAS_CFG_E_EARFCN = 0x91, + BSSGP_IE_EDRX_PARAMETERS = 0x92, + BSSGP_IE_T_UNTIL_NEXT_PAGING = 0x93, + BSSGP_IE_COVERAGE_CLASS = 0x98, + BSSGP_IE_PAGING_ATTEMPT_INFO = 0x99, + BSSGP_IE_EXCEPTION_REPORT_FLAG = 0x9a, + BSSGP_IE_OLD_RA_ID = 0x9b, + BSSGP_IE_ATTACH_IND = 0x9c, + BSSGP_IE_PLMN_ID = 0x9d, + BSSGP_IE_MME_QUERY = 0x9e, + BSSGP_IE_SGSN_GROUP_ID = 0x9f, + BSSGP_IE_ADDITIONAL_PTMSI = 0xa0, + BSSGP_IE_UE_USAGE_TYPE = 0xa1, + BSSGP_IE_MLAT_TIMER = 0xa2, + BSSGP_IE_MLAT_TA = 0xa3, + BSSGP_IE_MS_SYNC_ACCURACY = 0xa4, + BSSGP_IE_BTS_RX_ACCURACY_LVL = 0xa5, + BSSGP_IE_TA_REQ = 0xa6, }; /*! Cause coding (Section 11.3.8 / Table 11.10) */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 Gerrit-Change-Number: 21468 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 Dec 2 19:08:39 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 2 Dec 2020 19:08:39 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Update enums for message types and IEs with Release 15 In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21468 ) Change subject: gsm_08_18.h: Update enums for message types and IEs with Release 15 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 Gerrit-Change-Number: 21468 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 02 Dec 2020 19:08: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 Dec 2 19:10:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 19:10:37 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21469 ) Change subject: gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD ...................................................................... gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD Both BSSGP messages appear from the SGSN in downlink on BVCI=0. We must send a copy of this message to each of the BSS side NSEs. Change-Id: Ia19791b143989eb1490f461d88b9edbd8e3b82be Closes: OS#4875 --- M src/gbproxy/gb_proxy.c 1 file changed, 8 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/69/21469/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 997085b..dd8aa94 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1293,6 +1293,7 @@ struct tlv_parsed tp; uint8_t pdu_type = bgph->pdu_type; int data_len; + struct gbproxy_nse *nse; struct gbproxy_peer *peer; uint16_t bvci; struct msgb *msg; @@ -1404,11 +1405,13 @@ rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); break; case BSSGP_PDUT_SGSN_INVOKE_TRACE: - LOGP(DGPRS, LOGL_ERROR, - "NSEI=%u(SGSN) BSSGP INVOKE TRACE not supported\n",nsei); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_NOT_SUPPORTED_SGSN]); - rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, orig_msg); + case BSSGP_PDUT_OVERLOAD: + LOGP(DGPRS, LOGL_DEBUG, + "NSEI=%u(SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); + /* broadcast to all BSS-side peers */ + llist_for_each_entry(nse, &cfg->nse_peers, list) { + gbprox_relay2nse(msg, nse, 0); + } break; default: LOGP(DGPRS, LOGL_NOTICE, "BSSGP PDU type %s not supported\n", bssgp_pdu_str(pdu_type)); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia19791b143989eb1490f461d88b9edbd8e3b82be Gerrit-Change-Number: 21469 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 Dec 2 19:15:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 19:15:47 +0000 Subject: Change in libosmocore[master]: logging: Calculate LOG_MAX_{CTX, FILTERS} from the enum In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21464 ) Change subject: logging: Calculate LOG_MAX_{CTX,FILTERS} from the enum ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1ee1278b029e42321932b87f94aa3e0eeed4108a Gerrit-Change-Number: 21464 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 19: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 Wed Dec 2 19:50:39 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 2 Dec 2020 19:50:39 +0000 Subject: Change in libosmocore[master]: logging: Calculate LOG_MAX_{CTX, FILTERS} from the enum In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21464 ) Change subject: logging: Calculate LOG_MAX_{CTX,FILTERS} from the enum ...................................................................... logging: Calculate LOG_MAX_{CTX,FILTERS} from the enum Change-Id: I1ee1278b029e42321932b87f94aa3e0eeed4108a Related: SYS#5232 --- M include/osmocom/core/logging.h 1 file changed, 10 insertions(+), 10 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/osmocom/core/logging.h b/include/osmocom/core/logging.h index 6d0d5a3..38b465c 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -11,11 +11,6 @@ #include #include -/*! Maximum number of logging contexts */ -#define LOG_MAX_CTX 8 -/*! Maximum number of logging filters */ -#define LOG_MAX_FILTERS 8 - #ifndef DEBUG #define DEBUG #endif @@ -162,11 +157,6 @@ uint8_t enabled; /*!< is this category enabled or not */ }; -/*! Log context information, passed to filter */ -struct log_context { - void *ctx[LOG_MAX_CTX+1]; -}; - /*! Indexes to indicate the object currently acted upon. * Array indexes for the global \a log_context array. */ enum log_ctx_index { @@ -191,6 +181,16 @@ _LOG_FLT_COUNT }; +/*! Maximum number of logging contexts */ +#define LOG_MAX_CTX _LOG_CTX_COUNT +/*! Maximum number of logging filters */ +#define LOG_MAX_FILTERS _LOG_FLT_COUNT + +/*! Log context information, passed to filter */ +struct log_context { + void *ctx[LOG_MAX_CTX+1]; +}; + /*! Compatibility with older libosmocore versions */ #define LOG_FILTER_ALL (1< 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 Dec 2 20:00:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 20:00:25 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM 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/osmo-bsc/+/21461 to look at the new patch set (#3). Change subject: Introduce NM GPRS NSE FSM ...................................................................... Introduce NM GPRS NSE FSM Related: OS#4870 Change-Id: I91a5f40324d5373eac885032295690cec97214a6 --- M include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h M include/osmocom/bsc/nm_common_fsm.h M include/osmocom/bsc/signal.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nse_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 19 files changed, 503 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/21461/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 Gerrit-PatchSet: 3 Gerrit-Owner: pespin 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 Dec 2 20:00:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 20:00:25 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM 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/osmo-bsc/+/21463 to look at the new patch set (#2). Change subject: Introduce NM GPRS CELL FSM ...................................................................... Introduce NM GPRS CELL FSM Related: OS#4870 Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 --- M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c A src/osmo-bsc/nm_gprs_cell_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 14 files changed, 469 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/63/21463/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Dec 2 20:00:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 20:00:25 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#4) to the change originally created by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Introduce NM GPRS NSVC FSM Related: OS#4870 Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 --- M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nsvc_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 15 files changed, 514 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/52/21452/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 4 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 Dec 2 20:06:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 2 Dec 2020 20:06:09 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Patch Set 4: I'll apply your BTS features patches on top of this one. I'm currently testing these FSMs with nanobts. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 20:06: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 Wed Dec 2 20:32:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:32:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSGP_Emulation: Add RIM port to BSSGP_CT References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21470 ) Change subject: BSSGP_Emulation: Add RIM port to BSSGP_CT ...................................................................... BSSGP_Emulation: Add RIM port to BSSGP_CT This port is used for sending/receiving RIM related BSSGP messages. It exists once per BSSGP_CT Component (i.e. once per NSE), as RIM is global for the entire NSE. Change-Id: I04511df5dffbfe19faabf22014acc72b7673b7d6 --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/70/21470/1 diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index e3ad9fe..0aa27e6 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -237,6 +237,9 @@ * (currently only) SUSPEND/RESUME */ port BSSGP_SP_PT GLOBAL; + /* RAN INFORMATION MGMT */ + port BSSGP_SP_PT RIM; + /* port to a management instance */ port BSSGP_BVC_MGMT_SP_PT MGMT; @@ -305,6 +308,13 @@ {pDU_BSSGP_SGSN_INVOKE_TRACE:=?}, {pDU_BSSGP_OVERLOAD:=?} ); +/* BSSGP messages that should arrive on the RIM port */ +private template PDU_BSSGP tr_RIM := ( + {pDU_BSSGP_RAN_INFORMATION:=?}, {pDU_BSSGP_RAN_INFORMATION_REQUEST:=?}, + {pDU_BSSGP_RAN_INFORMATION_ACK:=?}, {pDU_BSSGP_RAN_INFORMATION_ERROR:=?}, + {pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR:=?} +); + /* We are in BVC_S_UNBLOCKED state */ altstep as_sig_unblocked() runs on BSSGP_CT { var BSSGP_BVC_CT bvc_comp_ref; @@ -329,6 +339,11 @@ [] BSCP.receive(f_BnsUdInd(tr_GLOBAL, 0)) -> value udi { GLOBAL.send(udi.bssgp); } + [] BSCP.receive(f_BnsUdInd(tr_RIM, 0)) -> value udi { + if (RIM.checkstate("Connected")) { + RIM.send(udi.bssgp); + } + } /* Route based on PTP BVCI in payload/IE of signaling PDU */ [] BSCP.receive(f_BnsUdInd(?, 0)) -> value udi { @@ -381,6 +396,11 @@ [] GLOBAL.receive(tr_GLOBAL) -> value bssgp { BSCP.send(f_BnsUdReq(bssgp, 0, 0)); } + + [] RIM.receive(tr_RIM) -> value bssgp { + BSCP.send(f_BnsUdReq(bssgp, 0, 0)); + } + } /* We are in BVC_S_WAIT_NS_ALIVE_UNBLOCKED (only happens in BSS role) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I04511df5dffbfe19faabf22014acc72b7673b7d6 Gerrit-Change-Number: 21470 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 Dec 2 20:32:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:32:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: FR config: Add second NSE with 4x NS-VC References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21471 ) Change subject: gbproxy: FR config: Add second NSE with 4x NS-VC ...................................................................... gbproxy: FR config: Add second NSE with 4x NS-VC Change-Id: If8d9e9c939e8e73deac8fa1964f6c226639565bd --- M gbproxy/GBProxy_Tests.fr.cfg M gbproxy/osmo-gbproxy.fr.cfg 2 files changed, 64 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/71/21471/1 diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index 9b31dfd..93bcabe 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -58,6 +58,45 @@ nsvci := 4 } } + }, { + nsei := 2, + role_sgsn := false, + handle_sns := false, + nsvc := { + { + provider := { + fr := { + netdev := "hdlc5", + dlci := 24 + } + }, + nsvci := 9 + }, { + provider := { + fr := { + netdev := "hdlc6", + dlci := 25 + } + }, + nsvci := 10 + }, { + provider := { + fr := { + netdev := "hdlc7", + dlci := 26 + } + }, + nsvci := 11 + }, { + provider := { + fr := { + netdev := "hdlc8", + dlci := 27 + } + }, + nsvci := 12 + } + } } } GBProxy_Tests.mp_gbconfigs := { @@ -80,6 +119,25 @@ depth := BSSGP_DECODE_DEPTH_BSSGP } } + }, { + nsei := 2, + sgsn_role := false, + bvc := { + { + bvci := 210, + cell_id := { + ra_id := { + lai := { + mcc_mnc := '262F42'H, + lac := 13135 + }, + rac := 1 + }, + cell_id := 20961 + }, + depth := BSSGP_DECODE_DEPTH_BSSGP + } + } } }; diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index 5c5644b..eabe37c 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -29,5 +29,11 @@ nse 1 nsvci 3 frnet hdlcnet3 dlci 18 nse 1 nsvci 4 frnet hdlcnet4 dlci 19 + nse 2 nsvci 9 frnet hdlcnet5 dlci 24 + nse 2 nsvci 10 frnet hdlcnet6 dlci 25 + nse 2 nsvci 11 frnet hdlcnet7 dlci 26 + nse 2 nsvci 12 frnet hdlcnet8 dlci 27 + + gbproxy sgsn nsei 101 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8d9e9c939e8e73deac8fa1964f6c226639565bd Gerrit-Change-Number: 21471 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 Dec 2 20:45:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:45:50 +0000 Subject: Change in libosmocore[master]: Integrate libmnl (minimal netlink) library with libosmocore select loop In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21457 ) Change subject: Integrate libmnl (minimal netlink) library with libosmocore select loop ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21457/3/include/osmocom/core/mnl.h File include/osmocom/core/mnl.h: https://gerrit.osmocom.org/c/libosmocore/+/21457/3/include/osmocom/core/mnl.h at 16 PS3, Line 16: mnl_cb_t mnl_cb; > What about using something osmocom specific here so we don't depent on libmnl in the public API? It [?] The problem is that the user (i.e. the implementation of the callback) will need to parse the mnl specific data type arriving there anyway. So this current patch here is really very netlink specific, and I don't see anything wrong with depending on libmnl. It is the smallest netlink library out there, it exists for more than a decade, and as it is a dependency of netfilter/iptables tools, it has been packaged basically everywhere. Supporting other netlink libraries (like libnl) doesn't seem to make sense to me. And supporting other operating systems is impossible as they don't have netlink to begin with. And this entire osmo_mnl module is really just a very thin wrapper on top of netlink, i.e. nothing that you could ever do on a non-netlink-capable system at all. It has no specific use case whatsoever. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f Gerrit-Change-Number: 21457 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 20:45:50 +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 Dec 2 20:49:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:49:26 +0000 Subject: Change in libosmocore[master]: ns2: Add filtering by NSE/NSEI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21465 ) Change subject: ns2: Add filtering by NSE/NSEI ...................................................................... Patch Set 1: > Patch Set 1: > > > Patch Set 1: > > > > looks good. But somehow I cannot find any place where the NSE log context is set on packet receive? > > Interesting, I added the NSE context everywhere I found the NSVC context being set. > I'll check what's up with rx Maybe rx is not handled inside the library but only set by applications? Or even the NSVC case is broken? In any case, we should set the context as soon as possible once we know the NSVC/NSE to which a message belongs. The NSE should IMHO be known immediately, as one 'bind' (FR AF_PACKET socket, UDP socket) always directly belongs to one NSE. The NSVC should be known almost at the same time: remote peer address (UDP) or netdev name (FR). -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Gerrit-Change-Number: 21465 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 02 Dec 2020 20:49: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 Dec 2 20:49:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:49:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: remove include In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21453 ) Change subject: gprs_ns2_fr: remove include ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iccf931207d8bea19969fbfc4225f622a1a709972 Gerrit-Change-Number: 21453 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 20:49: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 Dec 2 20:49:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:49:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: remove include In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21453 ) Change subject: gprs_ns2_fr: remove include ...................................................................... gprs_ns2_fr: remove include It's not needed because net/if.h already include the required parts. Furthermore the linux/if.h generates a compiler error in combination with net/if.h on older systems (e.g. debian jessie) Change-Id: Iccf931207d8bea19969fbfc4225f622a1a709972 --- M src/gb/gprs_ns2_fr.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/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 4140171..47d3a5d 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -42,7 +42,6 @@ #include #include #include -#include #include #include -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iccf931207d8bea19969fbfc4225f622a1a709972 Gerrit-Change-Number: 21453 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 Dec 2 20:50:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:50:55 +0000 Subject: Change in osmo-bts[master]: vty: fix dump_lchan_trx_ts(): dump dedicated channels only In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21450 ) Change subject: vty: fix dump_lchan_trx_ts(): dump dedicated channels only ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21450/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/21450/1/src/common/vty.c at 1408 PS1, Line 1408: swi you are comparing lchan->state with constants for lchan->type? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 Gerrit-Change-Number: 21450 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 20:50: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 Dec 2 20:53:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:53:02 +0000 Subject: Change in osmo-bsc[master]: Store GPRS MOs directly under BTS SiteMgr object In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21423 ) Change subject: Store GPRS MOs directly under BTS SiteMgr object ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 Gerrit-Change-Number: 21423 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Wed, 02 Dec 2020 20:53: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 Dec 2 20:54:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:54:09 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21463 ) Change subject: Introduce NM GPRS CELL FSM ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 02 Dec 2020 20: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 Wed Dec 2 20:55:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 20:55:23 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 20:55: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 Dec 2 21:04:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:04:43 +0000 Subject: Change in libosmocore[master]: Integrate libmnl (minimal netlink) library with libosmocore select loop In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21457 ) Change subject: Integrate libmnl (minimal netlink) library with libosmocore select loop ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f Gerrit-Change-Number: 21457 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 21:04: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 Dec 2 21:04:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:04:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Monitor the kernel net-device link state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21458 ) Change subject: gprs_ns2_fr: Monitor the kernel net-device link state ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I779556991bfc88b7751b2be17bb81c329cfb9e01 Gerrit-Change-Number: 21458 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 21:04: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 Dec 2 21:04:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:04:49 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Update enums for message types and IEs with Release 15 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21468 ) Change subject: gsm_08_18.h: Update enums for message types and IEs with Release 15 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 Gerrit-Change-Number: 21468 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 21: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 Wed Dec 2 21:04:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:04:51 +0000 Subject: Change in libosmocore[master]: Integrate libmnl (minimal netlink) library with libosmocore select loop In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21457 ) Change subject: Integrate libmnl (minimal netlink) library with libosmocore select loop ...................................................................... Integrate libmnl (minimal netlink) library with libosmocore select loop This adds an easy way to listen to netlink events form the Linux kernel from within libosmocore applications. The new dependency can be disabled via the "--disable-lbimnl" configure flag. Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f --- M configure.ac M contrib/jenkins_arm.sh M contrib/libosmocore.spec.in M debian/control M include/Makefile.am A include/osmocom/core/mnl.h M src/Makefile.am M src/gb/gprs_ns2_internal.h A src/mnl.c 9 files changed, 165 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/configure.ac b/configure.ac index 7de495b..10fb496 100644 --- a/configure.ac +++ b/configure.ac @@ -194,6 +194,19 @@ AM_CONDITIONAL(ENABLE_SYSTEMD_LOGGING, test "x$systemd_logging" = "xyes") AC_SUBST(ENABLE_SYSTEMD_LOGGING) +AC_ARG_ENABLE([libmnl], + [AS_HELP_STRING( + [--disable-libmnl], + [Build without netlink socket support via libmnl] + )], + [mnl=$enableval], [mnl="yes"]) +AS_IF([test "x$mnl" = "xyes"], [ + PKG_CHECK_MODULES(LIBMNL, libmnl) + AC_DEFINE([ENABLE_LIBMNL], [1], [Enable netlink socket support via libmnl]) +]) +AM_CONDITIONAL(ENABLE_LIBMNL, test "x$mnl" = "xyes") +AC_SUBST(ENABLE_LIBMNL) + AC_ARG_ENABLE([libsctp], [AS_HELP_STRING([--disable-libsctp], [Do not enable socket multiaddr APIs requiring libsctp])], [ENABLE_LIBSCTP=$enableval], [ENABLE_LIBSCTP="yes"]) AM_CONDITIONAL(ENABLE_LIBSCTP, test x"$ENABLE_LIBSCTP" = x"yes") diff --git a/contrib/jenkins_arm.sh b/contrib/jenkins_arm.sh index c9cd922..e7df37d 100755 --- a/contrib/jenkins_arm.sh +++ b/contrib/jenkins_arm.sh @@ -20,6 +20,7 @@ --disable-shared \ --disable-libsctp \ --disable-libusb \ + --disable-libmnl \ --enable-external-tests \ CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs $WERROR_FLAGS" diff --git a/contrib/libosmocore.spec.in b/contrib/libosmocore.spec.in index fb45516..728a0fb 100644 --- a/contrib/libosmocore.spec.in +++ b/contrib/libosmocore.spec.in @@ -30,6 +30,7 @@ BuildRequires: pkgconfig(libpcsclite) BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(talloc) >= 2.0.1 +BuildRequires: pkgconfig(libmnl) %description libosmocore is a package with various utility functions that were diff --git a/debian/control b/debian/control index 381e291..24e729a 100644 --- a/debian/control +++ b/debian/control @@ -17,6 +17,7 @@ libtalloc-dev, libsctp-dev, libusb-1.0-0-dev, + libmnl-dev, python3:native Standards-Version: 3.9.8 Vcs-Git: git://git.osmocom.org/libosmocore.git diff --git a/include/Makefile.am b/include/Makefile.am index 3173290..71171a4 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -32,6 +32,7 @@ osmocom/core/linuxrbtree.h \ osmocom/core/logging.h \ osmocom/core/loggingrb.h \ + osmocom/core/mnl.h \ osmocom/core/stats.h \ osmocom/core/macaddr.h \ osmocom/core/msgb.h \ diff --git a/include/osmocom/core/mnl.h b/include/osmocom/core/mnl.h new file mode 100644 index 0000000..11c8353 --- /dev/null +++ b/include/osmocom/core/mnl.h @@ -0,0 +1,22 @@ +/*! \file select.h + * libmnl integration + */ +#pragma once + +#include +#include + +/*! osmocom wrapper around libmnl abstraction of netlink socket */ +struct osmo_mnl { + /*! osmo-wrapped netlink file descriptor */ + struct osmo_fd ofd; + /*! libmnl socket abstraction */ + struct mnl_socket *mnls; + /*! call-back called for received netlink messages */ + mnl_cb_t mnl_cb; + /*! opaque data provided by user */ + void *priv; +}; + +struct osmo_mnl *osmo_mnl_init(void *ctx, int bus, unsigned int groups, mnl_cb_t mnl_cb, void *priv); +void osmo_mnl_destroy(struct osmo_mnl *omnl); diff --git a/src/Makefile.am b/src/Makefile.am index b2c9204..5ff1a42 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,7 +4,7 @@ LIBVERSION=16:0:0 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -AM_CFLAGS = -Wall $(TALLOC_CFLAGS) $(PTHREAD_CFLAGS) $(LIBSCTP_CFLAGS) +AM_CFLAGS = -Wall $(TALLOC_CFLAGS) $(PTHREAD_CFLAGS) $(LIBSCTP_CFLAGS) $(LIBMNL_CFLAGS) if ENABLE_PSEUDOTALLOC AM_CPPFLAGS += -I$(top_srcdir)/src/pseudotalloc @@ -76,5 +76,10 @@ libosmocore_la_LIBADD += $(SYSTEMD_LIBS) endif +if ENABLE_LIBMNL +libosmocore_la_SOURCES += mnl.c +libosmocore_la_LIBADD += $(LIBMNL_LIBS) +endif + crc%gen.c: crcXXgen.c.tpl $(AM_V_GEN)sed -e's/XX/$*/g' $< > $@ diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 08ffac2..e72deff 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -95,8 +95,12 @@ /*! workaround for rate counter until rate counter accepts char str as index */ uint32_t rate_ctr_idx; + + /*! libmnl netlink socket for link state monitoring */ + struct osmo_mnl *linkmon_mnl; }; + /*! Structure repesenting a NSE. The BSS/PCU will only have a single NSE, while SGSN has one for each BSS/PCU */ struct gprs_ns2_nse { uint16_t nsei; diff --git a/src/mnl.c b/src/mnl.c new file mode 100644 index 0000000..13d9c9e --- /dev/null +++ b/src/mnl.c @@ -0,0 +1,116 @@ +/*! \file mnl.c + * + * This code integrates libmnl (minimal netlink library) into the osmocom select + * loop abstraction. It allows other osmocom libraries or application code to + * create netlink sockets and subscribe to netlink events via libmnl. The completion + * handler / callbacks are dispatched via libosmocore select loop handling. + */ + +/* + * (C) 2020 by Harald Welte + * All Rights Reserverd. + * + * 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 + +#include +#include + +/* osmo_fd call-back for when RTNL socket is readable */ +static int osmo_mnl_fd_cb(struct osmo_fd *ofd, unsigned int what) +{ + uint8_t buf[MNL_SOCKET_BUFFER_SIZE]; + struct osmo_mnl *omnl = ofd->data; + int rc; + + if (!(what & OSMO_FD_READ)) + return 0; + + rc = mnl_socket_recvfrom(omnl->mnls, buf, sizeof(buf)); + if (rc <= 0) { + LOGP(DLGLOBAL, LOGL_ERROR, "Error in mnl_socket_recvfrom(): %s\n", + strerror(errno)); + return -EIO; + } + + return mnl_cb_run(buf, rc, 0, 0, omnl->mnl_cb, omnl); +} + +/*! create an osmocom-wrapped limnl netlink socket. + * \parma[in] ctx talloc context from which to allocate + * \param[in] bus netlink socket bus ID (see NETLINK_* constants) + * \param[in] groups groups of messages to bind/subscribe to + * \param[in] mnl_cb callback function called for each incoming message + * \param[in] priv opaque private user data + * \returns newly-allocated osmo_mnl or NULL in case of error. */ +struct osmo_mnl *osmo_mnl_init(void *ctx, int bus, unsigned int groups, mnl_cb_t mnl_cb, void *priv) +{ + struct osmo_mnl *olm = talloc_zero(ctx, struct osmo_mnl); + + if (!olm) + return NULL; + + olm->priv = priv; + olm->mnl_cb = mnl_cb; + olm->mnls = mnl_socket_open2(bus, SOCK_CLOEXEC); + if (!olm->mnls) { + LOGP(DLGLOBAL, LOGL_ERROR, "Error creating netlink socket for bus %d: %s\n", + bus, strerror(errno)); + goto out_free; + } + + if (mnl_socket_bind(olm->mnls, groups, MNL_SOCKET_AUTOPID) < 0) { + LOGP(DLGLOBAL, LOGL_ERROR, "Error binding netlink socket for bus %d to groups 0x%x: %s\n", + bus, groups, strerror(errno)); + goto out_close; + } + + osmo_fd_setup(&olm->ofd, mnl_socket_get_fd(olm->mnls), OSMO_FD_READ, osmo_mnl_fd_cb, olm, 0); + + if (osmo_fd_register(&olm->ofd)) { + LOGP(DLGLOBAL, LOGL_ERROR, "Error registering netlinks socket\n"); + goto out_close; + } + + return olm; + +out_close: + mnl_socket_close(olm->mnls); +out_free: + talloc_free(olm); + return NULL; +} + +/*! destroy an existing osmocom-wrapped mnl netlink socket: Unregister + close + free. + * \param[in] omnl osmo_mnl socket previously returned by osmo_mnl_init() */ +void osmo_mnl_destroy(struct osmo_mnl *omnl) +{ + if (!omnl) + return; + + osmo_fd_unregister(&omnl->ofd); + mnl_socket_close(omnl->mnls); + talloc_free(omnl); +} -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f787ee68f0d6d04f0a5655eb57d55b3b326a42f Gerrit-Change-Number: 21457 Gerrit-PatchSet: 5 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 Wed Dec 2 21:04:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:04:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Monitor the kernel net-device link state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21458 ) Change subject: gprs_ns2_fr: Monitor the kernel net-device link state ...................................................................... gprs_ns2_fr: Monitor the kernel net-device link state We use the newly-introduced libmnl integration of libosmocore in order to receive netlink events from the kernel on link state changes. If one of "our" interfaces changed link state, we report this in the log and also store it within the "bind". Change-Id: I779556991bfc88b7751b2be17bb81c329cfb9e01 --- M src/gb/gprs_ns2_fr.c 1 file changed, 125 insertions(+), 2 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_fr.c b/src/gb/gprs_ns2_fr.c index 47d3a5d..3cf44ef 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -50,8 +50,10 @@ #include #include #include +#include #include +#include "config.h" #include "common_vty.h" #include "gprs_ns2_internal.h" @@ -81,6 +83,7 @@ struct osmo_fd fd; char netif[IF_NAMESIZE]; struct osmo_fr_link *link; + bool if_running; }; struct priv_vc { @@ -112,8 +115,8 @@ priv = bind->priv; fr_link = priv->link; - vty_out(vty, "FR bind: %s, role: %s%s", priv->netif, - osmo_fr_role_str(fr_link->role), VTY_NEWLINE); + vty_out(vty, "FR bind: %s, role: %s, link: %s%s", priv->netif, + osmo_fr_role_str(fr_link->role), priv->if_running ? "UP" : "DOWN", VTY_NEWLINE); llist_for_each_entry(nsvc, &bind->nsvc, blist) { vty_out(vty, " NSVCI %05u: %s%s", nsvc->nsvci, gprs_ns2_ll_str(nsvc), VTY_NEWLINE); @@ -334,6 +337,116 @@ return fd; } +#ifdef ENABLE_LIBMNL + +#include +#include +#include +#include + +#ifndef ARPHRD_FRAD +#define ARPHRD_FRAD 770 +#endif + +/* validate the netlink attributes */ +static int data_attr_cb(const struct nlattr *attr, void *data) +{ + const struct nlattr **tb = data; + int type = mnl_attr_get_type(attr); + + if (mnl_attr_type_valid(attr, IFLA_MAX) < 0) + return MNL_CB_OK; + + switch (type) { + case IFLA_MTU: + if (mnl_attr_validate(attr, MNL_TYPE_U32) < 0) + return MNL_CB_ERROR; + break; + case IFLA_IFNAME: + if (mnl_attr_validate(attr, MNL_TYPE_STRING) < 0) + return MNL_CB_ERROR; + break; + } + tb[type] = attr; + return MNL_CB_OK; +} + +/* find the bind for the netdev (if any) */ +static struct gprs_ns2_vc_bind *bind4netdev(struct gprs_ns2_inst *nsi, const char *ifname) +{ + struct gprs_ns2_vc_bind *bind; + + llist_for_each_entry(bind, &nsi->binding, list) { + struct priv_bind *bpriv = bind->priv; + if (!strcmp(bpriv->netif, ifname)) + return bind; + } + + return NULL; +} + +/* handle a single netlink message received via libmnl */ +static int linkmon_mnl_cb(const struct nlmsghdr *nlh, void *data) +{ + struct osmo_mnl *omnl = data; + struct gprs_ns2_vc_bind *bind; + struct nlattr *tb[IFLA_MAX+1] = {}; + struct ifinfomsg *ifm = mnl_nlmsg_get_payload(nlh); + struct gprs_ns2_inst *nsi; + const char *ifname; + bool if_running; + + OSMO_ASSERT(omnl); + OSMO_ASSERT(ifm); + + nsi = omnl->priv; + + if (ifm->ifi_type != ARPHRD_FRAD) + return MNL_CB_OK; + + mnl_attr_parse(nlh, sizeof(*ifm), data_attr_cb, tb); + + if (!tb[IFLA_IFNAME]) + return MNL_CB_OK; + ifname = mnl_attr_get_str(tb[IFLA_IFNAME]); + if_running = !!(ifm->ifi_flags & IFF_RUNNING); + + bind = bind4netdev(nsi, ifname); + if (bind) { + 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"); + bpriv->if_running = if_running; + } + } + + return MNL_CB_OK; +} + +/* trigger one initial dump of all link information */ +static void linkmon_initial_dump(struct osmo_mnl *omnl) +{ + char buf[MNL_SOCKET_BUFFER_SIZE]; + struct nlmsghdr *nlh = mnl_nlmsg_put_header(buf); + struct rtgenmsg *rt; + + nlh->nlmsg_type = RTM_GETLINK; + nlh->nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP; + nlh->nlmsg_seq = time(NULL); + rt = mnl_nlmsg_put_extra_header(nlh, sizeof(struct rtgenmsg)); + rt->rtgen_family = AF_PACKET; + + if (mnl_socket_sendto(omnl->mnls, nlh, nlh->nlmsg_len) < 0) { + LOGP(DLNS, LOGL_ERROR, "linkmon: Cannot send rtnetlink message: %s\n", strerror(errno)); + } + + /* the response[s] will be handled just like the events */ +} +#endif /* LIBMNL */ + + /*! Create a new bind for NS over FR. * \param[in] nsi NS instance in which to create the bind * \param[in] netif Network interface to bind to @@ -401,6 +514,16 @@ 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); + + /* we get a new full dump after every bind. which is a bit excessive. But that's just once + * at start-up, so we can get away with it */ + if (nsi->linkmon_mnl) + linkmon_initial_dump(nsi->linkmon_mnl); +#endif + return rc; err_fd: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I779556991bfc88b7751b2be17bb81c329cfb9e01 Gerrit-Change-Number: 21458 Gerrit-PatchSet: 6 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 Wed Dec 2 21:04:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:04:51 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Update enums for message types and IEs with Release 15 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21468 ) Change subject: gsm_08_18.h: Update enums for message types and IEs with Release 15 ...................................................................... gsm_08_18.h: Update enums for message types and IEs with Release 15 Lots of newly introduced message types and information elements. Change-Id: I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 123 insertions(+), 2 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/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index af6caf3..70ab011 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -1,4 +1,5 @@ /*! \file gsm_08_18.h */ +/* Updated to reflect TS 48.018 version 15.0.0 Release 15 */ #pragma once @@ -14,7 +15,10 @@ BSSGP_PDUT_DL_UNITDATA = 0x00, BSSGP_PDUT_UL_UNITDATA = 0x01, BSSGP_PDUT_RA_CAPABILITY = 0x02, - BSSGP_PDUT_PTM_UNITDATA = 0x03, + /* PDUs between MBMS SAPs */ + BSSGP_PDUT_PTM_UNITDATA = 0x03, /* reserved in later specs */ + BSSGP_PDUT_DL_MMBS_UNITDATA = 0x04, + BSSGP_PDUT_UL_MMBS_UNITDATA = 0x05, /* PDUs between GMM SAPs */ BSSGP_PDUT_PAGING_PS = 0x06, BSSGP_PDUT_PAGING_CS = 0x07, @@ -27,6 +31,11 @@ BSSGP_PDUT_RESUME = 0x0e, BSSGP_PDUT_RESUME_ACK = 0x0f, BSSGP_PDUT_RESUME_NACK = 0x10, + BSSGP_PDUT_PAGING_PS_REJECT = 0x11, + BSSGP_PDUT_DUMMY_PAGING_PS = 0x12, + BSSGP_PDUT_DUMMY_PAGING_PS_RESP = 0x13, + BSSGP_PDUT_MS_REGISTR_ENQ = 0x14, + BSSGP_PDUT_MS_REGISTR_ENQ_RESP = 0x15, /* PDus between NM SAPs */ BSSGP_PDUT_BVC_BLOCK = 0x20, BSSGP_PDUT_BVC_BLOCK_ACK = 0x21, @@ -41,8 +50,11 @@ BSSGP_PDUT_FLUSH_LL = 0x2a, BSSGP_PDUT_FLUSH_LL_ACK = 0x2b, BSSGP_PDUT_LLC_DISCARD = 0x2c, + BSSGP_PDUT_FLOW_CONTROL_PFC = 0x2d, + BSSGP_PDUT_FLOW_CONTROL_PFC_ACK = 0x2e, BSSGP_PDUT_SGSN_INVOKE_TRACE = 0x40, BSSGP_PDUT_STATUS = 0x41, + BSSGP_PDUT_OVERLOAD = 0x42, /* PDUs between PFM SAP's */ BSSGP_PDUT_DOWNLOAD_BSS_PFC = 0x50, BSSGP_PDUT_CREATE_BSS_PFC = 0x51, @@ -52,6 +64,16 @@ BSSGP_PDUT_MODIFY_BSS_PFC_ACK = 0x55, BSSGP_PDUT_DELETE_BSS_PFC = 0x56, BSSGP_PDUT_DELETE_BSS_PFC_ACK = 0x57, + BSSGP_PDUT_DELETE_BSS_PFC_REQ = 0x58, + BSSGP_PDUT_PS_HO_REQUIRED = 0x59, + BSSGP_PDUT_PS_HO_REQUIRED_ACK = 0x5a, + BSSGP_PDUT_PS_HO_REQUIRED_NACK = 0x5b, + BSSGP_PDUT_PS_HO_REQUEST = 0x5c, + BSSGP_PDUT_PS_HO_REQUEST_ACK = 0x5d, + BSSGP_PDUT_PS_HO_REQUEST_NACK = 0x5e, + BSSGP_PDUT_PS_HO_COMPLETE = 0x91, + BSSGP_PDUT_PS_HO_CANCEL = 0x92, + BSSGP_PDUT_PS_HO_COMPLETE_ACK = 0x93, }; /*! BSSGP User-Data header (Section 10.2.1 and 10.2.2) */ @@ -68,7 +90,7 @@ uint8_t data[0]; /*!< optional/conditional IEs as TLVs */ }; -/*! BSSGP Information Element Identifiers */ +/*! BSSGP Information Element Identifiers (Section 11.3 / Table 11.3) */ enum bssgp_iei_type { BSSGP_IE_ALIGNMENT = 0x00, BSSGP_IE_BMAX_DEFAULT_MS = 0x01, @@ -116,6 +138,105 @@ BSSGP_IE_FEATURE_BITMAP = 0x3b, BSSGP_IE_BUCKET_FULL_RATIO = 0x3c, BSSGP_IE_SERVICE_UTRAN_CCO = 0x3d, + BSSGP_IE_NSEI = 0x3e, + BSSGP_IE_RRLP_APDU = 0x3f, + BSSGP_IE_LCS_QOS = 0x40, + BSSGP_IE_LCS_CLIENT_TYPE = 0x41, + BSSGP_IE_REQUESTED_GPS_AST_DATA = 0x42, + BSSGP_IE_LOCATION_TYPE = 0x43, + BSSGP_IE_LOCATION_ESTIMATE = 0x44, + BSSGP_IE_POSITIONING_DATA = 0x45, + BSSGP_IE_DECIPHERING_KEYS = 0x46, + BSSGP_IE_LCS_PRIORITY = 0x47, + BSSGP_IE_LCS_CAUSE = 0x48, + BSSGP_IE_LCS_CAPABILITY = 0x49, + BSSGP_IE_RRLP_FLAGS = 0x4a, + BSSGP_IE_RIM_APP_IDENTITY = 0x4b, + BSSGP_IE_RIM_SEQ_NR = 0x4c, + BSSGP_IE_RIM_REQ_APP_CONTAINER = 0x4d, + BSSGP_IE_RAN_INFO_APP_CONTAINER = 0x4e, + BSSGP_IE_RIM_PDU_INDICATIONS = 0x4f, + BSSGP_IE_PFC_FLOW_CTRL_PARAMS = 0x52, + BSSGP_IE_GLOBAL_CN_ID = 0x53, + BSSGP_IE_RIM_ROUTING_INFO = 0x54, + BSSGP_IE_RIM_PROTOCOL_VERSION = 0x55, + BSSGP_IE_APP_ERROR_CONTAINER = 0x56, + BSSGP_IE_RI_REQ_RIM_CONTAINER = 0x57, + BSSGP_IE_RI_RIM_CONTAINER = 0x58, + BSSGP_IE_RI_APP_ERROR_RIM_CONT = 0x59, + BSSGP_IE_RI_ACK_RIM_CONTAINER = 0x5a, + BSSGP_IE_RI_ERROR_RIM_COINTAINER= 0x5b, + BSSGP_IE_TMGI = 0x5c, + BSSGP_IE_MBMS_SESSION_ID = 0x5d, + BSSGP_IE_MBMS_SESSION_DURATION = 0x5e, + BSSGP_IE_MBMS_SA_ID_LIST = 0x5f, + BSSGP_IE_MBMS_RESPONSE = 0x60, + BSSGP_IE_MBMS_RA_LIST = 0x61, + BSSGP_IE_MBMS_SESSION_INFO = 0x62, + BSSGP_IE_MBMS_STOP_CAUSE = 0x63, + BSSGP_IE_SBSS_TO_TBSS_TR_CONT = 0x64, + BSSGP_IE_TBSS_TO_SBSS_TR_CONT = 0x65, + BSSGP_IE_NAS_CONT_FOR_PS_HO = 0x66, + BSSGP_IE_PFC_TO_BE_SETUP_LIST = 0x67, + BSSGP_IE_LIST_OF_SETUP_PFC = 0x68, + BSSGP_IE_EXT_FEATURE_BITMAP = 0x69, + BSSGP_IE_SRC_TO_TGT_TR_CONT = 0x6a, + BSSGP_IE_TGT_TO_SRC_TR_CONT = 0x6b, + BSSGP_IE_NC_ID = 0x6c, + BSSGP_IE_PAGE_MODE = 0x6d, + BSSGP_IE_CONTAINER_ID = 0x6e, + BSSGP_IE_GLOBAL_TFI = 0x6f, + BSSGP_IE_IMEI = 0x70, + BSSGP_IE_TIME_TO_MBMS_DATA_XFR = 0x71, + BSSGP_IE_MBMS_SESSION_REP_NR = 0x72, + BSSGP_IE_INTER_RAT_HO_INFO = 0x73, + BSSGP_IE_PS_HO_COMMAND = 0x74, + BSSGP_IE_PS_HO_INDICATIONS = 0x75, + BSSGP_IE_SI_PSI_CONTAINER = 0x76, + BSSGP_IE_ACTIVE_PFC_LIST = 0x77, + BSSGP_IE_VELOCITY_DATA = 0x78, + BSSGP_IE_DTM_HO_COMMAND = 0x79, + BSSGP_IE_CS_INDICATION = 0x7a, + BSSGP_IE_RQD_GANNS_AST_DATA = 0x7b, + BSSGP_IE_GANSS_LOCATION_TYPE = 0x7c, + BSSGP_IE_GANSS_POSITIONING_DATA = 0x7d, + BSSGP_IE_FLOW_CTRL_GRANULARITY = 0x7e, + BSSGP_IE_ENB_ID = 0x7f, + BSSGP_IE_EUTRAN_IRAT_HO_INFO = 0x80, + BSSGP_IE_SUB_PID4RAT_FREQ_PRIO = 0x81, + BSSGP_IE_REQ4IRAT_HO_INFO = 0x82, + BSSGP_IE_RELIABLE_IRAT_HO_INFO = 0x83, + BSSGP_IE_SON_TRANSFER_APP_ID = 0x84, + BSSGP_IE_CSG_ID = 0x85, + BSSGP_IE_TAC = 0x86, + BSSGP_IE_REDIRECT_ATTEMPT_FLAG = 0x87, + BSSGP_IE_REDIRECTION_INDICATION = 0x88, + BSSGP_IE_REDIRECTION_COMPLETED = 0x89, + BSSGP_IE_UNCONF_SEND_STATE_VAR = 0x8a, + BSSGP_IE_IRAT_MEASUREMENT_CONF = 0x8b, + BSSGP_IE_SCI = 0x8c, + BSSGP_IE_GGSN_PGW_LOCATION = 0x8d, + BSSGP_IE_SELECTED_PLMN_ID = 0x8e, + BSSGP_IE_PRIO_CLASS_IND = 0x8f, + BSSGP_IE_SOURCE_CELL_ID = 0x90, + BSSGP_IE_IRAT_MEAS_CFG_E_EARFCN = 0x91, + BSSGP_IE_EDRX_PARAMETERS = 0x92, + BSSGP_IE_T_UNTIL_NEXT_PAGING = 0x93, + BSSGP_IE_COVERAGE_CLASS = 0x98, + BSSGP_IE_PAGING_ATTEMPT_INFO = 0x99, + BSSGP_IE_EXCEPTION_REPORT_FLAG = 0x9a, + BSSGP_IE_OLD_RA_ID = 0x9b, + BSSGP_IE_ATTACH_IND = 0x9c, + BSSGP_IE_PLMN_ID = 0x9d, + BSSGP_IE_MME_QUERY = 0x9e, + BSSGP_IE_SGSN_GROUP_ID = 0x9f, + BSSGP_IE_ADDITIONAL_PTMSI = 0xa0, + BSSGP_IE_UE_USAGE_TYPE = 0xa1, + BSSGP_IE_MLAT_TIMER = 0xa2, + BSSGP_IE_MLAT_TA = 0xa3, + BSSGP_IE_MS_SYNC_ACCURACY = 0xa4, + BSSGP_IE_BTS_RX_ACCURACY_LVL = 0xa5, + BSSGP_IE_TA_REQ = 0xa6, }; /*! Cause coding (Section 11.3.8 / Table 11.10) */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 Gerrit-Change-Number: 21468 Gerrit-PatchSet: 2 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 Wed Dec 2 21:06:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:06:33 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 21:06: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 Dec 2 21:06:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:06:38 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 21:06: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 Dec 2 21:06:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:06:40 +0000 Subject: Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param ...................................................................... common: Introduce OSMOCOM_REPO_MIRROR param This allows easily changing to another osmocom repo base URL if the default one is down. Related: OS#4862 Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e --- M debian-buster-erlang/Dockerfile M debian-buster-simtrace2/Dockerfile M debian-jessie-osmocom/Dockerfile M debian-stretch-build-dist/Dockerfile M debian-stretch-jenkins/Dockerfile M debian-stretch-titan/Dockerfile M make/Makefile M osmo-bsc-latest/Dockerfile M osmo-bsc-master/Dockerfile M osmo-bts-latest/Dockerfile M osmo-bts-master/Dockerfile M osmo-cn-latest/Dockerfile M osmo-ggsn-latest/Dockerfile M osmo-ggsn-master/Dockerfile M osmo-gsm-tester/Dockerfile M osmo-hlr-latest/Dockerfile M osmo-hlr-master/Dockerfile M osmo-hnbgw-latest/Dockerfile M osmo-hnbgw-master/Dockerfile M osmo-mgw-latest/Dockerfile M osmo-mgw-master/Dockerfile M osmo-msc-latest/Dockerfile M osmo-msc-master/Dockerfile M osmo-nitb-latest/Dockerfile M osmo-nitb-master/Dockerfile M osmo-pcu-latest/Dockerfile M osmo-pcu-master/Dockerfile M osmo-remsim-latest/Dockerfile M osmo-remsim-master/Dockerfile M osmo-sgsn-latest/Dockerfile M osmo-sgsn-master/Dockerfile M osmo-sip-latest/Dockerfile M osmo-sip-master/Dockerfile M osmo-smlc-master/Dockerfile M osmo-stp-latest/Dockerfile M osmo-stp-master/Dockerfile M osmo-uecups-master/Dockerfile M osmocom-bb-host-master/Dockerfile 38 files changed, 142 insertions(+), 57 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/debian-buster-erlang/Dockerfile b/debian-buster-erlang/Dockerfile index 8ac470f..401abe6 100644 --- a/debian-buster-erlang/Dockerfile +++ b/debian-buster-erlang/Dockerfile @@ -1,9 +1,11 @@ ARG REGISTRY=docker.io FROM ${REGISTRY}/debian:buster +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_10/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_10/" # install the erlang vm and rebar (2) RUN apt-get update && \ diff --git a/debian-buster-simtrace2/Dockerfile b/debian-buster-simtrace2/Dockerfile index cd1d359..bac3c22 100644 --- a/debian-buster-simtrace2/Dockerfile +++ b/debian-buster-simtrace2/Dockerfile @@ -1,9 +1,11 @@ ARG USER FROM $USER/debian-buster-build +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_10/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_10/" COPY Release.key /tmp/Release.key diff --git a/debian-jessie-osmocom/Dockerfile b/debian-jessie-osmocom/Dockerfile index 77c223f..1a3101d 100644 --- a/debian-jessie-osmocom/Dockerfile +++ b/debian-jessie-osmocom/Dockerfile @@ -1,9 +1,11 @@ ARG REGISTRY=docker.io FROM ${REGISTRY}/debian:jessie +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_8.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_8.0/" COPY Release.key /tmp/Release.key diff --git a/debian-stretch-build-dist/Dockerfile b/debian-stretch-build-dist/Dockerfile index a1f0290..5e12a81 100644 --- a/debian-stretch-build-dist/Dockerfile +++ b/debian-stretch-build-dist/Dockerfile @@ -1,7 +1,9 @@ ARG USER FROM $USER/debian-stretch-build +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index c682d9c..6455a21 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -4,6 +4,8 @@ ARG DEBIAN_VERSION=stretch ARG REGISTRY=docker.io FROM ${REGISTRY}/debian:${DEBIAN_VERSION} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" # Make "$DEBIAN_VERSION" available after FROM # https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact @@ -153,7 +155,7 @@ ENV LANG en_US.UTF-8 # osmo-remsim needs libulfius which is built in osmocom OBS repos: -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key RUN apt-key add /tmp/Release.key && \ rm /tmp/Release.key && \ diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile index 01d941e..4b288d0 100644 --- a/debian-stretch-titan/Dockerfile +++ b/debian-stretch-titan/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" RUN apt-get update && apt-get install -y \ gnupg diff --git a/make/Makefile b/make/Makefile index 63562f3..4f2263b 100644 --- a/make/Makefile +++ b/make/Makefile @@ -35,6 +35,8 @@ PULL?= UPSTREAM_DISTRO?=debian:stretch DISTRO?=debian-stretch +OSMOCOM_REPO_MIRROR?=http://download.opensuse.org +# Use if down: OSMOCOM_REPO_MIRROR=http://ftp.uni-stuttgart.de/opensuse RELEASE_SUPPORT := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))/.make-release-support IMAGE?=$(REGISTRY_HOST)/$(USER)/$(NAME) @@ -64,6 +66,7 @@ --build-arg OSMO_TTCN3_BRANCH=$(OSMO_TTCN3_BRANCH) \ --build-arg UPSTREAM_DISTRO=$(UPSTREAM_DISTRO) \ --build-arg DISTRO=$(DISTRO) \ + --build-arg OSMOCOM_REPO_MIRROR=$(OSMOCOM_REPO_MIRROR) \ --build-arg LIBOSMOCORE_BRANCH=$(LIBOSMOCORE_BRANCH) \ --build-arg OSMO_BB_BRANCH=$(OSMO_BB_BRANCH) \ --build-arg OSMO_BSC_BRANCH=$(OSMO_BSC_BRANCH) \ diff --git a/osmo-bsc-latest/Dockerfile b/osmo-bsc-latest/Dockerfile index 178af72..d327a24 100644 --- a/osmo-bsc-latest/Dockerfile +++ b/osmo-bsc-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-bsc-master/Dockerfile b/osmo-bsc-master/Dockerfile index 6c39831..00ca4cb 100644 --- a/osmo-bsc-master/Dockerfile +++ b/osmo-bsc-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-bts-latest/Dockerfile b/osmo-bts-latest/Dockerfile index 954fc58..87d1f23 100644 --- a/osmo-bts-latest/Dockerfile +++ b/osmo-bts-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-bts-master/Dockerfile b/osmo-bts-master/Dockerfile index df6ebb6..e3adeba 100644 --- a/osmo-bts-master/Dockerfile +++ b/osmo-bts-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-cn-latest/Dockerfile b/osmo-cn-latest/Dockerfile index ca6859d..b2c2a78 100644 --- a/osmo-cn-latest/Dockerfile +++ b/osmo-cn-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Daniel Willmann -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-ggsn-latest/Dockerfile b/osmo-ggsn-latest/Dockerfile index 3430791..d84dd4e 100644 --- a/osmo-ggsn-latest/Dockerfile +++ b/osmo-ggsn-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-ggsn-master/Dockerfile b/osmo-ggsn-master/Dockerfile index a70a62e..1d246d0 100644 --- a/osmo-ggsn-master/Dockerfile +++ b/osmo-ggsn-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-gsm-tester/Dockerfile b/osmo-gsm-tester/Dockerfile index a19c385..675d7df 100644 --- a/osmo-gsm-tester/Dockerfile +++ b/osmo-gsm-tester/Dockerfile @@ -1,5 +1,7 @@ ARG USER FROM $USER/debian-stretch-jenkins +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Pau Espin Pedrol @@ -75,7 +77,7 @@ make && \ make install -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-hlr-latest/Dockerfile b/osmo-hlr-latest/Dockerfile index a8e106c..9468634 100644 --- a/osmo-hlr-latest/Dockerfile +++ b/osmo-hlr-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-hlr-master/Dockerfile b/osmo-hlr-master/Dockerfile index b6e572b..3757a32 100644 --- a/osmo-hlr-master/Dockerfile +++ b/osmo-hlr-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-hnbgw-latest/Dockerfile b/osmo-hnbgw-latest/Dockerfile index b39d2e7..33f9808 100644 --- a/osmo-hnbgw-latest/Dockerfile +++ b/osmo-hnbgw-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-hnbgw-master/Dockerfile b/osmo-hnbgw-master/Dockerfile index 2e7b0b7..46d5fe5 100644 --- a/osmo-hnbgw-master/Dockerfile +++ b/osmo-hnbgw-master/Dockerfile @@ -1,9 +1,13 @@ ARG USER -FROM $USER/debian-stretch-build +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" +FROM $USER/$DISTRO-build +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -14,7 +18,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN apt-get update && \ apt-get install -y --no-install-recommends \ telnet \ diff --git a/osmo-mgw-latest/Dockerfile b/osmo-mgw-latest/Dockerfile index 27fb259..4e81a72 100644 --- a/osmo-mgw-latest/Dockerfile +++ b/osmo-mgw-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-mgw-master/Dockerfile b/osmo-mgw-master/Dockerfile index ccc5d80..12dd1b0 100644 --- a/osmo-mgw-master/Dockerfile +++ b/osmo-mgw-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-msc-latest/Dockerfile b/osmo-msc-latest/Dockerfile index e52a79a..2c42e3d 100644 --- a/osmo-msc-latest/Dockerfile +++ b/osmo-msc-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-msc-master/Dockerfile b/osmo-msc-master/Dockerfile index c7e8508..93d1798 100644 --- a/osmo-msc-master/Dockerfile +++ b/osmo-msc-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-nitb-latest/Dockerfile b/osmo-nitb-latest/Dockerfile index ccdb75a..aae7f84 100644 --- a/osmo-nitb-latest/Dockerfile +++ b/osmo-nitb-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-nitb-master/Dockerfile b/osmo-nitb-master/Dockerfile index edb5434..6542eaf 100644 --- a/osmo-nitb-master/Dockerfile +++ b/osmo-nitb-master/Dockerfile @@ -1,9 +1,14 @@ ARG USER -FROM $USER/debian-stretch-build +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" +FROM $USER/$DISTRO-build +# Arguments used after FROM must be specified again +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -14,7 +19,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN apt-get update && \ apt-get install -y --no-install-recommends \ telnet \ diff --git a/osmo-pcu-latest/Dockerfile b/osmo-pcu-latest/Dockerfile index ad5187e..c259d3c 100644 --- a/osmo-pcu-latest/Dockerfile +++ b/osmo-pcu-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -35,4 +37,4 @@ WORKDIR /data CMD ["/usr/bin/osmo-pcu"] -#EXPOSE +#EXPOSE diff --git a/osmo-pcu-master/Dockerfile b/osmo-pcu-master/Dockerfile index af4426b..e48de6f 100644 --- a/osmo-pcu-master/Dockerfile +++ b/osmo-pcu-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-remsim-latest/Dockerfile b/osmo-remsim-latest/Dockerfile index fdc41ee..56ae863 100644 --- a/osmo-remsim-latest/Dockerfile +++ b/osmo-remsim-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -37,4 +39,4 @@ WORKDIR /data CMD ["/bin/sh", "-c", "/usr/bin/osmo-resmim-server >/data/osmo-resmim-server.log 2>&1"] -#EXPOSE +#EXPOSE diff --git a/osmo-remsim-master/Dockerfile b/osmo-remsim-master/Dockerfile index d50f624..ac940c0 100644 --- a/osmo-remsim-master/Dockerfile +++ b/osmo-remsim-master/Dockerfile @@ -1,8 +1,10 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte @@ -31,7 +33,7 @@ RUN cd vsmartcard/virtualsmartcard && autoreconf -fi && ./configure && make "-j$(nproc)" install -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -46,7 +48,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-sgsn-latest/Dockerfile b/osmo-sgsn-latest/Dockerfile index 23a06a1..324b1be 100644 --- a/osmo-sgsn-latest/Dockerfile +++ b/osmo-sgsn-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-sgsn-master/Dockerfile b/osmo-sgsn-master/Dockerfile index c50b476..6f55bf9 100644 --- a/osmo-sgsn-master/Dockerfile +++ b/osmo-sgsn-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-sip-latest/Dockerfile b/osmo-sip-latest/Dockerfile index a310ecd..7b3bc2c 100644 --- a/osmo-sip-latest/Dockerfile +++ b/osmo-sip-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -31,4 +33,4 @@ WORKDIR /data CMD ["/bin/sh", "-c", "/usr/bin/osmo-sip-connector -c /data/osmo-sip-connector.cfg >/data/osmo-sip-connector.log 2>&1"] -#EXPOSE +#EXPOSE diff --git a/osmo-sip-master/Dockerfile b/osmo-sip-master/Dockerfile index e486979..9793c9c 100644 --- a/osmo-sip-master/Dockerfile +++ b/osmo-sip-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-smlc-master/Dockerfile b/osmo-smlc-master/Dockerfile index b820cf6..c09771d 100644 --- a/osmo-smlc-master/Dockerfile +++ b/osmo-smlc-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-stp-latest/Dockerfile b/osmo-stp-latest/Dockerfile index 6651c44..1a55ee8 100644 --- a/osmo-stp-latest/Dockerfile +++ b/osmo-stp-latest/Dockerfile @@ -1,10 +1,12 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/osmo-stp-master/Dockerfile b/osmo-stp-master/Dockerfile index bc3e177..a38b4a8 100644 --- a/osmo-stp-master/Dockerfile +++ b/osmo-stp-master/Dockerfile @@ -1,12 +1,14 @@ ARG USER ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" FROM $USER/$DISTRO-build # Arguments used after FROM must be specified again ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key @@ -21,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD http://download.opensuse.org/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-uecups-master/Dockerfile b/osmo-uecups-master/Dockerfile index 777797f..fb86563 100644 --- a/osmo-uecups-master/Dockerfile +++ b/osmo-uecups-master/Dockerfile @@ -1,9 +1,11 @@ ARG USER FROM $USER/debian-buster-build +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_10/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_10/" COPY Release.key /tmp/Release.key diff --git a/osmocom-bb-host-master/Dockerfile b/osmocom-bb-host-master/Dockerfile index 4a41085..1684acb 100644 --- a/osmocom-bb-host-master/Dockerfile +++ b/osmocom-bb-host-master/Dockerfile @@ -1,11 +1,16 @@ ARG USER -FROM $USER/debian-stretch-build +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" +FROM $USER/$DISTRO-build +# Arguments used after FROM must be specified again +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" MAINTAINER Harald Welte ARG OSMO_BB_BRANCH="master" -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_9.0/" COPY Release.key /tmp/Release.key -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Wed Dec 2 21:15:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:15:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Re-introduce a 'show ns' command References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21472 ) Change subject: gprs_ns2_vty: Re-introduce a 'show ns' command ...................................................................... gprs_ns2_vty: Re-introduce a 'show ns' command In I157467d6a74d6109bc23521c978c5aac6d29fe50 we introduced a split between 'show ns entities' and 'show ns binds'. However, there is at least one test case in osmo-sgsn.git which depends on 'show ns' working. So let's re-add it as a backwards compatible, hidden command. Change-Id: I7571c6d82f7a712803d09d165abb6c7cb5ae2e5c --- M src/gb/gprs_ns2_vty.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/72/21472/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 97becf6..8b8a999 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -324,6 +324,17 @@ } } +/* 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" @@ -802,6 +813,7 @@ return 0; vty_elements_installed = true; + 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); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7571c6d82f7a712803d09d165abb6c7cb5ae2e5c Gerrit-Change-Number: 21472 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 Dec 2 21:17:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:17:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Re-introduce a 'show ns' command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21472 ) Change subject: gprs_ns2_vty: Re-introduce a 'show ns' command ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7571c6d82f7a712803d09d165abb6c7cb5ae2e5c Gerrit-Change-Number: 21472 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 02 Dec 2020 21:17: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 Dec 2 21:20:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:20:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: Re-introduce a 'show ns' command In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21472 ) Change subject: gprs_ns2_vty: Re-introduce a 'show ns' command ...................................................................... gprs_ns2_vty: Re-introduce a 'show ns' command In I157467d6a74d6109bc23521c978c5aac6d29fe50 we introduced a split between 'show ns entities' and 'show ns binds'. However, there is at least one test case in osmo-sgsn.git which depends on 'show ns' working. So let's re-add it as a backwards compatible, hidden command. Change-Id: I7571c6d82f7a712803d09d165abb6c7cb5ae2e5c --- M src/gb/gprs_ns2_vty.c 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: laforge: 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 97becf6..8b8a999 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -324,6 +324,17 @@ } } +/* 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" @@ -802,6 +813,7 @@ return 0; vty_elements_installed = true; + 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); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7571c6d82f7a712803d09d165abb6c7cb5ae2e5c Gerrit-Change-Number: 21472 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 Dec 2 21:23:54 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 2 Dec 2020 21:23:54 +0000 Subject: Change in osmo-bts[master]: vty: fix dump_lchan_trx_ts(): dump dedicated channels only In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21450 ) Change subject: vty: fix dump_lchan_trx_ts(): dump dedicated channels only ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21450/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/21450/1/src/common/vty.c at 1408 PS1, Line 1408: swi > you are comparing lchan->state with constants for lchan->type? Indeed, this is wrong. Quick & 'safe' if() -> switch() change before pushing to Gerrit... Thanks! -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 Gerrit-Change-Number: 21450 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 21:23: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 Dec 2 21:40:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:40:27 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add logging macros for NSE and BVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 ) Change subject: gbproxy: Add logging macros for NSE and BVC ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Gerrit-Change-Number: 21455 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 21:40: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 Dec 2 21:40:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:40:29 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use LOG macros for NSE/BVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 ) Change subject: gbproxy: Use LOG macros for NSE/BVC ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Gerrit-Change-Number: 21456 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 02 Dec 2020 21:40: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 Dec 2 21:40:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:40:33 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add logging macros for NSE and BVC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 ) Change subject: gbproxy: Add logging macros for NSE and BVC ...................................................................... gbproxy: Add logging macros for NSE and BVC Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Related: SYS#5233 --- M include/osmocom/sgsn/gb_proxy.h 1 file changed, 11 insertions(+), 0 deletions(-) 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 9f91bd6..fae95c1 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -237,6 +237,17 @@ bool is_matching[GBPROX_MATCH_LAST]; }; +/* Convenience logging macros for NSE/BVC */ +#define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ + LOGP(SUBSYS, LEVEL, "NSE(%05u/BSS) " FMT, (NSE)->nsei, ## ARGS) +#define LOGPNSE(NSE, LEVEL, FMT, ARGS...) \ + LOGPNSE_CAT(NSE, DGPRS, LEVEL, FMT, ## ARGS) + +#define LOGPBVC_CAT(BVC, SUBSYS, LEVEL, FMT, ARGS...) \ + LOGP(SUBSYS, LEVEL, "NSE(%05u/BSS)-BVC(%05u/%s) " FMT, (BVC)->nse->nsei, (BVC)->bvci, \ + (BVC)->blocked ? "BLOCKED" : "UNBLOCKED", ## ARGS) +#define LOGPBVC(BVC, LEVEL, FMT, ARGS...) \ + LOGPBVC_CAT(BVC, DGPRS, LEVEL, FMT, ## ARGS) /* gb_proxy_vty .c */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibb2bcf3344bdc750869223b4c4861b4bbc6f417c Gerrit-Change-Number: 21455 Gerrit-PatchSet: 4 Gerrit-Owner: daniel 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 Dec 2 21:40:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:40:34 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use LOG macros for NSE/BVC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 ) Change subject: gbproxy: Use LOG macros for NSE/BVC ...................................................................... gbproxy: Use LOG macros for NSE/BVC Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Related: SYS#5233 --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_tlli.c 3 files changed, 86 insertions(+), 77 deletions(-) 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 997085b..1602207 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -84,12 +84,12 @@ static int check_peer_nsei(struct gbproxy_peer *peer, uint16_t nsei) { + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); if (peer->nse->nsei != nsei) { - LOGP(DGPRS, LOGL_NOTICE, "Peer entry doesn't match current NSEI " - "BVCI=%u via NSEI=%u (expected NSEI=%u)\n", - peer->bvci, nsei, peer->nse->nsei); + LOGPBVC(peer, LOGL_NOTICE, "Peer entry doesn't match current NSEI " + "via NSE(%05u/BSS)\n", nsei); rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_INV_NSEI]); return 0; } @@ -224,7 +224,7 @@ } if (osmo_plmn_cmp(&old_plmn, &state->local_plmn)) - LOGP(DGPRS, LOGL_NOTICE, + LOGPBVC(peer, LOGL_NOTICE, "Patching RAID %sactivated, msg: %s, " "local: %s, core: %s\n", state->local_plmn.mcc || state->local_plmn.mnc ? @@ -257,7 +257,7 @@ } if (bss_ptmsi == GSM_RESERVED_TMSI) - LOGP(DGPRS, LOGL_ERROR, "Failed to allocate a BSS P-TMSI: %d (%s)\n", rc, strerror(-rc)); + LOGPBVC(peer, LOGL_ERROR, "Failed to allocate a BSS P-TMSI: %d (%s)\n", rc, strerror(-rc)); return bss_ptmsi; } @@ -295,7 +295,7 @@ } if (!sgsn_tlli) - LOGP(DGPRS, LOGL_ERROR, "Failed to allocate an SGSN TLLI: %d (%s)\n", rc, strerror(-rc)); + LOGPBVC(peer, LOGL_ERROR, "Failed to allocate an SGSN TLLI: %d (%s)\n", rc, strerror(-rc)); return sgsn_tlli; } @@ -335,6 +335,7 @@ { int rc; struct msgb *stored_msg; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -358,7 +359,7 @@ rc = gbproxy_update_link_state_after(peer, link_info, now, &tmp_parse_ctx); if (rc == 1) { - LOGP(DLLC, LOGL_NOTICE, "link_info deleted while flushing stored messages\n"); + LOGPBVC_CAT(peer, DLLC, LOGL_NOTICE, "link_info deleted while flushing stored messages\n"); msgb_free(stored_msg); return -1; } @@ -367,10 +368,9 @@ msgb_bvci(stored_msg), link_info->sgsn_nsei); if (rc < 0) - LOGP(DLLC, LOGL_ERROR, - "NSEI=%d(BSS) failed to send stored message " + LOGPBVC_CAT(peer, DLLC, LOGL_ERROR, + "failed to send stored message " "(%s)\n", - tmp_parse_ctx.peer_nsei, tmp_parse_ctx.llc_msg_name ? tmp_parse_ctx.llc_msg_name : "BSSGP"); msgb_free(stored_msg); @@ -433,6 +433,7 @@ struct gprs_gb_parse_context *parse_ctx) { struct msgb *stored_msg; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -449,25 +450,23 @@ case GSM48_MT_GMM_RA_UPD_REQ: case GSM48_MT_GMM_ATTACH_REQ: if (gbproxy_restart_imsi_acquisition(link_info)) { - LOGP(DLLC, LOGL_INFO, - "NSEI=%d(BSS) IMSI acquisition was in progress " + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + " IMSI acquisition was in progress " "when receiving an %s.\n", - msgb_nsei(msg), parse_ctx->llc_msg_name); + parse_ctx->llc_msg_name); } break; case GSM48_MT_GMM_DETACH_REQ: /* Nothing has been sent to the SGSN yet */ if (link_info->imsi_acq_pending) { - LOGP(DLLC, LOGL_INFO, - "NSEI=%d(BSS) IMSI acquisition was in progress " - "when receiving a DETACH_REQ.\n", - msgb_nsei(msg)); + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + "IMSI acquisition was in progress " + "when receiving a DETACH_REQ.\n"); } if (!parse_ctx->invalidate_tlli) { - LOGP(DLLC, LOGL_INFO, - "NSEI=%d(BSS) IMSI not yet acquired, " - "faking a DETACH_ACC.\n", - msgb_nsei(msg)); + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + "IMSI not yet acquired, " + "faking a DETACH_ACC.\n"); gbproxy_tx_detach_acc(peer, link_info, msgb_bvci(msg)); parse_ctx->invalidate_tlli = 1; } @@ -483,10 +482,9 @@ gsm48_hdr_pdisc(parse_ctx->g48_hdr) == GSM48_PDISC_MM_GPRS && gsm48_hdr_msg_type(parse_ctx->g48_hdr) == GSM48_MT_GMM_ID_RESP; - LOGP(DLLC, LOGL_DEBUG, - "NSEI=%d(BSS) IMSI acquisition succeeded, " - "flushing stored messages\n", - msgb_nsei(msg)); + LOGPBVC_CAT(peer, DLLC, LOGL_DEBUG, + "IMSI acquisition succeeded, " + "flushing stored messages\n"); /* The IMSI is now available. If flushing the messages fails, * then link_info has been deleted and we should return * immediately. */ @@ -512,20 +510,19 @@ struct msgb *msgb_drop; msgb_drop = msgb_dequeue_count(&link_info->stored_msgs, &link_info->stored_msgs_len); - LOGP(DLLC, LOGL_INFO, - "NSEI=%d(BSS) Dropping stored msgb from list " + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + "Dropping stored msgb from list " "(!acq imsi, length %d, max_len exceeded)\n", - msgb_nsei(msgb_drop), link_info->stored_msgs_len); + link_info->stored_msgs_len); msgb_free(msgb_drop); } } /* Enqueue unpatched messages */ - LOGP(DLLC, LOGL_INFO, - "NSEI=%d(BSS) IMSI acquisition in progress, " + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + "IMSI acquisition in progress, " "storing message (%s)\n", - msgb_nsei(msg), parse_ctx->llc_msg_name ? parse_ctx->llc_msg_name : "BSSGP"); stored_msg = bssgp_msgb_copy(msg, "process_bssgp_ul"); @@ -533,10 +530,9 @@ &link_info->stored_msgs_len); if (!link_info->imsi_acq_pending) { - LOGP(DLLC, LOGL_INFO, - "NSEI=%d(BSS) IMSI is required but not available, " + LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + "IMSI is required but not available, " "initiating identification procedure (%s)\n", - msgb_nsei(msg), parse_ctx->llc_msg_name ? parse_ctx->llc_msg_name : "BSSGP"); gbproxy_acquire_imsi(peer, link_info, msgb_bvci(msg)); @@ -986,9 +982,8 @@ } if (peer->blocked) { - LOGP(DGPRS, LOGL_NOTICE, "Dropping PDU for " - "blocked BVCI=%u via NSEI=%u\n", - ns_bvci, nsei); + LOGPBVC(peer, LOGL_NOTICE, "Dropping PDU for " + "blocked BVC via NSE(%05u/SGSN)\n", nsei); rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); return bssgp_tx_status(BSSGP_CAUSE_BVCI_BLOCKED, &ns_bvci, msg); } @@ -1059,9 +1054,9 @@ memcpy(from_peer->ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), sizeof(from_peer->ra)); gsm48_parse_ra(&raid, from_peer->ra); - LOGP(DGPRS, LOGL_INFO, "NSEI=%u BSSGP SUSPEND/RESUME " - "RAI snooping: RAI %s behind BVCI=%u\n", - nsei, osmo_rai_name(&raid), from_peer->bvci); + LOGPBVC(from_peer, LOGL_INFO, "BSSGP SUSPEND/RESUME " + "RAI snooping: RAI %s\n", + osmo_rai_name(&raid)); /* FIXME: This only supports one BSS per RA */ break; case BSSGP_PDUT_BVC_RESET: @@ -1076,14 +1071,16 @@ struct gbproxy_nse *nse; /* Ensure the NSE peer is there and clear all PtP BVCs */ nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); - if (!nse) + if (!nse) { LOGP(DGPRS, LOGL_ERROR, "Could not allocate NSE for NSEI=%u\n", nsei); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); + } gbproxy_cleanup_peers(cfg, nsei, 0); /* FIXME: only do this if SGSN is alive! */ - LOGP(DGPRS, LOGL_INFO, "NSEI=%u Tx fake " - "BVC RESET ACK of BVCI=0\n", nsei); + LOGPNSE(nse, LOGL_INFO, "Tx fake " + "BVC RESET ACK of BVCI=0\n"); return bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, ns_bvci); } @@ -1097,21 +1094,20 @@ } /* if a PTP-BVC is reset, and we don't know that * PTP-BVCI yet, we should allocate a new peer */ - LOGP(DGPRS, LOGL_INFO, "Allocationg new peer for BVCI=%u via NSEI=%u\n", bvci, nsei); from_peer = gbproxy_peer_alloc(nse, bvci); OSMO_ASSERT(from_peer); + LOGPBVC(from_peer, LOGL_INFO, "Allocated new peer\n"); } /* Could have moved to a different NSE */ if (!check_peer_nsei(from_peer, nsei)) { - struct gbproxy_nse *nse_old = from_peer->nse; struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); if (!nse_new) { LOGP(DGPRS, LOGL_NOTICE, "Got PtP BVC reset before signalling reset for " "BVCI=%u NSEI=%u\n", bvci, nsei); return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); } - LOGP(DGPRS, LOGL_NOTICE, "Peer for BVCI=%u moved from NSEI=%u to NSEI=%u\n", bvci, nse_old->nsei, nsei); + LOGPBVC(from_peer, LOGL_NOTICE, "Peer moved to NSEI=%u\n", nsei); /* Move peer to different NSE */ gbproxy_peer_move(from_peer, nse_new); @@ -1127,8 +1123,8 @@ TLVP_VAL(&tp, BSSGP_IE_CELL_ID), sizeof(from_peer->ra)); gsm48_parse_ra(&raid, from_peer->ra); - LOGP(DGPRS, LOGL_INFO, "NSEI=%u/BVCI=%u Cell ID %s\n", - nsei, bvci, osmo_rai_name(&raid)); + LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", + osmo_rai_name(&raid)); } if (cfg->route_to_sgsn2) copy_to_sgsn2 = 1; @@ -1169,19 +1165,19 @@ /* FIXME: Handle paging logic to only page each matching NSE */ - LOGP(DGPRS, LOGL_INFO, "NSEI=%u(SGSN) BSSGP PAGING ", + LOGP(DGPRS, LOGL_INFO, "NSEI=%u(SGSN) BSSGP PAGING\n", nsei); if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; peer = gbproxy_peer_by_bvci(cfg, bvci); - LOGPC(DGPRS, LOGL_INFO, "routing by BVCI to peer BVCI=%u\n", bvci); if (!peer) { LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u(SGSN) BSSGP PAGING: " "unable to route: BVCI=%u unknown\n", nsei, bvci); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } + LOGPBVC(peer, LOGL_INFO, "routing by BVCI\n"); return gbprox_relay2peer(msg, peer, ns_bvci); } else if (TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA)) { errctr = GBPROX_GLOB_CTR_INV_RAI; @@ -1189,7 +1185,7 @@ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { - LOGPC(DGPRS, LOGL_INFO, "routing by RAI to peer NSEI=%u\n", peer->bvci); + LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; /* Only send it once to each NSE */ @@ -1203,7 +1199,7 @@ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { - LOGPC(DGPRS, LOGL_INFO, "routing by LAI to peer BVCI=%u\n", peer->bvci); + LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; /* Only send it once to each NSE */ @@ -1215,7 +1211,7 @@ /* iterate over all peers and dispatch the paging to each matching one */ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { - LOGPC(DGPRS, LOGL_INFO, "broadcasting to peer BVCI=%u\n", peer->bvci); + LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; /* Only send it once to each NSE */ @@ -1223,7 +1219,6 @@ } } } else { - LOGPC(DGPRS, LOGL_INFO, "\n"); LOGP(DGPRS, LOGL_ERROR, "NSEI=%u(SGSN) BSSGP PAGING: " "unable to route, missing IE\n", nsei); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); diff --git a/src/gbproxy/gb_proxy_patch.c b/src/gbproxy/gb_proxy_patch.c index 6601657..5915722 100644 --- a/src/gbproxy/gb_proxy_patch.c +++ b/src/gbproxy/gb_proxy_patch.c @@ -36,6 +36,7 @@ static void gbproxy_patch_raid(struct gsm48_ra_id *raid_enc, struct gbproxy_peer *peer, int to_bss, const char *log_text) { + OSMO_ASSERT(peer); struct gbproxy_patch_state *state = &peer->patch_state; struct osmo_plmn_id old_plmn; struct gprs_ra_id raid; @@ -79,7 +80,7 @@ } } - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %s to %s: " "%s-%d-%d -> %s\n", log_text, @@ -104,6 +105,7 @@ size_t apn_len = hdr->apn_len; uint8_t *apn = hdr->apn; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -114,7 +116,7 @@ if (cfg->core_apn_size == 0) { char str1[110]; /* Remove the IE */ - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %s to SGSN: Removing APN '%s'\n", log_text, osmo_apn_to_str(str1, apn, apn_len)); @@ -128,7 +130,7 @@ OSMO_ASSERT(cfg->core_apn_size <= 100); - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %s to SGSN: " "Replacing APN '%s' -> '%s'\n", log_text, @@ -156,6 +158,7 @@ to_bss ? GBPROX_PEER_CTR_TLLI_PATCHED_SGSN : GBPROX_PEER_CTR_TLLI_PATCHED_BSS; + OSMO_ASSERT(peer); memcpy(&tlli_be, tlli_enc, sizeof(tlli_be)); tlli = ntohl(tlli_be); @@ -163,7 +166,7 @@ if (tlli == new_tlli) return 0; - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %ss: " "Replacing %08x -> %08x\n", log_text, tlli, new_tlli); @@ -187,13 +190,15 @@ to_bss ? GBPROX_PEER_CTR_PTMSI_PATCHED_SGSN : GBPROX_PEER_CTR_PTMSI_PATCHED_BSS; + OSMO_ASSERT(peer); + memcpy(&ptmsi_be, ptmsi_enc, sizeof(ptmsi_be)); ptmsi = ntohl(ptmsi_be); if (ptmsi == new_ptmsi) return 0; - LOGP(DGPRS, LOGL_DEBUG, + LOGPBVC(peer, LOGL_DEBUG, "Patching %ss: " "Replacing %08x -> %08x\n", log_text, ptmsi, new_ptmsi); @@ -214,6 +219,7 @@ struct gprs_llc_hdr_parsed *ghp = &parse_ctx->llc_hdr_parsed; int have_patched = 0; int fcs; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -281,7 +287,7 @@ /* Fix FCS */ fcs = gprs_llc_fcs(llc, ghp->crc_length); - LOGP(DLLC, LOGL_DEBUG, "Updated LLC message, CRC: %06x -> %06x\n", + LOGPBVC_CAT(peer, DLLC, LOGL_DEBUG, "Updated LLC message, CRC: %06x -> %06x\n", ghp->fcs, fcs); llc[llc_len - 3] = fcs & 0xff; @@ -401,8 +407,8 @@ patch_error: OSMO_ASSERT(err_ctr >= 0); rate_ctr_inc(&peer->ctrg->ctr[err_ctr]); - LOGP(DGPRS, LOGL_ERROR, - "NSEI=%u(%s) failed to patch BSSGP message as requested: %s.\n", + LOGPBVC(peer, LOGL_ERROR, + "NSE(%05u/%s) failed to patch BSSGP message as requested: %s.\n", msgb_nsei(msg), parse_ctx->to_bss ? "SGSN" : "BSS", err_info); } diff --git a/src/gbproxy/gb_proxy_tlli.c b/src/gbproxy/gb_proxy_tlli.c index 9487459..b84d1ea 100644 --- a/src/gbproxy/gb_proxy_tlli.c +++ b/src/gbproxy/gb_proxy_tlli.c @@ -179,6 +179,7 @@ int gbproxy_remove_stale_link_infos(struct gbproxy_peer *peer, time_t now) { + OSMO_ASSERT(peer); struct gbproxy_patch_state *state = &peer->patch_state; int exceeded_max_len = 0; int deleted_count = 0; @@ -199,7 +200,7 @@ link_info = llist_entry(state->logical_links.prev, struct gbproxy_link_info, list); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list " "(stale, length %d, max_len exceeded)\n", link_info->tlli.current, state->logical_link_count); @@ -221,7 +222,7 @@ continue; } - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list " "(stale, age %d, max_age exceeded)\n", link_info->tlli.current, (int)age); @@ -278,10 +279,11 @@ void gbproxy_reassign_tlli(struct gbproxy_tlli_state *tlli_state, struct gbproxy_peer *peer, uint32_t new_tlli) { + OSMO_ASSERT(peer); if (new_tlli == tlli_state->current) return; - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "The TLLI has been reassigned from %08x to %08x\n", tlli_state->current, new_tlli); @@ -354,11 +356,12 @@ static int gbproxy_unregister_link_info(struct gbproxy_peer *peer, struct gbproxy_link_info *link_info) { + OSMO_ASSERT(peer); if (!link_info) return 1; if (link_info->tlli.ptmsi == GSM_RESERVED_TMSI && !link_info->imsi_len) { - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list (P-TMSI or IMSI are not set)\n", link_info->tlli.current); gbproxy_delete_link_info(peer, link_info); @@ -398,6 +401,7 @@ int imsi_matches; struct gbproxy_link_info *other_link_info; enum gbproxy_match_id match_id; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -410,9 +414,9 @@ struct osmo_mobile_identity mi; if (osmo_mobile_identity_decode(&mi, parse_ctx->imsi, parse_ctx->imsi_len, false) || mi.type != GSM_MI_TYPE_IMSI) { - LOGP(DGPRS, LOGL_ERROR, "Failed to decode Mobile Identity\n"); + LOGPBVC(peer, LOGL_ERROR, "Failed to decode Mobile Identity\n"); } else { - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list (IMSI %s re-used)\n", other_link_info->tlli.current, mi.imsi); gbproxy_delete_link_info(peer, other_link_info); @@ -454,6 +458,7 @@ static void gbproxy_remove_matching_link_infos( struct gbproxy_peer *peer, struct gbproxy_link_info *link_info) { + OSMO_ASSERT(peer); struct gbproxy_link_info *info, *nxt; struct gbproxy_patch_state *state = &peer->patch_state; @@ -467,7 +472,7 @@ !gbproxy_tlli_match(&link_info->sgsn_tlli, &info->sgsn_tlli))) continue; - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list (P-TMSI/TLLI re-used)\n", info->tlli.current); gbproxy_delete_link_info(peer, info); @@ -518,6 +523,7 @@ { struct gbproxy_link_info *link_info; int tlli_is_valid; + OSMO_ASSERT(peer); link_info = gbproxy_get_link_info_ul(peer, &tlli_is_valid, parse_ctx); @@ -525,7 +531,7 @@ uint32_t sgsn_tlli; if (!link_info) { - LOGP(DGPRS, LOGL_INFO, "Adding TLLI %08x to list\n", + LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list\n", parse_ctx->tlli); link_info = gbproxy_link_info_alloc(peer); gbproxy_attach_link_info(peer, now, link_info); @@ -596,6 +602,7 @@ struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info = NULL; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -615,7 +622,7 @@ if (new_bss_ptmsi == GSM_RESERVED_TMSI) new_bss_ptmsi = gbproxy_make_bss_ptmsi(peer, new_sgsn_ptmsi); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Got new PTMSI %08x from SGSN, using %08x for BSS\n", new_sgsn_ptmsi, new_bss_ptmsi); /* Setup PTMSIs */ @@ -629,7 +636,7 @@ uint32_t new_ptmsi; gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list (SGSN, new P-TMSI is %08x)\n", parse_ctx->tlli, new_ptmsi); @@ -644,7 +651,7 @@ /* Unknown SGSN TLLI, create a new link_info */ uint32_t new_ptmsi; link_info = gbproxy_link_info_alloc(peer); - LOGP(DGPRS, LOGL_INFO, "Adding TLLI %08x to list (SGSN)\n", + LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list (SGSN)\n", parse_ctx->tlli); gbproxy_attach_link_info(peer, now, link_info); @@ -658,7 +665,7 @@ /* A new P-TMSI has been signalled in the message */ gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Assigning new P-TMSI %08x\n", new_ptmsi); /* Setup P-TMSIs */ link_info->sgsn_tlli.ptmsi = new_ptmsi; @@ -686,6 +693,7 @@ struct gprs_gb_parse_context *parse_ctx) { int rc = 0; + OSMO_ASSERT(peer); OSMO_ASSERT(peer->nse); struct gbproxy_config *cfg = peer->nse->cfg; OSMO_ASSERT(cfg); @@ -698,11 +706,11 @@ (cfg->keep_link_infos == GBPROX_KEEP_IDENTIFIED && link_info->imsi_len > 0); if (keep_info) { - LOGP(DGPRS, LOGL_INFO, "Unregistering TLLI %08x\n", + LOGPBVC(peer, LOGL_INFO, "Unregistering TLLI %08x\n", link_info->tlli.current); rc = gbproxy_unregister_link_info(peer, link_info); } else { - LOGP(DGPRS, LOGL_INFO, "Removing TLLI %08x from list\n", + LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list\n", link_info->tlli.current); gbproxy_delete_link_info(peer, link_info); rc = 1; @@ -719,7 +727,7 @@ new_sgsn_tlli = gprs_tmsi2tlli(new_sgsn_ptmsi, TLLI_LOCAL); if (new_bss_ptmsi != GSM_RESERVED_TMSI) new_bss_tlli = gprs_tmsi2tlli(new_bss_ptmsi, TLLI_LOCAL); - LOGP(DGPRS, LOGL_INFO, + LOGPBVC(peer, LOGL_INFO, "Assigning new TLLI %08x to SGSN, %08x to BSS\n", new_sgsn_tlli, new_bss_tlli); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If445f18bc8390c338b5aeb9085951ea392e68b3a Gerrit-Change-Number: 21456 Gerrit-PatchSet: 4 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 Wed Dec 2 21:42:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:42:52 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Change generic LOG messages so BVCI/NSEI fmt is consistent In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#3) to the change originally created by daniel. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 ) Change subject: gbproxy: Change generic LOG messages so BVCI/NSEI fmt is consistent ...................................................................... gbproxy: Change generic LOG messages so BVCI/NSEI fmt is consistent We actually need to alter our compiler flags to avoid -Werror=trigraphs creating trouble: gb_proxy.c: In function ?block_unblock_peer?: gb_proxy.c:875:37: error: trigraph ??) ignored, use -trigraphs to enable [-Werror=trigraphs] 875 | LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", | Fixes: SYS#5233 Change-Id: I93296353dd964602699480faae1248096e331c6a --- M configure.ac M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_main.c 3 files changed, 44 insertions(+), 42 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/60/21460/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I93296353dd964602699480faae1248096e331c6a Gerrit-Change-Number: 21460 Gerrit-PatchSet: 3 Gerrit-Owner: daniel 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 Dec 2 21:45:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 21:45:52 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD 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/+/21469 to look at the new patch set (#2). Change subject: gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD ...................................................................... gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD Both BSSGP messages appear from the SGSN in downlink on BVCI=0. We must send a copy of this message to each of the BSS side NSEs. Change-Id: Ia19791b143989eb1490f461d88b9edbd8e3b82be Closes: OS#4875 --- M src/gbproxy/gb_proxy.c 1 file changed, 8 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/69/21469/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia19791b143989eb1490f461d88b9edbd8e3b82be Gerrit-Change-Number: 21469 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 Dec 2 22:16:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 22:16:40 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Change generic LOG messages so BVCI/NSEI fmt is consistent In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 ) Change subject: gbproxy: Change generic LOG messages so BVCI/NSEI fmt is consistent ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I93296353dd964602699480faae1248096e331c6a Gerrit-Change-Number: 21460 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 22:16: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 Dec 2 22:16:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 22:16:42 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add todos encountered while going through the code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21462 ) Change subject: gbproxy: Add todos encountered while going through the code ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8c3a788f008d3cb2d067d974c2b1b9ca45185d8d Gerrit-Change-Number: 21462 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 22:16: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 Dec 2 22:16:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 22:16:45 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21469 ) Change subject: gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia19791b143989eb1490f461d88b9edbd8e3b82be Gerrit-Change-Number: 21469 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 02 Dec 2020 22:16: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 Dec 2 22:16:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 22:16:46 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Change generic LOG messages so BVCI/NSEI fmt is consistent In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 ) Change subject: gbproxy: Change generic LOG messages so BVCI/NSEI fmt is consistent ...................................................................... gbproxy: Change generic LOG messages so BVCI/NSEI fmt is consistent We actually need to alter our compiler flags to avoid -Werror=trigraphs creating trouble: gb_proxy.c: In function ?block_unblock_peer?: gb_proxy.c:875:37: error: trigraph ??) ignored, use -trigraphs to enable [-Werror=trigraphs] 875 | LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", | Fixes: SYS#5233 Change-Id: I93296353dd964602699480faae1248096e331c6a --- M configure.ac M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_main.c 3 files changed, 44 insertions(+), 42 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 346e020..0ed36b8 100644 --- a/configure.ac +++ b/configure.ac @@ -118,8 +118,8 @@ CFLAGS="$saved_CFLAGS" AC_SUBST(SYMBOL_VISIBILITY) -CPPFLAGS="$CPPFLAGS -Wall" -CFLAGS="$CFLAGS -Wall" +CPPFLAGS="$CPPFLAGS -Wall -Wno-trigraphs" +CFLAGS="$CFLAGS -Wall -Wno-trigraphs" AX_CHECK_COMPILE_FLAG([-Werror=implicit], [CFLAGS="$CFLAGS -Werror=implicit"]) AX_CHECK_COMPILE_FLAG([-Werror=maybe-uninitialized], [CFLAGS="$CFLAGS -Werror=maybe-uninitialized"]) diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 1602207..2c58e80 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -564,7 +564,7 @@ if (!peer) { LOGP(DLLC, LOGL_INFO, - "NSEI=%d(%s) patching: didn't find peer for message, " + "NSE(%05u/%s) patching: didn't find peer for message, " "PDU %d\n", msgb_nsei(msg), parse_ctx->to_bss ? "BSS" : "SGSN", parse_ctx->pdu_type); @@ -600,11 +600,11 @@ if (!rc && !parse_ctx.need_decryption) { LOGP(DGPRS, LOGL_ERROR, - "NSEI=%u(BSS) patching: failed to parse invalid %s message\n", + "NSE(%05u/BSS) patching: failed to parse invalid %s message\n", msgb_nsei(msg), gprs_gb_message_name(&parse_ctx, "NS_UNITDATA")); gprs_gb_log_parse_context(LOGL_NOTICE, &parse_ctx, "NS_UNITDATA"); LOGP(DGPRS, LOGL_NOTICE, - "NSEI=%u(BSS) invalid message was: %s\n", + "NSE(%05u/BSS) invalid message was: %s\n", msgb_nsei(msg), msgb_hexdump(msg)); return 0; } @@ -717,11 +717,11 @@ if (!rc && !parse_ctx.need_decryption) { LOGP(DGPRS, LOGL_ERROR, - "NSEI=%u(SGSN) patching: failed to parse invalid %s message\n", + "NSE(%05u/SGSN) patching: failed to parse invalid %s message\n", msgb_nsei(msg), gprs_gb_message_name(&parse_ctx, "NS_UNITDATA")); gprs_gb_log_parse_context(LOGL_NOTICE, &parse_ctx, "NS_UNITDATA"); LOGP(DGPRS, LOGL_NOTICE, - "NSEI=%u(SGSN) invalid message was: %s\n", + "NSE(%05u/SGSN) invalid message was: %s\n", msgb_nsei(msg), msgb_hexdump(msg)); return; } @@ -794,7 +794,7 @@ struct msgb *msg = bssgp_msgb_copy(old_msg, "msgb_relay2sgsn"); int rc; - DEBUGP(DGPRS, "NSEI=%u proxying BTS->SGSN (NS_BVCI=%u, NSEI=%u)\n", + DEBUGP(DGPRS, "NSE(%05u/BSS)-BVC(%05u) proxying BTS->SGSN NSE(%05u/SGSN)\n", msgb_nsei(msg), ns_bvci, sgsn_nsei); nsp.bvci = ns_bvci; @@ -824,7 +824,7 @@ uint32_t tlli; int rc; - DEBUGP(DGPRS, "NSEI=%u proxying SGSN->BSS (NS_BVCI=%u, NSEI=%u)\n", + DEBUGP(DGPRS, "NSE(%05u/SGSN)-BVC(%05u) proxying SGSN->BSS NSE(%05u/BSS)\n", msgb_nsei(msg), ns_bvci, nse->nsei); nsp.bvci = ns_bvci; @@ -872,7 +872,7 @@ peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); if (!peer) { - LOGP(DGPRS, LOGL_ERROR, "BVCI=%u: Cannot find BSS\n", + LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", ptp_bvci); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); return -ENOENT; @@ -902,7 +902,7 @@ peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); if (!peer) { - LOGP(DGPRS, LOGL_ERROR, "BVCI=%u: Cannot find BSS\n", + LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", ptp_bvci); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); return -ENOENT; @@ -928,8 +928,8 @@ peer = gbproxy_peer_by_bvci(cfg, ns_bvci); if (!peer) { - LOGP(DGPRS, LOGL_NOTICE, "Didn't find peer for " - "BVCI=%u for PTP message from NSEI=%u (BSS), " + LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find peer " + "for PTP message from NSE(%05u/BSS), " "discarding message\n", ns_bvci, nsei); return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, @@ -972,8 +972,8 @@ /* Send status messages before patching */ if (!peer) { - LOGP(DGPRS, LOGL_INFO, "Didn't find peer for " - "BVCI=%u for message from NSEI=%u (SGSN)\n", + LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find peer for " + "for message from NSE(%05u/SGSN)\n", ns_bvci, nsei); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_BVCI]); @@ -1022,7 +1022,7 @@ int rc; if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u BVCI=%u is not signalling\n", + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) BVCI=%05u is not signalling\n", nsei, ns_bvci); return -EINVAL; } @@ -1031,7 +1031,7 @@ * just to make sure */ if (pdu_type == BSSGP_PDUT_UL_UNITDATA || pdu_type == BSSGP_PDUT_DL_UNITDATA) { - LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u UNITDATA not allowed in " + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) UNITDATA not allowed in " "signalling\n", nsei); return -EINVAL; } @@ -1065,14 +1065,14 @@ * is common for all point-to-point BVCs (and thus all BTS) */ if (TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) { uint16_t bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - LOGP(DGPRS, LOGL_INFO, "NSEI=%u Rx BVC RESET (BVCI=%u)\n", + LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); if (bvci == 0) { struct gbproxy_nse *nse; /* Ensure the NSE peer is there and clear all PtP BVCs */ nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); if (!nse) { - LOGP(DGPRS, LOGL_ERROR, "Could not allocate NSE for NSEI=%u\n", nsei); + LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); } @@ -1088,8 +1088,8 @@ if (!from_peer) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); if (!nse) { - LOGP(DGPRS, LOGL_NOTICE, "Got PtP BVC reset before signalling reset for " - "BVCI=%u NSEI=%u\n", bvci, nsei); + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " + "BVCI=%05u\n", nsei, bvci); return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); } /* if a PTP-BVC is reset, and we don't know that @@ -1101,13 +1101,14 @@ /* Could have moved to a different NSE */ if (!check_peer_nsei(from_peer, nsei)) { + LOGPBVC(from_peer, LOGL_NOTICE, "moving peer to NSE(%05u)\n", nsei); + struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); if (!nse_new) { - LOGP(DGPRS, LOGL_NOTICE, "Got PtP BVC reset before signalling reset for " - "BVCI=%u NSEI=%u\n", bvci, nsei); + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " + "BVCI=%05u\n", bvci, nsei); return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); } - LOGPBVC(from_peer, LOGL_NOTICE, "Peer moved to NSEI=%u\n", nsei); /* Move peer to different NSE */ gbproxy_peer_move(from_peer, nse_new); @@ -1143,12 +1144,12 @@ return gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn_nsei); err_no_peer: - LOGP(DGPRS, LOGL_ERROR, "NSEI=%u(BSS) cannot find peer based on NSEI\n", + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) cannot find peer based on NSEI\n", nsei); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_NSEI]); return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); err_mand_ie: - LOGP(DGPRS, LOGL_ERROR, "NSEI=%u(BSS) missing mandatory RA IE\n", + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) missing mandatory RA IE\n", nsei); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); @@ -1165,15 +1166,15 @@ /* FIXME: Handle paging logic to only page each matching NSE */ - LOGP(DGPRS, LOGL_INFO, "NSEI=%u(SGSN) BSSGP PAGING\n", + LOGP(DGPRS, LOGL_INFO, "NSE(%05u/SGSN) BSSGP PAGING\n", nsei); if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; peer = gbproxy_peer_by_bvci(cfg, bvci); if (!peer) { - LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u(SGSN) BSSGP PAGING: " - "unable to route: BVCI=%u unknown\n", nsei, bvci); + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP PAGING: " + "unable to route: BVCI=%05u unknown\n", nsei, bvci); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } @@ -1219,13 +1220,13 @@ } } } else { - LOGP(DGPRS, LOGL_ERROR, "NSEI=%u(SGSN) BSSGP PAGING: " + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BSSGP PAGING: " "unable to route, missing IE\n", nsei); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); } if (n_nses == 0) { - LOGP(DGPRS, LOGL_ERROR, "NSEI=%u(SGSN) BSSGP PAGING: " + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BSSGP PAGING: " "unable to route, no destination found\n", nsei); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; @@ -1256,7 +1257,7 @@ * respective peer */ peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); if (!peer) { - LOGP(DGPRS, LOGL_ERROR, "NSEI=%u BVCI=%u: Cannot find BSS\n", + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BVCI=%05u: Cannot find BSS\n", nsei, ptp_bvci); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_BVCI]); @@ -1295,7 +1296,7 @@ int cause; if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u(SGSN) BVCI=%u is not " + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BVCI=%05u is not " "signalling\n", nsei, ns_bvci); /* FIXME: Send proper error message */ return -EINVAL; @@ -1305,7 +1306,7 @@ * just to make sure */ if (pdu_type == BSSGP_PDUT_UL_UNITDATA || pdu_type == BSSGP_PDUT_DL_UNITDATA) { - LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u(SGSN) UNITDATA not allowed in " + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) UNITDATA not allowed in " "signalling\n", nsei); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } @@ -1349,7 +1350,7 @@ case BSSGP_PDUT_STATUS: /* Some exception has occurred */ LOGP(DGPRS, LOGL_NOTICE, - "NSEI=%u(SGSN) BSSGP STATUS ", nsei); + "NSE(%05u/SGSN) BSSGP STATUS ", nsei); if (!TLVP_PRESENT(&tp, BSSGP_IE_CAUSE)) { LOGPC(DGPRS, LOGL_NOTICE, "\n"); goto err_mand_ie; @@ -1360,7 +1361,7 @@ bssgp_cause_str(cause)); if (TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) { bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - LOGPC(DGPRS, LOGL_NOTICE, "BVCI=%u\n", bvci); + LOGPC(DGPRS, LOGL_NOTICE, "BVCI=%05u\n", bvci); if (cause == BSSGP_CAUSE_UNKNOWN_BVCI) rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); @@ -1386,7 +1387,7 @@ goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); if (bvci == 0) { - LOGP(DGPRS, LOGL_NOTICE, "NSEI=%u(SGSN) BSSGP " + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP " "%sBLOCK_ACK for signalling BVCI ?!?\n", nsei, pdu_type == BSSGP_PDUT_BVC_UNBLOCK_ACK ? "UN":""); /* should we send STATUS ? */ @@ -1400,13 +1401,14 @@ break; case BSSGP_PDUT_SGSN_INVOKE_TRACE: LOGP(DGPRS, LOGL_ERROR, - "NSEI=%u(SGSN) BSSGP INVOKE TRACE not supported\n",nsei); + "NSE(%05u/SGSN) BSSGP INVOKE TRACE not supported\n", nsei); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_NOT_SUPPORTED_SGSN]); rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, orig_msg); break; default: - LOGP(DGPRS, LOGL_NOTICE, "BSSGP PDU type %s not supported\n", bssgp_pdu_str(pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP PDU type %s not supported\n", nsei, + bssgp_pdu_str(pdu_type)); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); @@ -1417,14 +1419,14 @@ return rc; err_mand_ie: - LOGP(DGPRS, LOGL_ERROR, "NSEI=%u(SGSN) missing mandatory IE\n", + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) missing mandatory IE\n", nsei); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); msgb_free(msg); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, orig_msg); err_no_peer: - LOGP(DGPRS, LOGL_ERROR, "NSEI=%u(SGSN) cannot find peer based on RAI\n", + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) cannot find peer based on RAI\n", nsei); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_RAI]); msgb_free(msg); diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index 3ab8e49..c7ff78c 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -321,7 +321,7 @@ } if (!gprs_ns2_nse_by_nsei(gbcfg->nsi, gbcfg->nsip_sgsn_nsei)) { - LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSEI %u " + LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSE(%05u) " "without creating that NSEI before\n", gbcfg->nsip_sgsn_nsei); exit(2); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I93296353dd964602699480faae1248096e331c6a Gerrit-Change-Number: 21460 Gerrit-PatchSet: 3 Gerrit-Owner: daniel 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 Dec 2 22:16:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 22:16:47 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add todos encountered while going through the code In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21462 ) Change subject: gbproxy: Add todos encountered while going through the code ...................................................................... gbproxy: Add todos encountered while going through the code Change-Id: I8c3a788f008d3cb2d067d974c2b1b9ca45185d8d --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 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 2c58e80..0d79ff7 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -936,6 +936,7 @@ &ns_bvci, msg); } + /* TODO: Should we discard this message if the check fails */ check_peer_nsei(peer, nsei); rc = gbprox_process_bssgp_ul(cfg, msg, peer); @@ -1390,7 +1391,7 @@ LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP " "%sBLOCK_ACK for signalling BVCI ?!?\n", nsei, pdu_type == BSSGP_PDUT_BVC_UNBLOCK_ACK ? "UN":""); - /* should we send STATUS ? */ + /* TODO: should we send STATUS ? */ rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_BVCI]); } else { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8c3a788f008d3cb2d067d974c2b1b9ca45185d8d Gerrit-Change-Number: 21462 Gerrit-PatchSet: 2 Gerrit-Owner: daniel 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 Dec 2 22:16:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 22:16:47 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21469 ) Change subject: gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD ...................................................................... gb_proxy: Broadcast SGSN-INVOKE-TRACE and OVERLOAD Both BSSGP messages appear from the SGSN in downlink on BVCI=0. We must send a copy of this message to each of the BSS side NSEs. Change-Id: Ia19791b143989eb1490f461d88b9edbd8e3b82be Closes: OS#4875 --- M src/gbproxy/gb_proxy.c 1 file changed, 8 insertions(+), 5 deletions(-) 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 0d79ff7..c5abeb9 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1290,6 +1290,7 @@ struct tlv_parsed tp; uint8_t pdu_type = bgph->pdu_type; int data_len; + struct gbproxy_nse *nse; struct gbproxy_peer *peer; uint16_t bvci; struct msgb *msg; @@ -1401,11 +1402,13 @@ rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); break; case BSSGP_PDUT_SGSN_INVOKE_TRACE: - LOGP(DGPRS, LOGL_ERROR, - "NSE(%05u/SGSN) BSSGP INVOKE TRACE not supported\n", nsei); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_NOT_SUPPORTED_SGSN]); - rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, orig_msg); + case BSSGP_PDUT_OVERLOAD: + LOGP(DGPRS, LOGL_DEBUG, + "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); + /* broadcast to all BSS-side peers */ + llist_for_each_entry(nse, &cfg->nse_peers, list) { + gbprox_relay2nse(msg, nse, 0); + } break; default: LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP PDU type %s not supported\n", nsei, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia19791b143989eb1490f461d88b9edbd8e3b82be Gerrit-Change-Number: 21469 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 Dec 2 23:11:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 23:11:30 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Move BSS-side BVC-RESET processing to its own function References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21473 ) Change subject: gbproxy: Move BSS-side BVC-RESET processing to its own function ...................................................................... gbproxy: Move BSS-side BVC-RESET processing to its own function The switch clause was getting a bit too long/nested, let's add a separate gbprox_rx_bvc_reset_from_bss() function. Change-Id: If262566e275cca96035045d1194ce102c0942eb6 --- M src/gbproxy/gb_proxy.c 1 file changed, 87 insertions(+), 70 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/73/21473/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index c5abeb9..4f2aa2d 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1008,6 +1008,89 @@ return gbprox_relay2peer(msg, peer, ns_bvci); } +/* process a BVC-RESET message from the BSS side */ +static int gbprox_rx_bvc_reset_from_bss(struct gbproxy_config *cfg, struct msgb *msg, + uint16_t nsei, struct tlv_parsed *tp, + int *copy_to_sgsn2) +{ + struct gbproxy_peer *from_peer = NULL; + + /* If we receive a BVC reset on the signalling endpoint, we + * don't want the SGSN to reset, as the signalling endpoint + * is common for all point-to-point BVCs (and thus all BTS) */ + if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); + if (bvci == 0) { + struct gbproxy_nse *nse; + /* Ensure the NSE peer is there and clear all PtP BVCs */ + nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); + if (!nse) { + LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); + bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); + return 0; + } + + gbproxy_cleanup_peers(cfg, nsei, 0); + + /* FIXME: only do this if SGSN is alive! */ + LOGPNSE(nse, LOGL_INFO, "Tx fake " + "BVC RESET ACK of BVCI=0\n"); + bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); + return 0; + } + from_peer = gbproxy_peer_by_bvci(cfg, bvci); + if (!from_peer) { + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); + if (!nse) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " + "BVCI=%05u\n", nsei, bvci); + bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); + return 0; + } + /* if a PTP-BVC is reset, and we don't know that + * PTP-BVCI yet, we should allocate a new peer */ + from_peer = gbproxy_peer_alloc(nse, bvci); + OSMO_ASSERT(from_peer); + LOGPBVC(from_peer, LOGL_INFO, "Allocated new peer\n"); + } + + /* Could have moved to a different NSE */ + if (!check_peer_nsei(from_peer, nsei)) { + LOGPBVC(from_peer, LOGL_NOTICE, "moving peer to NSE(%05u)\n", nsei); + + struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); + if (!nse_new) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " + "BVCI=%05u\n", bvci, nsei); + bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); + return 0; + } + + /* Move peer to different NSE */ + gbproxy_peer_move(from_peer, nse_new); + } + + if (TLVP_PRESENT(tp, BSSGP_IE_CELL_ID)) { + struct gprs_ra_id raid; + /* We have a Cell Identifier present in this + * PDU, this means we can extend our local + * state information about this particular cell + * */ + memcpy(from_peer->ra, + TLVP_VAL(tp, BSSGP_IE_CELL_ID), + sizeof(from_peer->ra)); + gsm48_parse_ra(&raid, from_peer->ra); + LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", + osmo_rai_name(&raid)); + } + if (cfg->route_to_sgsn2) + *copy_to_sgsn2 = 1; + } + /* continue processing / relaying to SGSN[s] */ + return 1; +} + /* Receive an incoming signalling message from a BSS-side NS-VC */ static int gbprox_rx_sig_from_bss(struct gbproxy_config *cfg, struct msgb *msg, uint16_t nsei, @@ -1061,76 +1144,10 @@ /* FIXME: This only supports one BSS per RA */ break; case BSSGP_PDUT_BVC_RESET: - /* If we receive a BVC reset on the signalling endpoint, we - * don't want the SGSN to reset, as the signalling endpoint - * is common for all point-to-point BVCs (and thus all BTS) */ - if (TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) { - uint16_t bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", - nsei, bvci); - if (bvci == 0) { - struct gbproxy_nse *nse; - /* Ensure the NSE peer is there and clear all PtP BVCs */ - nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); - return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); - } - - gbproxy_cleanup_peers(cfg, nsei, 0); - - /* FIXME: only do this if SGSN is alive! */ - LOGPNSE(nse, LOGL_INFO, "Tx fake " - "BVC RESET ACK of BVCI=0\n"); - return bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, - nsei, 0, ns_bvci); - } - from_peer = gbproxy_peer_by_bvci(cfg, bvci); - if (!from_peer) { - struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " - "BVCI=%05u\n", nsei, bvci); - return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); - } - /* if a PTP-BVC is reset, and we don't know that - * PTP-BVCI yet, we should allocate a new peer */ - from_peer = gbproxy_peer_alloc(nse, bvci); - OSMO_ASSERT(from_peer); - LOGPBVC(from_peer, LOGL_INFO, "Allocated new peer\n"); - } - - /* Could have moved to a different NSE */ - if (!check_peer_nsei(from_peer, nsei)) { - LOGPBVC(from_peer, LOGL_NOTICE, "moving peer to NSE(%05u)\n", nsei); - - struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); - if (!nse_new) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " - "BVCI=%05u\n", bvci, nsei); - return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); - } - - /* Move peer to different NSE */ - gbproxy_peer_move(from_peer, nse_new); - } - - if (TLVP_PRESENT(&tp, BSSGP_IE_CELL_ID)) { - struct gprs_ra_id raid; - /* We have a Cell Identifier present in this - * PDU, this means we can extend our local - * state information about this particular cell - * */ - memcpy(from_peer->ra, - TLVP_VAL(&tp, BSSGP_IE_CELL_ID), - sizeof(from_peer->ra)); - gsm48_parse_ra(&raid, from_peer->ra); - LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", - osmo_rai_name(&raid)); - } - if (cfg->route_to_sgsn2) - copy_to_sgsn2 = 1; - } + rc = gbprox_rx_bvc_reset_from_bss(cfg, msg, nsei, &tp, ©_to_sgsn2); + /* if function retruns 0, we terminate processing here */ + if (rc == 0) + return 0; break; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If262566e275cca96035045d1194ce102c0942eb6 Gerrit-Change-Number: 21473 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 Dec 2 23:11:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 23:11:30 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 ) Change subject: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET ...................................................................... gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET * explicit else clause rather than implicit * don't continue processing if mandatory BVCI missing from message Change-Id: I038576b91ae1ece149149d8663de7b8495d24e06 --- M src/gbproxy/gb_proxy.c 1 file changed, 24 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/74/21474/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 4f2aa2d..2fd276d 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1014,31 +1014,34 @@ int *copy_to_sgsn2) { struct gbproxy_peer *from_peer = NULL; + uint16_t bvci; - /* If we receive a BVC reset on the signalling endpoint, we - * don't want the SGSN to reset, as the signalling endpoint - * is common for all point-to-point BVCs (and thus all BTS) */ - if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { - uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); - LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); - if (bvci == 0) { - struct gbproxy_nse *nse; - /* Ensure the NSE peer is there and clear all PtP BVCs */ - nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); - bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); - return 0; - } + if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) + return 0; - gbproxy_cleanup_peers(cfg, nsei, 0); - - /* FIXME: only do this if SGSN is alive! */ - LOGPNSE(nse, LOGL_INFO, "Tx fake " - "BVC RESET ACK of BVCI=0\n"); - bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); + bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); + if (bvci == 0) { + /* If we receive a BVC reset on the signalling endpoint, we + * don't want the SGSN to reset, as the signalling endpoint + * is common for all point-to-point BVCs (and thus all BTS) */ + struct gbproxy_nse *nse; + /* Ensure the NSE peer is there and clear all PtP BVCs */ + nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); + if (!nse) { + LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); + bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); return 0; } + + gbproxy_cleanup_peers(cfg, nsei, 0); + + /* FIXME: only do this if SGSN is alive! */ + LOGPNSE(nse, LOGL_INFO, "Tx fake " + "BVC RESET ACK of BVCI=0\n"); + bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); + return 0; + } else { from_peer = gbproxy_peer_by_bvci(cfg, bvci); if (!from_peer) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I038576b91ae1ece149149d8663de7b8495d24e06 Gerrit-Change-Number: 21474 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 Dec 2 23:11:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 23:11:31 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Cosmetics: use longer lines References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21475 ) Change subject: gbproxy: Cosmetics: use longer lines ...................................................................... gbproxy: Cosmetics: use longer lines Change-Id: I9426bf4be2faa0da7848cb102b20cc539948b3f5 --- M src/gbproxy/gb_proxy.c 1 file changed, 5 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/75/21475/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 2fd276d..d8b828c 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1025,9 +1025,9 @@ /* If we receive a BVC reset on the signalling endpoint, we * don't want the SGSN to reset, as the signalling endpoint * is common for all point-to-point BVCs (and thus all BTS) */ - struct gbproxy_nse *nse; + /* Ensure the NSE peer is there and clear all PtP BVCs */ - nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); + struct gbproxy_nse *nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); if (!nse) { LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); @@ -1037,8 +1037,7 @@ gbproxy_cleanup_peers(cfg, nsei, 0); /* FIXME: only do this if SGSN is alive! */ - LOGPNSE(nse, LOGL_INFO, "Tx fake " - "BVC RESET ACK of BVCI=0\n"); + LOGPNSE(nse, LOGL_INFO, "Tx fake BVC RESET ACK of BVCI=0\n"); bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); return 0; } else { @@ -1080,12 +1079,9 @@ * PDU, this means we can extend our local * state information about this particular cell * */ - memcpy(from_peer->ra, - TLVP_VAL(tp, BSSGP_IE_CELL_ID), - sizeof(from_peer->ra)); + memcpy(from_peer->ra, TLVP_VAL(tp, BSSGP_IE_CELL_ID), sizeof(from_peer->ra)); gsm48_parse_ra(&raid, from_peer->ra); - LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", - osmo_rai_name(&raid)); + LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", osmo_rai_name(&raid)); } if (cfg->route_to_sgsn2) *copy_to_sgsn2 = 1; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9426bf4be2faa0da7848cb102b20cc539948b3f5 Gerrit-Change-Number: 21475 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 Dec 2 23:11:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 23:11:31 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Send BVC-BLOCK for PTP BVC to SGSN when BSS resets BVCI=0 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21476 ) Change subject: gbproxy: Send BVC-BLOCK for PTP BVC to SGSN when BSS resets BVCI=0 ...................................................................... gbproxy: Send BVC-BLOCK for PTP BVC to SGSN when BSS resets BVCI=0 We cannot pass the RESET of BVCI=0 on to the SGSN, as this would affect all other NSE/BSS, too. Instead, we block the corresponding PTP BVC. The BSS is expected to trigger a RESET of the PTP BVC shortly after completing the BVCI=0 RESET, which will then also unblock those PTP BVC again. Change-Id: I48f1c148bc5c7c9a49b789dac78f76c2aa7baff8 --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 2 files changed, 24 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/76/21476/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index d8b828c..2c63614 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1015,13 +1015,18 @@ { struct gbproxy_peer *from_peer = NULL; uint16_t bvci; + uint8_t cause; - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) + if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) return 0; bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); - LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); + cause = *TLVP_VAL(tp, BSSGP_IE_CAUSE); + LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u, cause=%s)\n", nsei, bvci, + bssgp_cause_str(cause)); + if (bvci == 0) { + struct gbproxy_peer *peer; /* If we receive a BVC reset on the signalling endpoint, we * don't want the SGSN to reset, as the signalling endpoint * is common for all point-to-point BVCs (and thus all BTS) */ @@ -1034,6 +1039,19 @@ return 0; } + /* BLOCK all the unblocked PTP BVC of this BSS-side NSE towards the SGSN */ + llist_for_each_entry(peer, &nse->bts_peers, list) { + struct bssgp_bvc_ctx bctx = { + .nsei = cfg->nsip_sgsn_nsei, + .bvci = peer->bvci, + }; + + if (peer->blocked) + continue; + + bssgp_tx_bvc_block(&bctx, cause); + } + gbproxy_cleanup_peers(cfg, nsei, 0); /* FIXME: only do this if SGSN is alive! */ diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 62c4d94..c95a572 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -260,6 +260,10 @@ peer->nse = nse; } +/*! remove peers (BVCs) withon NSE specified by NSEI. + * \param[in] cfg proxy in which we operate + * \param[in] nsei NS entity in which we should clean up + * \param[in] bvci if 0: remove all BVCs; if != 0: BVCI of the single BVC to clean up */ int gbproxy_cleanup_peers(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) { int counter = 0; -- 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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 2 23:11:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 2 Dec 2020 23:11:31 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 ) Change subject: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs ...................................................................... gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs Change-Id: I198ca70f5e0947735f76d32cd9d3eed159349a94 --- M src/gbproxy/gb_proxy.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/77/21477/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 2c63614..109a539 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1017,8 +1017,10 @@ uint16_t bvci; uint8_t cause; - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) - return 0; + if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); + } bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); cause = *TLVP_VAL(tp, BSSGP_IE_CAUSE); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I198ca70f5e0947735f76d32cd9d3eed159349a94 Gerrit-Change-Number: 21477 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 Dec 3 00:32:19 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 00:32:19 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure 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/+/21441 to look at the new patch set (#2). Change subject: power_control: generalize power control state structure ...................................................................... power_control: generalize power control state structure Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Related: SYS#4918 --- M include/osmo-bts/gsm_data.h M src/common/power_control.c M tests/power/ms_power_loop_test.c 3 files changed, 13 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/41/21441/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria 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 Thu Dec 3 00:32:19 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 00:32:19 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr 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/+/21442 to look at the new patch set (#2). Change subject: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr ...................................................................... power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr This would allow to pass only two pointers: - 'struct bts_power_ctrl_params', and - 'struct lchan_power_ctrl_state', and get rid of 'struct gsm_lchan' dependency. The later is exactly where all state variables are supposed to be kept. Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Related: SYS#4918 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/42/21442/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Gerrit-Change-Number: 21442 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria 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 Thu Dec 3 00:32:19 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 00:32:19 +0000 Subject: Change in osmo-bts[master]: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() 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/+/21446 to look at the new patch set (#2). Change subject: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() ...................................................................... power_control: derive calc_delta() from lchan_ms_pwr_ctrl() This function will also be used by the BS Power Control logic. Unfortunately, the unit test expectations have changed because lchan_ms_pwr_ctrl() has no access to the averaged input value anymore, so now the actual input value is printed. Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Related: SYS#4918 --- M src/common/power_control.c M tests/power/ms_power_loop_test.err 2 files changed, 49 insertions(+), 39 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/21446/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Gerrit-Change-Number: 21446 Gerrit-PatchSet: 2 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 Dec 3 00:32:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 00:32:23 +0000 Subject: Change in osmo-bts[master]: tests/power: rename s/power_test/ms_power_loop_test/ References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21478 ) Change subject: tests/power: rename s/power_test/ms_power_loop_test/ ...................................................................... tests/power: rename s/power_test/ms_power_loop_test/ There will also be bs_power_loop test soon. Change-Id: I3f58eb85e44825a159af58948f01d9ffd75bceec Related: SYS#4918 --- M .gitignore M tests/power/Makefile.am R tests/power/ms_power_loop_test.c R tests/power/ms_power_loop_test.err R tests/power/ms_power_loop_test.ok M tests/testsuite.at 6 files changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/78/21478/1 diff --git a/.gitignore b/.gitignore index dfb09c7..22a1bdd 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,7 @@ tests/handover/handover_test tests/tx_power/tx_power_test tests/ta_control/ta_control_test +tests/power/ms_power_loop_test tests/testsuite tests/testsuite.log @@ -85,7 +86,6 @@ debian/osmo-bts-trx-dbg/ debian/osmo-bts-trx/ debian/tmp/ -/tests/power/power_test # manuals doc/manuals/*.html diff --git a/tests/power/Makefile.am b/tests/power/Makefile.am index de83760..d6e1a6b 100644 --- a/tests/power/Makefile.am +++ b/tests/power/Makefile.am @@ -2,8 +2,8 @@ AM_CFLAGS = -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCODEC_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOSMOTRAU_CFLAGS) LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOCODEC_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) $(LIBOSMOTRAU_LIBS) -noinst_PROGRAMS = power_test -EXTRA_DIST = power_test.ok power_test.err +noinst_PROGRAMS = ms_power_loop_test +EXTRA_DIST = ms_power_loop_test.ok ms_power_loop_test.err -power_test_SOURCES = power_test.c $(srcdir)/../stubs.c -power_test_LDADD = $(top_builddir)/src/common/libbts.a $(LIBOSMOABIS_LIBS) $(LDADD) +ms_power_loop_test_SOURCES = ms_power_loop_test.c $(srcdir)/../stubs.c +ms_power_loop_test_LDADD = $(top_builddir)/src/common/libbts.a $(LIBOSMOABIS_LIBS) $(LDADD) diff --git a/tests/power/power_test.c b/tests/power/ms_power_loop_test.c similarity index 100% rename from tests/power/power_test.c rename to tests/power/ms_power_loop_test.c diff --git a/tests/power/power_test.err b/tests/power/ms_power_loop_test.err similarity index 100% rename from tests/power/power_test.err rename to tests/power/ms_power_loop_test.err diff --git a/tests/power/power_test.ok b/tests/power/ms_power_loop_test.ok similarity index 100% rename from tests/power/power_test.ok rename to tests/power/ms_power_loop_test.ok diff --git a/tests/testsuite.at b/tests/testsuite.at index e9d6e46..0590580 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -31,11 +31,11 @@ AT_CHECK([$abs_top_builddir/tests/handover/handover_test], [], [expout], [ignore]) AT_CLEANUP -AT_SETUP([power]) +AT_SETUP([ms_power_loop]) AT_KEYWORDS([power]) -cat $abs_srcdir/power/power_test.ok > expout -cat $abs_srcdir/power/power_test.err > experr -AT_CHECK([$abs_top_builddir/tests/power/power_test], [], [expout], [experr]) +cat $abs_srcdir/power/ms_power_loop_test.ok > expout +cat $abs_srcdir/power/ms_power_loop_test.err > experr +AT_CHECK([$abs_top_builddir/tests/power/ms_power_loop_test], [], [expout], [experr]) AT_CLEANUP AT_SETUP([tx_power]) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f58eb85e44825a159af58948f01d9ffd75bceec Gerrit-Change-Number: 21478 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 Dec 3 00:32:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 00:32:24 +0000 Subject: Change in osmo-bts[master]: power_control: remove a logging statement and early return References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21479 ) Change subject: power_control: remove a logging statement and early return ...................................................................... power_control: remove a logging statement and early return This change would allow to separate the common logic from lchan_ms_pwr_ctrl() and re-use it for Downlink power control. The logging statement was quite useful during early stages of development and testing of hysteresis and filtering, but now we can sacrifice it. Change-Id: I3c07cb6e14acd5a988761bbc51a9c3b60fb22d87 Related: SYS#4918 --- M src/common/power_control.c M tests/power/ms_power_loop_test.err 2 files changed, 11 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/79/21479/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 21f7ce5..e08966f 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -148,16 +148,8 @@ /* Tolerate small deviations from 'rx-target' */ - if (abs(diff) <= params->hysteresis) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, - "Keeping MS power at control level %d (%d dBm) because diff %d dBm " - "from 'rx-target' %d dBm is not significant (hysteresis %d dBm)\n", - ms_power_lvl, ms_dbm, diff, params->target, params->hysteresis); - /* Keep the current power level in sync (just to be sure) */ - state->current = ms_power_lvl; - bts_model_adjst_ms_pwr(lchan); - return 0; - } + if (abs(diff) <= params->hysteresis) + diff = 0; /* don't ever change more than MS_{LOWER,RAISE}_MAX_DBM during one loop iteration, i.e. reduce the speed at which the MS transmit power can diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 988b3ba..f2e187b 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -4,7 +4,7 @@ (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 9 (12 dBm) to 7, 16 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 7 (16 dBm) to 5, 20 dBm (rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5 (20 dBm) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 0 dBm) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5, 20 dBm (rx-ms-pwr-lvl 5, 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 5 (20 dBm) to 3, 24 dBm (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 3 (24 dBm) to 2, 26 dBm (rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2, 26 dBm (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) @@ -13,7 +13,7 @@ (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 0 (30 dBm) to 30, 34 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) (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) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 0 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) @@ -21,17 +21,17 @@ (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 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) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 0 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 -78 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -80 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 11 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -78 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 -50 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 -50 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -92 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff -3 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 3 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff -5 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 5 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 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) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -72 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 -78 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) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -70 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 -80 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -85 dBm, rx-target -75 dBm) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c07cb6e14acd5a988761bbc51a9c3b60fb22d87 Gerrit-Change-Number: 21479 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 Dec 3 00:32:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 00:32:24 +0000 Subject: Change in osmo-bts[master]: power_control: cosmetic: fix weird spacing References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21480 ) Change subject: power_control: cosmetic: fix weird spacing ...................................................................... power_control: cosmetic: fix weird spacing Change-Id: Ia5661e82372f958e7cda4041d7b5a1cfb1d64afe --- M src/common/power_control.c 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/80/21480/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 4c4e283..a8bf031 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -130,11 +130,11 @@ return delta; } - /*! compute the new MS POWER LEVEL communicated to the MS and store it in lchan. - * \param lchan logical channel for which to compute (and in which to store) new power value. - * \param[in] ms_power_lvl MS Power Level received from Uplink L1 SACCH Header in SACCH block. - * \param[in] ul_rssi_dbm Signal level of the received SACCH block, in dBm. - */ +/*! compute the new MS POWER LEVEL communicated to the MS and store it in lchan. + * \param lchan logical channel for which to compute (and in which to store) new power value. + * \param[in] ms_power_lvl MS Power Level received from Uplink L1 SACCH Header in SACCH block. + * \param[in] ul_rssi_dbm Signal level of the received SACCH block, in dBm. + */ int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm) @@ -210,10 +210,10 @@ return 1; } - /*! compute the new Downlink attenuation value for the given logical channel. - * \param lchan logical channel for which to compute (and in which to store) new power value. - * \param[in] gh pointer to the beginning of (presumably) a Measurement Report. - */ +/*! compute the new Downlink attenuation value for the given logical channel. + * \param lchan logical channel for which to compute (and in which to store) new power value. + * \param[in] gh pointer to the beginning of (presumably) a Measurement Report. + */ int lchan_bs_pwr_ctrl(struct gsm_lchan *lchan, const struct gsm48_hdr *gh) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia5661e82372f958e7cda4041d7b5a1cfb1d64afe Gerrit-Change-Number: 21480 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 Dec 3 00:32:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 00:32:25 +0000 Subject: Change in osmo-bts[master]: vty: resurrect per-lchan BS/MS Power Control information References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21481 ) Change subject: vty: resurrect per-lchan BS/MS Power Control information ...................................................................... vty: resurrect per-lchan BS/MS Power Control information Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 --- M src/common/vty.c 1 file changed, 47 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/81/21481/1 diff --git a/src/common/vty.c b/src/common/vty.c index f366956..b2099ec 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1353,6 +1353,49 @@ } } +static void lchan_bs_power_ctrl_state_dump(struct vty *vty, const char *prefix, + 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", + VTY_NEWLINE); + + vty_out(vty, "%s Channel reduction: %u dB", prefix, 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); + + 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); +} + +static void lchan_ms_power_ctrl_state_dump(struct vty *vty, const char *prefix, + 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", + VTY_NEWLINE); + + 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); + if (!st->fixed) + vty_out(vty, " (max %u, -%d dBm)", st->max, max_dbm); + vty_out(vty, "%s", VTY_NEWLINE); +} + static void lchan_dump_full_vty(struct vty *vty, const struct gsm_lchan *lchan) { struct in_addr ia; @@ -1381,13 +1424,6 @@ lchan->state == LCHAN_S_BROKEN ? " Error reason: " : "", lchan->state == LCHAN_S_BROKEN ? lchan->broken_reason : "", VTY_NEWLINE); -#if 0 - /* TODO: print more info about MS/BS Power Control */ - vty_out(vty, " BS Power: %d dBm, MS Power: %u dBm%s", - lchan->ts->trx->nominal_power - (lchan->ts->trx->max_power_red + lchan->bs_power_red), - ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), - VTY_NEWLINE); -#endif vty_out(vty, " Channel Mode / Codec: %s%s", gsm48_chan_mode_name(lchan->tch_mode), VTY_NEWLINE); @@ -1429,6 +1465,10 @@ if (lchan->loopback) 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); } static void lchan_dump_short_vty(struct vty *vty, const struct gsm_lchan *lchan) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Gerrit-Change-Number: 21481 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Dec 3 01:33:15 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:33:15 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc84073d82e3_32f62b201ad0c5e0136947@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: [ 97s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 97s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 97s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 97s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 97s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_message.lo gprs_ns2_message.c [ 97s] In file included from gprs_ns2_fr.c:53:0: [ 97s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 97s] #include [ 97s] ^~~~~~~~~~~~~~~~~ [ 97s] compilation terminated. [ 97s] make[2]: *** [Makefile:556: gprs_ns2_fr.lo] Error 1 [ 97s] make[2]: *** Waiting for unfinished jobs.... [ 97s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_message.c -fPIC -DPIC -o .libs/gprs_ns2_message.o [ 97s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7/src/gb' [ 97s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 97s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7' [ 97s] make: *** [Makefile:483: all] Error 2 [ 97s] error: Bad exit status from /var/tmp/rpm-tmp.uLztm6 (%build) [ 97s] [ 97s] [ 97s] RPM build errors: [ 97s] Bad exit status from /var/tmp/rpm-tmp.uLztm6 (%build) [ 98s] ### VM INTERACTION START ### [ 101s] [ 87.862675] sysrq: SysRq : Power Off [ 101s] [ 87.865538] reboot: Power down [ 101s] ### VM INTERACTION END ### [ 101s] [ 101s] obs-arm-8 failed "build libosmocore.spec" at Thu Dec 3 01:32:37 UTC 2020. [ 101s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:33:49 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:33:49 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc8409397d2a_32f62b201ad0c5e0137031@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: [ 103s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 103s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 103s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 103s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_message.lo gprs_ns2_message.c [ 103s] In file included from gprs_ns2_fr.c:53: [ 103s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 103s] 7 | #include [ 103s] | ^~~~~~~~~~~~~~~~~ [ 103s] compilation terminated. [ 103s] make[2]: *** [Makefile:572: gprs_ns2_fr.lo] Error 1 [ 103s] make[2]: *** Waiting for unfinished jobs.... [ 103s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 103s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_message.c -fPIC -DPIC -o .libs/gprs_ns2_message.o [ 103s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7/src/gb' [ 103s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 103s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7' [ 103s] make: *** [Makefile:483: all] Error 2 [ 103s] error: Bad exit status from /var/tmp/rpm-tmp.ZOJbLN (%build) [ 103s] [ 103s] [ 103s] RPM build errors: [ 103s] Bad exit status from /var/tmp/rpm-tmp.ZOJbLN (%build) [ 103s] ### VM INTERACTION START ### [ 106s] [ 91.651331] sysrq: Power Off [ 106s] [ 91.652494] reboot: Power down [ 106s] ### VM INTERACTION END ### [ 106s] [ 106s] obs-arm-9 failed "build libosmocore.spec" at Thu Dec 3 01:33:06 UTC 2020. [ 106s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:34:07 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:34:07 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5fc8409487bbe_32f62b201ad0c5e0137152@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: [ 96s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_vc_fsm.lo gprs_ns2_vc_fsm.c [ 96s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 96s] In file included from gprs_ns2_fr.c:53: [ 96s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 96s] 7 | #include [ 96s] | ^~~~~~~~~~~~~~~~~ [ 96s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_message.lo gprs_ns2_message.c [ 96s] compilation terminated. [ 96s] make[2]: *** [Makefile:572: gprs_ns2_fr.lo] Error 1 [ 96s] make[2]: *** Waiting for unfinished jobs.... [ 96s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 96s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 96s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_message.c -fPIC -DPIC -o .libs/gprs_ns2_message.o [ 96s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7/src/gb' [ 96s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 96s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7' [ 96s] make: *** [Makefile:483: all] Error 2 [ 96s] error: Bad exit status from /var/tmp/rpm-tmp.CL9pTI (%build) [ 96s] [ 96s] [ 96s] RPM build errors: [ 96s] Bad exit status from /var/tmp/rpm-tmp.CL9pTI (%build) [ 96s] ### VM INTERACTION START ### [ 100s] [ 79.678150] sysrq: Power Off [ 100s] [ 79.681648] reboot: Power down [ 100s] ### VM INTERACTION END ### [ 100s] [ 100s] cloud108 failed "build libosmocore.spec" at Thu Dec 3 01:33:25 UTC 2020. [ 100s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:34:07 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:34:07 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc84094ef716_32f62b201ad0c5e0137296@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: [ 127s] ^ [ 127s] In file included from gprs_ns2_fr.c:343:0: [ 127s] /usr/include/linux/if.h:252:8: error: redefinition of 'struct ifconf' [ 127s] struct ifconf { [ 127s] ^ [ 127s] In file included from gprs_ns2_fr.c:39:0: [ 127s] /usr/include/net/if.h:176:8: note: originally defined here [ 127s] struct ifconf [ 127s] ^ [ 127s] Makefile:545: recipe for target 'gprs_ns2_fr.lo' failed [ 127s] make[3]: *** [gprs_ns2_fr.lo] Error 1 [ 127s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/gb' [ 127s] Makefile:693: recipe for target 'all-recursive' failed [ 127s] make[2]: *** [all-recursive] Error 1 [ 127s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 127s] Makefile:471: recipe for target 'all' failed [ 127s] make[1]: *** [all] Error 2 [ 127s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 127s] dh_auto_build: make -j1 returned exit code 2 [ 127s] debian/rules:15: recipe for target 'build' failed [ 127s] make: *** [build] Error 2 [ 127s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 127s] ### VM INTERACTION START ### [ 128s] Powering off. [ 128s] [ 121.728760] reboot: Power down [ 128s] ### VM INTERACTION END ### [ 128s] [ 128s] goat11 failed "build libosmocore_1.4.0.237.25ee7.dsc" at Thu Dec 3 01:33:29 UTC 2020. [ 128s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:34:07 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:34:07 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5fc84095587cb_32f62b201ad0c5e0137389@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: [ 164s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_udp.c -fPIC -DPIC -o .libs/gprs_ns2_udp.o [ 164s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_frgre.c -fPIC -DPIC -o .libs/gprs_ns2_frgre.o [ 165s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_fr.lo gprs_ns2_fr.c [ 165s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_vc_fsm.lo gprs_ns2_vc_fsm.c [ 165s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 165s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 165s] In file included from gprs_ns2_fr.c:53:0: [ 165s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 165s] #include [ 165s] ^~~~~~~~~~~~~~~~~ [ 165s] compilation terminated. [ 165s] make[2]: *** [Makefile:556: gprs_ns2_fr.lo] Error 1 [ 165s] make[2]: *** Waiting for unfinished jobs.... [ 165s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7/src/gb' [ 165s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 165s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7' [ 165s] make: *** [Makefile:483: all] Error 2 [ 165s] error: Bad exit status from /var/tmp/rpm-tmp.0E4ntZ (%build) [ 165s] [ 165s] [ 165s] RPM build errors: [ 165s] Bad exit status from /var/tmp/rpm-tmp.0E4ntZ (%build) [ 165s] ### VM INTERACTION START ### [ 168s] [ 152.806069] sysrq: SysRq : Power Off [ 168s] [ 152.807266] reboot: Power down [ 168s] ### VM INTERACTION END ### [ 168s] [ 168s] armbuild02 failed "build libosmocore.spec" at Thu Dec 3 01:33:26 UTC 2020. [ 168s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:34:41 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:34:41 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5fc840ce8cd79_32f62b201ad0c5e01375a1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_9.0/i586 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud116:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:38:58 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:38:58 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fc841bebb2b8_32f62b201ad0c5e013812f@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: [ 85s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_fr.lo gprs_ns2_fr.c [ 86s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 86s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_vc_fsm.lo gprs_ns2_vc_fsm.c [ 86s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 86s] In file included from gprs_ns2_fr.c:53: [ 86s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 86s] 7 | #include [ 86s] | ^~~~~~~~~~~~~~~~~ [ 86s] compilation terminated. [ 86s] make[2]: *** [Makefile:572: gprs_ns2_fr.lo] Error 1 [ 86s] make[2]: *** Waiting for unfinished jobs.... [ 86s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 86s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 86s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7/src/gb' [ 86s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 86s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7' [ 86s] make: *** [Makefile:483: all] Error 2 [ 86s] error: Bad exit status from /var/tmp/rpm-tmp.HRewwU (%build) [ 86s] [ 86s] [ 86s] RPM build errors: [ 86s] Bad exit status from /var/tmp/rpm-tmp.HRewwU (%build) [ 86s] ### VM INTERACTION START ### [ 89s] [ 80.829515] sysrq: Power Off [ 89s] [ 80.832407] reboot: Power down [ 89s] ### VM INTERACTION END ### [ 89s] [ 89s] old-atreju3 failed "build libosmocore.spec" at Thu Dec 3 01:38:33 UTC 2020. [ 89s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:39:15 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:39:15 +0000 Subject: Build failure of network:osmocom:nightly/osmocom-nightly in Debian_10/i586 In-Reply-To: References: Message-ID: <5fc841dd8d2bc_32f62b201ad0c5e0138240@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmocom-nightly/Debian_10/i586 Package network:osmocom:nightly/osmocom-nightly failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmocom-nightly Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb09:7) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:39:32 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:39:32 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc841de194a_32f62b201ad0c5e0138326@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: [ 182s] ^ [ 182s] In file included from gprs_ns2_fr.c:343:0: [ 182s] /usr/include/linux/if.h:252:8: error: redefinition of 'struct ifconf' [ 182s] struct ifconf { [ 182s] ^ [ 182s] In file included from gprs_ns2_fr.c:39:0: [ 182s] /usr/include/net/if.h:176:8: note: originally defined here [ 182s] struct ifconf [ 182s] ^ [ 182s] Makefile:545: recipe for target 'gprs_ns2_fr.lo' failed [ 182s] make[3]: *** [gprs_ns2_fr.lo] Error 1 [ 182s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/gb' [ 182s] Makefile:693: recipe for target 'all-recursive' failed [ 182s] make[2]: *** [all-recursive] Error 1 [ 182s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 182s] Makefile:471: recipe for target 'all' failed [ 182s] make[1]: *** [all] Error 2 [ 182s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 182s] dh_auto_build: make -j1 returned exit code 2 [ 182s] debian/rules:15: recipe for target 'build' failed [ 182s] make: *** [build] Error 2 [ 182s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 182s] ### VM INTERACTION START ### [ 183s] Powering off. [ 183s] [ 172.488920] reboot: Power down [ 183s] ### VM INTERACTION END ### [ 183s] [ 183s] cloud124 failed "build libosmocore_1.4.0.237.25ee7.dsc" at Thu Dec 3 01:38:55 UTC 2020. [ 183s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:39:32 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:39:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc841deca62b_32f62b201ad0c5e013841b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: [ 169s] [407/469] installing python3.9-3.9.1~rc1-2 [ 170s] Processing triggers for mailcap (3.67) ... [ 170s] Processing triggers for man-db (2.9.3-2) ... [ 170s] [408/469] installing texlive-plain-generic-2020.20201129-1 [ 174s] Processing triggers for tex-common (6.15) ... [ 174s] Running mktexlsr. This may take some time... done. [ 174s] [409/469] installing texlive-latex-base-2020.20201129-2 [ 174s] Processing triggers for man-db (2.9.3-2) ... [ 175s] Processing triggers for tex-common (6.15) ... [ 175s] Running mktexlsr. This may take some time... done. [ 175s] Running updmap-sys. This may take some time... done. [ 176s] Running mktexlsr /var/lib/texmf ... done. [ 176s] Building format(s) --all. [ 183s] This may take some time... [ 183s] fmtutil failed. Output has been stored in [ 183s] /tmp/fmtutil.4DvcbKeZ [ 183s] Please include this file if you report a bug. [ 183s] dpkg: error processing package tex-common (--install): [ 183s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 183s] Errors were encountered while processing: [ 183s] tex-common [ 183s] exit ... [ 183s] ### VM INTERACTION START ### [ 186s] [ 166.597030] sysrq: Power Off [ 186s] [ 166.603589] reboot: Power down [ 186s] ### VM INTERACTION END ### [ 186s] [ 186s] lamb52 failed "build osmo-gsm-manuals-dev_0.3.0.37.c507.dsc" at Thu Dec 3 01:39:08 UTC 2020. [ 186s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:44:59 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:44:59 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5fc8432bc2928_32f62b201ad0c5e01394fb@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was build70:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:45:16 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:45:16 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_10/i586 In-Reply-To: References: Message-ID: <5fc8434668f28_32f62b201ad0c5e01395d7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_10/i586 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb02:13) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:45:16 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:45:16 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_10/i586 In-Reply-To: References: Message-ID: <5fc84346f0b24_32f62b201ad0c5e0139671@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_10/i586 Package network:osmocom:nightly/osmo-e1d failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-e1d Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb26:11) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:48:08 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:48:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc843dae94da_32f62b201ad0c5e01401e5@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: [ 116s] make[2]: Nothing to be done for 'all'. [ 116s] make[2]: Leaving directory '/usr/src/packages/BUILD/include' [ 116s] Making all in src [ 116s] make[2]: Entering directory '/usr/src/packages/BUILD/src' [ 116s] CXX gprs_debug.lo [ 116s] CC csn1.lo [ 117s] CC gsm_rlcmac.lo [ 118s] CXX gprs_bssgp_pcu.lo [ 118s] gprs_bssgp_pcu.cpp: In function 'int ns_create_nsvc(gprs_rlcmac_bts*, uint16_t, const osmo_sockaddr*, const osmo_sockaddr*, const uint16_t*, uint16_t)': [ 118s] gprs_bssgp_pcu.cpp:987:13: error: 'GPRS_NS2_LL_UDP' was not declared in this scope [ 118s] GPRS_NS2_LL_UDP); [ 118s] ^ [ 118s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 118s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 118s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 118s] Makefile:405: recipe for target 'all-recursive' failed [ 118s] make[1]: *** [all-recursive] Error 1 [ 118s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 118s] dh_auto_build: make -j1 returned exit code 2 [ 118s] debian/rules:12: recipe for target 'build' failed [ 118s] make: *** [build] Error 2 [ 118s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 118s] ### VM INTERACTION START ### [ 119s] Powering off. [ 119s] [ 113.456357] reboot: Power down [ 119s] ### VM INTERACTION END ### [ 119s] [ 119s] goat01 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Thu Dec 3 01:47:33 UTC 2020. [ 119s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:49:16 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:49:16 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <5fc8443297328_32f62b201ad0c5e0140362@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: [ 59s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_fr.lo gprs_ns2_fr.c [ 59s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_vc_fsm.lo gprs_ns2_vc_fsm.c [ 59s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 59s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 59s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 59s] In file included from gprs_ns2_fr.c:53:0: [ 59s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 59s] #include [ 59s] ^~~~~~~~~~~~~~~~~ [ 59s] compilation terminated. [ 59s] make[2]: *** [Makefile:556: gprs_ns2_fr.lo] Error 1 [ 59s] make[2]: *** Waiting for unfinished jobs.... [ 59s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 59s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7/src/gb' [ 59s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 59s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7' [ 59s] make: *** [Makefile:483: all] Error 2 [ 59s] error: Bad exit status from /var/tmp/rpm-tmp.QZjG81 (%build) [ 59s] [ 59s] [ 59s] RPM build errors: [ 59s] Bad exit status from /var/tmp/rpm-tmp.QZjG81 (%build) [ 59s] ### VM INTERACTION START ### [ 63s] [ 55.849564] sysrq: Power Off [ 63s] [ 55.853795] reboot: Power down [ 63s] ### VM INTERACTION END ### [ 63s] [ 63s] sheep87 failed "build libosmocore.spec" at Thu Dec 3 01:48:49 UTC 2020. [ 63s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:50:25 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:50:25 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fc844721ff41_32f62b201ad0c5e01404f@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] [ 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: 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] [ 161.754978] sysrq: Power Off [ 174s] [ 161.759570] reboot: Power down [ 174s] ### VM INTERACTION END ### [ 174s] [ 174s] lamb59 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 3 01:49:50 UTC 2020. [ 174s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:50:42 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:50:42 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fc8448d37b89_32f62b201ad0c5e01405d0@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: [ 182s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 182s] [COMPILING libboard/qmod/source/card_pres.c] [ 182s] [COMPILING libboard/qmod/source/wwan_led.c] [ 182s] [COMPILING libboard/qmod/source/i2c.c] [ 182s] [COMPILING libboard/qmod/source/board_qmod.c] [ 183s] [COMPILING apps/dfu/main.c] [ 183s] [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: 16588 B 16 KB 101.25% [ 183s] 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' [ 183s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 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 ### [ 187s] [ 171.090086] sysrq: Power Off [ 187s] [ 171.108464] reboot: Power down [ 187s] ### VM INTERACTION END ### [ 187s] [ 187s] cloud105 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 3 01:50:08 UTC 2020. [ 187s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:53:33 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:53:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc845294d195_32f62b201ad0c5e01408a6@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: [ 99s] [426/489] installing python3.9-3.9.1~rc1-2 [ 99s] Processing triggers for mailcap (3.67) ... [ 99s] Processing triggers for man-db (2.9.3-2) ... [ 99s] [427/489] installing texlive-plain-generic-2020.20201129-1 [ 102s] Processing triggers for tex-common (6.15) ... [ 102s] Running mktexlsr. This may take some time... done. [ 102s] [428/489] installing texlive-latex-base-2020.20201129-2 [ 102s] Processing triggers for man-db (2.9.3-2) ... [ 102s] Processing triggers for tex-common (6.15) ... [ 103s] Running mktexlsr. This may take some time... done. [ 103s] Running updmap-sys. This may take some time... done. [ 103s] Running mktexlsr /var/lib/texmf ... done. [ 103s] Building format(s) --all. [ 107s] This may take some time... [ 107s] fmtutil failed. Output has been stored in [ 107s] /tmp/fmtutil.3K4zvl7w [ 107s] Please include this file if you report a bug. [ 107s] dpkg: error processing package tex-common (--install): [ 107s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 107s] Errors were encountered while processing: [ 107s] tex-common [ 107s] exit ... [ 107s] ### VM INTERACTION START ### [ 110s] [ 98.109078] sysrq: Power Off [ 110s] [ 98.111039] reboot: Power down [ 110s] ### VM INTERACTION END ### [ 110s] [ 110s] hci-cnode2-m1 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Thu Dec 3 01:53:04 UTC 2020. [ 110s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:54:42 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:54:42 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc845814b0ae_32f62b201ad0c5e01412c9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-ggsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: [ 172s] [428/491] installing python3.9-3.9.1~rc1-2 [ 173s] Processing triggers for mailcap (3.67) ... [ 173s] Processing triggers for man-db (2.9.3-2) ... [ 174s] [429/491] installing texlive-plain-generic-2020.20201129-1 [ 177s] Processing triggers for tex-common (6.15) ... [ 177s] Running mktexlsr. This may take some time... done. [ 177s] [430/491] installing texlive-latex-base-2020.20201129-2 [ 178s] Processing triggers for man-db (2.9.3-2) ... [ 178s] Processing triggers for tex-common (6.15) ... [ 178s] Running mktexlsr. This may take some time... done. [ 179s] Running updmap-sys. This may take some time... done. [ 179s] Running mktexlsr /var/lib/texmf ... done. [ 179s] Building format(s) --all. [ 186s] This may take some time... [ 186s] fmtutil failed. Output has been stored in [ 186s] /tmp/fmtutil.hghBXeAH [ 186s] Please include this file if you report a bug. [ 186s] dpkg: error processing package tex-common (--install): [ 186s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 186s] Errors were encountered while processing: [ 186s] tex-common [ 186s] exit ... [ 186s] ### VM INTERACTION START ### [ 189s] [ 171.089575] sysrq: Power Off [ 189s] [ 171.097666] reboot: Power down [ 189s] ### VM INTERACTION END ### [ 189s] [ 189s] lamb27 failed "build osmo-ggsn_1.6.0.13.1230.dsc" at Thu Dec 3 01:54:30 UTC 2020. [ 189s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:54:42 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:54:42 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc845824e294_32f62b201ad0c5e0141377@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: [ 169s] [439/514] installing python3.9-3.9.1~rc1-2 [ 170s] Processing triggers for mailcap (3.67) ... [ 170s] Processing triggers for man-db (2.9.3-2) ... [ 171s] [440/514] installing texlive-plain-generic-2020.20201129-1 [ 174s] Processing triggers for tex-common (6.15) ... [ 174s] Running mktexlsr. This may take some time... done. [ 174s] [441/514] installing texlive-latex-base-2020.20201129-2 [ 175s] Processing triggers for man-db (2.9.3-2) ... [ 175s] Processing triggers for tex-common (6.15) ... [ 175s] Running mktexlsr. This may take some time... done. [ 176s] Running updmap-sys. This may take some time... done. [ 176s] Running mktexlsr /var/lib/texmf ... done. [ 176s] Building format(s) --all. [ 183s] This may take some time... [ 183s] fmtutil failed. Output has been stored in [ 183s] /tmp/fmtutil.IbNqZTjn [ 183s] Please include this file if you report a bug. [ 183s] dpkg: error processing package tex-common (--install): [ 183s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 183s] Errors were encountered while processing: [ 183s] tex-common [ 183s] exit ... [ 183s] ### VM INTERACTION START ### [ 187s] [ 169.337442] sysrq: Power Off [ 187s] [ 169.344587] reboot: Power down [ 187s] ### VM INTERACTION END ### [ 187s] [ 187s] lamb08 failed "build osmo-sip-connector_1.4.1.6.05ee.dsc" at Thu Dec 3 01:54:26 UTC 2020. [ 187s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:54:59 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:54:59 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc84583919cc_32f62b201ad0c5e014143f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 188s] Processing triggers for man-db (2.9.3-2) ... [ 189s] [508/655] installing texlive-plain-generic-2020.20201129-1 [ 192s] Processing triggers for tex-common (6.15) ... [ 192s] Running mktexlsr. This may take some time... done. [ 192s] [509/655] installing libpython3.9-3.9.1~rc1-2 [ 193s] Processing triggers for libc-bin (2.31-5) ... [ 193s] [510/655] installing texlive-latex-base-2020.20201129-2 [ 193s] Processing triggers for man-db (2.9.3-2) ... [ 193s] Processing triggers for tex-common (6.15) ... [ 194s] Running mktexlsr. This may take some time... done. [ 194s] Running updmap-sys. This may take some time... done. [ 194s] Running mktexlsr /var/lib/texmf ... done. [ 195s] Building format(s) --all. [ 202s] This may take some time... [ 202s] fmtutil failed. Output has been stored in [ 202s] /tmp/fmtutil.6hCp8YZL [ 202s] Please include this file if you report a bug. [ 202s] dpkg: error processing package tex-common (--install): [ 202s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 202s] Errors were encountered while processing: [ 202s] tex-common [ 202s] exit ... [ 202s] ### VM INTERACTION START ### [ 205s] [ 185.092899] sysrq: Power Off [ 205s] [ 185.099368] reboot: Power down [ 205s] ### VM INTERACTION END ### [ 205s] [ 205s] lamb60 failed "build osmo-trx_1.2.0.114.57db.dsc" at Thu Dec 3 01:54:40 UTC 2020. [ 205s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:55:16 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:55:16 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc845a4e94fc_32f62b201ad0c5e0141785@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-e1d failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-e1d Last lines of build log: [ 169s] [426/489] installing python3.9-3.9.1~rc1-2 [ 170s] Processing triggers for mailcap (3.67) ... [ 171s] Processing triggers for man-db (2.9.3-2) ... [ 171s] [427/489] installing texlive-plain-generic-2020.20201129-1 [ 174s] Processing triggers for tex-common (6.15) ... [ 174s] Running mktexlsr. This may take some time... done. [ 174s] [428/489] installing texlive-latex-base-2020.20201129-2 [ 175s] Processing triggers for man-db (2.9.3-2) ... [ 175s] Processing triggers for tex-common (6.15) ... [ 175s] Running mktexlsr. This may take some time... done. [ 176s] Running updmap-sys. This may take some time... done. [ 176s] Running mktexlsr /var/lib/texmf ... done. [ 176s] Building format(s) --all. [ 183s] This may take some time... [ 183s] fmtutil failed. Output has been stored in [ 183s] /tmp/fmtutil.wPX0q4gh [ 183s] Please include this file if you report a bug. [ 183s] dpkg: error processing package tex-common (--install): [ 183s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 183s] Errors were encountered while processing: [ 183s] tex-common [ 183s] exit ... [ 183s] ### VM INTERACTION START ### [ 186s] [ 168.699836] sysrq: Power Off [ 187s] [ 168.706817] reboot: Power down [ 187s] ### VM INTERACTION END ### [ 187s] [ 187s] lamb51 failed "build osmo-e1d_0.1.1.20.e542.dsc" at Thu Dec 3 01:54:55 UTC 2020. [ 187s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 01:55:33 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 01:55:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc845a952f36_32f62b201ad0c5e0141816@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: [ 157s] make[2]: Nothing to be done for 'all'. [ 157s] make[2]: Leaving directory '/usr/src/packages/BUILD/include' [ 157s] Making all in src [ 157s] make[2]: Entering directory '/usr/src/packages/BUILD/src' [ 157s] CXX gprs_debug.lo [ 157s] CC csn1.lo [ 158s] CC gsm_rlcmac.lo [ 160s] CXX gprs_bssgp_pcu.lo [ 160s] gprs_bssgp_pcu.cpp: In function 'int ns_create_nsvc(gprs_rlcmac_bts*, uint16_t, const osmo_sockaddr*, const osmo_sockaddr*, const uint16_t*, uint16_t)': [ 160s] gprs_bssgp_pcu.cpp:987:13: error: 'GPRS_NS2_LL_UDP' was not declared in this scope [ 160s] GPRS_NS2_LL_UDP); [ 160s] ^ [ 160s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 160s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 160s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 160s] Makefile:405: recipe for target 'all-recursive' failed [ 160s] make[1]: *** [all-recursive] Error 1 [ 160s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 160s] dh_auto_build: make -j1 returned exit code 2 [ 160s] debian/rules:12: recipe for target 'build' failed [ 160s] make: *** [build] Error 2 [ 160s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 160s] ### VM INTERACTION START ### [ 161s] Powering off. [ 161s] [ 151.950827] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] lamb12 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Thu Dec 3 01:55:16 UTC 2020. [ 161s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:03:33 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:03:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc8477b2559b_32f62b201ad0c5e01422c0@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: [ 170s] [437/500] installing python3.9-3.9.1~rc1-2 [ 172s] Processing triggers for mailcap (3.67) ... [ 172s] Processing triggers for man-db (2.9.3-2) ... [ 172s] [438/500] installing texlive-plain-generic-2020.20201129-1 [ 175s] Processing triggers for tex-common (6.15) ... [ 175s] Running mktexlsr. This may take some time... done. [ 175s] [439/500] installing texlive-latex-base-2020.20201129-2 [ 176s] Processing triggers for man-db (2.9.3-2) ... [ 176s] Processing triggers for tex-common (6.15) ... [ 176s] Running mktexlsr. This may take some time... done. [ 177s] Running updmap-sys. This may take some time... done. [ 177s] Running mktexlsr /var/lib/texmf ... done. [ 177s] Building format(s) --all. [ 185s] This may take some time... [ 185s] fmtutil failed. Output has been stored in [ 185s] /tmp/fmtutil.122KUZwH [ 185s] Please include this file if you report a bug. [ 185s] dpkg: error processing package tex-common (--install): [ 185s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 185s] Errors were encountered while processing: [ 185s] tex-common [ 185s] exit ... [ 185s] ### VM INTERACTION START ### [ 188s] [ 169.070815] sysrq: Power Off [ 188s] [ 169.075371] reboot: Power down [ 188s] ### VM INTERACTION END ### [ 188s] [ 188s] lamb04 failed "build osmo-bts_1.2.0.353.369c.dsc" at Thu Dec 3 02:03:23 UTC 2020. [ 188s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:06:59 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:06:59 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5fc84851b5600_32f62b201ad0c5e01433dd@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: [ 48s] CC gb_proxy_tlli.o [ 48s] CC gb_proxy_ctrl.o [ 48s] CC gb_proxy_peer.o [ 48s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 48s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 48s] 1405 | case BSSGP_PDUT_OVERLOAD: [ 48s] | ^~~~~~~~~~~~~~~~~~~ [ 48s] | BSSGP_PDUT_BVC_BLOCK [ 48s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 48s] make[3]: *** [Makefile:502: gb_proxy.o] Error 1 [ 48s] make[3]: *** Waiting for unfinished jobs.... [ 49s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src/gbproxy' [ 49s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 49s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src' [ 49s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 49s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98' [ 49s] make: *** [Makefile:392: all] Error 2 [ 49s] error: Bad exit status from /var/tmp/rpm-tmp.eII8pw (%build) [ 49s] [ 49s] [ 49s] RPM build errors: [ 49s] Bad exit status from /var/tmp/rpm-tmp.eII8pw (%build) [ 49s] ### VM INTERACTION START ### [ 52s] [ 45.090951] sysrq: Power Off [ 52s] [ 45.097388] reboot: Power down [ 52s] ### VM INTERACTION END ### [ 52s] [ 52s] lamb26 failed "build osmo-sgsn.spec" at Thu Dec 3 02:06:37 UTC 2020. [ 52s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:08:08 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:08:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-hlr in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc8488e849c8_32f62b201ad0c5e014403a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-hlr/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-hlr failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-hlr Last lines of build log: [ 120s] Processing triggers for mailcap (3.67) ... [ 120s] Processing triggers for man-db (2.9.3-2) ... [ 120s] [437/501] installing texlive-plain-generic-2020.20201129-1 [ 123s] Processing triggers for tex-common (6.15) ... [ 123s] Running mktexlsr. This may take some time... done. [ 123s] [438/501] installing libosmo-netif-dev-1.0.0.8.bd77 [ 123s] [439/501] installing texlive-latex-base-2020.20201129-2 [ 124s] Processing triggers for man-db (2.9.3-2) ... [ 124s] Processing triggers for tex-common (6.15) ... [ 124s] Running mktexlsr. This may take some time... done. [ 125s] Running updmap-sys. This may take some time... done. [ 125s] Running mktexlsr /var/lib/texmf ... done. [ 125s] Building format(s) --all. [ 131s] This may take some time... [ 131s] fmtutil failed. Output has been stored in [ 131s] /tmp/fmtutil.lFrj4GDl [ 131s] Please include this file if you report a bug. [ 131s] dpkg: error processing package tex-common (--install): [ 131s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 131s] Errors were encountered while processing: [ 131s] tex-common [ 131s] exit ... [ 131s] ### VM INTERACTION START ### [ 134s] [ 120.781182] sysrq: Power Off [ 134s] [ 120.783694] reboot: Power down [ 135s] ### VM INTERACTION END ### [ 135s] [ 135s] wildcard2 failed "build osmo-hlr_1.2.0.67.dac8.dsc" at Thu Dec 3 02:07:40 UTC 2020. [ 135s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:08:43 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:08:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc848cb2ccf2_32f62b201ad0c5e01445fe@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-mgw failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: [ 169s] Processing triggers for mailcap (3.67) ... [ 169s] Processing triggers for man-db (2.9.3-2) ... [ 170s] [435/498] installing texlive-plain-generic-2020.20201129-1 [ 173s] Processing triggers for tex-common (6.15) ... [ 173s] Running mktexlsr. This may take some time... done. [ 173s] [436/498] installing libosmo-netif-dev-1.0.0.8.bd77 [ 173s] [437/498] installing texlive-latex-base-2020.20201129-2 [ 174s] Processing triggers for man-db (2.9.3-2) ... [ 174s] Processing triggers for tex-common (6.15) ... [ 174s] Running mktexlsr. This may take some time... done. [ 175s] Running updmap-sys. This may take some time... done. [ 175s] Running mktexlsr /var/lib/texmf ... done. [ 175s] Building format(s) --all. [ 182s] This may take some time... [ 182s] fmtutil failed. Output has been stored in [ 182s] /tmp/fmtutil.SXeLDZbq [ 182s] Please include this file if you report a bug. [ 182s] dpkg: error processing package tex-common (--install): [ 182s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 182s] Errors were encountered while processing: [ 182s] tex-common [ 182s] exit ... [ 182s] ### VM INTERACTION START ### [ 185s] [ 168.401288] sysrq: Power Off [ 185s] [ 168.408203] reboot: Power down [ 185s] ### VM INTERACTION END ### [ 185s] [ 185s] lamb14 failed "build osmo-mgw_1.7.0.132.6e279.dsc" at Thu Dec 3 02:08:23 UTC 2020. [ 185s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:08:59 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:08:59 +0000 Subject: Build failure of network:osmocom:nightly/osmo-uecups in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc848cc604f5_32f62b201ad0c5e01446d1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-uecups/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-uecups failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-uecups Last lines of build log: [ 173s] Processing triggers for mailcap (3.67) ... [ 173s] Processing triggers for man-db (2.9.3-2) ... [ 174s] [434/498] installing texlive-plain-generic-2020.20201129-1 [ 177s] Processing triggers for tex-common (6.15) ... [ 177s] Running mktexlsr. This may take some time... done. [ 178s] [435/498] installing libosmo-netif-dev-1.0.0.8.bd77 [ 178s] [436/498] installing texlive-latex-base-2020.20201129-2 [ 178s] Processing triggers for man-db (2.9.3-2) ... [ 178s] Processing triggers for tex-common (6.15) ... [ 179s] Running mktexlsr. This may take some time... done. [ 179s] Running updmap-sys. This may take some time... done. [ 179s] Running mktexlsr /var/lib/texmf ... done. [ 179s] Building format(s) --all. [ 187s] This may take some time... [ 187s] fmtutil failed. Output has been stored in [ 187s] /tmp/fmtutil.GQ4rL6IR [ 187s] Please include this file if you report a bug. [ 187s] dpkg: error processing package tex-common (--install): [ 187s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 187s] Errors were encountered while processing: [ 187s] tex-common [ 187s] exit ... [ 187s] ### VM INTERACTION START ### [ 190s] [ 170.973919] sysrq: Power Off [ 190s] [ 170.983436] reboot: Power down [ 190s] ### VM INTERACTION END ### [ 190s] [ 190s] lamb52 failed "build osmo-uecups_0.1.3.1.8362.dsc" at Thu Dec 3 02:08:33 UTC 2020. [ 190s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:09:50 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:09:50 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc8490573d4_32f62b201ad0c5e01447b4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-sccp Last lines of build log: [ 178s] Processing triggers for mailcap (3.67) ... [ 178s] Processing triggers for man-db (2.9.3-2) ... [ 178s] [437/501] installing texlive-plain-generic-2020.20201129-1 [ 181s] Processing triggers for tex-common (6.15) ... [ 182s] Running mktexlsr. This may take some time... done. [ 182s] [438/501] installing libosmo-netif-dev-1.0.0.8.bd77 [ 182s] [439/501] installing texlive-latex-base-2020.20201129-2 [ 182s] Processing triggers for man-db (2.9.3-2) ... [ 183s] Processing triggers for tex-common (6.15) ... [ 183s] Running mktexlsr. This may take some time... done. [ 183s] Running updmap-sys. This may take some time... done. [ 183s] Running mktexlsr /var/lib/texmf ... done. [ 184s] Building format(s) --all. [ 191s] This may take some time... [ 191s] fmtutil failed. Output has been stored in [ 191s] /tmp/fmtutil.hOI3Xexs [ 191s] Please include this file if you report a bug. [ 191s] dpkg: error processing package tex-common (--install): [ 191s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 191s] Errors were encountered while processing: [ 191s] tex-common [ 191s] exit ... [ 191s] ### VM INTERACTION START ### [ 194s] [ 176.473037] sysrq: Power Off [ 194s] [ 176.481388] reboot: Power down [ 194s] ### VM INTERACTION END ### [ 194s] [ 194s] lamb20 failed "build libosmo-sccp_1.3.0.25.48e2.dsc" at Thu Dec 3 02:09:09 UTC 2020. [ 194s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:16:07 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:16:07 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc84a6ad936c_32f62b201ad0c5e01463ca@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-smlc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: [ 117s] Processing triggers for mailcap (3.67) ... [ 117s] Processing triggers for man-db (2.9.3-2) ... [ 117s] [430/495] installing texlive-plain-generic-2020.20201129-1 [ 120s] Processing triggers for tex-common (6.15) ... [ 120s] Running mktexlsr. This may take some time... done. [ 120s] [431/495] installing libosmo-netif-dev-1.0.0.8.bd77 [ 120s] [432/495] installing texlive-latex-base-2020.20201129-2 [ 120s] Processing triggers for man-db (2.9.3-2) ... [ 120s] Processing triggers for tex-common (6.15) ... [ 121s] Running mktexlsr. This may take some time... done. [ 121s] Running updmap-sys. This may take some time... done. [ 121s] Running mktexlsr /var/lib/texmf ... done. [ 121s] Building format(s) --all. [ 126s] This may take some time... [ 126s] fmtutil failed. Output has been stored in [ 126s] /tmp/fmtutil.rphHYWta [ 126s] Please include this file if you report a bug. [ 126s] dpkg: error processing package tex-common (--install): [ 126s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 126s] Errors were encountered while processing: [ 126s] tex-common [ 126s] exit ... [ 126s] ### VM INTERACTION START ### [ 129s] [ 115.191280] sysrq: Power Off [ 129s] [ 115.193253] reboot: Power down [ 129s] ### VM INTERACTION END ### [ 129s] [ 129s] hci-cnode2-m1 failed "build osmo-smlc_0.1.0.5.5dad.dsc" at Thu Dec 3 02:15:29 UTC 2020. [ 129s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:18:24 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:18:24 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc84afeb4491_32f62b201ad0c5e01466c7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-bsc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 171s] Processing triggers for mailcap (3.67) ... [ 171s] Processing triggers for man-db (2.9.3-2) ... [ 171s] [440/506] installing texlive-plain-generic-2020.20201129-1 [ 175s] Processing triggers for tex-common (6.15) ... [ 175s] Running mktexlsr. This may take some time... done. [ 175s] [441/506] installing libosmo-netif-dev-1.0.0.8.bd77 [ 175s] [442/506] installing texlive-latex-base-2020.20201129-2 [ 176s] Processing triggers for man-db (2.9.3-2) ... [ 176s] Processing triggers for tex-common (6.15) ... [ 176s] Running mktexlsr. This may take some time... done. [ 177s] Running updmap-sys. This may take some time... done. [ 177s] Running mktexlsr /var/lib/texmf ... done. [ 177s] Building format(s) --all. [ 184s] This may take some time... [ 184s] fmtutil failed. Output has been stored in [ 184s] /tmp/fmtutil.1Tmq0vs2 [ 184s] Please include this file if you report a bug. [ 184s] dpkg: error processing package tex-common (--install): [ 184s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 184s] Errors were encountered while processing: [ 184s] tex-common [ 184s] exit ... [ 184s] ### VM INTERACTION START ### [ 187s] [ 168.602669] sysrq: Power Off [ 187s] [ 168.610627] reboot: Power down [ 187s] ### VM INTERACTION END ### [ 187s] [ 187s] lamb21 failed "build osmo-bsc_1.6.0.417.8c03b.dsc" at Thu Dec 3 02:17:42 UTC 2020. [ 187s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:18:58 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:18:58 +0000 Subject: Build failure of network:osmocom:nightly/osmo-iuh in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5fc84b1dd7f77_32f62b201ad0c5e0146759@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-iuh/xUbuntu_19.10/x86_64 Package network:osmocom:nightly/osmo-iuh failed to build in xUbuntu_19.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-iuh Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb11:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:19:49 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:19:49 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc84b5b37942_32f62b201ad0c5e01468f7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 177s] [460/527] installing python3.9-3.9.1~rc1-2 [ 178s] Processing triggers for mailcap (3.67) ... [ 178s] Processing triggers for man-db (2.9.3-2) ... [ 178s] [461/527] installing texlive-plain-generic-2020.20201129-1 [ 181s] Processing triggers for tex-common (6.15) ... [ 182s] Running mktexlsr. This may take some time... done. [ 182s] [462/527] installing texlive-latex-base-2020.20201129-2 [ 182s] Processing triggers for man-db (2.9.3-2) ... [ 182s] Processing triggers for tex-common (6.15) ... [ 183s] Running mktexlsr. This may take some time... done. [ 183s] Running updmap-sys. This may take some time... done. [ 183s] Running mktexlsr /var/lib/texmf ... done. [ 183s] Building format(s) --all. [ 191s] This may take some time... [ 191s] fmtutil failed. Output has been stored in [ 191s] /tmp/fmtutil.LfucUSN4 [ 191s] Please include this file if you report a bug. [ 191s] dpkg: error processing package tex-common (--install): [ 191s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 191s] Errors were encountered while processing: [ 191s] tex-common [ 191s] exit ... [ 191s] ### VM INTERACTION START ### [ 194s] [ 175.975641] sysrq: Power Off [ 194s] [ 175.982807] reboot: Power down [ 194s] ### VM INTERACTION END ### [ 194s] [ 194s] lamb52 failed "build osmo-remsim_0.2.2.103.dc34.dsc" at Thu Dec 3 02:19:15 UTC 2020. [ 194s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:20:08 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:20:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5fc84b5c2ddd4_32f62b201ad0c5e0146986@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-bsc failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb08:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:20:59 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:20:59 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_10/i586 In-Reply-To: References: Message-ID: <5fc84b965db5e_32f62b201ad0c5e0147063@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud115:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:26:41 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:26:41 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc84cfd882f4_32f62b201ad0c5e0147276@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: [ 218s] ^ [ 218s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 218s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function) [ 218s] case BSSGP_PDUT_OVERLOAD: [ 218s] ^ [ 218s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 218s] Makefile:482: recipe for target 'gb_proxy.o' failed [ 218s] make[4]: *** [gb_proxy.o] Error 1 [ 218s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/gbproxy' [ 218s] Makefile:383: recipe for target 'all-recursive' failed [ 218s] make[3]: *** [all-recursive] Error 1 [ 218s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 218s] Makefile:449: recipe for target 'all-recursive' failed [ 218s] make[2]: *** [all-recursive] Error 1 [ 218s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 218s] Makefile:380: recipe for target 'all' failed [ 218s] make[1]: *** [all] Error 2 [ 218s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 218s] dh_auto_build: make -j1 returned exit code 2 [ 218s] debian/rules:45: recipe for target 'build' failed [ 218s] make: *** [build] Error 2 [ 218s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 218s] ### VM INTERACTION START ### [ 219s] Powering off. [ 219s] [ 209.829387] reboot: Power down [ 219s] ### VM INTERACTION END ### [ 219s] [ 219s] lamb15 failed "build osmo-sgsn_1.6.0.72.c8d98.dsc" at Thu Dec 3 02:26:21 UTC 2020. [ 219s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:28:28 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:28:28 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fc84d5830867_32f62b201ad0c5e0147473@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: [ 47s] CC gb_proxy_tlli.o [ 47s] CC gb_proxy_peer.o [ 47s] CC gb_proxy_patch.o [ 47s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 47s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 47s] 1405 | case BSSGP_PDUT_OVERLOAD: [ 47s] | ^~~~~~~~~~~~~~~~~~~ [ 47s] | BSSGP_PDUT_BVC_BLOCK [ 47s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 47s] make[3]: *** [Makefile:502: gb_proxy.o] Error 1 [ 47s] make[3]: *** Waiting for unfinished jobs.... [ 47s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src/gbproxy' [ 47s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 47s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src' [ 47s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 47s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98' [ 47s] make: *** [Makefile:392: all] Error 2 [ 47s] error: Bad exit status from /var/tmp/rpm-tmp.ehjIMO (%build) [ 47s] [ 47s] [ 47s] RPM build errors: [ 47s] Bad exit status from /var/tmp/rpm-tmp.ehjIMO (%build) [ 47s] ### VM INTERACTION START ### [ 51s] [ 42.861273] sysrq: Power Off [ 51s] [ 42.866416] reboot: Power down [ 51s] ### VM INTERACTION END ### [ 51s] [ 51s] lamb58 failed "build osmo-sgsn.spec" at Thu Dec 3 02:27:34 UTC 2020. [ 51s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:33:20 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:33:20 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc84e8297f01_32f62b201ad0c5e01480b6@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: [ 141s] Processing triggers for mailcap (3.67) ... [ 141s] Processing triggers for man-db (2.9.3-2) ... [ 141s] [448/512] installing texlive-plain-generic-2020.20201129-1 [ 144s] Processing triggers for tex-common (6.15) ... [ 144s] Running mktexlsr. This may take some time... done. [ 144s] [449/512] installing libosmo-netif-dev-1.0.0.8.bd77 [ 144s] [450/512] installing texlive-latex-base-2020.20201129-2 [ 145s] Processing triggers for man-db (2.9.3-2) ... [ 145s] Processing triggers for tex-common (6.15) ... [ 145s] Running mktexlsr. This may take some time... done. [ 146s] Running updmap-sys. This may take some time... done. [ 146s] Running mktexlsr /var/lib/texmf ... done. [ 146s] Building format(s) --all. [ 152s] This may take some time... [ 152s] fmtutil failed. Output has been stored in [ 152s] /tmp/fmtutil.28KJLo84 [ 152s] Please include this file if you report a bug. [ 152s] dpkg: error processing package tex-common (--install): [ 152s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 152s] Errors were encountered while processing: [ 152s] tex-common [ 152s] exit ... [ 152s] ### VM INTERACTION START ### [ 155s] [ 129.214886] sysrq: Power Off [ 155s] [ 129.217496] reboot: Power down [ 155s] ### VM INTERACTION END ### [ 155s] [ 155s] wildcard2 failed "build osmo-sgsn_1.6.0.72.c8d98.dsc" at Thu Dec 3 02:32:37 UTC 2020. [ 155s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:35:57 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:35:57 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc84f1a40aef_32f62b201ad0c5e01483f2@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: [ 214s] ^ [ 214s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 214s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function) [ 214s] case BSSGP_PDUT_OVERLOAD: [ 214s] ^ [ 214s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 214s] Makefile:482: recipe for target 'gb_proxy.o' failed [ 214s] make[4]: *** [gb_proxy.o] Error 1 [ 214s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/gbproxy' [ 214s] Makefile:383: recipe for target 'all-recursive' failed [ 214s] make[3]: *** [all-recursive] Error 1 [ 214s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 214s] Makefile:449: recipe for target 'all-recursive' failed [ 214s] make[2]: *** [all-recursive] Error 1 [ 214s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 214s] Makefile:380: recipe for target 'all' failed [ 214s] make[1]: *** [all] Error 2 [ 214s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 214s] dh_auto_build: make -j1 returned exit code 2 [ 214s] debian/rules:45: recipe for target 'build' failed [ 214s] make: *** [build] Error 2 [ 214s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 214s] ### VM INTERACTION START ### [ 215s] Powering off. [ 215s] [ 205.285476] reboot: Power down [ 215s] ### VM INTERACTION END ### [ 215s] [ 215s] lamb18 failed "build osmo-sgsn_1.6.0.72.c8d98.dsc" at Thu Dec 3 02:34:03 UTC 2020. [ 215s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:35:57 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:35:57 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5fc84f19beb43_32f62b201ad0c5e0148228@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: [ 48s] CC gb_proxy_ctrl.o [ 48s] CC gb_proxy_vty.o [ 48s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 48s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 48s] case BSSGP_PDUT_OVERLOAD: [ 48s] ^~~~~~~~~~~~~~~~~~~ [ 48s] BSSGP_PDUT_BVC_BLOCK [ 48s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 48s] CC gb_proxy_patch.o [ 48s] make[3]: *** [Makefile:492: gb_proxy.o] Error 1 [ 48s] make[3]: *** Waiting for unfinished jobs.... [ 49s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src/gbproxy' [ 49s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 49s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src' [ 49s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 49s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98' [ 49s] make: *** [Makefile:392: all] Error 2 [ 49s] error: Bad exit status from /var/tmp/rpm-tmp.LHKPZn (%build) [ 49s] [ 49s] [ 49s] RPM build errors: [ 49s] Bad exit status from /var/tmp/rpm-tmp.LHKPZn (%build) [ 49s] ### VM INTERACTION START ### [ 52s] [ 44.330695] sysrq: SysRq : Power Off [ 52s] [ 44.333849] reboot: Power down [ 52s] ### VM INTERACTION END ### [ 52s] [ 52s] old-atreju2 failed "build osmo-sgsn.spec" at Thu Dec 3 02:33:57 UTC 2020. [ 52s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:36:14 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:36:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <5fc84f38b1f63_32f62b201ad0c5e01484a5@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: [ 56s] CC gb_proxy_tlli.o [ 56s] CC gb_proxy_vty.o [ 56s] CC gb_proxy_peer.o [ 57s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 57s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 57s] case BSSGP_PDUT_OVERLOAD: [ 57s] ^~~~~~~~~~~~~~~~~~~ [ 57s] BSSGP_PDUT_BVC_BLOCK [ 57s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 57s] make[3]: *** [Makefile:492: gb_proxy.o] Error 1 [ 57s] make[3]: *** Waiting for unfinished jobs.... [ 57s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src/gbproxy' [ 57s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 57s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src' [ 57s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 57s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98' [ 57s] make: *** [Makefile:392: all] Error 2 [ 57s] error: Bad exit status from /var/tmp/rpm-tmp.29aBRn (%build) [ 57s] [ 57s] [ 57s] RPM build errors: [ 57s] Bad exit status from /var/tmp/rpm-tmp.29aBRn (%build) [ 57s] ### VM INTERACTION START ### [ 60s] [ 51.647626] sysrq: Power Off [ 60s] [ 51.655575] reboot: Power down [ 60s] ### VM INTERACTION END ### [ 60s] [ 60s] lamb03 failed "build osmo-sgsn.spec" at Thu Dec 3 02:34:10 UTC 2020. [ 60s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:37:05 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:37:05 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5fc84f597bf9c_32f62b201ad0c5e01486a@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb02:6) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 02:37:39 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 02:37:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc84f92dd322_32f62b201ad0c5e0148795@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 208s] Processing triggers for mailcap (3.67) ... [ 208s] Processing triggers for man-db (2.9.3-2) ... [ 208s] [450/515] installing texlive-plain-generic-2020.20201129-1 [ 212s] Processing triggers for tex-common (6.15) ... [ 212s] Running mktexlsr. This may take some time... done. [ 212s] [451/515] installing libosmo-netif-dev-1.0.0.8.bd77 [ 212s] [452/515] installing texlive-latex-base-2020.20201129-2 [ 213s] Processing triggers for man-db (2.9.3-2) ... [ 213s] Processing triggers for tex-common (6.15) ... [ 213s] Running mktexlsr. This may take some time... done. [ 214s] Running updmap-sys. This may take some time... done. [ 214s] Running mktexlsr /var/lib/texmf ... done. [ 214s] Building format(s) --all. [ 223s] This may take some time... [ 223s] fmtutil failed. Output has been stored in [ 223s] /tmp/fmtutil.cnjKTwhE [ 223s] Please include this file if you report a bug. [ 223s] dpkg: error processing package tex-common (--install): [ 223s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 223s] Errors were encountered while processing: [ 223s] tex-common [ 223s] exit ... [ 223s] ### VM INTERACTION START ### [ 226s] [ 164.343539] sysrq: Power Off [ 226s] [ 164.347209] reboot: Power down [ 226s] ### VM INTERACTION END ### [ 226s] [ 226s] cloud128 failed "build osmo-msc_1.6.1.87.e917b.dsc" at Thu Dec 3 02:37:00 UTC 2020. [ 226s] -- 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 Dec 3 02:49:37 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 02:49:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add second bvc in some NSE, improve bvci numbering In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 ) Change subject: gbproxy: Add second bvc in some NSE, improve bvci numbering ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 02:49: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 Dec 3 02:54:15 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 02:54:15 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21463 ) Change subject: Introduce NM GPRS CELL FSM ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21463/2/src/osmo-bsc/nm_gprs_cell_fsm.c File src/osmo-bsc/nm_gprs_cell_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21463/2/src/osmo-bsc/nm_gprs_cell_fsm.c at 99 PS2, Line 99: OSMO_ASSERT(msgb); /* if (!msgb); break; */ why not if(!msgb)? Should we really segfault on low memory? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 02:54: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 Dec 3 02:54:38 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 02:54:38 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21463 ) Change subject: Introduce NM GPRS CELL FSM ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 02:54: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 Dec 3 02:58:29 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 02:58:29 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21452/4/src/osmo-bsc/nm_gprs_nsvc_fsm.c File src/osmo-bsc/nm_gprs_nsvc_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21452/4/src/osmo-bsc/nm_gprs_nsvc_fsm.c at 71 PS4, Line 71: /*should not happen... */ whitespace missing :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 02:58:29 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Dec 3 03:00:12 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 03:00:12 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc854dc33ee0_32f62b201ad0c5e0151469@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: [ 60s] CC gb_proxy_main.o [ 60s] CC gb_proxy_vty.o [ 60s] CC gb_proxy_ctrl.o [ 60s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 60s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 60s] case BSSGP_PDUT_OVERLOAD: [ 60s] ^~~~~~~~~~~~~~~~~~~ [ 60s] BSSGP_PDUT_BVC_BLOCK [ 60s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 60s] make[3]: *** [Makefile:492: gb_proxy.o] Error 1 [ 60s] make[3]: *** Waiting for unfinished jobs.... [ 61s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src/gbproxy' [ 61s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 61s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src' [ 61s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 61s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98' [ 61s] make: *** [Makefile:392: all] Error 2 [ 61s] error: Bad exit status from /var/tmp/rpm-tmp.a6r4El (%build) [ 61s] [ 61s] [ 61s] RPM build errors: [ 61s] Bad exit status from /var/tmp/rpm-tmp.a6r4El (%build) [ 61s] ### VM INTERACTION START ### [ 64s] [ 53.030337] sysrq: SysRq : Power Off [ 64s] [ 53.031622] reboot: Power down [ 64s] ### VM INTERACTION END ### [ 64s] [ 64s] obs-arm-9 failed "build osmo-sgsn.spec" at Thu Dec 3 02:59:44 UTC 2020. [ 64s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 03:01:38 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 03:01:38 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc855334dca2_32f62b201ad0c5e0151542@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: [ 60s] CC gb_proxy_main.o [ 60s] CC gb_proxy_vty.o [ 60s] CC gb_proxy_ctrl.o [ 60s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 60s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 60s] 1405 | case BSSGP_PDUT_OVERLOAD: [ 60s] | ^~~~~~~~~~~~~~~~~~~ [ 60s] | BSSGP_PDUT_BVC_BLOCK [ 60s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 60s] make[3]: *** [Makefile:502: gb_proxy.o] Error 1 [ 60s] make[3]: *** Waiting for unfinished jobs.... [ 60s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src/gbproxy' [ 60s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 60s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src' [ 60s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 60s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98' [ 60s] make: *** [Makefile:392: all] Error 2 [ 60s] error: Bad exit status from /var/tmp/rpm-tmp.89hNmj (%build) [ 60s] [ 60s] [ 60s] RPM build errors: [ 60s] Bad exit status from /var/tmp/rpm-tmp.89hNmj (%build) [ 60s] ### VM INTERACTION START ### [ 63s] [ 51.261084] sysrq: Power Off [ 63s] [ 51.262262] reboot: Power down [ 64s] ### VM INTERACTION END ### [ 64s] [ 64s] obs-arm-8 failed "build osmo-sgsn.spec" at Thu Dec 3 03:00:36 UTC 2020. [ 64s] -- 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 Dec 3 03:05:25 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 03:05:25 +0000 Subject: Change in libosmocore[master]: ns2: Add filtering by NSE/NSEI In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21465 ) Change subject: ns2: Add filtering by NSE/NSEI ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Gerrit-Change-Number: 21465 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 03:05: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 Dec 3 03:06:38 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 03:06:38 +0000 Subject: Change in osmo-sgsn[master]: mm_state_gb_fsm: Handle implicit detach from mm_standby In-Reply-To: References: Message-ID: lynxis lazus has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 ) Change subject: mm_state_gb_fsm: Handle implicit detach from mm_standby ...................................................................... Removed Code-Review-1 by lynxis lazus -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I63d04a2dcdc17b4df6616c515641c435d919c787 Gerrit-Change-Number: 17080 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 3 03:06:56 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 03:06:56 +0000 Subject: Change in osmo-sgsn[master]: mm_state_gb_fsm: Handle implicit detach from mm_standby In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 ) Change subject: mm_state_gb_fsm: Handle implicit detach from mm_standby ...................................................................... Patch Set 3: Code-Review+2 I should explain ... -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I63d04a2dcdc17b4df6616c515641c435d919c787 Gerrit-Change-Number: 17080 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 03:06:56 +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 Dec 3 03:17:20 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 03:17:20 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcap in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5fc858da1c477_32f62b201ad0c5e0152637@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcap/Debian_9.0/aarch64 Package network:osmocom:nightly/osmo-pcap failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcap Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-8:39) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 03:23:03 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 03:23:03 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5fc85a1d36ec7_32f62b201ad0c5e015371e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_9.0/aarch64 Package network:osmocom:nightly/osmo-e1d failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-e1d Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-8:35) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 03:40:28 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 03:40:28 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5fc85e3ad65c9_32f62b201ad0c5e0155370@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Debian_10/aarch64 Package network:osmocom:nightly/osmo-smlc failed to build in Debian_10/aarch64 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 obs-arm-9:23) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 04:10:28 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 04:10:28 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fc86542bcb27_32f62b201ad0c5e0156879@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_10/armv7l Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild02:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 05:21:54 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 05:21:54 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fc87603b9ddc_32f62b201ad0c5e01646f8@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: [ 293s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_message.lo gprs_ns2_message.c [ 293s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_vty.lo gprs_ns2_vty.c [ 293s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 293s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 293s] In file included from gprs_ns2_fr.c:53: [ 293s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 293s] 7 | #include [ 293s] | ^~~~~~~~~~~~~~~~~ [ 293s] compilation terminated. [ 293s] make[2]: *** [Makefile:572: gprs_ns2_fr.lo] Error 1 [ 293s] make[2]: *** Waiting for unfinished jobs.... [ 293s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_message.c -fPIC -DPIC -o .libs/gprs_ns2_message.o [ 293s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vty.c -fPIC -DPIC -o .libs/gprs_ns2_vty.o [ 294s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7/src/gb' [ 294s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 294s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7' [ 294s] make: *** [Makefile:483: all] Error 2 [ 294s] error: Bad exit status from /var/tmp/rpm-tmp.c79R4a (%build) [ 294s] [ 294s] [ 294s] RPM build errors: [ 294s] Bad exit status from /var/tmp/rpm-tmp.c79R4a (%build) [ 294s] ### VM INTERACTION START ### [ 297s] [ 263.245548] sysrq: Power Off [ 297s] [ 263.255093] reboot: Power down [ 298s] ### VM INTERACTION END ### [ 298s] [ 298s] obs-arm-6 failed "build libosmocore.spec" at Thu Dec 3 05:21:13 UTC 2020. [ 298s] -- 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 Dec 3 05:40:16 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 05:40:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix typo in comment References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21482 ) Change subject: gprs_ns2: fix typo in comment ...................................................................... gprs_ns2: fix typo in comment Change-Id: Ic0653ce7de8d2d64bd7cf10e148b07da8cbeb0a2 --- M src/gb/gprs_ns2.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/82/21482/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 9bf1d7f..15364fc 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1202,7 +1202,7 @@ /*! Set the mode of given bind. * \param[in] bind the bind we want to set the mode of - * \param[in] modde mode to set bind to */ + * \param[in] mode mode to set bind to */ void gprs_ns2_bind_set_mode(struct gprs_ns2_vc_bind *bind, enum gprs_ns2_vc_mode mode) { bind->vc_mode = mode; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0653ce7de8d2d64bd7cf10e148b07da8cbeb0a2 Gerrit-Change-Number: 21482 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 Dec 3 05:40:16 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 05:40:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use switch() case instead of multiple if in ns2_create_vc() References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21483 ) Change subject: gprs_ns2: use switch() case instead of multiple if in ns2_create_vc() ...................................................................... gprs_ns2: use switch() case instead of multiple if in ns2_create_vc() Improve readibilty and allows it to extend for future ns2 vty changes Change-Id: I8bd9c75fb04169a166b7a3f5e13a5902250cfd0e --- M src/gb/gprs_ns2.c 1 file changed, 14 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/83/21483/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 15364fc..69c1174 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -772,42 +772,37 @@ if (msg->len < sizeof(struct gprs_ns_hdr)) return GPRS_NS2_CS_ERROR; - if (nsh->pdu_type == NS_PDUT_STATUS) { + switch (nsh->pdu_type) { + case NS_PDUT_STATUS: /* Do not respond, see 3GPP TS 08.16, 7.5.1 */ LOGP(DLNS, LOGL_INFO, "Ignoring NS STATUS from %s " "for non-existing NS-VC\n", logname); return GPRS_NS2_CS_SKIPPED; - } - - if (nsh->pdu_type == NS_PDUT_ALIVE_ACK) { + 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; - } - - if (nsh->pdu_type == NS_PDUT_RESET_ACK) { + 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; - } + case NS_PDUT_RESET: + /* accept PDU RESET when vc_mode matches */ + if (bind->vc_mode == NS2_VC_MODE_BLOCKRESET) + break; - if (bind->vc_mode == NS2_VC_MODE_BLOCKRESET) { - /* Only the RESET procedure creates a new NSVC */ - if (nsh->pdu_type != NS_PDUT_RESET) { - 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 rc; - } - return GPRS_NS2_CS_REJECTED; + 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 rc; } - } else { /* NS2_VC_MODE_ALIVE */ + return GPRS_NS2_CS_REJECTED; + default: rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8bd9c75fb04169a166b7a3f5e13a5902250cfd0e Gerrit-Change-Number: 21483 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 Dec 3 05:40:17 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 05:40:17 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... gprs_ns2: introduce NS dialects A NS dialect describes how the NS Entity interacts with different virtual circuits. E.g. ipaccess use reset/block on udp and is a dynamic connection. A single NS Entity can only support one dialect. This can be later used to protect a NS Entity against dynamic NS virtual circuits of a different type. It further allows a bind to support multiple dialects at the same time. Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 --- 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_internal.h M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 7 files changed, 68 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/84/21484/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 4575329..ccb1a94 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -32,6 +32,13 @@ NS2_VC_MODE_ALIVE, }; +enum gprs_ns2_dialect { + NS2_DIALECT_STATIC_ALIVE, + NS2_DIALECT_STATIC_RESETBLOCK, + NS2_DIALECT_IPACCESS, + NS2_DIALECT_SNS, +}; + /*! Osmocom NS link layer types */ enum gprs_ns2_ll { GPRS_NS2_LL_UDP, /*!< NS/UDP/IP */ @@ -144,7 +151,8 @@ gprs_ns2_foreach_nsvc_cb cb, void *cb_data); struct gprs_ns2_nse *gprs_ns2_nse_by_nsei(struct gprs_ns2_inst *nsi, uint16_t nsei); struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, - enum gprs_ns2_ll linklayer); + enum gprs_ns2_ll linklayer, + enum gprs_ns2_dialect dialect); uint16_t gprs_ns2_nse_nsei(struct gprs_ns2_nse *nse); void gprs_ns2_free_nse(struct gprs_ns2_nse *nse); void gprs_ns2_free_nses(struct gprs_ns2_inst *nsi); @@ -160,7 +168,6 @@ struct gprs_ns2_vc_bind **result); struct gprs_ns2_vc_bind *gprs_ns2_ip_bind_by_sockaddr(struct gprs_ns2_inst *nsi, const struct osmo_sockaddr *sockaddr); -void gprs_ns2_bind_set_mode(struct gprs_ns2_vc_bind *bind, enum gprs_ns2_vc_mode mode); /* FR VL driver */ struct gprs_ns2_vc_bind *gprs_ns2_fr_bind_by_netif( @@ -188,7 +195,8 @@ struct gprs_ns2_vc *gprs_ns2_ip_connect2(struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *remote, uint16_t nsei, - uint16_t nsvci); + uint16_t nsvci, + enum gprs_ns2_dialect dialect); struct gprs_ns2_vc *gprs_ns2_ip_connect_inactive(struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *remote, struct gprs_ns2_nse *nse, diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 69c1174..a2443ea 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -491,7 +491,8 @@ * \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) * \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) +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) { struct gprs_ns2_vc *nsvc = talloc_zero(bind, struct gprs_ns2_vc); @@ -500,7 +501,7 @@ nsvc->bind = bind; nsvc->nse = nse; - nsvc->mode = bind->vc_mode; + nsvc->mode = vc_mode; nsvc->sig_weight = 1; nsvc->data_weight = 1; @@ -671,7 +672,8 @@ * \param[in] nsi NS instance in which to create NS Entity * \param[in] nsei NS Entity Identifier of to-be-created NSE * \returns newly-allocated NS-E in successful case; NULL on error */ -struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, enum gprs_ns2_ll linklayer) +struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, + enum gprs_ns2_ll linklayer, enum gprs_ns2_dialect dialect) { struct gprs_ns2_nse *nse; @@ -685,6 +687,7 @@ if (!nse) return NULL; + nse->dialect = dialect; nse->ll = linklayer; nse->nsei = nsei; nse->nsi = nsi; @@ -764,6 +767,8 @@ struct tlv_parsed tp; struct gprs_ns2_vc *nsvc; struct gprs_ns2_nse *nse; + enum gprs_ns2_dialect dialect; + enum gprs_ns2_vc_mode vc_mode; uint16_t nsvci; uint16_t nsei; @@ -793,8 +798,10 @@ return GPRS_NS2_CS_SKIPPED; case NS_PDUT_RESET: /* accept PDU RESET when vc_mode matches */ - if (bind->vc_mode == NS2_VC_MODE_BLOCKRESET) + if (bind->accept_ipaccess) { + dialect = NS2_DIALECT_IPACCESS; break; + } rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); if (rc < 0) { @@ -836,13 +843,14 @@ return GPRS_NS2_CS_SKIPPED; } - nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll); + nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll, dialect); if (!nse) { return GPRS_NS2_CS_ERROR; } } - nsvc = ns2_vc_alloc(bind, nse, false); + vc_mode = gprs_ns2_dialect_to_vc_mode(dialect); + nsvc = ns2_vc_alloc(bind, nse, false, vc_mode); if (!nsvc) return GPRS_NS2_CS_SKIPPED; @@ -910,12 +918,13 @@ struct gprs_ns2_vc *gprs_ns2_ip_connect2(struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *remote, uint16_t nsei, - uint16_t nsvci) + uint16_t nsvci, + enum gprs_ns2_dialect dialect) { 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_UDP); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP, dialect); if (!nse) return NULL; } @@ -936,7 +945,7 @@ struct gprs_ns2_vc *nsvc; if (!nse) { - nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP, NS2_DIALECT_SNS); if (!nse) return -1; } @@ -1195,14 +1204,6 @@ } } -/*! Set the mode of given bind. - * \param[in] bind the bind we want to set the mode of - * \param[in] mode mode to set bind to */ -void gprs_ns2_bind_set_mode(struct gprs_ns2_vc_bind *bind, enum gprs_ns2_vc_mode mode) -{ - bind->vc_mode = mode; -} - /*! Destroy a given bind. * \param[in] bind the bind we want to destroy */ void gprs_ns2_free_bind(struct gprs_ns2_vc_bind *bind) @@ -1230,4 +1231,20 @@ gprs_ns2_free_bind(bind); } } + +enum gprs_ns2_vc_mode gprs_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; + default: + return -1; + } +} + /*! @} */ diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 3cf44ef..9327d54 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -595,7 +595,7 @@ 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); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK); if (!nse) return NULL; created_nse = true; @@ -606,7 +606,7 @@ goto err_nse; } - nsvc = ns2_vc_alloc(bind, nse, true); + nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET); if (!nsvc) goto err_nse; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index e72deff..a8a4321 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -130,6 +130,9 @@ /*! which link-layer are we based on? */ enum gprs_ns2_ll ll; + /*! which dialect does this NSE speaks? */ + enum gprs_ns2_dialect dialect; + struct osmo_fsm_inst *bss_sns_fi; }; @@ -188,8 +191,8 @@ struct gprs_ns2_inst *nsi; struct gprs_ns2_vc_driver *driver; - /*! if VCs use reset/block/unblock method. IP shall not use this */ - enum gprs_ns2_vc_mode vc_mode; + bool accept_ipaccess; + bool accept_sns; /*! which link-layer are we based on? */ enum gprs_ns2_ll ll; @@ -222,7 +225,8 @@ struct gprs_ns2_vc *ns2_vc_alloc(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_nse *nse, - bool initiater); + bool initiater, + enum gprs_ns2_vc_mode vc_mode); struct msgb *gprs_ns2_msgb_alloc(void); @@ -303,3 +307,4 @@ /* 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); diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 928116d..a8cca47 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -378,8 +378,15 @@ { struct gprs_ns2_vc *nsvc; struct priv_vc *priv; + enum gprs_ns2_vc_mode vc_mode; - nsvc = ns2_vc_alloc(bind, nse, true); + vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect); + if (vc_mode == -1) { + LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect. Maybe libosmocore is too old.\n"); + return NULL; + } + + nsvc = ns2_vc_alloc(bind, nse, true, vc_mode); if (!nsvc) return NULL; diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 8b8a999..1650ba9 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -858,6 +858,7 @@ struct gprs_ns2_nse *nse; struct gprs_ns2_vc *nsvc; struct osmo_sockaddr sockaddr; + enum gprs_ns2_dialect dialect; int rc = 0; if (!vty_nsi) @@ -882,6 +883,7 @@ /* validate settings */ switch (vtyvc->ll) { case GPRS_NS2_LL_UDP: + dialect = NS2_DIALECT_STATIC_ALIVE; if (strlen(vtyvc->remote.ip) == 0) { /* Invalid IP for VC */ continue; @@ -898,14 +900,16 @@ } break; case GPRS_NS2_LL_FR: + dialect = NS2_DIALECT_STATIC_RESETBLOCK; break; case GPRS_NS2_LL_FR_GRE: + dialect = NS2_DIALECT_STATIC_RESETBLOCK; continue; } nse = gprs_ns2_nse_by_nsei(vty_nsi, vtyvc->nsei); if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll); + nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll, dialect); if (!nse) { /* Could not create NSE for VTY */ continue; diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 2c4e897..d390035 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -82,7 +82,6 @@ gprs_ns_msgb_alloc; gprs_ns2_aff_cause_prim_strs; -gprs_ns2_bind_set_mode; gprs_ns2_cause_strs; gprs_ns2_create_nse; gprs_ns2_dynamic_create_nse; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 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 Dec 3 05:40:17 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 05:40:17 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_bind_by_name() References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21485 ) Change subject: gprs_ns2: add gprs_ns2_bind_by_name() ...................................................................... gprs_ns2: add gprs_ns2_bind_by_name() To find a bind by a unique name. The new vty will add unique names to bind. Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/libosmogb.map 3 files changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/85/21485/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index ccb1a94..598f197 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -168,6 +168,7 @@ struct gprs_ns2_vc_bind **result); struct gprs_ns2_vc_bind *gprs_ns2_ip_bind_by_sockaddr(struct gprs_ns2_inst *nsi, const struct osmo_sockaddr *sockaddr); +struct gprs_ns2_vc_bind *gprs_ns2_bind_by_name(struct gprs_ns2_inst *nsi, const char *name); /* FR VL driver */ struct gprs_ns2_vc_bind *gprs_ns2_fr_bind_by_netif( diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index a2443ea..8a679f4 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1232,6 +1232,24 @@ } } +/*! Search for a bind with a unique name + * \param[in] nsi NS instance on which we operate + * \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 *bind; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!strcmp(bind->name, name)) + return bind; + } + + return NULL; +} + enum gprs_ns2_vc_mode gprs_ns2_dialect_to_vc_mode( enum gprs_ns2_dialect dialect) { diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index d390035..9c5e84b 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -82,6 +82,7 @@ gprs_ns_msgb_alloc; gprs_ns2_aff_cause_prim_strs; +gprs_ns2_bind_by_name; gprs_ns2_cause_strs; gprs_ns2_create_nse; gprs_ns2_dynamic_create_nse; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Gerrit-Change-Number: 21485 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 Dec 3 05:40:18 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 05:40:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework gprs_ns2_fr_connect*() References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21486 ) Change subject: gprs_ns2: rework gprs_ns2_fr_connect*() ...................................................................... gprs_ns2: rework gprs_ns2_fr_connect*() Add gprs_ns2_fr_connect2() and change gprs_ns2_fr_connect() to be similar to gprs_ns2_ip_connect() and gprs_ns2_connect2(). This is an API break but there wasn't yet a release with NS2. Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_fr.c 2 files changed, 43 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/86/21486/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 598f197..942cb87 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -183,6 +183,10 @@ int gprs_ns2_is_fr_bind(struct gprs_ns2_vc_bind *bind); struct gprs_ns2_vc *gprs_ns2_fr_nsvc_by_dlci(struct gprs_ns2_vc_bind *bind, uint16_t dlci); struct gprs_ns2_vc *gprs_ns2_fr_connect(struct gprs_ns2_vc_bind *bind, + struct gprs_ns2_nse *nse, + uint16_t nsvci, + uint16_t dlci); +struct gprs_ns2_vc *gprs_ns2_fr_connect2(struct gprs_ns2_vc_bind *bind, uint16_t nsei, uint16_t nsvci, uint16_t dlci); diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 9327d54..3c84356 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -586,6 +586,45 @@ * \param[in] dlci Data Link connection identifier * \return pointer to newly-allocated, connected and activated NS-VC; NULL on error */ struct gprs_ns2_vc *gprs_ns2_fr_connect(struct gprs_ns2_vc_bind *bind, + struct gprs_ns2_nse *nse, + uint16_t nsvci, + uint16_t dlci) +{ + struct gprs_ns2_vc *nsvc = NULL; + struct priv_vc *priv = NULL; + + nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); + if (nsvc) { + goto err; + } + + nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET); + if (!nsvc) + goto err; + + 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); + return NULL; +} + + +/*! Create, connect and activate a new FR-based NS-VC + * \param[in] bind bind in which the new NS-VC is to be created + * \param[in] nsei NSEI of the NS Entity in which the NS-VC is to be created + * \param[in] dlci Data Link connection identifier + * \return pointer to newly-allocated, connected and activated NS-VC; NULL on error */ +struct gprs_ns2_vc *gprs_ns2_fr_connect2(struct gprs_ns2_vc_bind *bind, uint16_t nsei, uint16_t nsvci, uint16_t dlci) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 Gerrit-Change-Number: 21486 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 Dec 3 05:40:18 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 3 Dec 2020 05:40:18 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: add new vty2 References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: WIP: gprs_ns2: add new vty2 ...................................................................... WIP: gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h A src/gb/gprs_ns2_vty2.c 5 files changed, 1,061 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 942cb87..d73fd82 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -37,6 +37,7 @@ NS2_DIALECT_STATIC_RESETBLOCK, NS2_DIALECT_IPACCESS, NS2_DIALECT_SNS, + NS2_DIALECT_UNDEF, }; /*! Osmocom NS link layer types */ @@ -44,6 +45,7 @@ GPRS_NS2_LL_UDP, /*!< NS/UDP/IP */ GPRS_NS2_LL_FR, /*!< NS/FR */ GPRS_NS2_LL_FR_GRE, /*!< NS/FR/GRE/IP */ + GPRS_NS2_LL_UNDEF, /*!< undefined used by vty */ }; /*! Osmocom NS primitives according to 48.016 5.2 Service primitves */ diff --git a/include/osmocom/vty/command.h b/include/osmocom/vty/command.h index add57e2..431e20b 100644 --- a/include/osmocom/vty/command.h +++ b/include/osmocom/vty/command.h @@ -100,6 +100,9 @@ L_CS7_SCCPADDR_GT_NODE, /*!< SS7 SCCP Global Title */ L_CPU_SCHED_NODE, /*!< CPU Sched related options node */ + L_FR_NODE, + L_NS_BIND_NODE, + L_NS_NSE_NODE, /* * When adding new nodes to the libosmocore project, these nodes can be * used to avoid ABI changes for unrelated projects. diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 41b6c6d..e393a44 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -22,7 +22,7 @@ gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.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 \ common_vty.c frame_relay.c endif diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index a8a4321..6d08c17 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -181,12 +181,18 @@ /*! Structure repesenting a bind instance. E.g. IPv4 listen port. */ struct gprs_ns2_vc_bind { + /*! unique name */ + const char *name; + /*! list entry in nsi */ struct llist_head list; + /*! list of all VC */ struct llist_head nsvc; + /*! driver private structure */ void *priv; + /*! a pointer back to the nsi */ struct gprs_ns2_inst *nsi; struct gprs_ns2_vc_driver *driver; diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c new file mode 100644 index 0000000..e53b589 --- /dev/null +++ b/src/gb/gprs_ns2_vty2.c @@ -0,0 +1,1049 @@ +/*! \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" + +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; +}; + +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(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 fr_node = { + L_FR_NODE, + "%s(config-fr)# ", + 1, +}; + +DEFUN(cfg_fr, cfg_fr_cmd, + "fr", + "Configure frame relay interface\n" + ) +{ + vty->node = L_FR_NODE; + return CMD_SUCCESS; +} + +DEFUN(cfg_fr_link, cfg_fr_link_cmd, + "link NETIF (fr|frnet)", + "link\n" + IFNAME_STR + "framrelay role. fr is used by BSS, frnet is used by frnet\n") +{ + struct gprs_ns2_vc_bind *fr; + const char *netif = argv[0]; + const char *role = argv[1]; + + int rc = 0; + enum osmo_fr_role frrole; + + if (!strcmp(role, "fr")) + frrole = FR_ROLE_USER_EQUIPMENT; + else if (!strcmp(role, "frnet")) + frrole = FR_ROLE_NETWORK_EQUIPMENT; + + fr = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (fr) { + vty_out(vty, "Interface %s already used.\n", VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + rc = gprs_ns2_fr_bind(vty_nsi, netif, vty_fr_network, frrole, &fr); + 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_fr_link, cfg_no_fr_link_cmd, + "no link NETIF", + "Delete a framerelay link\n" + "Delete a framerelay link\n" + IFNAME_STR + ) +{ + struct gprs_ns2_vc_bind *fr; + const char *netif = argv[0]; + + fr = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!fr) { + vty_out(vty, "Interface not found.%s", VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + fr->driver->free_bind(fr); + return CMD_SUCCESS; +} + +static int config_write_fr(struct vty *vty) +{ + return 0; +} + +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_nsei, cfg_ns_nsei_cmd, + "nse <0-65535>", + "Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + "NS-E type\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, 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) { + vty_out(vty, "A dynamic NSE 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>", + "Delete a Persistent NS Entity\n" + "Delete a Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + "NS-E type\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 %d%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 (frgre|udp) ID", + "Binding\n" + "UDP or FR over GRE\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; + + if (!strcmp("frgre", nstype)) { + vty_out(vty, "fr/gre is unsupported%s", VTY_NEWLINE); + return CMD_WARNING; + } else if (!strcmp("udp", nstype)) { + vbind = vty_bind_by_name(name); + if (!vbind) { + 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 = GPRS_NS2_LL_UDP; + } else { + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "A bind with the ID already exists with a different type (frgre|udp)!%s", + VTY_NEWLINE); + return CMD_WARNING; + } + } + vty->index = vbind; + vty->node = L_NS_BIND_NODE; + return CMD_SUCCESS; + } + + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, + "no bind (frgre|udp) ID", + "Delete a binding\n" + "Delete a binding\n" + "UDP or FR over GRE\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[1]; + + 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 int config_write_ns(struct vty *vty) +{ + 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 (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); + /* TODO: how to react with a changed bind ip? + * a bind can only have a single listen! */ + + if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { + vty_out(vty, "A bind with the given address already exists!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_ip_bind(vty_nsi, &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", + "Delete a IP/Port assignment\n" + "Delete a IP/Port assignment\n" + "IPv4 Address\n" "IPv6 Address\n" + "Port\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (!bind) + return CMD_ERR_NOTHING_TODO; + + bind->driver->free_bind(bind); + 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; + + 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_ipaccess, cfg_no_ns_ipaccess_cmd, + "no accept ipaccess", + "Reject NS Reset PDU on UDP (ip.access style)\n" + "Reject NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + vbind->accept_ipaccess = false; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = false; + + return CMD_SUCCESS; +} + +static int config_write_ns_bind(struct vty *vty) +{ + return 0; +} + +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 nsvci <0-65535> dlci <0-1023>", + "NS Virtual Connection\n" + "framerelay\n" + "frame relay interface. Must be registered via fr vty\n" + "NS Virtual Connection ID (NSVCI)\n" + "NS Virtual Connection ID (NSVCI)\n" + "Data Link connection identifier\n" + "Data Link connection identifier\n" + ) +{ + 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 nsvci = atoi(argv[1]); + uint16_t dlci = 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 NSVC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != NS2_DIALECT_UNDEF) { + vty_out(vty, "Can not mix NS VC with different dailects%s", VTY_NEWLINE); + goto err; + } + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_FR; + ll_modified = true; + } + + if (nse->dialect == NS2_DIALECT_UNDEF) { + nse->dialect = 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 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 NSVCI already exist!%s", VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); + if (!nsvc) { + /* Could not create NSVC, connect failed */ + vty_out(vty, "Failed to create the NSVC%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 = NS2_DIALECT_UNDEF; + + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_fr, cfg_no_ns_nse_nsvc_fr_cmd, + "no nsvc fr NETIF nsvci <0-65535> dlci <0-1023>", + "Delete framerelay NS VC\n" + "Delete framerelay NS VC\n" + "framerelay\n" + "frame relay interface. Must be registered via fr vty\n" + "NS Virtual Connection ID (NSVCI)\n" + "NS Virtual Connection ID (NSVCI)\n" + "Data Link connection identifier\n" + "Data Link connection identifier\n" + ) +{ + 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 nsvci = atoi(argv[1]); + uint16_t vty_dlci = atoi(argv[2]); + uint16_t dlci; + + 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_nsvc_by_nsvci(vty_nsi, nsvci); + if (!nsvc) { + vty_out(vty, "Can not find NS VC with NSVCI %d%s", nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->bind != bind) { + vty_out(vty, "NS VC with NSVCI %d is not bound to fr interface %s%s", + nsvci, netif, VTY_NEWLINE); + return CMD_WARNING; + } + + dlci = gprs_ns2_fr_nsvc_dlci(nsvc); + if (dlci != vty_dlci) { + vty_out(vty, "NS VC with NSVCI %d have the wrong dlci %d. Expected %d%s", + nsvci, dlci, vty_dlci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "NSVC with NSVCI %d dlci %d is not part of this NSE!%s", + nsvci, dlci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = 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 == NS2_DIALECT_UNDEF) { + nse->dialect = 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 != NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "Can not mix NS VC with different dailects%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 = 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>", + "Delete a NS Virtual Connection\n" + "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, "NSE is not an UDP NSE%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "Can not mix NS VC with different dailects%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:%d%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NSVC with remote %s:%d is a dynamic NSVC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NSVC 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 = NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, + "nsvc ipa BIND nsvci <0-65535> " VTY_IPV46_CMD " <1-65535>", + "NS Virtual Connection\n" + "NS over UDP ip.access style (uses RESET/BLOCK)\n" + "A unique bind identifier created by ns bind\n" + "NS Virtual Connection ID (NSVCI)\n" + "NS Virtual Connection ID (NSVCI)\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]; + uint16_t nsvci = atoi(argv[1]); + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[3]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == NS2_DIALECT_UNDEF) { + nse->dialect = 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 != NS2_DIALECT_IPACCESS) { + vty_out(vty, "Can not mix NS VC with different dailects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[2], 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 = NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, + "no nsvc ipa BIND nsvci <0-65535> " VTY_IPV46_CMD " <1-65535>", + "Delete a NS Virtual Connection\n" + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "NS Virtual Connection ID (NSVCI)\n" + "NS Virtual Connection ID (NSVCI)\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]; + uint16_t nsvci = atoi(argv[1]); + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[3]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "NSE is not an UDP NSE%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != NS2_DIALECT_IPACCESS) { + vty_out(vty, "NSE is not an ipaccess NSE%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[2], 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 NSVC with remote %s:%d%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NSVC with remote %s:%d is a dynamic NSVC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NSVC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->nsvci_is_valid) { + vty_out(vty, "NSVC doesn't have a nsvci!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nsvci != nsvci) { + vty_out(vty, "NSVC has a different nsvci (%d)!%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 = NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_sns, cfg_ns_nse_sns_cmd, + "sns BINDGROUP " VTY_IPV46_CMD " <1-65535>", + "SNS Initial Endpoint\n" + "A bind group. Use \"all\" an alias for all UDP binds.\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; + + const char *bindgroup = 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 == NS2_DIALECT_UNDEF) { + nse->dialect = 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 != NS2_DIALECT_SNS) { + vty_out(vty, "Can not mix NS VC with different dailects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[2], 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; + } + + /* TODO add */ + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_sns, cfg_no_ns_nse_sns_cmd, + "no sns BINDGROUP " VTY_IPV46_CMD " <1-65535>", + "Delete a SNS Initial Endpoint\n" + "Delete a SNS Initial Endpoint\n" + "A bind group. Use \"all\" an alias for all UDP binds.\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN 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]; + uint16_t nsvci = atoi(argv[1]); + struct osmo_sockaddr_str remote_str; /* argv[2] */ + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[3]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "NSE is not an UDP NSE%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != NS2_DIALECT_IPACCESS) { + vty_out(vty, "NSE is not an ipaccess NSE%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 (osmo_sockaddr_str_from_str(&remote_str, argv[2], 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 (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +static int config_write_ns_nse(struct vty *vty) +{ + return 0; +} + +int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi) +{ + vty_nsi = nsi; + INIT_LLIST_HEAD(&binds); + + /* TODO: show xyz command */ + + install_node(&fr_node, config_write_fr); + install_lib_element(CONFIG_NODE, &cfg_fr_cmd); + install_lib_element(L_FR_NODE, &cfg_fr_link_cmd); + install_lib_element(L_FR_NODE, &cfg_no_fr_link_cmd); + + install_lib_element(CONFIG_NODE, &cfg_ns_cmd); + install_node(&ns_node, config_write_ns); + + 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_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_ipaccess_cmd); + /* TODO: accept sns group IDENTIFIER */ + + install_node(&ns_nse_node, config_write_ns_nse); + install_lib_element(L_NS_NODE, &cfg_ns_nse_nsvc_fr_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nse_nsvc_fr_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_nse_sns_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nse_sns_cmd); + + + return 0; +} -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Dec 3 05:57:02 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 05:57:02 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5fc87e35d9206_32f62b201ad0c5e01681a7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/openSUSE_Leap_15.1_ARM/armv7l Package network:osmocom:nightly/osmo-bsc failed to build in openSUSE_Leap_15.1_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild14:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 06:33:54 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 06:33:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5fc886e09c601_32f62b201ad0c5e0182048@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: [ 103s] CC gb_proxy_ctrl.o [ 103s] CC gb_proxy_tlli.o [ 103s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 103s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 103s] case BSSGP_PDUT_OVERLOAD: [ 103s] ^~~~~~~~~~~~~~~~~~~ [ 103s] BSSGP_PDUT_BVC_BLOCK [ 103s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 103s] CC gb_proxy_peer.o [ 103s] make[3]: *** [Makefile:492: gb_proxy.o] Error 1 [ 103s] make[3]: *** Waiting for unfinished jobs.... [ 104s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src/gbproxy' [ 104s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 104s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src' [ 104s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 104s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98' [ 104s] make: *** [Makefile:392: all] Error 2 [ 104s] error: Bad exit status from /var/tmp/rpm-tmp.wHqfOO (%build) [ 104s] [ 104s] [ 104s] RPM build errors: [ 104s] Bad exit status from /var/tmp/rpm-tmp.wHqfOO (%build) [ 104s] ### VM INTERACTION START ### [ 107s] [ 89.835512] sysrq: SysRq : Power Off [ 107s] [ 89.839664] reboot: Power down [ 107s] ### VM INTERACTION END ### [ 107s] [ 107s] obs-arm-6 failed "build osmo-sgsn.spec" at Thu Dec 3 06:33:31 UTC 2020. [ 107s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 3 06:36:11 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 06:36:11 +0000 Subject: Build failure of network:osmocom:nightly/osmo-iuh in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fc88779b2a02_32f62b201ad0c5e01825bd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-iuh/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/osmo-iuh failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-iuh Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild02:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From jenkins at lists.osmocom.org Thu Dec 3 06:52:13 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 3 Dec 2020 06:52:13 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal?= =?UTF-8?Q?_:_master-simtrace2_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,a4=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#1009?= In-Reply-To: <216126720.659.1606891955361@jenkins.osmocom.org> References: <216126720.659.1606891955361@jenkins.osmocom.org> Message-ID: <937133811.758.1606978333728@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Thu Dec 3 09:07:39 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 3 Dec 2020 09:07:39 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master?= =?UTF-8?Q?-osmo-ccid-firmware_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,a4=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#401?= Message-ID: <641933232.766.1606986459871@jenkins.osmocom.org> See Changes: ------------------------------------------ [...truncated 82.62 KB...] checking for backtrace in -lexecinfo... no checking whether arm-none-eabi-gcc is Clang... no checking whether pthreads work with -pthread... no checking whether pthreads work with -pthreads... no checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... no checking whether pthreads work with -Kthread... no checking whether pthreads work with -pthread... no checking whether pthreads work with -pthreads... no checking whether pthreads work with -mthreads... no checking for the pthreads library -lpthread... no checking whether pthreads work with --thread-safe... no checking whether pthreads work with -mt... no checking for pthread-config... no checking for library containing clock_gettime... no checking for doxygen... /usr/bin/doxygen checking whether SYS_getrandom is declared... no checking if arm-none-eabi-gcc supports -fvisibility=hidden... yes checking for localtime_r... no checking whether struct tm has tm_gmtoff member... no checking whether to workaround TLS bug in old gcc on ARM platforms... -mtls-dialect=gnu2 configure: WARNING: Applying workaround for TLS bug on ARM platform for GCC < 7.3.0 (-mtls-dialect=gnu2). On some toolchain versions, ld may crash. In that case you must build with CFLAGS='-O0' and run ./configure with --disable-detect-tls-gcc-arm-bug checking for TALLOC... yes checking for PCSC... yes checking for LIBGNUTLS... yes checking for LIBMNL... yes checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/site-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/site-packages checking for osmo_verify_transcript_vty.py... yes checking whether to enable VTY/CTRL tests... yes checking whether to enable ARM NEON instructions support... no checking whether to build with code coverage support... no checking whether arm-none-eabi-gcc has __builtin_cpu_supports built-in... no configure: WARNING: Runtime SIMD detection will be disabled CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -mthumb -Os -mlong-calls -g3 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -I /home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM -Wno-error=format -mtls-dialect=gnu2 -DBUILDING_LIBOSMOCORE -Wall" CPPFLAGS="-D__thread='' -DBUILDING_LIBOSMOCORE -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmocore.pc config.status: creating libosmocodec.pc config.status: creating libosmocoding.pc config.status: creating libosmovty.pc config.status: creating libosmogsm.pc config.status: creating libosmogb.pc config.status: creating libosmoctrl.pc config.status: creating libosmosim.pc config.status: creating libosmousb.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/vty/Makefile config.status: creating src/codec/Makefile config.status: creating src/coding/Makefile config.status: creating src/sim/Makefile config.status: creating src/usb/Makefile config.status: creating src/gsm/Makefile config.status: creating src/gb/Makefile config.status: creating src/ctrl/Makefile config.status: creating src/pseudotalloc/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating utils/Makefile config.status: creating Doxyfile.core config.status: creating Doxyfile.gsm config.status: creating Doxyfile.vty config.status: creating Doxyfile.codec config.status: creating Doxyfile.coding config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating contrib/libosmocore.spec config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.4.0.237-25ee7 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/libosmocore' Making install in include make[2]: Entering directory '/build/deps/libosmocore/include' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'tch_axs_sid_update' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory '/build/deps/libosmocore/include' GEN osmocom/core/bit16gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc8gen.h make[4]: Entering directory '/build/deps/libosmocore/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/install/stow/libosmocore/include' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/core' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/exec.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/mnl.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h '/build/install/stow/libosmocore/include/osmocom/core' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/cbsp.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/bsslap.h osmocom/gsm/bssmap_le.h osmocom/gsm/gad.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm0808_lcs.h osmocom/gsm/gsm29205.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm23236.h osmocom/gsm/gsm29118.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_arfcn_range_encode.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm48_rest_octets.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/gsup_sms.h osmocom/gsm/i460_mux.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h '/build/install/stow/libosmocore/include/osmocom/gsm' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/coding' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h osmocom/coding/gsm0503_amr_dtx.h '/build/install/stow/libosmocore/include/osmocom/coding' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/core' /usr/bin/install -c -m 644 osmocom/core/signal.h osmocom/core/socket.h osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/tdef.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/sockaddr_str.h osmocom/core/use_count.h '/build/install/stow/libosmocore/include/osmocom/core' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm/protocol' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_23_032.h osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_23_041.h osmocom/gsm/protocol/gsm_29_118.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/gsm_48_049.h osmocom/gsm/protocol/gsm_48_071.h osmocom/gsm/protocol/gsm_49_031.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h '/build/install/stow/libosmocore/include/osmocom/gsm/protocol' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/sim' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h '/build/install/stow/libosmocore/include/osmocom/sim' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gprs' /usr/bin/install -c -m 644 osmocom/gprs/frame_relay.h osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_ns2.h osmocom/gprs/gprs_rlc.h '/build/install/stow/libosmocore/include/osmocom/gprs' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/crypt' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h '/build/install/stow/libosmocore/include/osmocom/crypt' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm' /usr/bin/install -c -m 644 osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/oap_client.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h '/build/install/stow/libosmocore/include/osmocom/gsm' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/ctrl' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h '/build/install/stow/libosmocore/include/osmocom/ctrl' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gprs/protocol' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h '/build/install/stow/libosmocore/include/osmocom/gprs/protocol' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/codec' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h '/build/install/stow/libosmocore/include/osmocom/codec' make[4]: Leaving directory '/build/deps/libosmocore/include' make[3]: Leaving directory '/build/deps/libosmocore/include' make[2]: Leaving directory '/build/deps/libosmocore/include' Making install in src make[2]: Entering directory '/build/deps/libosmocore/src' GEN crc32gen.c GEN crc16gen.c GEN crc8gen.c GEN crc64gen.c make install-am make[3]: Entering directory '/build/deps/libosmocore/src' CC timer.lo CC context.lo CC timer_clockgettime.lo CC timer_gettimeofday.lo CC select.lo CC signal.lo CC bits.lo CC msgb.lo CC bitvec.lo CC bitcomp.lo CC counter.lo CC fsm.lo CC write_queue.lo CC utils.lo CC socket.lo CC logging.lo CC logging_syslog.lo CC logging_gsmtap.lo CC rate_ctr.lo CC gsmtap_util.lo logging.c:119:9: note: #pragma message: logging multithread support disabled in embedded build #pragma message ("logging multithread support disabled in embedded build") ^ CC crc16.lo CC panic.lo CC backtrace.lo CC conv.lo CC application.lo CC rbtree.lo CC strrb.lo CC loggingrb.lo CC crc8gen.lo CC crc16gen.lo CC crc32gen.lo CC crc64gen.lo CC macaddr.lo CC stat_item.lo CC stats.lo CC stats_statsd.lo CC prim.lo CC conv_acc.lo CC conv_acc_generic.lo CC sercomm.lo CC prbs.lo CC isdnhdlc.lo CC tdef.lo CC sockaddr_str.lo CC use_count.lo CC exec.lo CC mnl.lo In file included from mnl.c:34:0: ../include/osmocom/core/mnl.h:7:27: fatal error: libmnl/libmnl.h: No such file or directory compilation terminated. make[3]: *** [mnl.lo] Error 1 Makefile:624: recipe for target 'mnl.lo' failed make[3]: Leaving directory '/build/deps/libosmocore/src' Makefile:728: recipe for target 'install' failed make[2]: Leaving directory '/build/deps/libosmocore/src' make[2]: *** [install] Error 2 make[1]: *** [install-recursive] Error 1 Makefile:705: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmocore' make: *** [install] Error 2 Makefile:1004: recipe for target 'install' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Dec 3 09:16:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 09:16:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix typo in comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21482 ) Change subject: gprs_ns2: fix typo in comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0653ce7de8d2d64bd7cf10e148b07da8cbeb0a2 Gerrit-Change-Number: 21482 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 09:16: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 Dec 3 09:16:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 09:16:52 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use switch() case instead of multiple if in ns2_create_vc() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21483 ) Change subject: gprs_ns2: use switch() case instead of multiple if in ns2_create_vc() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8bd9c75fb04169a166b7a3f5e13a5902250cfd0e Gerrit-Change-Number: 21483 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 09: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 Thu Dec 3 09:16:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 09:16:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix typo in comment In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21482 ) Change subject: gprs_ns2: fix typo in comment ...................................................................... gprs_ns2: fix typo in comment Change-Id: Ic0653ce7de8d2d64bd7cf10e148b07da8cbeb0a2 --- M src/gb/gprs_ns2.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.c b/src/gb/gprs_ns2.c index 9bf1d7f..15364fc 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1202,7 +1202,7 @@ /*! Set the mode of given bind. * \param[in] bind the bind we want to set the mode of - * \param[in] modde mode to set bind to */ + * \param[in] mode mode to set bind to */ void gprs_ns2_bind_set_mode(struct gprs_ns2_vc_bind *bind, enum gprs_ns2_vc_mode mode) { bind->vc_mode = mode; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0653ce7de8d2d64bd7cf10e148b07da8cbeb0a2 Gerrit-Change-Number: 21482 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 Thu Dec 3 09:16:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 09:16:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use switch() case instead of multiple if in ns2_create_vc() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21483 ) Change subject: gprs_ns2: use switch() case instead of multiple if in ns2_create_vc() ...................................................................... gprs_ns2: use switch() case instead of multiple if in ns2_create_vc() Improve readibilty and allows it to extend for future ns2 vty changes Change-Id: I8bd9c75fb04169a166b7a3f5e13a5902250cfd0e --- M src/gb/gprs_ns2.c 1 file changed, 14 insertions(+), 19 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 15364fc..69c1174 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -772,42 +772,37 @@ if (msg->len < sizeof(struct gprs_ns_hdr)) return GPRS_NS2_CS_ERROR; - if (nsh->pdu_type == NS_PDUT_STATUS) { + switch (nsh->pdu_type) { + case NS_PDUT_STATUS: /* Do not respond, see 3GPP TS 08.16, 7.5.1 */ LOGP(DLNS, LOGL_INFO, "Ignoring NS STATUS from %s " "for non-existing NS-VC\n", logname); return GPRS_NS2_CS_SKIPPED; - } - - if (nsh->pdu_type == NS_PDUT_ALIVE_ACK) { + 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; - } - - if (nsh->pdu_type == NS_PDUT_RESET_ACK) { + 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; - } + case NS_PDUT_RESET: + /* accept PDU RESET when vc_mode matches */ + if (bind->vc_mode == NS2_VC_MODE_BLOCKRESET) + break; - if (bind->vc_mode == NS2_VC_MODE_BLOCKRESET) { - /* Only the RESET procedure creates a new NSVC */ - if (nsh->pdu_type != NS_PDUT_RESET) { - 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 rc; - } - return GPRS_NS2_CS_REJECTED; + 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 rc; } - } else { /* NS2_VC_MODE_ALIVE */ + return GPRS_NS2_CS_REJECTED; + default: rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8bd9c75fb04169a166b7a3f5e13a5902250cfd0e Gerrit-Change-Number: 21483 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 Thu Dec 3 09:20:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 09:20:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_bind_by_name() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21485 ) Change subject: gprs_ns2: add gprs_ns2_bind_by_name() ...................................................................... Patch Set 1: do we yet enforce all binds have a unique name at crate time? If not, one could create binds without name or with identical name, rendering this new bind_by_name() function rather useless. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Gerrit-Change-Number: 21485 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 09:20: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 Thu Dec 3 09:21:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 09:21:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework gprs_ns2_fr_connect*() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21486 ) Change subject: gprs_ns2: rework gprs_ns2_fr_connect*() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 Gerrit-Change-Number: 21486 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 09:21:36 +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 Dec 3 10:50:02 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 10:50:02 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fc8c2dea50c4_48252b172cac05f810252b@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: [ 147s] CC gb_proxy_ctrl.o [ 147s] CC gb_proxy_patch.o [ 147s] CC gb_proxy_tlli.o [ 147s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 147s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 147s] 1405 | case BSSGP_PDUT_OVERLOAD: [ 147s] | ^~~~~~~~~~~~~~~~~~~ [ 147s] | BSSGP_PDUT_BVC_BLOCK [ 147s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 148s] make[3]: *** [Makefile:502: gb_proxy.o] Error 1 [ 148s] make[3]: *** Waiting for unfinished jobs.... [ 148s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src/gbproxy' [ 148s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 148s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src' [ 148s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 148s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98' [ 148s] make: *** [Makefile:392: all] Error 2 [ 148s] error: Bad exit status from /var/tmp/rpm-tmp.eTRb6Q (%build) [ 148s] [ 148s] [ 148s] RPM build errors: [ 148s] Bad exit status from /var/tmp/rpm-tmp.eTRb6Q (%build) [ 148s] ### VM INTERACTION START ### [ 151s] [ 117.016060] sysrq: Power Off [ 151s] [ 117.018719] reboot: Power down [ 152s] ### VM INTERACTION END ### [ 152s] [ 152s] obs-arm-5 failed "build osmo-sgsn.spec" at Thu Dec 3 10:49:37 UTC 2020. [ 152s] -- 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 Dec 3 11:33:47 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 11:33:47 +0000 Subject: Change in osmo-bts[master]: l1sap: make sure that UL SACCH is always 23 octets long In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21439 ) Change subject: l1sap: make sure that UL SACCH is always 23 octets long ...................................................................... l1sap: make sure that UL SACCH is always 23 octets long Change-Id: I1c8a43337fbc1acfab3c0f0713c75ded95d69512 Related: SYS#4918 --- M src/common/l1sap.c 1 file changed, 2 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/src/common/l1sap.c b/src/common/l1sap.c index 1785e66..2038fba 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1531,8 +1531,8 @@ radio_link_timeout(lchan, false); le = &lchan->lapdm_ch.lapdm_acch; /* save the SACCH L1 header in the lchan struct for RSL MEAS RES */ - if (len < 2) { - LOGPGT(DL1P, LOGL_NOTICE, &g_time, "SACCH with size %u<2 !?!\n", len); + if (len != GSM_MACBLOCK_LEN) { + LOGPGT(DL1P, LOGL_NOTICE, &g_time, "SACCH with odd len=%u!?!\n", len); return -EINVAL; } /* Some brilliant engineer decided that the ordering of -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1c8a43337fbc1acfab3c0f0713c75ded95d69512 Gerrit-Change-Number: 21439 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 Dec 3 11:58:51 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 11:58:51 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Move BSS-side BVC-RESET processing to its own function In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21473 ) Change subject: gbproxy: Move BSS-side BVC-RESET processing to its own function ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If262566e275cca96035045d1194ce102c0942eb6 Gerrit-Change-Number: 21473 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 03 Dec 2020 11: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 Thu Dec 3 12:12:35 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 12:12:35 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 ) Change subject: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21474/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21474/1/src/gbproxy/gb_proxy.c at 1020 PS1, Line 1020: return 0; Shouldn't we do the same as goto err_mand_ie in gbprox_rx_sig_from_bss() here? https://gerrit.osmocom.org/c/osmo-sgsn/+/21474/1/src/gbproxy/gb_proxy.c at 1022 PS1, Line 1022: bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); Not sure if this belongs here or in another patch, but the CELL_ID is also mandatory if bvci identifies a ptp-bvc since this function is only called in BSS->SGSN direction. See 3GPP 48.018 Ch.10.4.12 note 1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I038576b91ae1ece149149d8663de7b8495d24e06 Gerrit-Change-Number: 21474 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 03 Dec 2020 12:12: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 Thu Dec 3 12:12:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 12:12:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): use values from ConnL1Pars 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/+/21319 to look at the new patch set (#3). Change subject: BTS_Tests: as_l1_sacch(): use values from ConnL1Pars ...................................................................... BTS_Tests: as_l1_sacch(): use values from ConnL1Pars This would allow a test case to change the indicated values. Change-Id: If56bf516bc64e695fb58fd42beda01101cdaa954 Related: SYS#4918 --- M bts/BTS_Tests.ttcn 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/19/21319/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If56bf516bc64e695fb58fd42beda01101cdaa954 Gerrit-Change-Number: 21319 Gerrit-PatchSet: 3 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 Thu Dec 3 12:12:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 12:12:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): make MEAS_VALID flag configurable References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21488 ) Change subject: BTS_Tests: as_l1_sacch(): make MEAS_VALID flag configurable ...................................................................... BTS_Tests: as_l1_sacch(): make MEAS_VALID flag configurable Change-Id: I25ce3332671c42014a3dfd5de7ed1df16e73fbf8 Related: SYS#4918 --- M bts/BTS_Tests.ttcn 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/21488/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 10e4f5a..a2bcdf5 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -786,6 +786,7 @@ l1_pars := { dtx_enabled := false, toa256_enabled := false, + meas_valid := true, meas_ul := { full := { rxlev := mp_ul_rxlev_exp, @@ -1866,7 +1867,7 @@ [] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_SACCH(?))) -> value l1_dl { log("SACCH received: ", l1_dl.payload.data_ind.payload); - lb := ts_LAPDm_AB(0, ts_MEAS_REP(true, /* TODO: make it configurable too */ + lb := ts_LAPDm_AB(0, ts_MEAS_REP(g_pars.l1_pars.meas_valid, g_pars.l1_pars.meas_ul.full.rxlev, g_pars.l1_pars.meas_ul.sub.rxlev, g_pars.l1_pars.meas_ul.full.rxqual, @@ -1948,6 +1949,7 @@ private type record ConnL1Pars { boolean dtx_enabled, boolean toa256_enabled, + boolean meas_valid, MeasElemFS meas_ul, int16_t timing_offset_256syms, uint4_t bs_power_level, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I25ce3332671c42014a3dfd5de7ed1df16e73fbf8 Gerrit-Change-Number: 21488 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 Dec 3 12:12:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 12:12:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): fix Measurement Report padding References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21489 ) Change subject: BTS_Tests: as_l1_sacch(): fix Measurement Report padding ...................................................................... BTS_Tests: as_l1_sacch(): fix Measurement Report padding According to 3GPP TS 44.018, section 10.5.2.20, we should pad with zeroes. Change-Id: I912027fd53b12ff118254e941d6e5e696e1dd410 --- M bts/BTS_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/21489/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index a2bcdf5..1be2201 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1878,8 +1878,8 @@ g_pars.l1_pars.ms_power_level, false, g_pars.l1_pars.ms_actual_ta); - /* TODO: we can use an extension of TTCN-3 for that, i.e. PADDING('2B'O) */ - var octetstring l2 := f_pad_oct(enc_LapdmFrameAB(valueof(lb)), 21, '2B'O); + /* According to 3GPP TS 44.018, section 10.5.2.20, we should pad with zeroes */ + var octetstring l2 := f_pad_oct(enc_LapdmFrameAB(valueof(lb)), 21, '00'O); log("Sending Measurement Report: ", l1h, l2); L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2)); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I912027fd53b12ff118254e941d6e5e696e1dd410 Gerrit-Change-Number: 21489 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 Dec 3 12:12:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 12:12:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: make loop behavior in as_l1_sacch() configurable References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21490 ) Change subject: BTS_Tests: make loop behavior in as_l1_sacch() configurable ...................................................................... BTS_Tests: make loop behavior in as_l1_sacch() configurable Unconditional 'repeat' statement renders additional statements to be executed after the altstep's body useless: [] as_l1_sacch() { /* unreachable */ } Let's fix this, so the following is possible: [] as_l1_sacch(loop := false) { /* additional statements */ } Change-Id: I8c1f19f1543e53dd7564714a35fa94147fcfb8cf --- M bts/BTS_Tests.ttcn 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/90/21490/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 1be2201..94bb0d6 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1860,7 +1860,7 @@ } /* handle incoming downlink SACCH and respond with uplink SACCH (meas res) */ -private altstep as_l1_sacch() runs on ConnHdlr { +private altstep as_l1_sacch(boolean do_loop := true) runs on ConnHdlr { var template (value) LapdmFrameAB lb; var L1ctlDlMessage l1_dl; @@ -1883,7 +1883,8 @@ log("Sending Measurement Report: ", l1h, l2); L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2)); - repeat; + if (do_loop) + { repeat; } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8c1f19f1543e53dd7564714a35fa94147fcfb8cf Gerrit-Change-Number: 21490 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 Dec 3 12:12:40 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 12:12:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: add test cases for dynamic BS power control References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21491 ) Change subject: BTS_Tests: add test cases for dynamic BS power control ...................................................................... BTS_Tests: add test cases for dynamic BS power control Change-Id: Ia4c188aa923b10833162bdeb21238444193df65c Related: SYS#4918 --- M bts/BTS_Tests.ttcn 1 file changed, 168 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/91/21491/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 94bb0d6..d303257 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -103,6 +103,8 @@ integer mp_timing_offset_256syms_exp := 512; integer mp_uplink_power_target := -75; integer mp_uplink_power_hysteresis := 8; /* -83 .. -67 */ + integer mp_downlink_power_target := -80; + integer mp_downlink_power_hysteresis := 5; /* -85 .. -75 */ /* Time to wait for RSL conn from BTS during startup of test */ float mp_ipa_up_timeout := 15.0; float mp_ipa_up_delay := 0.0; @@ -1881,7 +1883,7 @@ /* According to 3GPP TS 44.018, section 10.5.2.20, we should pad with zeroes */ var octetstring l2 := f_pad_oct(enc_LapdmFrameAB(valueof(lb)), 21, '00'O); - log("Sending Measurement Report: ", l1h, l2); + log("Sending Measurement Report: ", l1h, lb); L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2)); if (do_loop) { repeat; } @@ -7155,6 +7157,171 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } +private type record of DlPwrStep DlPwrTest; +private type record DlPwrStep { + /* Expected power reduction level */ + integer txred_exp, + /* Indicated measurement values */ + record { + boolean valid, + MeasElem full, + MeasElem sub + } meas +}; + +private template (present) DlPwrStep.meas +tp_DlPwrMeasFS(integer rxlev_full, + integer rxlev_sub, + uint3_t rxqual_full := 0, + uint3_t rxqual_sub := 0, + boolean valid := true) := { + valid := valid, + full := { rxlev_full, rxqual_full }, + sub := { rxlev_sub, rxqual_sub } +} + +/* Shortcut for FULL == SUB */ +private template (present) DlPwrStep.meas +tp_DlPwrMeas(integer rxlev, + uint3_t rxqual := 0, + boolean valid := true) := + tp_DlPwrMeasFS(rxlev, rxlev, rxqual, rxqual, valid); + +private function f_TC_bs_pwr_ctrl_common(template (present) DlPwrTest tests) +runs on ConnHdlr { + var integer num_steps := lengthof(tests); + timer T := 2.0 + 0.5 * int2float(num_steps); + var integer rxlev_sum := 0; + var integer rxlev_num := 0; + var L1ctlDlMessage l1_dl; + var integer step := -1; + + f_l1_tune(L1CTL); + RSL.clear; + + /* These IEs are needed for autonomous BS power control */ + var template (value) RSL_IE_List ies := { + t_RSL_IE(RSL_IE_MS_POWER, RSL_IE_Body:{ + /* NOTE: this is actually power reduction (2 dB steps) */ + bs_power := ts_RSL_IE_BS_Power(10) /* up to 20 dB */ + }), + t_RSL_IE(RSL_IE_BS_POWER_PARAM, RSL_IE_Body:{ + /* vendor-specific stuff */ + bs_power_params := ts_RSL_LV(''O) + }) + }; + + /* These values will be indicated in the first SACCH block */ + g_pars.l1_pars.meas_ul.full := valueof(tests[0].meas.full); + g_pars.l1_pars.meas_ul.sub := valueof(tests[0].meas.sub); + g_pars.l1_pars.meas_valid := valueof(tests[0].meas.valid); + + /* Establish a dedicated channel */ + f_est_dchan(more_ies := valueof(ies)); + + T.start; + alt { + /* Align to the first DL SACCH block, this is where we start collecting samples */ + [step == -1] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_SACCH(?))) { + log("Step #", step, ": aligned to the first DL SACCH block"); + step := step + 1; + } + /* This altstep collects RxLev samples from all received DCCH/FACCH blocks */ + [step >= 0] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_DCCH(?))) -> value l1_dl { + log("Step #", step, ": new RxLev sample ", l1_dl.dl_info.rx_level); + rxlev_sum := rxlev_sum + l1_dl.dl_info.rx_level; + rxlev_num := rxlev_num + 1; + repeat; + } + /* This altstep sends Measurement Reports with tests[step].meas */ + [step >= 0] as_l1_sacch(do_loop := false) { + log("Step #", step, ": indicated ", tests[step].meas); + + var integer rxlev_avg := rxlev_sum / rxlev_num; + var integer txred := mp_rxlev_exp - rxlev_avg; + + log("Step #", step, ": checking rxlev_avg := ", rxlev_avg, " ", + "(txred := ", txred, " vs expected ", tests[step].txred_exp, ")"); + + if (not match(txred, tests[step].txred_exp)) { + setverdict(fail, "DL attenuation ", txred, " dB does not ", + "match ", tests[step].txred_exp, " at step #", step); + } + + step := step + 1; + + if (step < num_steps) { + /* These values will be indicated in the next UL SACCH block */ + g_pars.l1_pars.meas_ul.full := valueof(tests[step].meas.full); + g_pars.l1_pars.meas_ul.sub := valueof(tests[step].meas.sub); + g_pars.l1_pars.meas_valid := valueof(tests[step].meas.valid); + + rxlev_sum := 0; + rxlev_num := 0; + repeat; + } + } + /* At this step, tests[0].meas is received by the IUT */ + [false] L1CTL.receive(tr_L1CTL_MsgType(L1CTL_DATA_CONF)) { + var integer rxlev_avg := rxlev_sum / rxlev_num; + var integer txred := mp_rxlev_exp - rxlev_avg; + + log("Step #", step, ": checking rxlev_avg := ", rxlev_avg, " ", + "(txred := ", txred, " vs expected ", tests[step].txred_exp, ")"); + + if (not match(txred, tests[step].txred_exp)) { + setverdict(fail, "DL attenuation ", txred, " dB does not ", + "match ", tests[step].txred_exp, " at step #", step); + } + + rxlev_sum := 0; + rxlev_num := 0; + } + [] L1CTL.receive { repeat; } + [] T.timeout { + setverdict(fail, "Timeout at step #", step, " ", tests[step]); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); + } + } + + setverdict(pass); +} + +private function f_TC_bs_pwr_ctrl(charstring id) +runs on ConnHdlr { + f_TC_bs_pwr_ctrl_common(DlPwrTest:{ + { txred_exp := ?, meas := tp_DlPwrMeas(mp_rxlev_exp) }, + { txred_exp := 0, meas := tp_DlPwrMeas(mp_rxlev_exp) }, + { txred_exp := 0, meas := tp_DlPwrMeas(mp_rxlev_exp) }, + { txred_exp := 0, meas := tp_DlPwrMeas(mp_rxlev_exp) }, + { txred_exp := 0, meas := tp_DlPwrMeas(mp_rxlev_exp) } + }); +} +testcase TC_bs_pwr_ctrl() runs on test_CT { + var ConnHdlr vc_conn; + var ConnHdlrPars pars; + + f_init(trx_nr := 1); + + /* Explicitly disable DL Power filtering for this set of tests */ + f_vty_config(BTSVTY, "bts 0", "no downlink-power-filtering"); + /* Explicitly configure the Downlink power range (target and hysteresis) */ + f_vty_config(BTSVTY, "bts 0", "downlink-power-target " & int2str(mp_downlink_power_target) + & " hysteresis " & int2str(mp_downlink_power_hysteresis)); + + /* Wait until Pau ramping is completed */ + f_sleep(4.0); + + /* Pick any timeslot/subslot on TRX1 (TODO: use g_AllChanTypes) */ + pars := valueof(t_Pars(g_AllChannels[0], ts_RSL_ChanMode_SIGN, 1)); + + vc_conn := f_start_handler(refers(f_TC_bs_pwr_ctrl), pars); + vc_conn.done; + + /* No need to reset Uplink power parameters - the IUT restarts anyway */ + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + private function f_TC_speech_no_rtp(charstring id) runs on ConnHdlr { var template L1ctlDlMessage tr_bad_frame; var L1ctlDlMessage l1_dl; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia4c188aa923b10833162bdeb21238444193df65c Gerrit-Change-Number: 21491 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 Dec 3 12:13:15 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 12:13:15 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Cosmetics: use longer lines In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21475 ) Change subject: gbproxy: Cosmetics: use longer lines ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9426bf4be2faa0da7848cb102b20cc539948b3f5 Gerrit-Change-Number: 21475 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 03 Dec 2020 12:13: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 Dec 3 12:18:41 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 12:18:41 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 ) Change subject: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21474/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21474/1/src/gbproxy/gb_proxy.c at 1020 PS1, Line 1020: return 0; > Shouldn't we do the same as goto err_mand_ie in gbprox_rx_sig_from_bss() here? Sorry, ignore that. Just saw it's in Change I198ca70f5e0947735f76d32cd9d3eed159349a94 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I038576b91ae1ece149149d8663de7b8495d24e06 Gerrit-Change-Number: 21474 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 03 Dec 2020 12:18:41 +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 Dec 3 12:19:00 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 12:19:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 ) Change subject: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I198ca70f5e0947735f76d32cd9d3eed159349a94 Gerrit-Change-Number: 21477 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 03 Dec 2020 12:19: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 Dec 3 12:26:27 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 12:26:27 +0000 Subject: Change in osmo-sgsn[master]: mm_state_gb_fsm: Handle implicit detach from mm_standby In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 ) Change subject: mm_state_gb_fsm: Handle implicit detach from mm_standby ...................................................................... Patch Set 3: -Code-Review > Patch Set 3: Code-Review+2 > > I should explain ... But are you going to? I think we talked about it some while ago and concluded that this patch was indeed okay and the confusion came from a mixup between gmm and mm state machines. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I63d04a2dcdc17b4df6616c515641c435d919c787 Gerrit-Change-Number: 17080 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12:26: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 Dec 3 12:40:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:40:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSGP_Emulation: Add RIM port to BSSGP_CT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21470 ) Change subject: BSSGP_Emulation: Add RIM port to BSSGP_CT ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I04511df5dffbfe19faabf22014acc72b7673b7d6 Gerrit-Change-Number: 21470 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Thu, 03 Dec 2020 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 Thu Dec 3 12:41:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:41:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: FR config: Add second NSE with 4x NS-VC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21471 ) Change subject: gbproxy: FR config: Add second NSE with 4x NS-VC ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8d9e9c939e8e73deac8fa1964f6c226639565bd Gerrit-Change-Number: 21471 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12:41: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 Dec 3 12:45:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:45:14 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h at 165 PS1, Line 165: uint8_t current; : uint8_t max; : bool fixed; > I don't think it makes sense. [?] If units are different then meaning is different, because the variable contains something else. IMHO is really confusing re-using same variable to store different stuff based on who uses it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12:45:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No 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 Thu Dec 3 12:46:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:46:11 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21442 ) Change subject: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Gerrit-Change-Number: 21442 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12:46: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 Dec 3 12:46:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:46:36 +0000 Subject: Change in osmo-bts[master]: tests/power: rename s/power_test/ms_power_loop_test/ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21478 ) Change subject: tests/power: rename s/power_test/ms_power_loop_test/ ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f58eb85e44825a159af58948f01d9ffd75bceec Gerrit-Change-Number: 21478 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12:46: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 Dec 3 12:48:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:48:30 +0000 Subject: Change in osmo-bts[master]: power_control: remove a logging statement and early return In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21479 ) Change subject: power_control: remove a logging statement and early return ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c07cb6e14acd5a988761bbc51a9c3b60fb22d87 Gerrit-Change-Number: 21479 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12:48: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 Dec 3 12:48:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:48:52 +0000 Subject: Change in osmo-bts[master]: power_control: cosmetic: fix weird spacing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21480 ) Change subject: power_control: cosmetic: fix weird spacing ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia5661e82372f958e7cda4041d7b5a1cfb1d64afe Gerrit-Change-Number: 21480 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12:48: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 Dec 3 12:54:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:54:18 +0000 Subject: Change in osmo-bts[master]: vty: resurrect per-lchan BS/MS Power Control information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21481 ) Change subject: vty: resurrect per-lchan BS/MS Power Control information ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Gerrit-Change-Number: 21481 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12:54: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 Dec 3 12:56:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:56:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): use values from ConnL1Pars In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21319 ) Change subject: BTS_Tests: as_l1_sacch(): use values from ConnL1Pars ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If56bf516bc64e695fb58fd42beda01101cdaa954 Gerrit-Change-Number: 21319 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12: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 Thu Dec 3 12:58:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:58:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): make MEAS_VALID flag configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21488 ) Change subject: BTS_Tests: as_l1_sacch(): make MEAS_VALID flag configurable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I25ce3332671c42014a3dfd5de7ed1df16e73fbf8 Gerrit-Change-Number: 21488 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12:58: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 Dec 3 12:59:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 12:59:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): fix Measurement Report padding In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21489 ) Change subject: BTS_Tests: as_l1_sacch(): fix Measurement Report padding ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I912027fd53b12ff118254e941d6e5e696e1dd410 Gerrit-Change-Number: 21489 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 12: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 Dec 3 13:00:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 13:00:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: make loop behavior in as_l1_sacch() configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21490 ) Change subject: BTS_Tests: make loop behavior in as_l1_sacch() configurable ...................................................................... Patch Set 1: I guess these new flags are used in next commit... -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8c1f19f1543e53dd7564714a35fa94147fcfb8cf Gerrit-Change-Number: 21490 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 13:00: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 Thu Dec 3 13:00:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 13:00:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: make loop behavior in as_l1_sacch() configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21490 ) Change subject: BTS_Tests: make loop behavior in as_l1_sacch() configurable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8c1f19f1543e53dd7564714a35fa94147fcfb8cf Gerrit-Change-Number: 21490 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 13:00: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 Dec 3 13:01:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 13:01:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: add test cases for dynamic BS power control In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21491 ) Change subject: BTS_Tests: add test cases for dynamic BS power control ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21491/1/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21491/1/bts/BTS_Tests.ttcn at 7265 PS1, Line 7265: [false] L1CTL.receive(tr_L1CTL_MsgType(L1CTL_DATA_CONF)) { so this is never executed? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia4c188aa923b10833162bdeb21238444193df65c Gerrit-Change-Number: 21491 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 13:01: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 Thu Dec 3 13:02:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 13:02:49 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 ) Change subject: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I198ca70f5e0947735f76d32cd9d3eed159349a94 Gerrit-Change-Number: 21477 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 13:02: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 Dec 3 13:50:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 13:50:23 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/21441/1/include/osmo-bts/gsm_data.h at 165 PS1, Line 165: uint8_t current; : uint8_t max; : bool fixed; > If units are different then meaning is different, because the variable contains something else. [?] I am not going to spend time on this, sorry. To me it's perfectly fine: we store the 'current' and 'maximum' attenuation / power level depending on the context. It's still 'current' and 'maximum' in both contexts, and still directly related to the power control. I would agree if 'maximum' was abused as 'minimum', but here... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 13:50:23 +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 Thu Dec 3 13:50:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 13:50:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: make ts_LapdmAddr / ts_LAPDm_AB more friendly In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21318 ) Change subject: BTS_Tests: make ts_LapdmAddr / ts_LAPDm_AB more friendly ...................................................................... BTS_Tests: make ts_LapdmAddr / ts_LAPDm_AB more friendly Change-Id: I35f84ebd6cb884f3ab63d1c2b77d8ed61acd5c74 --- M bts/BTS_Tests.ttcn 1 file changed, 15 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index a9e464a..8a3b101 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1829,7 +1829,9 @@ * Measurement Processing / Reporting ***********************************************************************/ -private template LapdmAddressField ts_LapdmAddr(LapdmSapi sapi, boolean c_r) := { +private template (value) LapdmAddressField +ts_LapdmAddr(template (value) LapdmSapi sapi, + template (value) boolean c_r) := { spare := '0'B, lpd := 0, sapi := sapi, @@ -1837,22 +1839,28 @@ ea := true } -private template LapdmFrameAB ts_LAPDm_AB(LapdmSapi sapi, boolean c_r, boolean p, octetstring pl) := { +private template (value) LapdmFrameAB +ts_LAPDm_AB(template (value) LapdmSapi sapi, + template (value) GsmRrL3Message l3, + template (value) boolean c_r := false, + template (value) boolean p := false) := { addr := ts_LapdmAddr(sapi, c_r), - ctrl := ts_LapdmCtrlUI(p), + ctrl := ts_LapdmCtrlUI(valueof(p)), len := 0, /* overwritten */ m := false, el := 1, - payload := pl + payload := enc_GsmRrL3Message(valueof(l3)) } /* handle incoming downlink SACCH and respond with uplink SACCH (meas res) */ private altstep as_l1_sacch() runs on ConnHdlr { + var template (value) LapdmFrameAB lb; var L1ctlDlMessage l1_dl; + [] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_SACCH(?))) -> value l1_dl { log("SACCH received: ", l1_dl.payload.data_ind.payload); - var GsmRrL3Message meas_rep := valueof(ts_MEAS_REP(true, mp_rxlev_exp, mp_rxlev_exp)); - var LapdmFrameAB lb := valueof(ts_LAPDm_AB(0, false, false, enc_GsmRrL3Message(meas_rep))); + + lb := ts_LAPDm_AB(0, ts_MEAS_REP(true, mp_rxlev_exp, mp_rxlev_exp)); log("LAPDm: ", lb); var template (value) SacchL1Header l1h := ts_SacchL1Header( @@ -1860,7 +1868,7 @@ g_pars.l1_pars.ms_actual_ta); /* TODO: we can use an extension of TTCN-3 for that, i.e. PADDING('2B'O) */ - var octetstring l2 := f_pad_oct(enc_LapdmFrameAB(lb), 21, '2B'O); + var octetstring l2 := f_pad_oct(enc_LapdmFrameAB(valueof(lb)), 21, '2B'O); log("Sending Measurement Report: ", l1h, l2); L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2)); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I35f84ebd6cb884f3ab63d1c2b77d8ed61acd5c74 Gerrit-Change-Number: 21318 Gerrit-PatchSet: 4 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 Thu Dec 3 14:19:52 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 14:19:52 +0000 Subject: Change in libosmocore[master]: ns2: Add filtering by NSE/NSEI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21465 ) Change subject: ns2: Add filtering by NSE/NSEI ...................................................................... Patch Set 1: > Patch Set 1: > > > Patch Set 1: > > > > > Patch Set 1: > > > > > > looks good. But somehow I cannot find any place where the NSE log context is set on packet receive? > > > > Interesting, I added the NSE context everywhere I found the NSVC context being set. > > I'll check what's up with rx > > Maybe rx is not handled inside the library but only set by applications? Or even the NSVC case is broken? In any case, we should set the context as soon as possible once we know the NSVC/NSE to which a message belongs. The NSE should IMHO be known immediately, as one 'bind' (FR AF_PACKET socket, UDP socket) always directly belongs to one NSE. The NSVC should be known almost at the same time: remote peer address (UDP) or netdev name (FR). My conclusion is that it simply was not working for NS receive. I found no log_set_context anywhere in osmo-sgsn (even for a pre-ns2 commit like 86336af2a3) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Gerrit-Change-Number: 21465 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 14:19: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 Thu Dec 3 14:20:29 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 14:20:29 +0000 Subject: Change in libosmocore[master]: ns2: Add log filtering by NSE/NSEI, fix NSVC filter on receive 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/libosmocore/+/21465 to look at the new patch set (#2). Change subject: ns2: Add log filtering by NSE/NSEI, fix NSVC filter on receive ...................................................................... ns2: Add log filtering by NSE/NSEI, fix NSVC filter on receive NSVC filtering was only implemented on sending messages, this also adds log_set_context() calls to ns2_recv_vc() Filtering by NSE is implemented similar to NSVC. Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Related: SYS#5232 --- M include/osmocom/core/logging.h M src/gb/common_vty.c M src/gb/gprs_ns2.c M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vty.c 5 files changed, 74 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/65/21465/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Gerrit-Change-Number: 21465 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 Thu Dec 3 14:24:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 14:24:18 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 ) Change subject: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21474/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21474/1/src/gbproxy/gb_proxy.c at 1022 PS1, Line 1022: bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); > Not sure if this belongs here or in another patch, but the CELL_ID is also mandatory if bvci identif [?] I'm only parsing those fields which we need for processing in gbproxy, not any others. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I038576b91ae1ece149149d8663de7b8495d24e06 Gerrit-Change-Number: 21474 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 14:24:18 +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 Thu Dec 3 14:24:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 14:24:25 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Move BSS-side BVC-RESET processing to its own function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21473 ) Change subject: gbproxy: Move BSS-side BVC-RESET processing to its own function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If262566e275cca96035045d1194ce102c0942eb6 Gerrit-Change-Number: 21473 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 14:24: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 Dec 3 14:24:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 14:24:35 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Move BSS-side BVC-RESET processing to its own function In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21473 ) Change subject: gbproxy: Move BSS-side BVC-RESET processing to its own function ...................................................................... gbproxy: Move BSS-side BVC-RESET processing to its own function The switch clause was getting a bit too long/nested, let's add a separate gbprox_rx_bvc_reset_from_bss() function. Change-Id: If262566e275cca96035045d1194ce102c0942eb6 --- M src/gbproxy/gb_proxy.c 1 file changed, 87 insertions(+), 70 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/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index c5abeb9..4f2aa2d 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1008,6 +1008,89 @@ return gbprox_relay2peer(msg, peer, ns_bvci); } +/* process a BVC-RESET message from the BSS side */ +static int gbprox_rx_bvc_reset_from_bss(struct gbproxy_config *cfg, struct msgb *msg, + uint16_t nsei, struct tlv_parsed *tp, + int *copy_to_sgsn2) +{ + struct gbproxy_peer *from_peer = NULL; + + /* If we receive a BVC reset on the signalling endpoint, we + * don't want the SGSN to reset, as the signalling endpoint + * is common for all point-to-point BVCs (and thus all BTS) */ + if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); + if (bvci == 0) { + struct gbproxy_nse *nse; + /* Ensure the NSE peer is there and clear all PtP BVCs */ + nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); + if (!nse) { + LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); + bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); + return 0; + } + + gbproxy_cleanup_peers(cfg, nsei, 0); + + /* FIXME: only do this if SGSN is alive! */ + LOGPNSE(nse, LOGL_INFO, "Tx fake " + "BVC RESET ACK of BVCI=0\n"); + bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); + return 0; + } + from_peer = gbproxy_peer_by_bvci(cfg, bvci); + if (!from_peer) { + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); + if (!nse) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " + "BVCI=%05u\n", nsei, bvci); + bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); + return 0; + } + /* if a PTP-BVC is reset, and we don't know that + * PTP-BVCI yet, we should allocate a new peer */ + from_peer = gbproxy_peer_alloc(nse, bvci); + OSMO_ASSERT(from_peer); + LOGPBVC(from_peer, LOGL_INFO, "Allocated new peer\n"); + } + + /* Could have moved to a different NSE */ + if (!check_peer_nsei(from_peer, nsei)) { + LOGPBVC(from_peer, LOGL_NOTICE, "moving peer to NSE(%05u)\n", nsei); + + struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); + if (!nse_new) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " + "BVCI=%05u\n", bvci, nsei); + bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); + return 0; + } + + /* Move peer to different NSE */ + gbproxy_peer_move(from_peer, nse_new); + } + + if (TLVP_PRESENT(tp, BSSGP_IE_CELL_ID)) { + struct gprs_ra_id raid; + /* We have a Cell Identifier present in this + * PDU, this means we can extend our local + * state information about this particular cell + * */ + memcpy(from_peer->ra, + TLVP_VAL(tp, BSSGP_IE_CELL_ID), + sizeof(from_peer->ra)); + gsm48_parse_ra(&raid, from_peer->ra); + LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", + osmo_rai_name(&raid)); + } + if (cfg->route_to_sgsn2) + *copy_to_sgsn2 = 1; + } + /* continue processing / relaying to SGSN[s] */ + return 1; +} + /* Receive an incoming signalling message from a BSS-side NS-VC */ static int gbprox_rx_sig_from_bss(struct gbproxy_config *cfg, struct msgb *msg, uint16_t nsei, @@ -1061,76 +1144,10 @@ /* FIXME: This only supports one BSS per RA */ break; case BSSGP_PDUT_BVC_RESET: - /* If we receive a BVC reset on the signalling endpoint, we - * don't want the SGSN to reset, as the signalling endpoint - * is common for all point-to-point BVCs (and thus all BTS) */ - if (TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) { - uint16_t bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", - nsei, bvci); - if (bvci == 0) { - struct gbproxy_nse *nse; - /* Ensure the NSE peer is there and clear all PtP BVCs */ - nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); - return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); - } - - gbproxy_cleanup_peers(cfg, nsei, 0); - - /* FIXME: only do this if SGSN is alive! */ - LOGPNSE(nse, LOGL_INFO, "Tx fake " - "BVC RESET ACK of BVCI=0\n"); - return bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, - nsei, 0, ns_bvci); - } - from_peer = gbproxy_peer_by_bvci(cfg, bvci); - if (!from_peer) { - struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " - "BVCI=%05u\n", nsei, bvci); - return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); - } - /* if a PTP-BVC is reset, and we don't know that - * PTP-BVCI yet, we should allocate a new peer */ - from_peer = gbproxy_peer_alloc(nse, bvci); - OSMO_ASSERT(from_peer); - LOGPBVC(from_peer, LOGL_INFO, "Allocated new peer\n"); - } - - /* Could have moved to a different NSE */ - if (!check_peer_nsei(from_peer, nsei)) { - LOGPBVC(from_peer, LOGL_NOTICE, "moving peer to NSE(%05u)\n", nsei); - - struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); - if (!nse_new) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " - "BVCI=%05u\n", bvci, nsei); - return bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); - } - - /* Move peer to different NSE */ - gbproxy_peer_move(from_peer, nse_new); - } - - if (TLVP_PRESENT(&tp, BSSGP_IE_CELL_ID)) { - struct gprs_ra_id raid; - /* We have a Cell Identifier present in this - * PDU, this means we can extend our local - * state information about this particular cell - * */ - memcpy(from_peer->ra, - TLVP_VAL(&tp, BSSGP_IE_CELL_ID), - sizeof(from_peer->ra)); - gsm48_parse_ra(&raid, from_peer->ra); - LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", - osmo_rai_name(&raid)); - } - if (cfg->route_to_sgsn2) - copy_to_sgsn2 = 1; - } + rc = gbprox_rx_bvc_reset_from_bss(cfg, msg, nsei, &tp, ©_to_sgsn2); + /* if function retruns 0, we terminate processing here */ + if (rc == 0) + return 0; break; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If262566e275cca96035045d1194ce102c0942eb6 Gerrit-Change-Number: 21473 Gerrit-PatchSet: 1 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 Thu Dec 3 14:24:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 14:24:36 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 ) Change subject: gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET ...................................................................... gb_proxy: Slightly restructure processing of BSS-originated BVC-RESET * explicit else clause rather than implicit * don't continue processing if mandatory BVCI missing from message Change-Id: I038576b91ae1ece149149d8663de7b8495d24e06 --- M src/gbproxy/gb_proxy.c 1 file changed, 24 insertions(+), 21 deletions(-) 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 4f2aa2d..2fd276d 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1014,31 +1014,34 @@ int *copy_to_sgsn2) { struct gbproxy_peer *from_peer = NULL; + uint16_t bvci; - /* If we receive a BVC reset on the signalling endpoint, we - * don't want the SGSN to reset, as the signalling endpoint - * is common for all point-to-point BVCs (and thus all BTS) */ - if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { - uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); - LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); - if (bvci == 0) { - struct gbproxy_nse *nse; - /* Ensure the NSE peer is there and clear all PtP BVCs */ - nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); - bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); - return 0; - } + if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) + return 0; - gbproxy_cleanup_peers(cfg, nsei, 0); - - /* FIXME: only do this if SGSN is alive! */ - LOGPNSE(nse, LOGL_INFO, "Tx fake " - "BVC RESET ACK of BVCI=0\n"); - bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); + bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); + if (bvci == 0) { + /* If we receive a BVC reset on the signalling endpoint, we + * don't want the SGSN to reset, as the signalling endpoint + * is common for all point-to-point BVCs (and thus all BTS) */ + struct gbproxy_nse *nse; + /* Ensure the NSE peer is there and clear all PtP BVCs */ + nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); + if (!nse) { + LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); + bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); return 0; } + + gbproxy_cleanup_peers(cfg, nsei, 0); + + /* FIXME: only do this if SGSN is alive! */ + LOGPNSE(nse, LOGL_INFO, "Tx fake " + "BVC RESET ACK of BVCI=0\n"); + bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); + return 0; + } else { from_peer = gbproxy_peer_by_bvci(cfg, bvci); if (!from_peer) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I038576b91ae1ece149149d8663de7b8495d24e06 Gerrit-Change-Number: 21474 Gerrit-PatchSet: 1 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 Thu Dec 3 14:24:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 14:24:37 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Cosmetics: use longer lines In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21475 ) Change subject: gbproxy: Cosmetics: use longer lines ...................................................................... gbproxy: Cosmetics: use longer lines Change-Id: I9426bf4be2faa0da7848cb102b20cc539948b3f5 --- M src/gbproxy/gb_proxy.c 1 file changed, 5 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 2fd276d..d8b828c 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1025,9 +1025,9 @@ /* If we receive a BVC reset on the signalling endpoint, we * don't want the SGSN to reset, as the signalling endpoint * is common for all point-to-point BVCs (and thus all BTS) */ - struct gbproxy_nse *nse; + /* Ensure the NSE peer is there and clear all PtP BVCs */ - nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); + struct gbproxy_nse *nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); if (!nse) { LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); @@ -1037,8 +1037,7 @@ gbproxy_cleanup_peers(cfg, nsei, 0); /* FIXME: only do this if SGSN is alive! */ - LOGPNSE(nse, LOGL_INFO, "Tx fake " - "BVC RESET ACK of BVCI=0\n"); + LOGPNSE(nse, LOGL_INFO, "Tx fake BVC RESET ACK of BVCI=0\n"); bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); return 0; } else { @@ -1080,12 +1079,9 @@ * PDU, this means we can extend our local * state information about this particular cell * */ - memcpy(from_peer->ra, - TLVP_VAL(tp, BSSGP_IE_CELL_ID), - sizeof(from_peer->ra)); + memcpy(from_peer->ra, TLVP_VAL(tp, BSSGP_IE_CELL_ID), sizeof(from_peer->ra)); gsm48_parse_ra(&raid, from_peer->ra); - LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", - osmo_rai_name(&raid)); + LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", osmo_rai_name(&raid)); } if (cfg->route_to_sgsn2) *copy_to_sgsn2 = 1; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9426bf4be2faa0da7848cb102b20cc539948b3f5 Gerrit-Change-Number: 21475 Gerrit-PatchSet: 1 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 Thu Dec 3 14:44:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 14:44:53 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21492 ) Change subject: gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT With TLVP_PRESENT we only check if a tiven TLV/IE is present, but don't verify that it's length matches our expectation. This can lead to out-of-bounds reads, so let's always use TLVP_PRES_LEN. Change-Id: I1519cff0f6b2fe77f9a91eee17e0055d9df1bce6 --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 2 files changed, 17 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/92/21492/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 109a539..3776634 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1017,7 +1017,7 @@ uint16_t bvci; uint8_t cause; - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } @@ -1093,7 +1093,7 @@ gbproxy_peer_move(from_peer, nse_new); } - if (TLVP_PRESENT(tp, BSSGP_IE_CELL_ID)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { struct gprs_ra_id raid; /* We have a Cell Identifier present in this * PDU, this means we can extend our local @@ -1149,7 +1149,7 @@ * area identification. The snooped information is then used * for routing the {SUSPEND,RESUME}_[N]ACK back to the correct * BSSGP */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_ROUTEING_AREA)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) goto err_mand_ie; from_peer = gbproxy_peer_by_nsei(cfg, nsei); if (!from_peer) @@ -1205,7 +1205,7 @@ LOGP(DGPRS, LOGL_INFO, "NSE(%05u/SGSN) BSSGP PAGING\n", nsei); - if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; peer = gbproxy_peer_by_bvci(cfg, bvci); @@ -1217,7 +1217,7 @@ } LOGPBVC(peer, LOGL_INFO, "routing by BVCI\n"); return gbprox_relay2peer(msg, peer, ns_bvci); - } else if (TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA)) { + } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; /* iterate over all peers and dispatch the paging to each matching one */ llist_for_each_entry(nse, &cfg->nse_peers, list) { @@ -1231,7 +1231,7 @@ } } } - } else if (TLVP_PRESENT(tp, BSSGP_IE_LOCATION_AREA)) { + } else if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { errctr = GBPROX_GLOB_CTR_INV_LAI; /* iterate over all peers and dispatch the paging to each matching one */ llist_for_each_entry(nse, &cfg->nse_peers, list) { @@ -1245,7 +1245,7 @@ } } } - } else if (TLVP_PRESENT(tp, BSSGP_IE_BSS_AREA_ID)) { + } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* iterate over all peers and dispatch the paging to each matching one */ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { @@ -1281,7 +1281,7 @@ struct gbproxy_peer *peer; uint16_t ptp_bvci; - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, @@ -1364,7 +1364,7 @@ if (cfg->route_to_sgsn2 && nsei == cfg->nsip_sgsn2_nsei) break; /* simple case: BVCI IE is mandatory */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); if (bvci == BVCI_SIGNALLING) { @@ -1375,7 +1375,7 @@ break; case BSSGP_PDUT_FLUSH_LL: /* simple case: BVCI IE is mandatory */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); @@ -1389,7 +1389,7 @@ /* Some exception has occurred */ LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP STATUS ", nsei); - if (!TLVP_PRESENT(&tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_CAUSE, 1)) { LOGPC(DGPRS, LOGL_NOTICE, "\n"); goto err_mand_ie; } @@ -1397,7 +1397,7 @@ LOGPC(DGPRS, LOGL_NOTICE, "cause=0x%02x(%s) ", *TLVP_VAL(&tp, BSSGP_IE_CAUSE), bssgp_cause_str(cause)); - if (TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) { + if (TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) { bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); LOGPC(DGPRS, LOGL_NOTICE, "BVCI=%05u\n", bvci); @@ -1412,7 +1412,7 @@ case BSSGP_PDUT_RESUME_ACK: case BSSGP_PDUT_RESUME_NACK: /* RAI IE is mandatory */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_ROUTEING_AREA)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) goto err_mand_ie; peer = gbproxy_peer_by_rai(cfg, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA)); if (!peer) @@ -1421,7 +1421,7 @@ break; case BSSGP_PDUT_BVC_BLOCK_ACK: case BSSGP_PDUT_BVC_UNBLOCK_ACK: - if (!TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); if (bvci == 0) { diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index e63e259..8493447 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -164,7 +164,7 @@ struct gbproxy_peer *gbproxy_peer_by_bssgp_tlv(struct gbproxy_config *cfg, struct tlv_parsed *tp) { - if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci; bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); @@ -173,7 +173,7 @@ } /* FIXME: this doesn't make sense, as RA can span multiple peers! */ - if (TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { uint8_t *rai = (uint8_t *)TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA); /* Only compare LAC part, since MCC/MNC are possibly patched. * Since the LAC of different BSS must be different when @@ -182,7 +182,7 @@ } /* FIXME: this doesn't make sense, as LA can span multiple peers! */ - if (TLVP_PRESENT(tp, BSSGP_IE_LOCATION_AREA)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { uint8_t *lai = (uint8_t *)TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA); return gbproxy_peer_by_lac(cfg, lai); } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1519cff0f6b2fe77f9a91eee17e0055d9df1bce6 Gerrit-Change-Number: 21492 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 Dec 3 14:55:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 14:55:01 +0000 Subject: Change in libosmocore[master]: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21493 ) Change subject: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT With TLVP_PRESENT we only check if a tiven TLV/IE is present, but don't verify that it's length matches our expectation. This can lead to out-of-bounds reads, so let's always use TLVP_PRES_LEN. Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 --- M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c 2 files changed, 31 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/21493/1 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index ebbfab1..1bc621c 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -351,7 +351,7 @@ /* When we receive a BVC-RESET PDU (at least of a PTP BVCI), the BSS * informs us about its RAC + Cell ID, so we can create a mapping */ if (bvci != 0 && bvci != 1) { - if (!TLVP_PRESENT(tp, BSSGP_IE_CELL_ID)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESET " "missing mandatory IE\n", bvci); return -EINVAL; @@ -467,7 +467,7 @@ DEBUGP(DBSSGP, "BSSGP TLLI=0x%08x Rx UPLINK-UNITDATA\n", msgb_tlli(msg)); /* Cell ID and LLC_PDU are the only mandatory IE */ - if (!TLVP_PRESENT(tp, BSSGP_IE_CELL_ID) || + if (!TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8) || !TLVP_PRESENT(tp, BSSGP_IE_LLC_PDU)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP TLLI=0x%08x Rx UL-UD " "missing mandatory IE\n", msgb_tlli(msg)); @@ -497,8 +497,8 @@ uint16_t ns_bvci = msgb_bvci(msg), nsei = msgb_nsei(msg); int rc; - if (!TLVP_PRESENT(tp, BSSGP_IE_TLLI) || - !TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4) || + !TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx SUSPEND " "missing mandatory IE\n", ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); @@ -538,9 +538,9 @@ uint16_t ns_bvci = msgb_bvci(msg), nsei = msgb_nsei(msg); int rc; - if (!TLVP_PRESENT(tp, BSSGP_IE_TLLI) || - !TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA) || - !TLVP_PRESENT(tp, BSSGP_IE_SUSPEND_REF_NR)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4 ) || + !TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6) || + !TLVP_PRES_LEN(tp, BSSGP_IE_SUSPEND_REF_NR, 1)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESUME " "missing mandatory IE\n", ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); @@ -580,16 +580,15 @@ uint32_t tlli = 0; uint16_t nsei = msgb_nsei(msg); - if (!TLVP_PRESENT(tp, BSSGP_IE_TLLI) || - !TLVP_PRESENT(tp, BSSGP_IE_LLC_FRAMES_DISCARDED) || - !TLVP_PRESENT(tp, BSSGP_IE_BVCI) || - !TLVP_PRESENT(tp, BSSGP_IE_NUM_OCT_AFF)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4) || + !TLVP_PRES_LEN(tp, BSSGP_IE_LLC_FRAMES_DISCARDED, 1) || + !TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_NUM_OCT_AFF, 3)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx LLC DISCARDED " "missing mandatory IE\n", ctx->bvci); } - if (TLVP_PRESENT(tp, BSSGP_IE_TLLI)) - tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); + tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=%08x Rx LLC DISCARDED\n", ctx->bvci, tlli); @@ -615,7 +614,7 @@ struct osmo_bssgp_prim nmp; enum gprs_bssgp_cause cause; - if (!TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS " "missing mandatory IE\n", bvci); cause = BSSGP_CAUSE_PROTO_ERR_UNSPEC; @@ -627,7 +626,7 @@ bvci, bssgp_cause_str(cause)); if (cause == BSSGP_CAUSE_BVCI_BLOCKED || cause == BSSGP_CAUSE_UNKNOWN_BVCI) { - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS cause=%s " "missing conditional BVCI IE\n", @@ -882,11 +881,11 @@ DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx Flow Control BVC\n", bctx->bvci); - if (!TLVP_PRESENT(tp, BSSGP_IE_TAG) || - !TLVP_PRESENT(tp, BSSGP_IE_BVC_BUCKET_SIZE) || - !TLVP_PRESENT(tp, BSSGP_IE_BUCKET_LEAK_RATE) || - !TLVP_PRESENT(tp, BSSGP_IE_BMAX_DEFAULT_MS) || - !TLVP_PRESENT(tp, BSSGP_IE_R_DEFAULT_MS)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_TAG, 1) || + !TLVP_PRES_LEN(tp, BSSGP_IE_BVC_BUCKET_SIZE, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_BUCKET_LEAK_RATE, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_BMAX_DEFAULT_MS, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_R_DEFAULT_MS,2)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx FC BVC " "missing mandatory IE\n", bctx->bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); @@ -1040,8 +1039,8 @@ break; case BSSGP_PDUT_BVC_BLOCK: /* BSS tells us that BVC shall be blocked */ - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || - !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-BLOCK " "missing mandatory IE\n"); goto err_mand_ie; @@ -1050,7 +1049,7 @@ break; case BSSGP_PDUT_BVC_UNBLOCK: /* BSS tells us that BVC shall be unblocked */ - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-UNBLOCK " "missing mandatory IE\n"); goto err_mand_ie; @@ -1062,8 +1061,8 @@ break; case BSSGP_PDUT_BVC_RESET: /* BSS tells us that BVC init is required */ - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || - !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-RESET " "missing mandatory IE\n"); goto err_mand_ie; @@ -1135,7 +1134,7 @@ return rc; } - if (bvci == BVCI_SIGNALLING && TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) + if (bvci == BVCI_SIGNALLING && TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) bvci = tlvp_val16be(&tp, BSSGP_IE_BVCI); /* look-up or create the BTS context for this BVC */ diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index 59b06f0..462666a 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -511,24 +511,24 @@ TLVP_LEN(&tp, BSSGP_IE_IMSI)); /* DRX Parameters */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_DRX_PARAMS)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_DRX_PARAMS, 2)) goto err_mand_ie; pinfo->drx_params = tlvp_val16be(&tp, BSSGP_IE_DRX_PARAMS); /* Scope */ - if (TLVP_PRESENT(&tp, BSSGP_IE_BSS_AREA_ID)) { + if (TLVP_PRES_LEN(&tp, BSSGP_IE_BSS_AREA_ID, 1)) { pinfo->scope = BSSGP_PAGING_BSS_AREA; - } else if (TLVP_PRESENT(&tp, BSSGP_IE_LOCATION_AREA)) { + } else if (TLVP_PRES_LEN(&tp, BSSGP_IE_LOCATION_AREA, 5)) { pinfo->scope = BSSGP_PAGING_LOCATION_AREA; memcpy(ra, TLVP_VAL(&tp, BSSGP_IE_LOCATION_AREA), TLVP_LEN(&tp, BSSGP_IE_LOCATION_AREA)); gsm48_parse_ra(&pinfo->raid, ra); - } else if (TLVP_PRESENT(&tp, BSSGP_IE_ROUTEING_AREA)) { + } else if (TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) { pinfo->scope = BSSGP_PAGING_ROUTEING_AREA; memcpy(ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), TLVP_LEN(&tp, BSSGP_IE_ROUTEING_AREA)); gsm48_parse_ra(&pinfo->raid, ra); - } else if (TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) { + } else if (TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) { pinfo->scope = BSSGP_PAGING_BVCI; pinfo->bvci = tlvp_val16be(&tp, BSSGP_IE_BVCI); } else @@ -546,8 +546,7 @@ } /* Optional (P-)TMSI */ - if (TLVP_PRESENT(&tp, BSSGP_IE_TMSI) && - TLVP_LEN(&tp, BSSGP_IE_TMSI) >= 4) { + if (TLVP_PRES_LEN(&tp, BSSGP_IE_TMSI, 4)) { if (!pinfo->ptmsi) pinfo->ptmsi = talloc_zero_size(pinfo, sizeof(uint32_t)); *(pinfo->ptmsi) = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TMSI)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 Gerrit-Change-Number: 21493 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 Dec 3 14:55:50 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 14:55:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL ... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 ) Change subject: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL block ...................................................................... Patch Set 1: Code-Review-1 (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419/1/pcu/PCU_Tests.ttcn at 2588 PS1, Line 2588: if (dl_block.data_egprs.blocks[1].hdr.length_ind != 127) { Duplicate of line 2584? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419/1/pcu/PCU_Tests.ttcn at 2605 PS1, Line 2605: rclamc rlcmac https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419/1/pcu/PCU_Tests.ttcn at 2611 PS1, Line 2611: rclamc same -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7e0d9ed2475dbf989fbf932c8b83117ff5fb28fc Gerrit-Change-Number: 21419 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 14:55:50 +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 Dec 3 15:01:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 15:01:46 +0000 Subject: Change in libosmocore[master]: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT 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/+/21493 to look at the new patch set (#2). Change subject: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT With TLVP_PRESENT we only check if a given TLV/IE is present, but don't verify that it's length matches our expectation. This can lead to out-of-bounds reads, so let's always use TLVP_PRES_LEN. Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 --- M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c 2 files changed, 31 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/21493/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 Gerrit-Change-Number: 21493 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 Thu Dec 3 15:01:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 15:01:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21494 ) Change subject: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT With TLVP_PRESENT we only check if a given TLV/IE is present, but don't verify that it's length matches our expectation. This can lead to out-of-bounds reads, so let's always use TLVP_PRES_LEN. Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_message.c 2 files changed, 14 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/21494/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 69c1174..06513d3 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -589,7 +589,7 @@ if (!msg) return -ENOMEM; - if (TLVP_PRESENT(tp, NS_IE_NSEI)) { + if (TLVP_PRES_LEN(tp, NS_IE_NSEI, 2)) { nsei = tlvp_val16be(tp, NS_IE_NSEI); LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rejecting message without NSVCI. Tx NS STATUS (cause=%s)\n", @@ -601,7 +601,7 @@ nsh->pdu_type = NS_PDUT_STATUS; msgb_tvlv_put(msg, NS_IE_CAUSE, 1, &_cause); - have_vci = TLVP_PRESENT(tp, NS_IE_VCI); + have_vci = TLVP_PRES_LEN(tp, NS_IE_VCI, 2); /* Section 9.2.7.1: Static conditions for NS-VCI */ if (cause == NS_CAUSE_NSVC_BLOCKED || @@ -821,8 +821,8 @@ return GPRS_NS2_CS_REJECTED; } - if (!TLVP_PRESENT(&tp, NS_IE_CAUSE) || - !TLVP_PRESENT(&tp, NS_IE_VCI) || !TLVP_PRESENT(&tp, NS_IE_NSEI)) { + 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)) { LOGP(DLNS, LOGL_ERROR, "NS RESET Missing mandatory IE\n"); rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_MISSING_ESSENT_IE); return GPRS_NS2_CS_REJECTED; diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index fac6108..77efbe2 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -66,7 +66,8 @@ static int gprs_ns2_validate_reset(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_CAUSE) || !TLVP_PRESENT(tp, NS_IE_VCI) || !TLVP_PRESENT(tp, NS_IE_NSEI)) { + 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)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -76,7 +77,7 @@ static int gprs_ns2_validate_reset_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_VCI) || !TLVP_PRESENT(tp, NS_IE_NSEI)) { + if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_NSEI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -86,7 +87,7 @@ static int gprs_ns2_validate_block(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_VCI) || !TLVP_PRESENT(tp, NS_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -96,7 +97,7 @@ static int gprs_ns2_validate_block_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_VCI)) { + if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -107,7 +108,7 @@ static int gprs_ns2_validate_status(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -117,7 +118,7 @@ switch (_cause) { case NS_CAUSE_NSVC_BLOCKED: case NS_CAUSE_NSVC_UNKNOWN: - if (!TLVP_PRESENT(tp, NS_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -127,19 +128,19 @@ case NS_CAUSE_PROTO_ERR_UNSPEC: case NS_CAUSE_INVAL_ESSENT_IE: case NS_CAUSE_MISSING_ESSENT_IE: - if (!TLVP_PRESENT(tp, NS_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } break; case NS_CAUSE_BVCI_UNKNOWN: - if (!TLVP_PRESENT(tp, NS_IE_BVCI)) { + if (!TLVP_PRES_LEN(tp, NS_IE_BVCI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } break; case NS_CAUSE_UNKN_IP_TEST_FAILED: - if (!TLVP_PRESENT (tp, NS_IE_IPv4_LIST) && !TLVP_PRESENT(tp, NS_IE_IPv6_LIST)) { + if (!TLVP_PRESENT(tp, NS_IE_IPv4_LIST) && !TLVP_PRESENT(tp, NS_IE_IPv6_LIST)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b Gerrit-Change-Number: 21494 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 Dec 3 15:13:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 15:13:13 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 15:13: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 Dec 3 15:13:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 15:13:58 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21492 ) Change subject: gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1519cff0f6b2fe77f9a91eee17e0055d9df1bce6 Gerrit-Change-Number: 21492 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 15: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 Thu Dec 3 15:16:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 15:16:01 +0000 Subject: Change in libosmocore[master]: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21493 ) Change subject: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 Gerrit-Change-Number: 21493 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 15: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 Thu Dec 3 15:16:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 15:16:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21494 ) Change subject: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 1: I wonder, shouldn't this checking while parsing into a tvp_parsed sturcture? IIRC we have some structures where we can define expected lengths of IEs? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b Gerrit-Change-Number: 21494 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 15:16: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 Thu Dec 3 15:26:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 15:26:34 +0000 Subject: Change in osmo-bts[master]: vty: fix dump_lchan_trx_ts(): dump dedicated channels only 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/+/21450 to look at the new patch set (#2). Change subject: vty: fix dump_lchan_trx_ts(): dump dedicated channels only ...................................................................... vty: fix dump_lchan_trx_ts(): dump dedicated channels only It does not make sense to dump CCCH/CBCH as dedicated channels: OsmoBTS# show lchan BTS 0, TRX 0, Timeslot 0, Lchan 4: Type CCCH State: ACTIVE BS (Downlink) Power Control (autonomous): Channel reduction: 0 dB (max 0 dB) TRX reduction: 0 dB Actual / Nominal power: 13 dBm / 13 dBm MS (Uplink) Power Control (autonomous): Current power level: 0, -39 dBm (max 0, -39 dBm) Channel Mode / Codec: SIGNALLING LAPDm SAPIs: DCCH --, SACCH -- Valid System Information: 0x00000060 MS Timing Offset: 0, propagation delay: 0 symbols Radio Link Failure Counter 'S': 0 so let's only dump SDCCH, TCH/F, and TCH/H. Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 --- M src/common/vty.c 1 file changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/50/21450/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 Gerrit-Change-Number: 21450 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 Thu Dec 3 15:27:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 15:27:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21494 ) Change subject: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 1: > I wonder, shouldn't this checking while parsing into a tvp_parsed sturcture? IIRC we have some structures where we can define expected lengths of IEs? no, tlp_parse cannot do this so far. We only have this for the dnyamically allocated 16-bit-tag TLVs of SUA/M3UA in libosmo-sigtran. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b Gerrit-Change-Number: 21494 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 15:27: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 Thu Dec 3 15:28:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 15:28:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL ... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 to look at the new patch set (#2). Change subject: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL block ...................................................................... pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL block LLC UI dummy frames are only to be sent alone in order to delay TBF termination. Until recently (osmo-pcu.git Ifae1a7b2b3dfad8df19585063088ba0df2749c8f), osmo-pcu was sending LLC UI dummy frames instead of padding at RLCMAC layer, which made no sense. Related: OS#4849 Change-Id: I7e0d9ed2475dbf989fbf932c8b83117ff5fb28fc --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 77 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/19/21419/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7e0d9ed2475dbf989fbf932c8b83117ff5fb28fc Gerrit-Change-Number: 21419 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Dec 3 15:29:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 15:29:14 +0000 Subject: Change in osmo-bts[master]: vty: fix dump_lchan_trx_ts(): dump dedicated channels only In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21450 ) Change subject: vty: fix dump_lchan_trx_ts(): dump dedicated channels only ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 Gerrit-Change-Number: 21450 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 15:29: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 Dec 3 15:37:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 15:37:32 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21463 ) Change subject: Introduce NM GPRS CELL FSM ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21463/2/src/osmo-bsc/nm_gprs_cell_fsm.c File src/osmo-bsc/nm_gprs_cell_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21463/2/src/osmo-bsc/nm_gprs_cell_fsm.c at 99 PS2, Line 99: OSMO_ASSERT(msgb); /* if (!msgb); break; */ > why not if(!msgb)? Should we really segfault on low memory? That comment should go away, it's a leftover I left now I'm doing tests if I find something failing. TBH, it's not important, that's not going to happen theoretically, in linux malloc won't ever fail and return NULL, rather the process will be stalled until the kernel allocates memory for it or it is killed by OOM killer, so it really doesn't matter. ASSERT has less lines than if + break, that's the only reason. Adding the assert there rpovides a quick security + easy way to see where the issue was, in the really improbable scenario where NULL is returned, which is really not expected. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 15:37:32 +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 Dec 3 16:01:09 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 3 Dec 2020 16:01:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSGP_Emulation: Add RIM port to BSSGP_CT In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21470 ) Change subject: BSSGP_Emulation: Add RIM port to BSSGP_CT ...................................................................... Patch Set 1: Verified+1 Code-Review+2 Thanks, it works! -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I04511df5dffbfe19faabf22014acc72b7673b7d6 Gerrit-Change-Number: 21470 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 16:01: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 Dec 3 16:24:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 16:24:45 +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 posted comments on 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 ...................................................................... Set Ready For Review -- 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: 2 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 16:24: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 Thu Dec 3 17:22:31 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 17:22:31 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 ) Change subject: gbproxy: Add BVC log filters ...................................................................... gbproxy: Add BVC log filters Since gbproxy doesn't use bssgp_rcvmsg from libosmocore we need to implement our own filtering. Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Related: SYS#5232 --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 3 files changed, 41 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/95/21495/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index d8b828c..9090d19 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -1594,6 +1595,7 @@ msgb_bvci(oph->msg) = nsp->bvci; msgb_nsei(oph->msg) = nsp->nsei; + log_set_context(LOG_CTX_GB_BVC, (void *)(uintptr_t)nsp->bvci); rc = gbprox_rcvmsg(cfg, oph->msg); msgb_free(oph->msg); break; diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 62c4d94..1c3acd9 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -25,6 +25,7 @@ #include #include +#include #include #include #include @@ -89,8 +90,9 @@ llist_for_each_entry(nse, &cfg->nse_peers, list) { struct gbproxy_peer *peer; llist_for_each_entry(peer, &nse->bts_peers, list) { - if (peer->bvci == bvci) + if (peer->bvci == bvci) { return peer; + } } } return NULL; diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index caad52e..35f2276 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -39,6 +39,7 @@ #include #include +#include #include #include @@ -538,6 +539,40 @@ return CMD_SUCCESS; } +static void log_set_bvc_filter(struct log_target *target, + uintptr_t bvci) +{ + if (bvci) { + target->filter_map |= (1 << LOG_FLT_GB_BVC); + target->filter_data[LOG_FLT_GB_BVC] = (void *)bvci; + } else if (target->filter_data[LOG_FLT_GB_BVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_BVC); + target->filter_data[LOG_FLT_GB_BVC] = NULL; + } +} + +DEFUN(logging_fltr_bvc, + logging_fltr_bvc_cmd, + "logging filter bvc bvci <2-65535>", + LOGGING_STR FILTER_STR + "Filter based on BSSGP VC\n" + "Identify BVC by BVCI\n" + "Numeric identifier\n") +{ + struct log_target *tgt; + uint16_t id = atoi(argv[1]); + + log_tgt_mutex_lock(); + tgt = osmo_log_vty2tgt(vty); + if (!tgt) { + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + log_set_bvc_filter(tgt, id); + log_tgt_mutex_unlock(); + return CMD_SUCCESS; +} DEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy [stats]", SHOW_STR "Display information about the Gb proxy\n" "Show statistics\n") @@ -881,6 +916,7 @@ { install_element_ve(&show_gbproxy_cmd); install_element_ve(&show_gbproxy_links_cmd); + install_element_ve(&logging_fltr_bvc_cmd); install_element(ENABLE_NODE, &delete_gb_bvci_cmd); install_element(ENABLE_NODE, &delete_gb_nsei_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 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 Dec 3 17:30:08 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 17:30:08 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 ) Change subject: gbproxy: Add BVC log filters ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21495/1/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21495/1/src/gbproxy/gb_proxy_vty.c at 556 PS1, Line 556: "logging filter bvc bvci <2-65535>", I'd like some comments on this. Omitting bvci 0 and 1 is not really nice (and in libosmocore filtering on those is allowed) but the other thing I can think of is to set the highest bit in the uintptr_t to 1 if we set a bvci and change the set_log_context to also include that bit. The gprl_log_filter_fn() in libosmocore only compares whether these pointers are equal. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 03 Dec 2020 17:30:08 +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 Dec 3 17:47:11 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 17:47:11 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters 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/+/21495 to look at the new patch set (#2). Change subject: gbproxy: Add BVC log filters ...................................................................... gbproxy: Add BVC log filters Since gbproxy doesn't use bssgp_rcvmsg from libosmocore we need to implement our own filtering. Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Related: SYS#5232 --- 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 4 files changed, 48 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/95/21495/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 Gerrit-PatchSet: 2 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 Thu Dec 3 17:51:23 2020 From: gerrit-no-reply at lists.osmocom.org (mschramm) Date: Thu, 3 Dec 2020 17:51:23 +0000 Subject: Change in osmo-e1-hardware[master]: e1-tracer: solve everything towards v2 References: Message-ID: mschramm has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 ) Change subject: e1-tracer: solve everything towards v2 ...................................................................... e1-tracer: solve everything towards v2 * retract light guides and RJ45 1.5mm inwards (solves SYS#5051) * SPI MOSI/MISO mismatch fixed (solves SYS#5050) * footpint mismatch to BOM for L3,L4 fixed (solves SYS#5053) * PCB had to get 5mm slimmer (adresses SYS#5088) Change-Id: I97ab7240b9b1fb68347dc994885c926b8c192217 --- M hardware/e1-tracer/e1-tracer.brd M hardware/e1-tracer/e1-tracer.sch 2 files changed, 1,825 insertions(+), 1,689 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/96/21496/1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 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: I97ab7240b9b1fb68347dc994885c926b8c192217 Gerrit-Change-Number: 21496 Gerrit-PatchSet: 1 Gerrit-Owner: mschramm Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 3 17:58:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 17:58:05 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21461 ) Change subject: Introduce NM GPRS NSE FSM ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 17:58: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 Dec 3 17:58:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 17:58:27 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM 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-bsc/+/21461 to look at the new patch set (#4). Change subject: Introduce NM GPRS NSE FSM ...................................................................... Introduce NM GPRS NSE FSM Related: OS#4870 Change-Id: I91a5f40324d5373eac885032295690cec97214a6 --- M include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h M include/osmocom/bsc/nm_common_fsm.h M include/osmocom/bsc/signal.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nse_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 19 files changed, 516 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/21461/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 Gerrit-PatchSet: 4 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 Thu Dec 3 17:58:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 17:58:27 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM 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-bsc/+/21463 to look at the new patch set (#3). Change subject: Introduce NM GPRS CELL FSM ...................................................................... Introduce NM GPRS CELL FSM Related: OS#4870 Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 --- M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c A src/osmo-bsc/nm_gprs_cell_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 14 files changed, 480 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/63/21463/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 3 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 Thu Dec 3 17:58:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 17:58:27 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM 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/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Introduce NM GPRS NSVC FSM Related: OS#4870 Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 --- M include/osmocom/bsc/bts_sm.h M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nsvc_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 16 files changed, 545 insertions(+), 41 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/52/21452/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 5 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 Dec 3 17:58:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 17:58:30 +0000 Subject: Change in osmo-bsc[master]: nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21497 ) Change subject: nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts ...................................................................... nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts The condition was set in st_op_disabled_notinstalled_on_enter(): """ site_mgr->peer_has_no_avstate_offline = (bts->type == GSM_BTS_TYPE_NANOBTS); """ However, at startup of the FSM the oneneter func of the default initial state is not called. In any case, if called it would be too early since the type is not known yet (because its parsed later on at the VTY with the "type" command, that's after the "bts X" node is called and the bts_sm is allocated. So we need to make sure to always enable it, also for nanobts. Change-Id: Ic6049a44ae3fca1b8e968fe800c268f579e7cad4 --- M src/osmo-bsc/nm_bts_sm_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/97/21497/1 diff --git a/src/osmo-bsc/nm_bts_sm_fsm.c b/src/osmo-bsc/nm_bts_sm_fsm.c index e5b5a3c..815eea6 100644 --- a/src/osmo-bsc/nm_bts_sm_fsm.c +++ b/src/osmo-bsc/nm_bts_sm_fsm.c @@ -78,8 +78,8 @@ "have your .cfg with 'type nanobts'. Otherwise, you probably " "are using an old osmo-bts; automatically adjusting OML " "behavior to be backward-compatible.\n"); - site_mgr->peer_has_no_avstate_offline = true; } + site_mgr->peer_has_no_avstate_offline = true; nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_ENABLED); return; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic6049a44ae3fca1b8e968fe800c268f579e7cad4 Gerrit-Change-Number: 21497 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 Dec 3 17:59:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 17:59:21 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Patch Set 5: Now all FSMs are working fine with both current osmo-bts and nanobts, and these patches can be merged. I'll now work on integrating lynxis patches on top. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 17:59: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 Dec 3 18:29:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 18:29:24 +0000 Subject: Change in osmo-bts[master]: power_control: cosmetic: fix weird spacing 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/+/21480 to look at the new patch set (#2). Change subject: power_control: cosmetic: fix weird spacing ...................................................................... power_control: cosmetic: fix weird spacing Change-Id: Ia5661e82372f958e7cda4041d7b5a1cfb1d64afe --- M src/common/power_control.c 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/80/21480/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia5661e82372f958e7cda4041d7b5a1cfb1d64afe Gerrit-Change-Number: 21480 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 Thu Dec 3 18:29:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 18:29:24 +0000 Subject: Change in osmo-bts[master]: vty: resurrect per-lchan BS/MS Power Control information 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/+/21481 to look at the new patch set (#2). Change subject: vty: resurrect per-lchan BS/MS Power Control information ...................................................................... vty: resurrect per-lchan BS/MS Power Control information Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 47 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/81/21481/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Gerrit-Change-Number: 21481 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 Thu Dec 3 18:29:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 18:29:25 +0000 Subject: Change in osmo-bts[master]: power_control: do not log averaged RSSI values as 'rx-current' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21498 ) Change subject: power_control: do not log averaged RSSI values as 'rx-current' ...................................................................... power_control: do not log averaged RSSI values as 'rx-current' Similar to I3c07cb6e14acd5a988761bbc51a9c3b60fb22d87, this change is another step towards separating the common delta calculation logic from lchan_ms_pwr_ctrl(), since this function will loose access to the averaged values. On the one hand, the affected logging statements are getting less precise; on the other, logging the averaged value as the actual value ('rx-current') may be even more confusing. Change-Id: I07007e45c859b4080fbbe520ffb5ccc0bb9c4244 Related: SYS#4918 --- M src/common/power_control.c M tests/power/ms_power_loop_test.err 2 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/98/21498/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index e08966f..5eb1687 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -182,7 +182,7 @@ 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, - avg_ul_rssi_dbm, params->target); + ul_rssi_dbm, params->target); return 0; } @@ -191,7 +191,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, avg_ul_rssi_dbm, params->target); + ms_power_lvl, state->max, ul_rssi_dbm, params->target); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index f2e187b..cf43081 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -22,12 +22,12 @@ (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 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 -78 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -80 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 11 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -78 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) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 11 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -70 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 -50 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 -50 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -92 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -110 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) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -72 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 -78 dBm, rx-target -75 dBm) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I07007e45c859b4080fbbe520ffb5ccc0bb9c4244 Gerrit-Change-Number: 21498 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 Dec 3 18:29:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 18:29:25 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct bts_power_ctrl_params' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21499 ) Change subject: power_control: clarify units in 'struct bts_power_ctrl_params' ...................................................................... power_control: clarify units in 'struct bts_power_ctrl_params' Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M src/common/power_control.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/ms_power_loop_test.c 11 files changed, 42 insertions(+), 42 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/99/21499/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 3847a26..48f404c 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -104,9 +104,9 @@ /* UL/DL power control parameters */ struct bts_power_ctrl_params { /* Target value to strive to */ - int target; + int target_dbm; /* Tolerated deviation from target */ - int hysteresis; + int hysteresis_db; /* RxLev filtering algorithm */ enum bts_pf_algo pf_algo; /* (Optional) filtering parameters */ diff --git a/src/common/bts.c b/src/common/bts.c index a974b9f..e021864 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -332,8 +332,8 @@ /* Default UL/DL power control parameters */ bts->ul_power_ctrl = bts->dl_power_ctrl = \ (struct bts_power_ctrl_params) { - .target = -75, /* dBm default */ - .hysteresis = 3, /* -78 .. -72 dBm */ + .target_dbm = -75, + .hysteresis_db = 3, /* -78 .. -72 dBm */ .pf_algo = BTS_PF_ALGO_EWMA, .pf = { .ewma = { diff --git a/src/common/power_control.c b/src/common/power_control.c index a8bf031..d458a92 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -113,10 +113,10 @@ /* How many dBs measured power should be increased (+) or decreased (-) * to reach expected power. */ - delta = params->target - rxlev_dbm_avg; + delta = params->target_dbm - rxlev_dbm_avg; /* Tolerate small deviations from 'rx-target' */ - if (abs(delta) <= params->hysteresis) + if (abs(delta) <= params->hysteresis_db) return 0; /* Don't ever change more than PWR_{LOWER,RAISE}_MAX_DBM during one loop @@ -192,7 +192,7 @@ 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); + ul_rssi_dbm, params->target_dbm); return 0; } @@ -201,7 +201,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); + ms_power_lvl, state->max, ul_rssi_dbm, params->target_dbm); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; @@ -301,13 +301,13 @@ 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, delta); + state->current, new, state->max, params->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, delta); + state->current, state->max, params->target_dbm, delta); return 0; } } diff --git a/src/common/vty.c b/src/common/vty.c index f366956..b7483a8 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -231,9 +231,9 @@ static void config_write_power_ctrl_params(struct vty *vty, const char *prefix, const struct bts_power_ctrl_params *pp) { - vty_out(vty, " %s-power-target %d", prefix, pp->target); - if (pp->hysteresis > 0) - vty_out(vty, " hysteresis %d", pp->hysteresis); + vty_out(vty, " %s-power-target %d", prefix, pp->target_dbm); + if (pp->hysteresis_db > 0) + vty_out(vty, " hysteresis %d", pp->hysteresis_db); vty_out(vty, "%s", VTY_NEWLINE); /* Power filtering algorithm and parameters */ @@ -657,8 +657,8 @@ else params = &bts->dl_power_ctrl; - params->target = atoi(argv[1]); - params->hysteresis = 0; + params->target_dbm = atoi(argv[1]); + params->hysteresis_db = 0; return CMD_SUCCESS; } @@ -678,8 +678,8 @@ else params = &bts->dl_power_ctrl; - params->target = atoi(argv[1]); - params->hysteresis = atoi(argv[2]); + params->target_dbm = atoi(argv[1]); + params->hysteresis_db = atoi(argv[2]); return CMD_SUCCESS; } diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index 0fb9d00..4c71790 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -434,7 +434,7 @@ 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; + ? 0.0 : trx->bts->ul_power_ctrl.target_dbm; 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 be0ec30..b62e61c 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -449,7 +449,7 @@ 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; + ? 0.0 : trx->bts->ul_power_ctrl.target_dbm; 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 5f638e6..b79f731 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -429,7 +429,7 @@ 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; + ? 0.0 : trx->bts->ul_power_ctrl.target_dbm; 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 1f2aefb..65edbf0 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -154,7 +154,7 @@ { struct gsm_bts_trx *trx = vty->index; - trx->bts->ul_power_ctrl.target = atoi(argv[0]); + trx->bts->ul_power_ctrl.target_dbm = atoi(argv[0]); return CMD_SUCCESS; } diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 0353064..55a7ee7 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -198,7 +198,7 @@ { vty_out (vty, "'osmotrx ms-power-loop' is deprecated, use 'uplink-power-target' instead%s", VTY_NEWLINE); - g_bts->ul_power_ctrl.target = atoi(argv[0]); + g_bts->ul_power_ctrl.target_dbm = atoi(argv[0]); return CMD_SUCCESS; } diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index e2e4d5f..358fc9a 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -95,7 +95,7 @@ g_trx = gsm_bts_trx_alloc(g_bts); OSMO_ASSERT(g_trx != NULL); - g_bts->dl_power_ctrl.target = rxlev2dbm(PWR_TEST_RXLEV_TARGET); + g_bts->dl_power_ctrl.target_dbm = rxlev2dbm(PWR_TEST_RXLEV_TARGET); g_bts->band = GSM_BAND_900; g_bts->c0 = g_trx; @@ -147,7 +147,7 @@ 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, step->params.hysteresis, + 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; return 0; /* we're done */ @@ -326,8 +326,8 @@ /* Enable hysteresis */ { .type = PWR_TEST_ST_SET_PARAMS, .params = { - .target = -110 + PWR_TEST_RXLEV_TARGET, - .hysteresis = 3 + .target_dbm = -110 + PWR_TEST_RXLEV_TARGET, + .hysteresis_db = 3 } }, @@ -347,7 +347,7 @@ /* Enable EWMA based power filtering */ { .type = PWR_TEST_ST_SET_PARAMS, .params = { - .target = -110 + PWR_TEST_RXLEV_TARGET, /* RxLev 30 */ + .target_dbm = -110 + PWR_TEST_RXLEV_TARGET, /* RxLev 30 */ .pf_algo = BTS_PF_ALGO_EWMA, .pf.ewma.alpha = 50, } diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 147c725..4f4f746 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -47,8 +47,8 @@ g_trx->ms_pwr_ctl_soft = true; - g_bts->ul_power_ctrl.target = -75; - g_bts->dl_power_ctrl.target = -75; + g_bts->ul_power_ctrl.target_dbm = -75; + g_bts->dl_power_ctrl.target_dbm = -75; g_bts->band = GSM_BAND_1800; g_bts->c0 = g_trx; @@ -99,7 +99,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, 0, 5); + apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 5); apply_power_test(lchan, -90, 1, 3); apply_power_test(lchan, -90, 1, 2); /* .max is pwr lvl 2 */ @@ -117,7 +117,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, 0, 29); + apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 29); /* Now go down, steps are double size in this direction: */ apply_power_test(lchan, -45, 1, 1); @@ -125,13 +125,13 @@ 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 + 2, 1, 10); - apply_power_test(lchan, g_bts->ul_power_ctrl.target - 2, 1, 9); + 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); /* 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 + 2, 1, 14); + apply_power_test(lchan, g_bts->ul_power_ctrl.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); @@ -215,22 +215,22 @@ lchan = &g_trx->ts[0].lchan[0]; /* Tolerate power deviations in range -80 .. -70 */ - g_bts->ul_power_ctrl.hysteresis = 5; + g_bts->ul_power_ctrl.hysteresis_db = 5; 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, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target + 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target - 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 + 3, 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, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target + 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target - 5, 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, g_bts->ul_power_ctrl.target - 10, 1, 13); + apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 10, 1, 13); } int main(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Gerrit-Change-Number: 21499 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 Dec 3 18:29:26 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 18:29:26 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct lchan_power_ctrl_state' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21500 ) Change subject: power_control: clarify units in 'struct lchan_power_ctrl_state' ...................................................................... power_control: clarify units in 'struct lchan_power_ctrl_state' Change-Id: I934f2d1e1064eed7587bc5693ef981bf449a1b81 Related: SYS#4918 --- M include/osmo-bts/gsm_data.h 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/00/21500/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 6af96fe..fdd5ba3 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -161,6 +161,9 @@ 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. */ struct lchan_power_ctrl_state { uint8_t current; uint8_t max; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I934f2d1e1064eed7587bc5693ef981bf449a1b81 Gerrit-Change-Number: 21500 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 Dec 3 18:30:26 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 18:30:26 +0000 Subject: Change in osmo-bts[master]: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21446 ) Change subject: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Gerrit-Change-Number: 21446 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 18:30: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 Thu Dec 3 18:31:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 18:31:00 +0000 Subject: Change in osmo-bts[master]: power_control: implement BS (Downlink) Power Control In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21447 ) Change subject: power_control: implement BS (Downlink) Power Control ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Gerrit-Change-Number: 21447 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 18:31: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 Thu Dec 3 18:32:15 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 18:32:15 +0000 Subject: Change in osmo-bts[master]: bts: generalize a struct for UL/DL power control parameters In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21436 ) Change subject: bts: generalize a struct for UL/DL power control parameters ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21436/1/include/osmo-bts/bts.h File include/osmo-bts/bts.h: https://gerrit.osmocom.org/c/osmo-bts/+/21436/1/include/osmo-bts/bts.h at 106 PS1, Line 106: /* Target value to strive to */ : int target; : /* Tolerated deviation from target */ > see my comment about adding the units to the commment. Done, see: https://gerrit.osmocom.org/c/osmo-bts/+/21499. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I504de17fb3c1300c2a3faa6d7d3a9eb1b74b214b Gerrit-Change-Number: 21436 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 18:32:15 +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 Dec 3 18:33:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 18:33:00 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... Patch Set 2: See https://gerrit.osmocom.org/c/osmo-bts/+/21500. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 18:33: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 Thu Dec 3 19:29:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 19:29:39 +0000 Subject: Change in osmo-bts[master]: vty: resurrect per-lchan BS/MS Power Control information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21481 ) Change subject: vty: resurrect per-lchan BS/MS Power Control information ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Gerrit-Change-Number: 21481 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 19:29: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 Dec 3 19:30:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 19:30:23 +0000 Subject: Change in osmo-bts[master]: power_control: do not log averaged RSSI values as 'rx-current' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21498 ) Change subject: power_control: do not log averaged RSSI values as 'rx-current' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I07007e45c859b4080fbbe520ffb5ccc0bb9c4244 Gerrit-Change-Number: 21498 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 19:30: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 Dec 3 19:31:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 19:31:06 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct bts_power_ctrl_params' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21499 ) Change subject: power_control: clarify units in 'struct bts_power_ctrl_params' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Gerrit-Change-Number: 21499 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 19: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 Thu Dec 3 19:33:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 19:33:15 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct lchan_power_ctrl_state' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21500 ) Change subject: power_control: clarify units in 'struct lchan_power_ctrl_state' ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21500/1/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/21500/1/include/osmo-bts/gsm_data.h at 164 PS1, Line 164: /* Depending on the context (MS or BS power control), fields 'current' and 'max' I still find this a bit strange. Can you summarize why do we use MS power levels in one direction and power attenuation on the other? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I934f2d1e1064eed7587bc5693ef981bf449a1b81 Gerrit-Change-Number: 21500 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 19:33: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 Dec 3 19:33:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 19:33:52 +0000 Subject: Change in osmo-bts[master]: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21446 ) Change subject: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Gerrit-Change-Number: 21446 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 19:33: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 Dec 3 19:40:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 19:40:21 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM 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-bsc/+/21463 to look at the new patch set (#4). Change subject: Introduce NM GPRS CELL FSM ...................................................................... Introduce NM GPRS CELL FSM Related: OS#4870 Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 --- M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c A src/osmo-bsc/nm_gprs_cell_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 14 files changed, 481 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/63/21463/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 4 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 Thu Dec 3 19:40:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 19:40:21 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#6) to the change originally created by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Introduce NM GPRS NSVC FSM Related: OS#4870 Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 --- M include/osmocom/bsc/bts_sm.h M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nsvc_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 16 files changed, 549 insertions(+), 41 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/52/21452/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 6 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 Dec 3 19:40:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 19:40:23 +0000 Subject: Change in osmo-bsc[master]: abis_nm: Simplify param passing to abis_nm_rx_get_attr_resp() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21501 ) Change subject: abis_nm: Simplify param passing to abis_nm_rx_get_attr_resp() ...................................................................... abis_nm: Simplify param passing to abis_nm_rx_get_attr_resp() There's no real need to retrieve the trx before passing it to the function, we can do that in the function itself and hence also simplify the function itself. Related: OS#4870 Change-Id: I7181510c5021ff2712c09ebc6ec8b13fdd8e8dc2 --- M src/osmo-bsc/abis_nm.c 1 file changed, 7 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/01/21501/1 diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index b64b4dc..9db49b7 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -669,15 +669,19 @@ } /* Handle 3GPP TS 52.021 ?8.11.3 Get Attribute Response */ -static int abis_nm_rx_get_attr_resp(struct msgb *mb, const struct gsm_bts_trx *trx) +static int abis_nm_rx_get_attr_resp(struct msgb *mb) { struct abis_om_hdr *oh = msgb_l2(mb); struct abis_om_fom_hdr *foh = msgb_l3(mb); struct e1inp_sign_link *sign_link = mb->dst; - struct gsm_bts *bts = trx ? trx->bts : sign_link->trx->bts; + struct gsm_bts *bts = sign_link->trx->bts; + const struct gsm_bts_trx *trx; struct tlv_parsed tp; int rc; + trx = foh->obj_class == NM_OC_BASEB_TRANSC ? + gsm_bts_trx_num(bts, foh->obj_inst.trx_nr) : NULL; + DEBUGPFOH(DNM, foh, "Get Attributes Response\n"); abis_nm_tlv_parse(&tp, bts, foh->data, oh->length-sizeof(*foh)); @@ -995,7 +999,7 @@ abis_nm_rx_set_bts_attr_ack(mb); break; case NM_MT_GET_ATTR_RESP: - ret = abis_nm_rx_get_attr_resp(mb, gsm_bts_trx_num(bts, (foh)->obj_inst.trx_nr)); + ret = abis_nm_rx_get_attr_resp(mb); break; case NM_MT_ESTABLISH_TEI_ACK: case NM_MT_CONN_TERR_SIGN_ACK: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7181510c5021ff2712c09ebc6ec8b13fdd8e8dc2 Gerrit-Change-Number: 21501 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 Dec 3 19:40:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 19:40:24 +0000 Subject: Change in osmo-bsc[master]: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21502 ) Change subject: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs ...................................................................... Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs Before this patch, Get Attributes was sent quicklyafter the OML link became up, even if the BTS/BB_TRANSC objects were still powered off, which is wrong since attributes should only be available after the objects transition out of the Power off state. Furthermore, information about get attr response already received will be required in future patches to delay NSVC setting. Related: OS#4870 Change-Id: I8ec39c7e1f956ffce9aecd58a5590c43200ba086 --- M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/nm_common_fsm.h M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/nm_bb_transc_fsm.c M src/osmo-bsc/nm_bts_fsm.c M src/osmo-bsc/nm_common_fsm.c M src/osmo-bsc/osmo_bsc_main.c 7 files changed, 97 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/02/21502/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index d8f8be2..6904266 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -399,6 +399,8 @@ struct osmo_fsm_inst *fi; bool opstart_sent; bool adm_unlock_sent; + bool get_attr_sent; + bool get_attr_rep_received; bool set_attr_sent; bool set_attr_ack_received; bool force_rf_lock; diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h index 7ad3df6..bceefbe 100644 --- a/include/osmocom/bsc/nm_common_fsm.h +++ b/include/osmocom/bsc/nm_common_fsm.h @@ -30,6 +30,7 @@ enum nm_fsm_events { NM_EV_SW_ACT_REP, NM_EV_STATE_CHG_REP, + NM_EV_GET_ATTR_REP, NM_EV_SET_ATTR_ACK, NM_EV_OPSTART_ACK, NM_EV_OPSTART_NACK, diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 6d8f91f..c84d750 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -339,6 +339,27 @@ } } +static void nm_rx_get_attr_rep(struct msgb *oml_msg) +{ + struct abis_om_fom_hdr *foh = msgb_l3(oml_msg); + struct e1inp_sign_link *sign_link = oml_msg->dst; + struct gsm_bts *bts = sign_link->trx->bts; + struct gsm_bts_trx *trx; + + switch (foh->obj_class) { + case NM_OC_BTS: + osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_GET_ATTR_REP, NULL); + break; + case NM_OC_BASEB_TRANSC: + if (!(trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr))) + return; + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_GET_ATTR_REP, NULL); + break; + default: + LOGPFOH(DNM, LOGL_ERROR, foh, "Get Attributes Response received on incorrect object class %d!\n", foh->obj_class); + } +} + static void nm_rx_set_bts_attr_ack(struct msgb *oml_msg) { struct abis_om_fom_hdr *foh = msgb_l3(oml_msg); @@ -432,6 +453,9 @@ case S_NM_OPSTART_NACK: nm_rx_opstart_nack(signal_data); return 0; + case S_NM_GET_ATTR_REP: + nm_rx_get_attr_rep(signal_data); + return 0; case S_NM_SET_BTS_ATTR_ACK: nm_rx_set_bts_attr_ack(signal_data); return 0; diff --git a/src/osmo-bsc/nm_bb_transc_fsm.c b/src/osmo-bsc/nm_bb_transc_fsm.c index e7132e8..31e5f34 100644 --- a/src/osmo-bsc/nm_bb_transc_fsm.c +++ b/src/osmo-bsc/nm_bb_transc_fsm.c @@ -48,6 +48,8 @@ { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; + bb_transc->mo.get_attr_sent = false; + bb_transc->mo.get_attr_rep_received = false; bb_transc->mo.adm_unlock_sent = false; bb_transc->mo.opstart_sent = false; } @@ -87,7 +89,20 @@ static void configure_loop(struct gsm_bts_bb_trx *bb_transc, struct gsm_nm_state *state, bool allow_opstart) { struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); - if (state->administrative != NM_STATE_UNLOCKED && !bb_transc->mo.adm_unlock_sent) { + + /* Request TRX-level attributes */ + if (!bb_transc->mo.get_attr_sent && !bb_transc->mo.get_attr_rep_received) { + bb_transc->mo.get_attr_sent = true; + /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ + const uint8_t trx_attr[] = { NM_ATT_MANUF_STATE, NM_ATT_SW_CONFIG, }; + /* we should not request more attributes than we're ready to handle */ + OSMO_ASSERT(sizeof(trx_attr) < MAX_BTS_ATTR); + abis_nm_get_attr(trx->bts, NM_OC_BASEB_TRANSC, 0, trx->nr, 0xff, + trx_attr, sizeof(trx_attr)); + } + + if (bb_transc->mo.get_attr_rep_received && + state->administrative != NM_STATE_UNLOCKED && !bb_transc->mo.adm_unlock_sent) { bb_transc->mo.adm_unlock_sent = true; /* Note: nanoBTS sometimes fails NACKing the BaseBand Transceiver Unlock command while in Dependency, specially @@ -105,7 +120,7 @@ /* TRX software is active, tell it to initiate RSL Link */ abis_nm_ipaccess_rsl_connect(trx, trx->bts->ip_access.rsl_ip, 3003, trx->rsl_tei); - } + } } static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -127,6 +142,11 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_GET_ATTR_REP: + bb_transc->mo.get_attr_rep_received = true; + bb_transc->mo.get_attr_sent = false; + configure_loop(bb_transc, &bb_transc->mo.nm_state, false); + return; case NM_EV_STATE_CHG_REP: nsd = (struct nm_statechg_signal_data *)data; new_state = nsd->new_state; @@ -172,6 +192,11 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_GET_ATTR_REP: + bb_transc->mo.get_attr_rep_received = true; + bb_transc->mo.get_attr_sent = false; + configure_loop(bb_transc, &bb_transc->mo.nm_state, true); + return; case NM_EV_STATE_CHG_REP: nsd = (struct nm_statechg_signal_data *)data; new_state = nsd->new_state; @@ -214,6 +239,8 @@ /* Reset state, we don't need it in this state and it will need to be reused as soon as we move back to Disabled */ + bb_transc->mo.get_attr_sent = false; + bb_transc->mo.get_attr_rep_received = false; bb_transc->mo.opstart_sent = false; bb_transc->mo.adm_unlock_sent = false; } @@ -282,7 +309,8 @@ }, [NM_BB_TRANSC_ST_OP_DISABLED_DEPENDENCY] = { .in_event_mask = - X(NM_EV_STATE_CHG_REP), + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_GET_ATTR_REP), .out_state_mask = X(NM_BB_TRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BB_TRANSC_ST_OP_DISABLED_OFFLINE) | @@ -293,7 +321,8 @@ }, [NM_BB_TRANSC_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = - X(NM_EV_STATE_CHG_REP), + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_GET_ATTR_REP), .out_state_mask = X(NM_BB_TRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BB_TRANSC_ST_OP_DISABLED_DEPENDENCY) | diff --git a/src/osmo-bsc/nm_bts_fsm.c b/src/osmo-bsc/nm_bts_fsm.c index 6c577bd..731b578 100644 --- a/src/osmo-bsc/nm_bts_fsm.c +++ b/src/osmo-bsc/nm_bts_fsm.c @@ -48,6 +48,8 @@ { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + bts->mo.get_attr_sent = false; + bts->mo.get_attr_rep_received = false; bts->mo.set_attr_sent = false; bts->mo.set_attr_ack_received = false; bts->mo.adm_unlock_sent = false; @@ -89,14 +91,27 @@ static void configure_loop(struct gsm_bts *bts, struct gsm_nm_state *state, bool allow_opstart) { struct msgb *msgb; - if (!bts->mo.set_attr_sent && !bts->mo.set_attr_ack_received) { + /* Request generic BTS-level attributes */ + if (!bts->mo.get_attr_sent && !bts->mo.get_attr_rep_received) { + bts->mo.get_attr_sent = true; + /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ + const uint8_t bts_attr[] = { NM_ATT_MANUF_ID, NM_ATT_SW_CONFIG, }; + /* we should not request more attributes than we're ready to handle */ + OSMO_ASSERT(sizeof(bts_attr) < MAX_BTS_ATTR); + abis_nm_get_attr(bts, NM_OC_BTS, 0, 0xff, 0xff, + bts_attr, sizeof(bts_attr)); + } + + if (bts->mo.get_attr_rep_received && + !bts->mo.set_attr_sent && !bts->mo.set_attr_ack_received) { bts->mo.set_attr_sent = true; msgb = nanobts_attr_bts_get(bts); abis_nm_set_bts_attr(bts, msgb->data, msgb->len); msgb_free(msgb); } - if (state->administrative != NM_STATE_UNLOCKED && !bts->mo.adm_unlock_sent) { + if (bts->mo.set_attr_ack_received && + state->administrative != NM_STATE_UNLOCKED && !bts->mo.adm_unlock_sent) { bts->mo.adm_unlock_sent = true; abis_nm_chg_adm_state(bts, NM_OC_BTS, bts->bts_nr, 0xff, 0xff, @@ -105,11 +120,11 @@ if (allow_opstart && state->administrative == NM_STATE_UNLOCKED && bts->mo.set_attr_ack_received) { - if (!bts->mo.opstart_sent) { - bts->mo.opstart_sent = true; - abis_nm_opstart(bts, NM_OC_BTS, bts->bts_nr, 0xff, 0xff); - } - } + if (!bts->mo.opstart_sent) { + bts->mo.opstart_sent = true; + abis_nm_opstart(bts, NM_OC_BTS, bts->bts_nr, 0xff, 0xff); + } + } } static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -133,6 +148,11 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_GET_ATTR_REP: + bts->mo.get_attr_rep_received = true; + bts->mo.get_attr_sent = false; + configure_loop(bts, &bts->mo.nm_state, false); + return; case NM_EV_SET_ATTR_ACK: bts->mo.set_attr_ack_received = true; bts->mo.set_attr_sent = false; @@ -182,6 +202,11 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_GET_ATTR_REP: + bts->mo.get_attr_rep_received = true; + bts->mo.get_attr_sent = false; + configure_loop(bts, &bts->mo.nm_state, true); + return; case NM_EV_SET_ATTR_ACK: bts->mo.set_attr_ack_received = true; bts->mo.set_attr_sent = false; @@ -231,6 +256,8 @@ reused as soon as we move back to Disabled */ bts->mo.opstart_sent = false; bts->mo.adm_unlock_sent = false; + bts->mo.get_attr_sent = false; + bts->mo.get_attr_rep_received = false; bts->mo.set_attr_sent = false; bts->mo.set_attr_ack_received = false; } @@ -300,6 +327,7 @@ [NM_BTS_ST_OP_DISABLED_DEPENDENCY] = { .in_event_mask = X(NM_EV_STATE_CHG_REP) | + X(NM_EV_GET_ATTR_REP) | X(NM_EV_SET_ATTR_ACK), .out_state_mask = X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED) | @@ -312,6 +340,7 @@ [NM_BTS_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = X(NM_EV_STATE_CHG_REP) | + X(NM_EV_GET_ATTR_REP) | X(NM_EV_SET_ATTR_ACK), .out_state_mask = X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED) | diff --git a/src/osmo-bsc/nm_common_fsm.c b/src/osmo-bsc/nm_common_fsm.c index 42c01e0..2a529db 100644 --- a/src/osmo-bsc/nm_common_fsm.c +++ b/src/osmo-bsc/nm_common_fsm.c @@ -25,6 +25,7 @@ const struct value_string nm_fsm_event_names[] = { { NM_EV_SW_ACT_REP, "SW_ACT_REP" }, { NM_EV_STATE_CHG_REP, "STATE_CHG_REP" }, + { NM_EV_GET_ATTR_REP, "GET_ATTR_REP" }, { NM_EV_SET_ATTR_ACK, "SET_ATTR_ACK" }, { NM_EV_OPSTART_ACK, "OPSTART_ACK" }, { NM_EV_OPSTART_NACK, "OPSTART_NACK" }, diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 3be8593..ca00ba0 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -371,13 +371,6 @@ { struct input_signal_data *isd = signal_data; struct gsm_bts_trx *trx = isd->trx; - /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ - const uint8_t bts_attr[] = { NM_ATT_MANUF_ID, NM_ATT_SW_CONFIG, }; - const uint8_t trx_attr[] = { NM_ATT_MANUF_STATE, NM_ATT_SW_CONFIG, }; - - /* we should not request more attributes than we're ready to handle */ - OSMO_ASSERT(sizeof(bts_attr) < MAX_BTS_ATTR); - OSMO_ASSERT(sizeof(trx_attr) < MAX_BTS_ATTR); if (subsys != SS_L_INPUT) return -EINVAL; @@ -395,14 +388,8 @@ set bts->si_common.cell_alloc */ generate_cell_chan_list(ca, trx->bts); - /* Request generic BTS-level attributes */ - abis_nm_get_attr(trx->bts, NM_OC_BTS, 0xFF, 0xFF, 0xFF, bts_attr, sizeof(bts_attr)); - llist_for_each_entry(cur_trx, &trx->bts->trx_list, list) { int i; - /* Request TRX-level attributes */ - abis_nm_get_attr(cur_trx->bts, NM_OC_BASEB_TRANSC, 0, cur_trx->nr, 0xFF, - trx_attr, sizeof(trx_attr)); for (i = 0; i < ARRAY_SIZE(cur_trx->ts); i++) generate_ma_for_ts(&cur_trx->ts[i]); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8ec39c7e1f956ffce9aecd58a5590c43200ba086 Gerrit-Change-Number: 21502 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Dec 3 19:43:02 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 19:43:02 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc93fdd5da62_48252b172cac05f824766e@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: [ 123s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_frgre.lo gprs_ns2_frgre.c [ 123s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_fr.lo gprs_ns2_fr.c [ 123s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2.c -fPIC -DPIC -o .libs/gprs_ns2.o [ 123s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_udp.c -fPIC -DPIC -o .libs/gprs_ns2_udp.o [ 123s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_frgre.c -fPIC -DPIC -o .libs/gprs_ns2_frgre.o [ 123s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 124s] In file included from gprs_ns2_fr.c:53: [ 124s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 124s] 7 | #include [ 124s] | ^~~~~~~~~~~~~~~~~ [ 124s] compilation terminated. [ 124s] make[2]: *** [Makefile:572: gprs_ns2_fr.lo] Error 1 [ 124s] make[2]: *** Waiting for unfinished jobs.... [ 124s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7/src/gb' [ 124s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 124s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.237.25ee7' [ 124s] make: *** [Makefile:483: all] Error 2 [ 124s] error: Bad exit status from /var/tmp/rpm-tmp.QuHRkh (%build) [ 124s] [ 124s] [ 124s] RPM build errors: [ 124s] Bad exit status from /var/tmp/rpm-tmp.QuHRkh (%build) [ 124s] ### VM INTERACTION START ### [ 127s] [ 100.414657] sysrq: Power Off [ 127s] [ 100.415901] reboot: Power down [ 127s] ### VM INTERACTION END ### [ 127s] [ 127s] obs-arm-8 failed "build libosmocore.spec" at Thu Dec 3 19:43:01 UTC 2020. [ 127s] -- 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 Dec 3 20:03:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 20:03:13 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct lchan_power_ctrl_state' In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21500 ) Change subject: power_control: clarify units in 'struct lchan_power_ctrl_state' ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21500/1/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/21500/1/include/osmo-bts/gsm_data.h at 164 PS1, Line 164: /* Depending on the context (MS or BS power control), fields 'current' and 'max' > I still find this a bit strange. [?] Because it makes no sense to use MS power levels (magic numbers from the specs) in context of Downlink power reduction. And vice versa, dB[m] is not useful in the other direction because the MS expects from us / gives us magic numbers. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I934f2d1e1064eed7587bc5693ef981bf449a1b81 Gerrit-Change-Number: 21500 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 20:03: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 Thu Dec 3 20:07:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 20:07:21 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct lchan_power_ctrl_state' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21500 ) Change subject: power_control: clarify units in 'struct lchan_power_ctrl_state' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I934f2d1e1064eed7587bc5693ef981bf449a1b81 Gerrit-Change-Number: 21500 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 20:07: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 Dec 3 20:17:27 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 20:17:27 +0000 Subject: Change in osmo-bsc[master]: abis_nm: Simplify param passing to abis_nm_rx_get_attr_resp() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21501 ) Change subject: abis_nm: Simplify param passing to abis_nm_rx_get_attr_resp() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7181510c5021ff2712c09ebc6ec8b13fdd8e8dc2 Gerrit-Change-Number: 21501 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 03 Dec 2020 20: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 Thu Dec 3 20:22:43 2020 From: gerrit-no-reply at lists.osmocom.org (mschramm) Date: Thu, 3 Dec 2020 20:22:43 +0000 Subject: Change in osmo-e1-hardware[master]: e1-tracer: solve everything towards v2 In-Reply-To: References: Message-ID: mschramm has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 ) Change subject: e1-tracer: solve everything towards v2 ...................................................................... e1-tracer: solve everything towards v2 * retract light guides and RJ45 1.5mm inwards (solves SYS#5051) * SPI MOSI/MISO mismatch fixed (solves SYS#5050) * footpint mismatch to BOM for L3,L4 fixed (solves SYS#5053) * PCB had to get 5mm slimmer (adresses SYS#5088) * repaired silk on name bott side Change-Id: I97ab7240b9b1fb68347dc994885c926b8c192217 --- M hardware/e1-tracer/e1-tracer.brd M hardware/e1-tracer/e1-tracer.sch 2 files changed, 1,829 insertions(+), 1,693 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/96/21496/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 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: I97ab7240b9b1fb68347dc994885c926b8c192217 Gerrit-Change-Number: 21496 Gerrit-PatchSet: 2 Gerrit-Owner: mschramm Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 3 20:27:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 20:27:58 +0000 Subject: Change in osmo-bsc[master]: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21502 ) Change subject: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21502/1/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21502/1/include/osmocom/bsc/gsm_data.h at 402 PS1, Line 402: bool get_attr_sent; Hmm, I thought the idea of FSMs is to replace state variables and boolean flags... AFAIR, it's not an optional part of the bootstrapping process, so I would expect both request and response to be handled within a single state without any additional flags. Don't get me wrong, I am not familiar with the OML as good as you, but this *looks* like a fault in the FSM design / architecture. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8ec39c7e1f956ffce9aecd58a5590c43200ba086 Gerrit-Change-Number: 21502 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 20:27:58 +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 Dec 3 20:29:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 20:29:02 +0000 Subject: Change in osmo-bsc[master]: nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21497 ) Change subject: nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic6049a44ae3fca1b8e968fe800c268f579e7cad4 Gerrit-Change-Number: 21497 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 03 Dec 2020 20:29: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 Dec 3 20:32:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 20:32:27 +0000 Subject: Change in osmo-bsc[master]: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21502 ) Change subject: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21502/1/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21502/1/include/osmocom/bsc/gsm_data.h at 402 PS1, Line 402: bool get_attr_sent; > Hmm, I thought the idea of FSMs is to replace state variables and boolean flags... [?] Doing so would make the FSM enourmously complicated, with lots more of states and lots more of repeated logic on each of them. Having booleans to track FSMs details on each state is nothing new in osmocom projects, you can find that being used in several other FSMs already. The important part is that those booleans/flags are managed inside the FSM code so it's clear when are they used and how. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8ec39c7e1f956ffce9aecd58a5590c43200ba086 Gerrit-Change-Number: 21502 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 20:32:27 +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 Dec 3 20:38:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 20:38:36 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21461 ) Change subject: Introduce NM GPRS NSE FSM ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21461/4/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h File include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21461/4/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h at 27 PS4, Line 27: struct gsm_bts_sm; If these structures are not directly used in this header, why are you forward-declaring them here? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 03 Dec 2020 20:38:36 +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 Dec 3 20:56:19 2020 From: gerrit-no-reply at lists.osmocom.org (mschramm) Date: Thu, 3 Dec 2020 20:56:19 +0000 Subject: Change in osmo-e1-hardware[master]: e1-tracer: solve everything towards v2 In-Reply-To: References: Message-ID: mschramm has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 ) Change subject: e1-tracer: solve everything towards v2 ...................................................................... e1-tracer: solve everything towards v2 * retract light guides and RJ45 1.5mm inwards (solves SYS#5051) * SPI MOSI/MISO mismatch fixed (solves SYS#5050) * footpint mismatch to BOM for L3,L4 fixed (solves SYS#5053) * PCB had to get 5mm slimmer (adresses SYS#5088) * repaired silk on name bott side * DRC Change-Id: I97ab7240b9b1fb68347dc994885c926b8c192217 --- M hardware/e1-tracer/e1-tracer.brd M hardware/e1-tracer/e1-tracer.sch 2 files changed, 1,899 insertions(+), 1,703 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/96/21496/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 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: I97ab7240b9b1fb68347dc994885c926b8c192217 Gerrit-Change-Number: 21496 Gerrit-PatchSet: 3 Gerrit-Owner: mschramm Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Dec 3 21:08:12 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 03 Dec 2020 21:08:12 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc953ce3cacd_48252b172cac05f82815fe@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: [ 74s] CC gb_proxy.o [ 74s] CC gb_proxy_ctrl.o [ 74s] CC gb_proxy_vty.o [ 75s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 75s] gb_proxy.c:1405:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 75s] 1405 | case BSSGP_PDUT_OVERLOAD: [ 75s] | ^~~~~~~~~~~~~~~~~~~ [ 75s] | BSSGP_PDUT_BVC_BLOCK [ 75s] gb_proxy.c:1405:7: note: each undeclared identifier is reported only once for each function it appears in [ 75s] make[3]: *** [Makefile:502: gb_proxy.o] Error 1 [ 75s] make[3]: *** Waiting for unfinished jobs.... [ 75s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src/gbproxy' [ 75s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 75s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98/src' [ 75s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 75s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.72.c8d98' [ 75s] make: *** [Makefile:392: all] Error 2 [ 75s] error: Bad exit status from /var/tmp/rpm-tmp.YDssZf (%build) [ 75s] [ 75s] [ 75s] RPM build errors: [ 75s] Bad exit status from /var/tmp/rpm-tmp.YDssZf (%build) [ 75s] ### VM INTERACTION START ### [ 78s] [ 63.898352] sysrq: Power Off [ 78s] [ 63.899756] reboot: Power down [ 79s] ### VM INTERACTION END ### [ 79s] [ 79s] obs-arm-9 failed "build osmo-sgsn.spec" at Thu Dec 3 21:08:07 UTC 2020. [ 79s] -- 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 Dec 3 21:56:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 3 Dec 2020 21:56:32 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21461 ) Change subject: Introduce NM GPRS NSE FSM ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21461/4/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h File include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21461/4/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h at 27 PS4, Line 27: struct gsm_bts_sm; > If these structures are not directly used in this header, why are you forward-declaring them here? Why do you say they are not being used? they appear below. Until now they didn'f fail because files importing this header happened to import other files beforehand which were declaring them. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 03 Dec 2020 21:56:32 +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 Dec 3 21:58:20 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 3 Dec 2020 21:58:20 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21461 ) Change subject: Introduce NM GPRS NSE FSM ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21461/4/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h File include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21461/4/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h at 27 PS4, Line 27: struct gsm_bts_sm; > Why do you say they are not being used? they appear below. [?] Oh, damn, nevermind. I'll better go sleep :D -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 03 Dec 2020 21:58:20 +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 Thu Dec 3 22:54:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 22:54:38 +0000 Subject: Change in osmo-e1-hardware[master]: e1-tracer: solve everything towards v2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 ) Change subject: e1-tracer: solve everything towards v2 ...................................................................... Patch Set 3: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 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: I97ab7240b9b1fb68347dc994885c926b8c192217 Gerrit-Change-Number: 21496 Gerrit-PatchSet: 3 Gerrit-Owner: mschramm Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 22:54: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 Dec 3 22:54:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 22:54:48 +0000 Subject: Change in osmo-e1-hardware[master]: e1-tracer: solve everything towards v2 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 ) Change subject: e1-tracer: solve everything towards v2 ...................................................................... e1-tracer: solve everything towards v2 * retract light guides and RJ45 1.5mm inwards (solves SYS#5051) * SPI MOSI/MISO mismatch fixed (solves SYS#5050) * footpint mismatch to BOM for L3,L4 fixed (solves SYS#5053) * PCB had to get 5mm slimmer (adresses SYS#5088) * repaired silk on name bott side * DRC Change-Id: I97ab7240b9b1fb68347dc994885c926b8c192217 --- M hardware/e1-tracer/e1-tracer.brd M hardware/e1-tracer/e1-tracer.sch 2 files changed, 1,899 insertions(+), 1,703 deletions(-) Approvals: laforge: Looks good to me, approved; Verified -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21496 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: I97ab7240b9b1fb68347dc994885c926b8c192217 Gerrit-Change-Number: 21496 Gerrit-PatchSet: 3 Gerrit-Owner: mschramm Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 3 22:55:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 22:55:35 +0000 Subject: Change in osmo-bsc[master]: nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21497 ) Change subject: nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic6049a44ae3fca1b8e968fe800c268f579e7cad4 Gerrit-Change-Number: 21497 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 03 Dec 2020 22:55: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 Dec 3 22:55:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 22:55:56 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21461 ) Change subject: Introduce NM GPRS NSE FSM ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 03 Dec 2020 22: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 Thu Dec 3 22:56:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 22:56:04 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21463 ) Change subject: Introduce NM GPRS CELL FSM ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 22: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 Thu Dec 3 22:56:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 22:56:16 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 22: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 Dec 3 22:57:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 22:57:35 +0000 Subject: Change in osmo-bsc[master]: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21502 ) Change subject: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8ec39c7e1f956ffce9aecd58a5590c43200ba086 Gerrit-Change-Number: 21502 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 22:57: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 Dec 3 22:58:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 22:58:12 +0000 Subject: Change in osmo-bts[master]: tests/power: rename s/power_test/ms_power_loop_test/ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21478 ) Change subject: tests/power: rename s/power_test/ms_power_loop_test/ ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f58eb85e44825a159af58948f01d9ffd75bceec Gerrit-Change-Number: 21478 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 22: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 Thu Dec 3 23:00:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:00:02 +0000 Subject: Change in osmo-bts[master]: vty: add commands for Downlink power control In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21438 ) Change subject: vty: add commands for Downlink power control ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/21438/1/src/common/vty.c at 655 PS1, Line 655: i > Ok, but I still see no arguments *why* strcmp() is preferred, and what's wrong with checking the fir [?] because the condition for the relative clause is that the specified string was "uplink" or "downlink'. Checking only the first letter makes it harder to read / figure out what is the intent here, and looks like an over-optimization with no benefit. -- 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: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23:00:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No 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 Thu Dec 3 23:00:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:00:57 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct lchan_power_ctrl_state' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21500 ) Change subject: power_control: clarify units in 'struct lchan_power_ctrl_state' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I934f2d1e1064eed7587bc5693ef981bf449a1b81 Gerrit-Change-Number: 21500 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23:00: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 Dec 3 23:01:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:01:16 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23: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 Thu Dec 3 23:01:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:01:51 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21442 ) Change subject: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Gerrit-Change-Number: 21442 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23: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 Thu Dec 3 23:02:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:02:19 +0000 Subject: Change in osmo-bts[master]: power_control: remove a logging statement and early return In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21479 ) Change subject: power_control: remove a logging statement and early return ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c07cb6e14acd5a988761bbc51a9c3b60fb22d87 Gerrit-Change-Number: 21479 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23:02: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 Dec 3 23:02:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:02:50 +0000 Subject: Change in osmo-bts[master]: power_control: do not log averaged RSSI values as 'rx-current' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21498 ) Change subject: power_control: do not log averaged RSSI values as 'rx-current' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I07007e45c859b4080fbbe520ffb5ccc0bb9c4244 Gerrit-Change-Number: 21498 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23:02: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 Dec 3 23:03:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:03:20 +0000 Subject: Change in osmo-bts[master]: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21446 ) Change subject: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Gerrit-Change-Number: 21446 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23:03: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 Dec 3 23:04:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:04:49 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 ) Change subject: gbproxy: Add BVC log filters ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21495/2/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21495/2/src/gbproxy/gb_proxy_peer.c at 93 PS2, Line 93: if (peer->bvci == bvci) { : return peer; : } : } unrelated cosmetic change -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23:04:49 +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 Dec 3 23:05:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:05:27 +0000 Subject: Change in libosmocore[master]: ns2: Add log filtering by NSE/NSEI, fix NSVC filter on receive In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21465 ) Change subject: ns2: Add log filtering by NSE/NSEI, fix NSVC filter on receive ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Gerrit-Change-Number: 21465 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 23:05: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 Dec 3 23:05:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 3 Dec 2020 23:05:29 +0000 Subject: Change in libosmocore[master]: ns2: Add log filtering by NSE/NSEI, fix NSVC filter on receive In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21465 ) Change subject: ns2: Add log filtering by NSE/NSEI, fix NSVC filter on receive ...................................................................... ns2: Add log filtering by NSE/NSEI, fix NSVC filter on receive NSVC filtering was only implemented on sending messages, this also adds log_set_context() calls to ns2_recv_vc() Filtering by NSE is implemented similar to NSVC. Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Related: SYS#5232 --- M include/osmocom/core/logging.h M src/gb/common_vty.c M src/gb/gprs_ns2.c M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vty.c 5 files changed, 74 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index 38b465c..418a42e 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -165,6 +165,7 @@ LOG_CTX_BSC_SUBSCR, LOG_CTX_VLR_SUBSCR, LOG_CTX_L1_SAPI, + LOG_CTX_GB_NSE, _LOG_CTX_COUNT }; @@ -178,6 +179,7 @@ LOG_FLT_BSC_SUBSCR, LOG_FLT_VLR_SUBSCR, LOG_FLT_L1_SAPI, + LOG_FLT_GB_NSE, _LOG_FLT_COUNT }; diff --git a/src/gb/common_vty.c b/src/gb/common_vty.c index eb665d5..42f3404 100644 --- a/src/gb/common_vty.c +++ b/src/gb/common_vty.c @@ -40,15 +40,21 @@ int gprs_log_filter_fn(const struct log_context *ctx, struct log_target *tar) { + const void *nse = ctx->ctx[LOG_CTX_GB_NSE]; const void *nsvc = ctx->ctx[LOG_CTX_GB_NSVC]; const void *bvc = ctx->ctx[LOG_CTX_GB_BVC]; + /* Filter on the NS Entity */ + if ((tar->filter_map & (1 << LOG_FLT_GB_NSE)) != 0 + && nse && (nse == tar->filter_data[LOG_FLT_GB_NSE])) + return 1; + /* Filter on the NS Virtual Connection */ if ((tar->filter_map & (1 << LOG_FLT_GB_NSVC)) != 0 && nsvc && (nsvc == tar->filter_data[LOG_FLT_GB_NSVC])) return 1; - /* Filter on the NS Virtual Connection */ + /* Filter on the BSSGP Virtual Connection */ if ((tar->filter_map & (1 << LOG_FLT_GB_BVC)) != 0 && bvc && (bvc == tar->filter_data[LOG_FLT_GB_BVC])) return 1; diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 69c1174..93807f0 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -72,6 +72,7 @@ #include #include +#include #include #include #include @@ -1010,6 +1011,9 @@ struct tlv_parsed tp; int rc = 0; + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); + log_set_context(LOG_CTX_GB_NSVC, nsvc); + 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 fac6108..69c833e 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -189,6 +189,7 @@ struct msgb *msg = gprs_ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) @@ -212,6 +213,7 @@ struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK"); @@ -244,6 +246,7 @@ struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK ACK"); @@ -275,6 +278,7 @@ uint16_t nsvci = osmo_htons(nsvc->nsvci); uint16_t nsei = osmo_htons(nsvc->nse->nsei); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET"); @@ -307,6 +311,7 @@ uint16_t nsvci, nsei; /* Section 9.2.6 */ + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET ACK"); @@ -337,6 +342,7 @@ * \returns 0 in case of success */ int ns2_tx_unblock(struct gprs_ns2_vc *nsvc) { + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK"); @@ -353,6 +359,7 @@ * \returns 0 in case of success */ int ns2_tx_unblock_ack(struct gprs_ns2_vc *nsvc) { + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK ACK"); @@ -368,6 +375,7 @@ * \returns 0 in case of success */ int ns2_tx_alive(struct gprs_ns2_vc *nsvc) { + 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); @@ -380,6 +388,7 @@ * \returns 0 in case of success */ int ns2_tx_alive_ack(struct gprs_ns2_vc *nsvc) { + 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); @@ -399,6 +408,7 @@ { struct gprs_ns_hdr *nsh; + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); msg->l2h = msgb_push(msg, sizeof(*nsh) + 3); @@ -430,6 +440,7 @@ struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); bvci = osmo_htons(bvci); @@ -495,6 +506,7 @@ msg = gprs_ns2_msgb_alloc(); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; @@ -553,6 +565,7 @@ msg = gprs_ns2_msgb_alloc(); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; @@ -601,6 +614,7 @@ return -1; msg = gprs_ns2_msgb_alloc(); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; @@ -646,6 +660,7 @@ msg = gprs_ns2_msgb_alloc(); + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; @@ -685,6 +700,7 @@ struct gprs_ns_hdr *nsh; uint16_t nsei; + log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) return -ENOMEM; diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 8b8a999..9c214a3 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -110,6 +110,18 @@ { 0, NULL } }; +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) { @@ -756,7 +768,37 @@ /* TODO: allow vty to reset/block/unblock nsvc/nsei */ -/* TODO: add filter for NSEI as ns1 code does */ +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[1]); + + 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, @@ -818,10 +860,12 @@ 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(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); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63c0e85f82f5d08c5a6f535da94b8648498439d2 Gerrit-Change-Number: 21465 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 Dec 3 23:23:48 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 23:23:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Improve NSEI/... numbering and improve paging test coverage 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-ttcn3-hacks/+/21420 to look at the new patch set (#2). Change subject: gbproxy: Improve NSEI/... numbering and improve paging test coverage ...................................................................... gbproxy: Improve NSEI/... numbering and improve paging test coverage With this setup we can and do now test: * Paging a LAI on BVC0 is sent once per matching NSE * Paging a LAI on BVC0 is sent to multiple different matching NSE * Paging a RA ID on BVC0 is sent once per matching NSE * Paging a RA ID on BVC0 is sent to multiple different matching NSE Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Related: SYS#5226 --- M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg 2 files changed, 100 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/20/21420/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 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 Thu Dec 3 23:29:44 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 23:29:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Improve NSEI/... numbering and improve paging test coverage 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-ttcn3-hacks/+/21420 to look at the new patch set (#3). Change subject: gbproxy: Improve NSEI/... numbering and improve paging test coverage ...................................................................... gbproxy: Improve NSEI/... numbering and improve paging test coverage With this setup we can and do now test: * Paging a LAI on BVC0 is sent once per matching NSE * Paging a LAI on BVC0 is sent to multiple different matching NSE * Paging a RA ID on BVC0 is sent once per matching NSE * Paging a RA ID on BVC0 is sent to multiple different matching NSE Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Related: SYS#5226 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 90 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/20/21420/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 Gerrit-PatchSet: 3 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 Thu Dec 3 23:31:25 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 23:31:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21494 ) Change subject: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b Gerrit-Change-Number: 21494 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23:31: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 Dec 3 23:44:50 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 23:44:50 +0000 Subject: Change in libosmocore[master]: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21493 ) Change subject: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21493/2/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/21493/2/src/gb/gprs_bssgp.c at 588 PS2, Line 588: "missing mandatory IE\n", ctx->bvci); return bssgp_tx_status() missing here So even if the TLLI is missing we now try to extract it below. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 Gerrit-Change-Number: 21493 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23:44:50 +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 Dec 3 23:46:26 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 23:46:26 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21492 ) Change subject: gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1519cff0f6b2fe77f9a91eee17e0055d9df1bce6 Gerrit-Change-Number: 21492 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 03 Dec 2020 23:46: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 Dec 3 23:48:03 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 3 Dec 2020 23:48:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL ... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 ) Change subject: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL block ...................................................................... Patch Set 2: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419/1/pcu/PCU_Tests.ttcn at 2588 PS1, Line 2588: if (dl_block.data_egprs.blocks[1].hdr.length_ind != 127) { > Duplicate of line 2584? Done https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419/1/pcu/PCU_Tests.ttcn at 2605 PS1, Line 2605: rclamc > rlcmac Done https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419/1/pcu/PCU_Tests.ttcn at 2611 PS1, Line 2611: rclamc > same Done -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7e0d9ed2475dbf989fbf932c8b83117ff5fb28fc Gerrit-Change-Number: 21419 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 03 Dec 2020 23:48:03 +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 Thu Dec 3 23:56:17 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:17 +0000 Subject: Change in osmo-gsm-tester[master]: cfg templates: log level and source basename last, log no category-hex References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 ) Change subject: cfg templates: log level and source basename last, log no category-hex ...................................................................... cfg templates: log level and source basename last, log no category-hex Makes for saner log output in stderr files. Change-Id: I2755beffd18d6779367c04e4aaaed119d66eb3be --- M src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl 16 files changed, 45 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/03/21503/1 diff --git a/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl index 66fa9e5..dd27da0 100644 --- a/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl index d4f73ad..7419729 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl index b816036..5bc6cd4 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl index 2533354..a27f57d 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl index b202880..10a44e2 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl index 2276c86..64985e8 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl index 782f1e8..24ab520 100644 --- a/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl @@ -6,6 +6,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level ip info logging level tun info diff --git a/src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl index b573620..9c9cd4e 100644 --- a/src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl index 970d53c..7522fed 100644 --- a/src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl index bf7fc2b..39cde5f 100644 --- a/src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl index f5eb03e..ef2efd0 100644 --- a/src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl @@ -3,7 +3,8 @@ logging print extended-timestamp 1 logging print category 1 logging print category-hex 0 - logging print file basename + logging print level 1 + logging print file basename last logging level set-all info line vty no login diff --git a/src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl index c0e6cd2..2943204 100644 --- a/src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl @@ -3,7 +3,8 @@ logging print extended-timestamp 1 logging print category 1 logging print category-hex 0 - logging print file basename + logging print level 1 + logging print file basename last logging level set-all info line vty no login diff --git a/src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl index 7445609..9e44250 100644 --- a/src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl @@ -3,7 +3,8 @@ logging print extended-timestamp 1 logging print category 1 logging print category-hex 0 - logging print file basename + logging print level 1 + logging print file basename last logging level set-all info line vty no login diff --git a/src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl index 7d12ab5..729c917 100644 --- a/src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl @@ -6,6 +6,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl index c180e82..c081ad7 100644 --- a/src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl index 55e285a..d7996fe 100644 --- a/src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl @@ -5,8 +5,10 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging timestamp 1 - logging print file basename logging print extended-timestamp 1 logging level set-all info logging level ctr notice -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 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: I2755beffd18d6779367c04e4aaaed119d66eb3be Gerrit-Change-Number: 21503 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 Dec 3 23:56:18 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:18 +0000 Subject: Change in osmo-gsm-tester[master]: add osmo_vty.py References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 ) Change subject: add osmo_vty.py ...................................................................... add osmo_vty.py To trigger manual handovers, I need a VTY interface. The non-trivial parts of this are copied from osmo-python-tests osmo_interact_vty.py. Will be used in the upcoming handover_2G test suite in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I7c17b143b7c690b8c4105ee7c6272670046fa91d --- A src/osmo_gsm_tester/obj/osmo_vty.py 1 file changed, 181 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/04/21504/1 diff --git a/src/osmo_gsm_tester/obj/osmo_vty.py b/src/osmo_gsm_tester/obj/osmo_vty.py new file mode 100644 index 0000000..88deb61 --- /dev/null +++ b/src/osmo_gsm_tester/obj/osmo_vty.py @@ -0,0 +1,181 @@ +# osmo_gsm_tester: VTY connection +# +# Copyright (C) 2016-2017 by sysmocom - s.f.m.c. GmbH +# +# Author: Neels Hofmeyr +# +# 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 . + +import socket +import struct +import re +import time + +from ..core import log + +class VtyInterfaceExn(Exception): + pass + +class OsmoVty(log.Origin): + + def __init__(self, host, port, prompt=None): + super().__init__(log.C_BUS, 'Vty', host=host, port=port) + self.host = host + self.port = port + self.sck = None + self.prompt = prompt + self.re_prompt = None + self.this_node = None + self.this_prompt_char = None + self.last_node = None + self.last_prompt_char = None + + def connect(self): + attempts = 10; + while True: + try: + self.dbg('Connecting') + self.sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.sck.connect((self.host, self.port)) + except ConnectionRefusedError: + attempts -= 1 + if attempts < 1: + raise + self.dbg('Connection Refused, trying again (attempts left: %d)' % attempts) + time.sleep(3) + continue + break + + self.sck.setblocking(1) + + # read first prompt + # (copied from https://git.osmocom.org/python/osmo-python-tests/tree/osmopy/osmo_interact/vty.py) + self.this_node = None + self.this_prompt_char = '>' # slight cheat for initial prompt char + self.last_node = None + self.last_prompt_char = None + + data = self.sck.recv(4096) + if not self.prompt: + b = data + b = b[b.rfind(b'\n') + 1:] + while b and (b[0] < ord('A') or b[0] > ord('z')): + b = b[1:] + prompt_str = b.decode('utf-8') + if '>' in prompt_str: + self.prompt = prompt_str[:prompt_str.find('>')] + self.dbg(prompt=self.prompt) + if not self.prompt: + raise VtyInterfaceExn('Could not find application name; needed to decode prompts.' + ' Initial data was: %r' % data) + self.re_prompt = re.compile('^%s(?:\(([\w-]*)\))?([#>]) (.*)$' % self.prompt) + + def disconnect(self): + self.dbg('Disconnecting') + if self.sck is not None: + self.sck.close() + + def _command(self, command_str, timeout=10, strict=True): + # (copied from https://git.osmocom.org/python/osmo-python-tests/tree/osmopy/osmo_interact/vty.py) + self.dbg('Sending', command_str=command_str) + self.sck.send(command_str.encode()) + + waited_since = time.time() + received_lines = [] + last_line = '' + + while True: + new_data = self.sck.recv(4096).decode('utf-8') + + last_line = "%s%s" % (last_line, new_data) + + if last_line: + # Separate the received response into lines. + # But note: the VTY logging currently separates with '\n\r', not '\r\n', + # see _vty_output() in libosmocore logging_vty.c. + # So we need to jump through hoops to not separate 'abc\n\rdef' as + # [ 'abc', '', 'def' ]; but also not to convert '\r\n\r\n' to '\r\n\n' ('\r{\r\n}\n') + # Simplest is to just drop all the '\r' and only care about the '\n'. + last_line = last_line.replace('\r', '') + lines = last_line.splitlines() + if last_line.endswith('\n'): + received_lines.extend(lines) + last_line = "" + else: + # if pkt buffer ends in the middle of a line, we need to keep + # last non-finished line: + received_lines.extend(lines[:-1]) + last_line = lines[-1] + + match = self.re_prompt.match(last_line) + if not match: + if time.time() - waited_since > timeout: + raise IOError("Failed to read data (did the app crash?)") + time.sleep(.1) + continue + + self.last_node = self.this_node + self.last_prompt_char = self.this_prompt_char + self.this_node = match.group(1) or None + self.this_prompt_char = match.group(2) + break + + # expecting to have received the command we sent as echo, remove it + clean_command_str = command_str.strip() + if clean_command_str.endswith('?'): + clean_command_str = clean_command_str[:-1] + if received_lines and received_lines[0] == clean_command_str: + received_lines = received_lines[1:] + if len(received_lines) > 1: + self.dbg('Received\n|', '\n| '.join(received_lines), '\n') + elif len(received_lines) == 1: + self.dbg('Received', repr(received_lines[0])) + + if received_lines == ['% Unknown command.']: + errmsg = 'VTY reports unknown command: %r' % command_str + if strict: + raise VtyInterfaceExn(errmsg) + else: + self.log('ignoring error:', errmsg) + + return received_lines + + def cmd(self, command_str, timeout=10, strict=True): + # (copied from https://git.osmocom.org/python/osmo-python-tests/tree/osmopy/osmo_interact/vty.py) + command_str = command_str or '\r' + if command_str[-1] not in '?\r\t': + command_str = command_str + '\r' + + received_lines = self._command(command_str, timeout, strict) + + # send escape to cancel the '?' command line + if command_str[-1] == '?': + self._command('\x03', timeout) + + return received_lines + + def cmds(self, *cmds, timeout=10, strict=True): + responses = [] + for cmd in cmds: + responses.append(self.cmd(cmd, timeout, strict)) + return responses + + def __enter__(self): + self.connect() + return self + + def __exit__(self, *exc_info): + self.disconnect() + +# vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 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: I7c17b143b7c690b8c4105ee7c6272670046fa91d Gerrit-Change-Number: 21504 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 Dec 3 23:56:18 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:18 +0000 Subject: Change in osmo-gsm-tester[master]: add bsc.vty() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 ) Change subject: add bsc.vty() ...................................................................... add bsc.vty() The BSC's VTY port will be used to trigger manual handover, and to retrieve a list of active lchans from the BSC, in the upcoming handover_2G test suite, I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I06652db04fc9e48748f3c2196334f5352e9cc48a --- M src/osmo_gsm_tester/obj/bsc_osmo.py 1 file changed, 20 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/05/21505/1 diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index 1763dcd..24e639e 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -23,7 +23,7 @@ from ..core import log, util, config, template, process from ..core import schema -from . import osmo_ctrl, pcap_recorder +from . import osmo_ctrl, osmo_vty, pcap_recorder def on_register_schemas(): config_schema = { @@ -150,6 +150,9 @@ def running(self): return not self.process.terminated() + def vty(self): + return OsmoBscVty(self) + class OsmoBscCtrl(log.Origin): PORT = 4249 @@ -178,4 +181,20 @@ return True return False +class OsmoBscVty(log.Origin): + PORT = 4242 + + def __init__(self, bsc): + self.bsc = bsc + super().__init__(log.C_BUS, 'VTY(%s:%d)' % (self.bsc.addr(), OsmoBscVty.PORT)) + self.vty = osmo_vty.OsmoVty(self.bsc.addr(), OsmoBscVty.PORT) + + def cmd(self, cmd): + with self.vty as vty: + return vty.cmd(cmd) + + def cmds(self, *cmds): + with self.vty as vty: + return vty.cmds(*cmds) + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 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: I06652db04fc9e48748f3c2196334f5352e9cc48a Gerrit-Change-Number: 21505 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 Dec 3 23:56:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:19 +0000 Subject: Change in osmo-gsm-tester[master]: bsc: add active lchan matching via vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 ) Change subject: bsc: add active lchan matching via vty ...................................................................... bsc: add active lchan matching via vty Will be used in upcoming handover_2G test suite in I0b2671304165a1aaae2b386af46fbd8b098e3bd8, which needs to verify that a handover actually ended up on the expected lchan. Change-Id: I03df8f3ae2ee47930eee311c7ce104c36dbb3154 --- M src/osmo_gsm_tester/obj/bsc_osmo.py 1 file changed, 49 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/06/21506/1 diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index 24e639e..636514e 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -20,6 +20,7 @@ import os import re import pprint +import re from ..core import log, util, config, template, process from ..core import schema @@ -153,6 +154,54 @@ def vty(self): return OsmoBscVty(self) + def get_active_lchans(self): + lchan_summary = self.vty().cmd('show lchan summary') + + re_lchan_summary = re.compile('BTS ([0-9]+), TRX ([0-9]+), Timeslot ([0-9]+) *([^,]*), Lchan ([0-9]+),.* State ([A-Za-z_]+).*') + active_lchans = set() + for line in lchan_summary: + m = re_lchan_summary.match(line) + if m: + bts, trx, ts, lchan_type, subslot, state = m.groups() + active_lchans.add('%s-%s-%s-%s %s %s' % (bts, trx, ts, subslot, lchan_type, state)) + if not active_lchans: + self.dbg('No active lchans') + else: + self.dbg('Active lchans:\n|', '\n| '.join(active_lchans), '\n'); + return active_lchans + + def active_lchans_match(self, expected=[], not_expected=[]): + active_lchans = self.get_active_lchans() + matches = [] + mismatches = [] + + for expected_lchan in expected: + found = False + for active_lchan in active_lchans: + if active_lchan.startswith(expected_lchan): + found = True + break + if found: + matches.append(expected_lchan) + else: + mismatches.append('missing: ' + expected_lchan) + + for not_expected_lchan in not_expected: + found = False + for active_lchan in active_lchans: + if active_lchan.startswith(not_expected_lchan): + found = True + break + if not found: + matches.append('not: ' + not_expected_lchan) + else: + mismatches.append('unexpected: ' + not_expected_lchan) + + if matches: + self.log('Found matching lchan activity (%d of %d requirements):' % (len(matches), len(expected) + len(not_expected)), matches) + if mismatches: + self.err('Found unexpected lchan activity (%d of %d requirements):' % (len(mismatches), len(expected) + len(not_expected)), mismatches) + return not mismatches class OsmoBscCtrl(log.Origin): PORT = 4249 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 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: I03df8f3ae2ee47930eee311c7ce104c36dbb3154 Gerrit-Change-Number: 21506 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 Dec 3 23:56:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:19 +0000 Subject: Change in osmo-gsm-tester[master]: bts: allow configuring ARFCN and BSIC: add to schema References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21507 ) Change subject: bts: allow configuring ARFCN and BSIC: add to schema ...................................................................... bts: allow configuring ARFCN and BSIC: add to schema resources.conf is already allowed to set these, but in order to let scenarios and suites modify these values, they need to be in the schema. Change-Id: I8e0583e9208d563c66b0bdc9f25b1b74f92403c2 --- M src/osmo_gsm_tester/obj/bts.py 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/07/21507/1 diff --git a/src/osmo_gsm_tester/obj/bts.py b/src/osmo_gsm_tester/obj/bts.py index 5b43642..76a6875 100644 --- a/src/osmo_gsm_tester/obj/bts.py +++ b/src/osmo_gsm_tester/obj/bts.py @@ -35,6 +35,7 @@ 'channel_allocator': schema.CHAN_ALLOCATOR, 'gprs_mode': schema.GPRS_MODE, 'emergency_calls_allowed': schema.BOOL_STR, + 'base_station_id_code': schema.UINT, 'num_trx': schema.UINT, 'max_trx': schema.UINT, 'trx_list[].addr': schema.IPV4, @@ -46,6 +47,7 @@ 'trx_list[].power_supply.type': schema.STR, 'trx_list[].power_supply.device': schema.STR, 'trx_list[].power_supply.port': schema.STR, + 'trx_list[].arfcn': schema.UINT, } schema.register_resource_schema('bts', resource_schema) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21507 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: I8e0583e9208d563c66b0bdc9f25b1b74f92403c2 Gerrit-Change-Number: 21507 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 Dec 3 23:56:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:20 +0000 Subject: Change in osmo-gsm-tester[master]: wait_no_raise(): set default args References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21508 ) Change subject: wait_no_raise(): set default args ...................................................................... wait_no_raise(): set default args Allows calling from a test script in-place for wait(). Will be used in upcoming handover_2G test suite in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I225a175b25c5c148ef5e23d2184f5d1aa2f4188a --- M src/osmo_gsm_tester/core/event_loop.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/08/21508/1 diff --git a/src/osmo_gsm_tester/core/event_loop.py b/src/osmo_gsm_tester/core/event_loop.py index 4092a66..8480e7e 100644 --- a/src/osmo_gsm_tester/core/event_loop.py +++ b/src/osmo_gsm_tester/core/event_loop.py @@ -85,7 +85,7 @@ self.gctx.iteration(may_block) self.deferred_handling.handle_queue() - def wait_no_raise(self, condition, condition_args, condition_kwargs, timeout, timestep): + def wait_no_raise(self, condition, condition_args=[], condition_kwargs={}, timeout=300, timestep=1): if not timeout or timeout < 0: raise log.Error('wait() *must* time out at some point.', timeout=timeout) if timestep < 0.1: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21508 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: I225a175b25c5c148ef5e23d2184f5d1aa2f4188a Gerrit-Change-Number: 21508 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 Dec 3 23:56:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:20 +0000 Subject: Change in osmo-gsm-tester[master]: log passed tests References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 ) Change subject: log passed tests ...................................................................... log passed tests In the end of a test suite, do not omit the passed tests. For example, running handover against N BTS combinations, it was hard to summarize which BTS models actually succeeded, with only the failures listed. Besides the "FAIL" listings, now print something like this in the end: PASS: handover:sysmo+secondbts-trx-b200 (pass: 1) pass: handover.py (198.8 sec) PASS: handover:sysmo+secondbts-trx-umtrx (pass: 1) pass: handover.py (192.7 sec) PASS: handover:trx-b200+secondbts-trx-umtrx (pass: 1) pass: handover.py (193.1 sec) Change-Id: Ib85a5b90e267c2ed2f844691187ecadc8939b1bb --- M src/osmo_gsm_tester/core/report.py 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/09/21509/1 diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index d2c68c5..c3390fe 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -164,12 +164,14 @@ return testcase def trial_to_text(trial): + suite_passes = [] suite_failures = [] count_fail = 0 count_pass = 0 for suite in trial.suites: if suite.passed(): count_pass += 1 + suite_passes.append(suite_to_text(suite)) else: count_fail += 1 suite_failures.append(suite_to_text(suite)) @@ -181,6 +183,7 @@ summary.append('%d suites passed' % count_pass) msg = [', '.join(summary)] msg.extend(suite_failures) + msg.extend(suite_passes) return '\n'.join(msg) def suite_to_text(suite): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 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: Ib85a5b90e267c2ed2f844691187ecadc8939b1bb Gerrit-Change-Number: 21509 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 Dec 3 23:56:21 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:21 +0000 Subject: Change in osmo-gsm-tester[master]: log reserved resources References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 ) Change subject: log reserved resources ...................................................................... log reserved resources On non-debug log level, show something like this at the beginning of each suite: 03:45:49.439720 tst handover:sysmo+secondbts-trx-b200: RESERVED RESOURCES for handover: bts sysmoBTS 1002 Ettus B200 ip_address 10.42.42.2 10.42.42.3 10.42.42.4 10.42.42.5 10.42.42.6 10.42.42.7 modem sierra_1st sierra_2nd In the DBG log, show the full resources dicts. Change-Id: Ic23556eafee654c93d13c5ef405028da09bd51d7 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/resource.py M src/osmo_gsm_tester/core/suite.py 3 files changed, 308 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/10/21510/1 diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 150a4e9..a9c337b 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -145,6 +145,63 @@ label: m7802 path: /wavecom_1 tst test_suite: DBG: FileWatch: unscheduling watch +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 +tst test_suite: DBG: reserved resources for test_suite: +resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'max_power_red': '3', 'nominal_power': '10'}, + {'max_power_red': '0', 'nominal_power': '12'}], + 'type': 'osmo-bts-trx'}, + {'_hash': 'c2feabd082c36a1cdeccb9a5237dfff7dbadb009', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'nominal_power': '10'}, + {'max_power_red': '1', 'nominal_power': '12'}], + 'type': 'osmo-bts-trx'}, + {'_hash': '07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.114', + 'band': 'GSM-1800', + 'ipa_unit_id': '1', + 'label': 'sysmoBTS 1002', + 'type': 'sysmo'}], + 'ip_address': [{'_hash': 'cde1debf28f07f94f92c761b4b7c6bf35785ced4', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.1'}], + 'modem': [{'_hash': '19c69e45aa090fb511446bd00797690aa82ff52f', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007801', + 'ki': 'D620F48487B1B782DA55DF6717F08FF9', + 'label': 'm7801', + 'path': '/wavecom_0'}, + {'_hash': 'e1a46516a1fb493b2617ab14fc1693a9a45ec254', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007802', + 'ki': '47FDB2D55CE6A10A85ABDAD034A5B7B3', + 'label': 'm7802', + 'path': '/wavecom_1'}]} ---------------------------------------------- trial test_suite hello_world.py @@ -364,6 +421,63 @@ path: /wavecom_1 [resource.py:[LINENR]] tst test_suite: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 [suite.py:[LINENR]] +tst test_suite: DBG: reserved resources for test_suite: +resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'max_power_red': '3', 'nominal_power': '10'}, + {'max_power_red': '0', 'nominal_power': '12'}], + 'type': 'osmo-bts-trx'}, + {'_hash': 'c2feabd082c36a1cdeccb9a5237dfff7dbadb009', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'nominal_power': '10'}, + {'max_power_red': '1', 'nominal_power': '12'}], + 'type': 'osmo-bts-trx'}, + {'_hash': '07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.114', + 'band': 'GSM-1800', + 'ipa_unit_id': '1', + 'label': 'sysmoBTS 1002', + 'type': 'sysmo'}], + 'ip_address': [{'_hash': 'cde1debf28f07f94f92c761b4b7c6bf35785ced4', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.1'}], + 'modem': [{'_hash': '19c69e45aa090fb511446bd00797690aa82ff52f', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007801', + 'ki': 'D620F48487B1B782DA55DF6717F08FF9', + 'label': 'm7801', + 'path': '/wavecom_0'}, + {'_hash': 'e1a46516a1fb493b2617ab14fc1693a9a45ec254', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007802', + 'ki': '47FDB2D55CE6A10A85ABDAD034A5B7B3', + 'label': 'm7802', + 'path': '/wavecom_1'}]} [suite.py:[LINENR]] ---------------------------------------------- trial test_suite hello_world.py @@ -509,6 +623,63 @@ path: /wavecom_1 [resource.py:[LINENR]] tst test_suite: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 [suite.py:[LINENR]] +tst test_suite: DBG: reserved resources for test_suite: +resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'max_power_red': '3', 'nominal_power': '10'}, + {'max_power_red': '0', 'nominal_power': '12'}], + 'type': 'osmo-bts-trx'}, + {'_hash': 'c2feabd082c36a1cdeccb9a5237dfff7dbadb009', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'nominal_power': '10'}, + {'max_power_red': '1', 'nominal_power': '12'}], + 'type': 'osmo-bts-trx'}, + {'_hash': '07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.114', + 'band': 'GSM-1800', + 'ipa_unit_id': '1', + 'label': 'sysmoBTS 1002', + 'type': 'sysmo'}], + 'ip_address': [{'_hash': 'cde1debf28f07f94f92c761b4b7c6bf35785ced4', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.1'}], + 'modem': [{'_hash': '19c69e45aa090fb511446bd00797690aa82ff52f', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007801', + 'ki': 'D620F48487B1B782DA55DF6717F08FF9', + 'label': 'm7801', + 'path': '/wavecom_0'}, + {'_hash': 'e1a46516a1fb493b2617ab14fc1693a9a45ec254', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007802', + 'ki': '47FDB2D55CE6A10A85ABDAD034A5B7B3', + 'label': 'm7802', + 'path': '/wavecom_1'}]} [suite.py:[LINENR]] ---------------------------------------------- trial test_suite hello_world.py @@ -650,6 +821,63 @@ path: /wavecom_1 [resource.py:[LINENR]] tst test_suite: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 [suite.py:[LINENR]] +tst test_suite: DBG: reserved resources for test_suite: +resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'max_power_red': '3', 'nominal_power': '20'}, + {'max_power_red': '0', 'nominal_power': '20'}], + 'type': 'osmo-bts-trx'}, + {'_hash': 'c2feabd082c36a1cdeccb9a5237dfff7dbadb009', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'nominal_power': '20'}, + {'max_power_red': '1', 'nominal_power': '20'}], + 'type': 'osmo-bts-trx'}, + {'_hash': '07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.114', + 'band': 'GSM-1800', + 'ipa_unit_id': '1', + 'label': 'sysmoBTS 1002', + 'type': 'sysmo'}], + 'ip_address': [{'_hash': 'cde1debf28f07f94f92c761b4b7c6bf35785ced4', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.1'}], + 'modem': [{'_hash': '19c69e45aa090fb511446bd00797690aa82ff52f', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007801', + 'ki': 'D620F48487B1B782DA55DF6717F08FF9', + 'label': 'm7801', + 'path': '/wavecom_0'}, + {'_hash': 'e1a46516a1fb493b2617ab14fc1693a9a45ec254', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007802', + 'ki': '47FDB2D55CE6A10A85ABDAD034A5B7B3', + 'label': 'm7802', + 'path': '/wavecom_1'}]} [suite.py:[LINENR]] resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace', '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', 'addr': '10.42.42.53', @@ -841,6 +1069,63 @@ path: /wavecom_1 [resource.py:[LINENR]] tst test_suite: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 [suite.py:[LINENR]] +tst test_suite: DBG: reserved resources for test_suite: +resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'max_power_red': '3', 'nominal_power': '10'}, + {'max_power_red': '0', 'nominal_power': '12'}], + 'type': 'osmo-bts-trx'}, + {'_hash': 'c2feabd082c36a1cdeccb9a5237dfff7dbadb009', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.53', + 'band': 'GSM-1800', + 'ipa_unit_id': '7', + 'label': 'sysmoCell 5000', + 'osmo_trx': {'clock_reference': 'external', + 'launch_trx': 'False', + 'trx_ip': '10.42.42.112'}, + 'trx_list': [{'nominal_power': '10'}, + {'max_power_red': '1', 'nominal_power': '12'}], + 'type': 'osmo-bts-trx'}, + {'_hash': '07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.114', + 'band': 'GSM-1800', + 'ipa_unit_id': '1', + 'label': 'sysmoBTS 1002', + 'type': 'sysmo'}], + 'ip_address': [{'_hash': 'cde1debf28f07f94f92c761b4b7c6bf35785ced4', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.1'}], + 'modem': [{'_hash': '19c69e45aa090fb511446bd00797690aa82ff52f', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007801', + 'ki': 'D620F48487B1B782DA55DF6717F08FF9', + 'label': 'm7801', + 'path': '/wavecom_0'}, + {'_hash': 'e1a46516a1fb493b2617ab14fc1693a9a45ec254', + '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', + 'imsi': '901700000007802', + 'ki': '47FDB2D55CE6A10A85ABDAD034A5B7B3', + 'label': 'm7802', + 'path': '/wavecom_1'}]} [suite.py:[LINENR]] resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace', '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', 'addr': '10.42.42.53', @@ -944,6 +1229,13 @@ addr: 10.42.42.2 [resource.py:[LINENR]] tst suiteC: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst suiteC: RESERVED RESOURCES for suiteC: +ip_address + 10.42.42.2 [suite.py:[LINENR]] +tst suiteC: DBG: reserved resources for suiteC: +resources(suiteC)={'ip_address': [{'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c', + '_reserved_by': 'suiteC-[ID_NUM]-[ID_NUM]', + 'addr': '10.42.42.2'}]} [suite.py:[LINENR]] ---------------------------------------------- trial suiteC test_template_overlay.py diff --git a/src/osmo_gsm_tester/core/resource.py b/src/osmo_gsm_tester/core/resource.py index 621522b..223a8f9 100644 --- a/src/osmo_gsm_tester/core/resource.py +++ b/src/osmo_gsm_tester/core/resource.py @@ -485,6 +485,18 @@ def __repr__(self): return 'resources(%s)=%s' % (self.origin.name(), pprint.pformat(self.reserved)) + def __str__(self): + return repr(self) + + def summary_str(self, prefix=''): + lines = [] + for key, reserved_list in sorted(self.reserved.items()): + lines.append(key) + for item in reserved_list: + label = item.get('label') or item.get('addr') or item.get('type') or item.get('_hash') or '?' + lines.append(' ' + label) + return prefix + ('\n' + prefix).join(lines) + def get(self, kind, specifics=None): if specifics is None: specifics = {} diff --git a/src/osmo_gsm_tester/core/suite.py b/src/osmo_gsm_tester/core/suite.py index 3860d19..8f58836 100644 --- a/src/osmo_gsm_tester/core/suite.py +++ b/src/osmo_gsm_tester/core/suite.py @@ -160,6 +160,10 @@ raise RuntimeError('Attempt to reserve resources twice for a SuiteRun') self.log('reserving resources in', self.resources_pool.state_dir, '...') self.reserved_resources = self.resources_pool.reserve(self, self.resource_requirements(), self.resource_modifiers()) + # short summary of labels + self.log('RESERVED RESOURCES for ' + self.suite_name() + ':', '\n' + self.reserved_resources.summary_str()) + # also barf a detailed dict to debug log + self.dbg('reserved resources for ' + self.suite_name() + ':', '\n' + repr(self.reserved_resources)) def get_reserved_resource(self, resource_class_str, specifics): return self.reserved_resources.get(resource_class_str, specifics=specifics) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 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: Ic23556eafee654c93d13c5ef405028da09bd51d7 Gerrit-Change-Number: 21510 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 Dec 3 23:56:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:22 +0000 Subject: Change in osmo-gsm-tester[master]: configure fixed ARFCN per bts References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 ) Change subject: configure fixed ARFCN per bts ...................................................................... configure fixed ARFCN per bts Remove ARFCNs as a concept from resource pool, assign a fixed ARFCN to each BTS and TRX in the resource pools. Using ARFCNs on specific bands as resources was an idea that is hard to implement, because specific BTS dictate selection of bands which influences which ARFCNs can be picked. That means reserving ARFCN resources is only possible after reserving specific BTS resources, but the tester is currently not capable of such two-stage resolution. Writing handover tests, I got the problem that both BTS in a scenario attempt to use the same ARFCN. The by far easiest solution is to assign one fixed ARFCN to each BTS and TRX. If ever needed, a scenario modifier can still configure different ARFCNs. (Due to uncertainty about OC2G operation stability, I prefer to leave OC2G on ARFCN 50, as it happened to end up being configured before this patch.) Change-Id: I0a6c60544226f4261f9106013478d6a27fc39f38 --- M selftest/resource_test/conf/resources.conf M selftest/resource_test/resource_test.ok M selftest/resource_test/resource_test.py M selftest/suite_test/resources.conf M src/osmo_gsm_tester/core/schema.py M src/osmo_gsm_tester/obj/bts_nanobts.py M src/osmo_gsm_tester/obj/bts_oc2g.py M sysmocom/resources.conf.prod M sysmocom/resources.conf.rnd 9 files changed, 27 insertions(+), 177 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/11/21511/1 diff --git a/selftest/resource_test/conf/resources.conf b/selftest/resource_test/conf/resources.conf index 84d0ab9..71d8ee0 100644 --- a/selftest/resource_test/conf/resources.conf +++ b/selftest/resource_test/conf/resources.conf @@ -43,28 +43,6 @@ - 'a5_0' - 'a5_1' -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 - modem: - label: sierra_1 path: '/sierra_1' diff --git a/selftest/resource_test/resource_test.ok b/selftest/resource_test/resource_test.ok index 5f7d5f6..64cf39b 100644 --- a/selftest/resource_test/resource_test.ok +++ b/selftest/resource_test/resource_test.ok @@ -19,37 +19,7 @@ 'suites_dir': ['[PATH]/selftest/resource_test/conf/suite_test'], 'trial_dir': '[PATH]/selftest/resource_test/conf/trial'} *** all resources: -{'arfcn': [{'_hash': 'e620569450f8259b3f0212ec19c285dd07df063c', - 'arfcn': '512', - 'band': 'GSM-1800'}, - {'_hash': '022621e513c5a5bf33b77430a1e9c886be676fa1', - 'arfcn': '514', - 'band': 'GSM-1800'}, - {'_hash': '3199abf375a1dd899e554e9d63a552e06d7f38bf', - 'arfcn': '516', - 'band': 'GSM-1800'}, - {'_hash': '57aa7bd1da62495f2857ae6b859193dd592a0a02', - 'arfcn': '518', - 'band': 'GSM-1800'}, - {'_hash': '53dd2e2682b736f427abd2ce59a9a50ca8130678', - 'arfcn': '520', - 'band': 'GSM-1800'}, - {'_hash': '31687a5e6d5140a4b3877606ca5f18244f11d706', - 'arfcn': '540', - 'band': 'GSM-1900'}, - {'_hash': '1def43a5c88a83cdb21279eacab0679ea08ffaf3', - 'arfcn': '542', - 'band': 'GSM-1900'}, - {'_hash': '1d6e3b08a3861fd4d748f111295ec5a93ecd3d23', - 'arfcn': '544', - 'band': 'GSM-1900'}, - {'_hash': '8fb36927de15466fcdbee01f7f65704c312cb36c', - 'arfcn': '546', - 'band': 'GSM-1900'}, - {'_hash': 'dc9ce027a257da087f31a5bc1ee6b4abd2637369', - 'arfcn': '548', - 'band': 'GSM-1900'}], - 'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', +{'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', 'addr': '10.42.42.114', 'band': 'GSM-1800', 'ciphers': ['a5_0', 'a5_1'], @@ -116,13 +86,6 @@ *** end: all resources - request some resources ---- testowner: Verifying 2 x arfcn (candidates: 10) ---- testowner: DBG: Picked - _hash: e620569450f8259b3f0212ec19c285dd07df063c - arfcn: '512' - band: GSM-1800 -- _hash: 022621e513c5a5bf33b77430a1e9c886be676fa1 - arfcn: '514' - band: GSM-1800 --- testowner: Verifying 2 x bts (candidates: 3) --- testowner: DBG: Picked - _hash: d2aa7c1124943de352351b650ca0c751784da6b6 addr: 10.42.42.114 @@ -169,13 +132,6 @@ label: sierra_2 path: /sierra_2 --- testowner: DBG: FileWatch: scheduling watch for directory [PATH]/selftest/resource_test/conf/test_work/state_dir ---- testowner: Reserving 2 x arfcn (candidates: 10) ---- testowner: DBG: Picked - _hash: e620569450f8259b3f0212ec19c285dd07df063c - arfcn: '512' - band: GSM-1800 -- _hash: 022621e513c5a5bf33b77430a1e9c886be676fa1 - arfcn: '514' - band: GSM-1800 --- testowner: Reserving 2 x bts (candidates: 3) --- testowner: DBG: Picked - _hash: d2aa7c1124943de352351b650ca0c751784da6b6 addr: 10.42.42.114 @@ -223,15 +179,6 @@ path: /sierra_2 --- testowner: DBG: FileWatch: unscheduling watch ~~~ currently reserved: -arfcn: -- _hash: e620569450f8259b3f0212ec19c285dd07df063c - _reserved_by: testowner-123-1490837279 - arfcn: '512' - band: GSM-1800 -- _hash: 022621e513c5a5bf33b77430a1e9c886be676fa1 - _reserved_by: testowner-123-1490837279 - arfcn: '514' - band: GSM-1800 bts: - _hash: d2aa7c1124943de352351b650ca0c751784da6b6 _reserved_by: testowner-123-1490837279 @@ -286,15 +233,7 @@ ~~~ end: currently reserved ~~~ with modifiers: -resources(testowner)={'arfcn': [{'_hash': 'e620569450f8259b3f0212ec19c285dd07df063c', - '_reserved_by': 'testowner-123-1490837279', - 'arfcn': '512', - 'band': 'GSM-1800'}, - {'_hash': '022621e513c5a5bf33b77430a1e9c886be676fa1', - '_reserved_by': 'testowner-123-1490837279', - 'arfcn': '514', - 'band': 'GSM-1800'}], - 'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', +resources(testowner)={'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', '_reserved_by': 'testowner-123-1490837279', 'addr': '10.42.42.114', 'band': 'GSM-1800', @@ -345,24 +284,19 @@ 3rd subset should not match, pass 4th subset should not match, pass *** concurrent allocation: ---- testowner1: Verifying 2 x arfcn (candidates: 10) --- testowner1: Verifying 2 x bts (candidates: 3) --- testowner1: Verifying 1 x ip_address (candidates: 5) --- testowner1: Verifying 2 x modem (candidates: 4) ---- testowner1: Reserving 2 x arfcn (candidates: 10) --- testowner1: Reserving 2 x bts (candidates: 3) --- testowner1: Reserving 1 x ip_address (candidates: 5) --- testowner1: Reserving 2 x modem (candidates: 4) - 2nd instance reserve() start ---- testowner2: Verifying 2 x arfcn (candidates: 10) --- testowner2: Verifying 2 x bts (candidates: 3) --- testowner2: Verifying 1 x ip_address (candidates: 5) --- testowner2: Verifying 2 x modem (candidates: 4) ---- testowner2: Reserving 2 x arfcn (candidates: 8) --- testowner2: Reserving 2 x bts (candidates: 1) --- testowner2: Unable to reserve resources, too many currently reserved. Waiting until some are available again - 1st instance free() ---- testowner2: Reserving 2 x arfcn (candidates: 10) --- testowner2: Reserving 2 x bts (candidates: 3) --- testowner2: Reserving 1 x ip_address (candidates: 5) --- testowner2: Reserving 2 x modem (candidates: 4) diff --git a/selftest/resource_test/resource_test.py b/selftest/resource_test/resource_test.py index 13cce97..f793a42 100755 --- a/selftest/resource_test/resource_test.py +++ b/selftest/resource_test/resource_test.py @@ -81,7 +81,6 @@ want = { 'ip_address': [ { 'times': 1 } ], 'bts': [ { 'type': 'osmo-bts-sysmo', 'times': 1 , 'ciphers': ['a5_1']}, { 'type': 'osmo-bts-trx', 'times': 1 } ], - 'arfcn': [ { 'band': 'GSM-1800', 'times': 2 } ], 'modem': [ { 'times': 2 , 'ciphers': ['a5_0', 'a5_1']} ], } modifiers = { diff --git a/selftest/suite_test/resources.conf b/selftest/suite_test/resources.conf index bd121cb..ff6fc9e 100644 --- a/selftest/suite_test/resources.conf +++ b/selftest/suite_test/resources.conf @@ -70,29 +70,6 @@ - nominal_power: 12 max_power_red: 1 -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 - modem: - label: m7801 path: '/wavecom_0' diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py index d56d6ec..89c4494 100644 --- a/src/osmo_gsm_tester/core/schema.py +++ b/src/osmo_gsm_tester/core/schema.py @@ -375,12 +375,10 @@ util.run_python_file_method(module_name, 'on_register_schemas', False) -_RESOURCE_TYPES = ['ip_address', 'arfcn'] +_RESOURCE_TYPES = ['ip_address',] _RESOURCES_SCHEMA = { 'ip_address[].addr': IPV4, - 'arfcn[].arfcn': INT, - 'arfcn[].band': BAND, } _CONFIG_SCHEMA = {} diff --git a/src/osmo_gsm_tester/obj/bts_nanobts.py b/src/osmo_gsm_tester/obj/bts_nanobts.py index 03730a6..25efc7f 100644 --- a/src/osmo_gsm_tester/obj/bts_nanobts.py +++ b/src/osmo_gsm_tester/obj/bts_nanobts.py @@ -65,16 +65,6 @@ def conf_for_bsc(self): values = self.conf_for_bsc_prepare() - # Hack until we have proper ARFCN resource allocation support (OS#2230) - band = values.get('band') - trx_list = values.get('trx_list') - if band == 'GSM-1900': - for trx_i in range(len(trx_list)): - config.overlay(trx_list[trx_i], { 'arfcn' : str(531 + trx_i * 2) }) - elif band == 'GSM-900': - for trx_i in range(len(trx_list)): - config.overlay(trx_list[trx_i], { 'arfcn' : str(50 + trx_i * 2) }) - config.overlay(values, { 'osmobsc_bts_type': 'nanobts' }) self.dbg(conf=values) diff --git a/src/osmo_gsm_tester/obj/bts_oc2g.py b/src/osmo_gsm_tester/obj/bts_oc2g.py index 2d55637..7761ce3 100644 --- a/src/osmo_gsm_tester/obj/bts_oc2g.py +++ b/src/osmo_gsm_tester/obj/bts_oc2g.py @@ -78,12 +78,6 @@ def conf_for_bsc(self): values = self.conf_for_bsc_prepare() - # Hack until we have proper ARFCN resource allocation support (OS#2230) - band = values.get('band') - trx_list = values.get('trx_list') - if band == 'GSM-900': - for trx_i in range(len(trx_list)): - config.overlay(trx_list[trx_i], { 'arfcn' : str(50 + trx_i * 2) }) self.dbg(conf=values) return values diff --git a/sysmocom/resources.conf.prod b/sysmocom/resources.conf.prod index 01a03f1..a53d4ce 100644 --- a/sysmocom/resources.conf.prod +++ b/sysmocom/resources.conf.prod @@ -23,6 +23,8 @@ ipa_unit_id: 1 addr: 10.42.42.114 band: GSM-1800 + trx_list: + - arfcn: 868 direct_pcu: true ciphers: [a5_0, a5_1, a5_3] @@ -31,6 +33,8 @@ ipa_unit_id: 6 addr: 10.42.42.50 band: GSM-1800 + trx_list: + - arfcn: 870 ciphers: [a5_0, a5_1, a5_3] osmo_trx: type: uhd @@ -46,6 +50,8 @@ ipa_unit_id: 12 addr: 10.42.42.54 band: GSM-1800 + trx_list: + - arfcn: 872 ciphers: [a5_0, a5_1, a5_3] osmo_trx: type: uhd @@ -60,6 +66,8 @@ ipa_unit_id: 11 addr: 10.42.42.53 band: GSM-1800 + trx_list: + - arfcn: 874 ciphers: [a5_0, a5_1, a5_3] osmo_trx: type: lms @@ -76,6 +84,8 @@ ipa_unit_id: 15 addr: 10.42.42.53 band: GSM-1800 + trx_list: + - arfcn: 876 ciphers: [a5_0, a5_1] osmo_trx: type: lms @@ -96,6 +106,7 @@ type: 'intellinet' device: '10.42.42.250' port: '5' + arfcn: 878 osmo_trx: type: sc5 launch_trx: true @@ -111,6 +122,7 @@ trx_list: - hw_addr: 00:0c:90:2e:80:1e net_device: enp2s0 + arfcn: 880 - label: NanoBTS-ONW-1900 type: nanobts @@ -122,6 +134,7 @@ type: 'intellinet' device: '10.42.42.250' port: '1' + arfcn: 533 - label: NanoBTS-ONW-900 type: nanobts @@ -134,23 +147,29 @@ type: 'intellinet' device: '10.42.42.250' port: '2' + arfcn: 54 - addr: 10.42.42.122 power_supply: type: 'intellinet' device: '10.42.42.250' port: '3' + arfcn: 52 - label: OsmoBTS Virtual type: osmo-bts-virtual ipa_unit_id: 13 addr: 10.42.42.55 band: GSM-1800 + trx_list: + - arfcn: 882 - label: OC-2G type: osmo-bts-oc2g ipa_unit_id: 14 addr: 10.42.42.100 band: GSM-900 + trx_list: + - arfcn: 50 direct_pcu: true ciphers: [a5_0, a5_1, a5_3] @@ -175,28 +194,6 @@ ssh_user: jenkins ssh_addr: 10.42.42.117 -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 - modem: - label: sierra_1st path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.2/1-5.2.2' diff --git a/sysmocom/resources.conf.rnd b/sysmocom/resources.conf.rnd index 4ce39d1..d9a6720 100644 --- a/sysmocom/resources.conf.rnd +++ b/sysmocom/resources.conf.rnd @@ -19,6 +19,8 @@ band: GSM-1800 direct_pcu: true ciphers: [a5_0, a5_1, a5_3] + trx_list: + - arfcn: 868 - label: Ettus B200 type: osmo-bts-trx @@ -34,6 +36,8 @@ trx_ip: 127.0.0.1 dev_args: "type=b200,serial=30A9FFB" ciphers: [a5_0, a5_1, a5_3] + trx_list: + - arfcn: 870 - label: NanoBTS-ONW-1900 type: nanobts @@ -45,28 +49,7 @@ type: 'sispm' device: '01:01:55:2e:b6' port: '1' - -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 + arfcn: 533 modem: - label: sierra_1st -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 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: I0a6c60544226f4261f9106013478d6a27fc39f38 Gerrit-Change-Number: 21511 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 Dec 3 23:56:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:22 +0000 Subject: Change in osmo-gsm-tester[master]: process: add get_output_mark() and grep_output() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 ) Change subject: process: add get_output_mark() and grep_output() ...................................................................... process: add get_output_mark() and grep_output() Allow showing log lines matching specific regexes, from a specific start point of a log. My use case is to echo the handover related logging after an expected handover failed, so that the reason is visible already in the console output of a jenkins run. So far I would need to open the endless bsc log and look up the matching place in it to get a conclusion about why a handover failed. Change-Id: Ib6569f7486e9d961bd79a5f24232e58d053667a1 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 46 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/12/21512/1 diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 0b96f2e..7e8641a 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -23,6 +23,7 @@ import signal from abc import ABCMeta, abstractmethod from datetime import datetime +import re from . import log from .event_loop import MainLoop @@ -320,12 +321,23 @@ self.poll() return self.process_obj is not None and self.result is None - def get_output(self, which): + @staticmethod + def end_ansi_colors(txt): + '''Make sure no ANSI colors leak out of logging output''' + color_off = '\033[0;m' + color_any = '\033[' + if txt.rfind(color_any) > txt.rfind(color_off): + return txt + color_off + return txt + + def get_output(self, which, since_mark=0): ''' Read process output ''' path = self.get_output_file(which) if path is None: return None with open(path, 'r') as f2: + if since_mark > 0: + f2.seek(since_mark) return f2.read() def get_output_file(self, which): @@ -344,11 +356,40 @@ tail = min(len(out), tail) return prefix + ('\n' + prefix).join(out[-tail:]) - def get_stdout(self): - return self.get_output('stdout') + def get_output_mark(self, which): + out = self.get_output(which) + if not out: + return None + return len(out) - def get_stderr(self): - return self.get_output('stderr') + def grep_output(self, which, regex, since_mark=0, line_nrs=False): + lines = self.get_output(which, since_mark=since_mark).splitlines() + if not lines: + return None + matches = [] + r = re.compile(regex) + line_nr = since_mark + for line in lines: + line_nr += 1 + if r.search(line): + line = self.end_ansi_colors(line) + if line_nrs: + matches.append((line_nr, line)) + else: + matches.append(line) + return matches + + def get_stdout(self, since_mark=0): + return self.get_output('stdout', since_mark=since_mark) + + def get_stderr(self, since_mark=0): + return self.get_output('stderr', since_mark=since_mark) + + def get_stdout_mark(self): + return self.get_output_mark('stdout') + + def get_stderr_mark(self): + return self.get_output_mark('stderr') def get_stdout_tail(self, tail=10, prefix=''): return self.get_output_tail('stdout', tail, prefix) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 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: Ib6569f7486e9d961bd79a5f24232e58d053667a1 Gerrit-Change-Number: 21512 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 Dec 3 23:56:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:23 +0000 Subject: Change in osmo-gsm-tester[master]: do not redirect_stdout in test scripts References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21513 ) Change subject: do not redirect_stdout in test scripts ...................................................................... do not redirect_stdout in test scripts In a test, I called print() on a multi-line string and saw the log showing each line 0.2 seconds apart. redirect.stdout seems to be pretty inefficient. Instead, put a print() function into the testenv, to directly call log() on the strings passed to print(). The initial idea for redirect_stdout was that we could print() in any deeper functions called from a test script. But we have no such nested print() anywhere, only in test scripts themselves. Change-Id: I0972c66b9165bd7f2b0b387e0335172849199193 --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 3 files changed, 8 insertions(+), 38 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/13/21513/1 diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index b8182f5..81b430c 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -460,9 +460,6 @@ def _set_log_category(self, category): self._log_category = category - def redirect_stdout(self): - return contextlib.redirect_stdout(SafeRedirectStdout(self)) - def ancestry(self): origins = [] n = 10 @@ -495,37 +492,6 @@ '''same as log.err() but passes this object to skip looking up an origin''' err(*messages, _origin=self, _src=_src, **named_items) -class SafeRedirectStdout: - ''' - To be able to use 'print' in test scripts, this is used to redirect stdout - to a test class' log() function. However, it turns out doing that breaks - python debugger sessions -- it uses extended features of stdout, and will - fail dismally if it finds this wrapper in sys.stdout. Luckily, overriding - __getattr__() to return the original sys.__stdout__ attributes for anything - else than write() makes the debugger session work nicely again! - ''' - _log_line_buf = None - - def __init__(self, origin): - self.origin = origin - - def write(self, message): - lines = message.splitlines() - if not lines: - return - if self._log_line_buf: - lines[0] = self._log_line_buf + lines[0] - self._log_line_buf = None - if not message.endswith('\n'): - self._log_line_buf = lines[-1] - lines = lines[:-1] - for line in lines: - _log(messages=(line,), - origin=self.origin, level=L_LOG, src=2) - - def __getattr__(self, name): - return sys.__stdout__.__getattribute__(name) - def trace(exc_info=None, origin=None): if exc_info is None: exc_info = sys.exc_info() diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index fd3ac04..9b899e2 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -71,9 +71,8 @@ self.status = Test.UNKNOWN self.start_timestamp = time.time() testenv_obj = testenv.setup(self.suite_run, self) - with self.redirect_stdout(): - util.run_python_file('%s.%s' % (self.suite_run.definition.name(), self.basename), - self.path) + util.run_python_file('%s.%s' % (self.suite_run.definition.name(), self.basename), + self.path) if self.status == Test.UNKNOWN: self.set_pass() except Exception as e: diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index a74891d..651183c 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -43,6 +43,7 @@ Sms = None process = None tenv = None +print = None class Timeout(Exception): pass @@ -349,12 +350,15 @@ self.log('using BVCI', bvci) return bvci + def print(self, *messages, **named_items): + self.log(*messages, **named_items) + def setup(suite_run, _test): from .core.event_loop import MainLoop from .obj.sms import Sms as Sms_class - global test, log, dbg, err, wait, wait_no_raise, sleep, poll, prompt, Sms, process, tenv + global test, log, dbg, err, wait, wait_no_raise, sleep, poll, prompt, Sms, process, tenv, print test = _test log = test.log @@ -368,6 +372,7 @@ Sms = Sms_class process = process_module prompt = tenv.prompt + print = tenv.print return tenv # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21513 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: I0972c66b9165bd7f2b0b387e0335172849199193 Gerrit-Change-Number: 21513 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 Dec 3 23:56:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:23 +0000 Subject: Change in osmo-gsm-tester[master]: log: process.py: fix weird space in stdout/stderr log output References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21514 ) Change subject: log: process.py: fix weird space in stdout/stderr log output ...................................................................... log: process.py: fix weird space in stdout/stderr log output Log output before: stdout: | line1 | line2 | line3 After: stdout: | line1 | line2 | line3 Change-Id: I4202e7dfbb550acaf55a6c6487fc07819ab18b94 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/14/21514/1 diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 7e8641a..0f58c7e 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -291,13 +291,13 @@ m = self.get_stdout_tail(prefix='| ') if not m: return - self.log('stdout:\n', m, '\n') + self.log('stdout:', '\n' + m, '\n') def log_stderr_tail(self): m = self.get_stderr_tail(prefix='| ') if not m: return - self.log('stderr:\n', m, '\n') + self.log('stderr:', '\n' + m, '\n') def close_output_logs(self): for k, v in self.outputs.items(): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21514 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: I4202e7dfbb550acaf55a6c6487fc07819ab18b94 Gerrit-Change-Number: 21514 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 Dec 3 23:56:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:23 +0000 Subject: Change in osmo-gsm-tester[master]: implement test.get_log_output() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21515 ) Change subject: implement test.get_log_output() ...................................................................... implement test.get_log_output() Retrieve a test's own logging. The aim is to provide logging belonging to a given report fragment in the junit XML output, will be used by upcoming test.report_fragment() feature. Change-Id: Idfa0a45f3e6a18dd4fe692e81d732c70b5cffb76 --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py 2 files changed, 42 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/15/21515/1 diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index 81b430c..e58ab96 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -265,6 +265,15 @@ lines.insert(0, '') self.log_write_func('\n'.join(lines)) + def get_mark(self): + # implemented in FileLogTarget + return 0 + + def get_output(self, since_mark=0): + # implemented in FileLogTarget + return '' + + def level_str(level): if level == L_TRACEBACK: return L_TRACEBACK @@ -564,6 +573,21 @@ def log_file_path(self): return self.path + def get_mark(self): + if self.path is None: + return 0 + # return current file length + with open(self.path, 'r') as logfile: + return logfile.seek(0, 2) + + def get_output(self, since_mark=0): + if self.path is None: + return '' + with open(self.path, 'r') as logfile: + if since_mark: + logfile.seek(since_mark) + return logfile.read() + def run_logging_exceptions(func, *func_args, return_on_failure=None, **func_kwargs): try: return func(*func_args, **func_kwargs) diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 9b899e2..adfc444 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -165,4 +165,22 @@ else: return 'test log file not available' + def log_file(self): + for lt in self.log_targets: + if isinstance(lt, FileLogTarget): + return lt + return None + + def get_log_mark(self): + lt = self.log_file() + if lt is None: + return 0 + return lt.get_mark() + + def get_log_output(self, since_mark=0): + lt = self.log_file() + if lt is None: + return '' + return lt.get_output(since_mark) + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21515 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: Idfa0a45f3e6a18dd4fe692e81d732c70b5cffb76 Gerrit-Change-Number: 21515 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 Dec 3 23:56:24 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:24 +0000 Subject: Change in osmo-gsm-tester[master]: add test.report_fragment() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 ) Change subject: add test.report_fragment() ...................................................................... add test.report_fragment() Allow enriching the junit output with arbitrary subtasks within a test. The current aim is, for handover tests, to not just show that a test failed, but to show exactly which steps worked and which didn't, e.g.: handover.py__01_bts0_started PASSED handover.py__02.1_ms0_attach PASSED handover.py__02.2_ms1_attach PASSED handover.py__02.3_subscribed_in_msc PASSED handover.py__03_call_established PASSED handover.py__04.1_bts1_started FAILED In this case it is immediately obvious from looking at the jenkins results analyzer that bts1 is the cause of the test failure, and it is visible which parts of the test are flaky, over time. First user Will be the upcoming handover_2G suite, in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 --- M selftest/suite_test/suite_test.ok.ign M selftest/suite_test/suite_test.py A selftest/suite_test/suitedirA/test_suite/test_report_fragment.py M src/osmo_gsm_tester/core/report.py M src/osmo_gsm_tester/core/test.py 5 files changed, 102 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/16/21516/1 diff --git a/selftest/suite_test/suite_test.ok.ign b/selftest/suite_test/suite_test.ok.ign index 460da92..7fb57c6 100644 --- a/selftest/suite_test/suite_test.ok.ign +++ b/selftest/suite_test/suite_test.ok.ign @@ -4,3 +4,8 @@ {combining_scenarios='resources', scenario='foo'}:.* {combining_scenarios='resources', scenario='foo'}: [RESOURCE_DICT] test_suite-[0-9]*-[0-9]* test_suite-[ID_NUM]-[ID_NUM] suiteC-[0-9]*-[0-9]* suiteC-[ID_NUM]-[ID_NUM] +line [0-9]+ line [LINENR] +[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9]+ [TIMESTAMP] +time="[0-9]+" time="[VAL]" + File "[^"]*" File "[FILE]" +timestamp="[^"]+" timestamp="[TIMESTAMP]" diff --git a/selftest/suite_test/suite_test.py b/selftest/suite_test/suite_test.py index 9708037..75eb712 100755 --- a/selftest/suite_test/suite_test.py +++ b/selftest/suite_test/suite_test.py @@ -11,6 +11,8 @@ from osmo_gsm_tester.core import suite from osmo_gsm_tester.core.schema import generate_schemas, get_all_schema +import xml.etree.ElementTree as et + config.override_conf = os.path.join(os.path.dirname(sys.argv[0]), 'paths.conf') example_trial_dir = os.path.join('test_trial_tmp') @@ -51,6 +53,11 @@ results = s.run_tests('hello_world.py') print(report.suite_to_text(s)) +print('- run report fragment test') +results = s.run_tests('test_report_fragment.py') +print(report.suite_to_text(s)) +print('\njunit XML:\n' + et.tostring(report.suite_to_junit(s)).decode('utf-8') + '\n\n') + log.style_change(src=True) #log.style_change(trace=True) print('\n- a test with an error') diff --git a/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py b/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py new file mode 100644 index 0000000..06ff37d --- /dev/null +++ b/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py @@ -0,0 +1,11 @@ +from osmo_gsm_tester.testenv import * + +with test.report_fragment('fragment1'): + print('a step in the first fragment') + +with test.report_fragment('fragment2'): + print('a step in the second fragment') + +with test.report_fragment('fragment3'): + print('a step in the third fragment') + raise Exception('failure in the third fragment') diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index c3390fe..35327ce 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -132,14 +132,37 @@ testsuite.set('time', str(math.ceil(suite.duration))) testsuite.set('tests', str(len(suite.tests))) passed, skipped, failed, errors = suite.count_test_results() - testsuite.set('errors', str(errors)) - testsuite.set('failures', str(failed)) - testsuite.set('skipped', str(skipped)) - testsuite.set('disabled', str(skipped)) for suite_test in suite.tests: testcase = test_to_junit(suite_test) testcase.set('classname', suite.name()) testsuite.append(testcase) + + for report_fragment in suite_test.report_fragments: + full_name = '%s__%s' % (suite_test.name(), report_fragment.name) + el = et.Element('testcase') + el.set('name', full_name) + el.set('time', str(math.ceil(report_fragment.duration))) + if report_fragment.result == test.Test.SKIP: + et.SubElement(el, 'skipped') + skipped += 1 + elif report_fragment.result == test.Test.FAIL: + failure = et.SubElement(el, 'failure') + failure.set('type', suite_test.fail_type or 'failure') + failed += 1 + elif report_fragment.result != test.Test.PASS: + error = et.SubElement(el, 'error') + error.text = 'could not run' + errors += 1 + + if report_fragment.output: + sout = et.SubElement(el, 'system-out') + sout.text = escape_xml_invalid_characters(report_fragment.output) + testsuite.append(el) + + testsuite.set('errors', str(errors)) + testsuite.set('failures', str(failed)) + testsuite.set('skipped', str(skipped)) + testsuite.set('disabled', str(skipped)) return testsuite def test_to_junit(t): diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index adfc444..3847e48 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -43,6 +43,7 @@ self._config_test_specific = config_test_specific self.path = os.path.join(self.suite_run.definition.suite_dir, self.basename) self.status = Test.UNKNOWN + self.report_fragments = [] self.start_timestamp = 0 self.duration = 0 self.fail_type = None @@ -167,7 +168,7 @@ def log_file(self): for lt in self.log_targets: - if isinstance(lt, FileLogTarget): + if isinstance(lt, log.FileLogTarget): return lt return None @@ -183,4 +184,54 @@ return '' return lt.get_output(since_mark) + def report_fragment(self, name, result=None, **kwargs): + return Test.ReportFragment(parent_test=self, name=name, result=result, **kwargs) + + class ReportFragment: + '''Add additional test results in junit XML. + Convenient method that includes a test log: + with test.report_fragment('foo'): + do_test_steps() + + Or manually add a report fragment directly: + test.report_fragment('foo', result = test.PASS if worked else test.FAIL) + ''' + + def __init__(self, parent_test, name, result=None, output=None, since_mark=None, start_time=0.0): + self.parent_test = parent_test + self.name = name + self.result = Test.UNKNOWN + self.duration = 0.0 + self.output = output + self.start_time = start_time + self.log_mark = since_mark + assert name not in (x.name for x in self.parent_test.report_fragments) + self.parent_test.report_fragments.append(self) + if result is not None: + self.got_result(result) + + def __str__(self): + return '%s %s: %s (%.1fs)' % (self.parent_test.name(), self.name, self.result, self.duration) + + def __enter__(self): + self.start_time = self.parent_test.elapsed_time() + self.log_mark = self.parent_test.get_log_mark() + + def __exit__(self, *exc_info): + self.got_result(self.parent_test.PASS if exc_info[0] is None else self.parent_test.FAIL, + exc_info=exc_info) + + def got_result(self, result, exc_info=None): + self.result = result + self.duration = self.parent_test.elapsed_time() - self.start_time + if self.log_mark is not None and self.output is None: + self.output = self.parent_test.get_log_output(since_mark=self.log_mark) + if exc_info is not None and exc_info[0] is not None: + o = [] + if self.output: + o.append(self.output) + o.extend(traceback.format_exception(*exc_info)) + self.output = '\n'.join(o) + self.parent_test.log('----- Report fragment:', self) + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 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: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 Gerrit-Change-Number: 21516 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 Dec 3 23:56:24 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:24 +0000 Subject: Change in osmo-gsm-tester[master]: report fragment: strip ansi colors from junit XML References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21517 ) Change subject: report fragment: strip ansi colors from junit XML ...................................................................... report fragment: strip ansi colors from junit XML Jenkins does support showing ANSI colors on the web, but apparently not in the junit results output. Strip ansi colors from report fragment text, to make it less annoying to read those on jenkins. Change-Id: I656ecc23bbfd3f25bdf012c890e0c998168844d3 --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/report.py 2 files changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/17/21517/1 diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index e58ab96..932fbbf 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -23,6 +23,7 @@ import traceback import contextlib import atexit +import re from datetime import datetime # we need this for strftime as the one from time doesn't carry microsecond info from inspect import getframeinfo, stack diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index 35327ce..a56d4b3 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -41,11 +41,15 @@ invalid_xml_char_ranges_str = ['%s-%s' % (chr(low), chr(high)) for (low, high) in invalid_xml_char_ranges] invalid_xml_char_ranges_regex = re.compile('[%s]' % ''.join(invalid_xml_char_ranges_str)) +ansi_color_re = re.compile('\033[0-9;]{1,4}m') def escape_xml_invalid_characters(str): replacement_char = '\uFFFD' # Unicode replacement character return invalid_xml_char_ranges_regex.sub(replacement_char, escape(str)) +def strip_ansi_colors(text): + return ''.join(ansi_color_re.split(text)) + def hash_info_to_junit(testsuite, hash_info): properties = et.SubElement(testsuite, 'properties') for key, val in hash_info.items(): @@ -156,7 +160,7 @@ if report_fragment.output: sout = et.SubElement(el, 'system-out') - sout.text = escape_xml_invalid_characters(report_fragment.output) + sout.text = escape_xml_invalid_characters(strip_ansi_colors(report_fragment.output)) testsuite.append(el) testsuite.set('errors', str(errors)) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21517 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: I656ecc23bbfd3f25bdf012c890e0c998168844d3 Gerrit-Change-Number: 21517 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 Dec 3 23:56:24 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:24 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: set socket timeout References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21518 ) Change subject: ctrl: set socket timeout ...................................................................... ctrl: set socket timeout The blocking CTRL socket must have a timeout. So far we have always been reading from the CTRL socket in a blocking way. So far we are always lucky that we are indeed getting a response to receive. Should the CTRL interface ever fail to answer, the tester would be stuck infinitely. Change-Id: I20091daf13981dc3d0d894af5a65c23f4db0471d --- M src/osmo_gsm_tester/obj/osmo_ctrl.py 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/18/21518/1 diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index 312e1e9..891cc48 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -55,6 +55,7 @@ self.sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sck.connect((self.host, self.port)) self.sck.setblocking(1) + self.sck.settimeout(10) def disconnect(self): self.dbg('Disconnecting') -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21518 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: I20091daf13981dc3d0d894af5a65c23f4db0471d Gerrit-Change-Number: 21518 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 Dec 3 23:56:25 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:25 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: increment message IDs for CTRL commands References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21519 ) Change subject: ctrl: increment message IDs for CTRL commands ...................................................................... ctrl: increment message IDs for CTRL commands Implicitly use distinct IDs for CTRL commands. This is a prerequisite for matching GET_REPLY IDs to GET IDs, to correctly handle CTRL responses without counting on being lucky. Rather use 'use_id' as var name instead of overloading the 'id' keyword. Change-Id: I698faa013eb14f88759685d50d925f5d82d80aa0 --- M src/osmo_gsm_tester/obj/osmo_ctrl.py 1 file changed, 16 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/19/21519/1 diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index 891cc48..c2dd7e3 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -33,6 +33,12 @@ self.host = host self.port = port self.sck = None + self._next_id = 0 + + def next_id(self): + ret = self._next_id + self._next_id += 1 + return ret def prefix_ipa_ctrl_header(self, data): if isinstance(data, str): @@ -72,13 +78,19 @@ self.dbg('Receiving', data=data) return data - def do_set(self, var, value, id=0): - setmsg = "SET %s %s %s" %(id, var, value) + def do_set(self, var, value, use_id=None): + if use_id is None: + use_id = self.next_id() + setmsg = "SET %s %s %s" %(use_id, var, value) self._send(setmsg) + return use_id - def do_get(self, var, id=0): - getmsg = "GET %s %s" %(id, var) + def do_get(self, var, use_id=None): + if use_id is None: + use_id = self.next_id() + getmsg = "GET %s %s" %(use_id, var) self._send(getmsg) + return use_id def __enter__(self): self.connect() -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21519 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: I698faa013eb14f88759685d50d925f5d82d80aa0 Gerrit-Change-Number: 21519 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 Dec 3 23:56:25 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:25 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: add get_var() to properly GET and read a GET_REPLY References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21520 ) Change subject: ctrl: add get_var() to properly GET and read a GET_REPLY ...................................................................... ctrl: add get_var() to properly GET and read a GET_REPLY So far all GET interaction worked more incidentally than correctly. Properly match a GET_REPLY to a sent GET by the message ID. Change-Id: I75ec2494412e9b36b665ee6e45bd9f8fcdd27be6 --- M src/osmo_gsm_tester/obj/osmo_ctrl.py 1 file changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/20/21520/1 diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index c2dd7e3..43191df 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -92,6 +92,26 @@ self._send(getmsg) return use_id + def get_var(self, var): + used_id = self.do_get(var) + reply_header = 'GET_REPLY %d %s ' % (used_id, var) + error_header = 'ERROR %d ' % (used_id) + for i in range(10): + data = self.receive() + while len(data) > 0: + msg, data = self.remove_ipa_ctrl_header(data) + msg_str = msg.decode('utf-8') + if msg_str.startswith(error_header): + raise CtrlInterfaceExn('GET on %s returned %r' % (var, msg_str)) + if msg_str.startswith(reply_header): + answer_str = msg_str[len(reply_header):] + #self.dbg('%s = %r' % (var, answer_str)) + return answer_str + raise CtrlInterfaceExn('No answer found: ' + reply_header) + + def get_int_var(self, var): + return int(self.get_var(var)) + def __enter__(self): self.connect() return self -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21520 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: I75ec2494412e9b36b665ee6e45bd9f8fcdd27be6 Gerrit-Change-Number: 21520 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 Dec 3 23:56:26 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:26 +0000 Subject: Change in osmo-gsm-tester[master]: use ctrl.get_var() instead of do_get() with code dup References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21521 ) Change subject: use ctrl.get_var() instead of do_get() with code dup ...................................................................... use ctrl.get_var() instead of do_get() with code dup Change-Id: I8dd6140787c6e84dff0882a1c9d5be4bdd3bbc43 --- M src/osmo_gsm_tester/obj/bsc_osmo.py M src/osmo_gsm_tester/obj/msc_osmo.py M src/osmo_gsm_tester/obj/nitb_osmo.py 3 files changed, 8 insertions(+), 46 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/21/21521/1 diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index 636514e..62026e6 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -206,7 +206,6 @@ class OsmoBscCtrl(log.Origin): PORT = 4249 BTS_OML_STATE_VAR = "bts.%d.oml-connection-state" - BTS_OML_STATE_RE = re.compile("GET_REPLY (\d+) bts.\d+.oml-connection-state (?P\w+)") def __init__(self, bsc): self.bsc = bsc @@ -217,17 +216,9 @@ def bts_is_connected(self, bts_num): with self.ctrl() as ctrl: - ctrl.do_get(OsmoBscCtrl.BTS_OML_STATE_VAR % bts_num) - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - res = OsmoBscCtrl.BTS_OML_STATE_RE.match(answer_str) - if res: - oml_state = str(res.group('oml_state')) - if oml_state == 'connected': - return True + oml_state = ctrl.get_var(OsmoBscCtrl.BTS_OML_STATE_VAR % bts_num) + if oml_state == 'connected': + return True return False class OsmoBscVty(log.Origin): diff --git a/src/osmo_gsm_tester/obj/msc_osmo.py b/src/osmo_gsm_tester/obj/msc_osmo.py index 67e1d31..726d1ff 100644 --- a/src/osmo_gsm_tester/obj/msc_osmo.py +++ b/src/osmo_gsm_tester/obj/msc_osmo.py @@ -169,17 +169,7 @@ return osmo_ctrl.OsmoCtrl(self.msc.addr(), self.PORT) def subscriber_list_active(self): - aslist_str = "" with self.ctrl() as ctrl: - ctrl.do_get(self.SUBSCR_LIST_ACTIVE_VAR) - # This is legacy code from the old osmo-gsm-tester. - # looks like this doesn't work for long data. - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - aslist_str = answer_str - return aslist_str + return ctrl.get_var(self.SUBSCR_LIST_ACTIVE_VAR).replace('\n', ' ') # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/nitb_osmo.py b/src/osmo_gsm_tester/obj/nitb_osmo.py index a424927..e35a0f4 100644 --- a/src/osmo_gsm_tester/obj/nitb_osmo.py +++ b/src/osmo_gsm_tester/obj/nitb_osmo.py @@ -166,7 +166,6 @@ SUBSCR_DELETE_REPLY_RE = re.compile("SET_REPLY (\d+) %s Removed" % SUBSCR_DELETE_VAR) SUBSCR_LIST_ACTIVE_VAR = 'subscriber-list-active-v1' BTS_OML_STATE_VAR = "bts.%d.oml-connection-state" - BTS_OML_STATE_RE = re.compile("GET_REPLY (\d+) bts.\d+.oml-connection-state (?P\w+)") def __init__(self, nitb): self.nitb = nitb @@ -203,32 +202,14 @@ self.dbg('Deleted subscriber', imsi=imsi) def subscriber_list_active(self): - aslist_str = "" with self.ctrl() as ctrl: - ctrl.do_get(OsmoNitbCtrl.SUBSCR_LIST_ACTIVE_VAR) - # This is legacy code from the old osmo-gsm-tester. - # looks like this doesn't work for long data. - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - aslist_str = answer_str - return aslist_str + return ctrl.get_var(OsmoNitbCtrl.SUBSCR_LIST_ACTIVE_VAR).replace('\n', ' ') def bts_is_connected(self, bts_num): with self.ctrl() as ctrl: - ctrl.do_get(OsmoNitbCtrl.BTS_OML_STATE_VAR % bts_num) - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - res = OsmoNitbCtrl.BTS_OML_STATE_RE.match(answer_str) - if res: - oml_state = str(res.group('oml_state')) - if oml_state == 'connected': - return True + oml_state = ctrl.get_var(OsmoNitbCtrl.BTS_OML_STATE_VAR % bts_num) + if oml_state == 'connected': + return True return False # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21521 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: I8dd6140787c6e84dff0882a1c9d5be4bdd3bbc43 Gerrit-Change-Number: 21521 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 Dec 3 23:56:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:27 +0000 Subject: Change in osmo-gsm-tester[master]: osmo_ctrl.py: add RateCounters References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21522 ) Change subject: osmo_ctrl.py: add RateCounters ...................................................................... osmo_ctrl.py: add RateCounters First user will be the upcoming handover_2G/handover.py test in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: Id799b3bb81eb9c04d13c26ff611e40363920300e --- A selftest/rate_ctrs_test/_prep.py A selftest/rate_ctrs_test/rate_ctrs_test.err A selftest/rate_ctrs_test/rate_ctrs_test.ok A selftest/rate_ctrs_test/rate_ctrs_test.py M src/osmo_gsm_tester/obj/osmo_ctrl.py 5 files changed, 455 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/22/21522/1 diff --git a/selftest/rate_ctrs_test/_prep.py b/selftest/rate_ctrs_test/_prep.py new file mode 100644 index 0000000..773f190 --- /dev/null +++ b/selftest/rate_ctrs_test/_prep.py @@ -0,0 +1,16 @@ +import sys, os + +script_dir = sys.path[0] +top_dir = os.path.join(script_dir, '..', '..') +src_dir = os.path.join(top_dir, 'src') + +# to find the osmo_gsm_tester py module +sys.path.append(src_dir) + +from osmo_gsm_tester.core import log + +log.TestsTarget() +log.set_all_levels(log.L_DBG) + +if '-v' in sys.argv: + log.style_change(trace=True) diff --git a/selftest/rate_ctrs_test/rate_ctrs_test.err b/selftest/rate_ctrs_test/rate_ctrs_test.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/selftest/rate_ctrs_test/rate_ctrs_test.err diff --git a/selftest/rate_ctrs_test/rate_ctrs_test.ok b/selftest/rate_ctrs_test/rate_ctrs_test.ok new file mode 100644 index 0000000..489f58f --- /dev/null +++ b/selftest/rate_ctrs_test/rate_ctrs_test.ok @@ -0,0 +1,155 @@ +- empty RateCounters() +| +- initialized RateCounters, single var +| rate_ctr.abs.inst.0.var = 0 +- incremented inst.var +| rate_ctr.abs.inst.0.var = 1 +- incremented inst.var again +| rate_ctr.abs.inst.0.var = 2 +- incremented inst.var by 5 +| rate_ctr.abs.inst.0.var = 7 +- initialized RateCounters, two vars +| rate_ctr.abs.inst.0.foo = 0 +| rate_ctr.abs.inst.0.var = 0 +- incremented foo and var +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 1 +- incremented var again +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 2 +- incremented foo by 5 +| rate_ctr.abs.inst.0.foo = 6 +| rate_ctr.abs.inst.0.var = 2 +- initialized RateCounters, two vars, three instances +| rate_ctr.abs.inst.0.foo = 0 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 0 +| rate_ctr.abs.inst.1.var = 0 +| rate_ctr.abs.inst.2.foo = 0 +| rate_ctr.abs.inst.2.var = 0 +- incremented foo and var on separate instances +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 0 +| rate_ctr.abs.inst.1.var = 1 +| rate_ctr.abs.inst.2.foo = 0 +| rate_ctr.abs.inst.2.var = 0 +- incremented var on instance 2 +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 0 +| rate_ctr.abs.inst.1.var = 1 +| rate_ctr.abs.inst.2.foo = 0 +| rate_ctr.abs.inst.2.var = 1 +- incremented foo by 5 on instances 1,2 +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 5 +| rate_ctr.abs.inst.1.var = 1 +| rate_ctr.abs.inst.2.foo = 5 +| rate_ctr.abs.inst.2.var = 1 +- copy +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 5 +| rate_ctr.abs.inst.1.var = 1 +| rate_ctr.abs.inst.2.foo = 5 +| rate_ctr.abs.inst.2.var = 1 +- increment two vars by 100 on all three instances +| rate_ctr.abs.inst.0.foo = 101 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +- subtract original copy +| rate_ctr.abs.inst.0.foo = 100 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 100 +| rate_ctr.abs.inst.1.var = 100 +| rate_ctr.abs.inst.2.foo = 100 +| rate_ctr.abs.inst.2.var = 100 +- add original copy +| rate_ctr.abs.inst.0.foo = 101 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +- increment types per_hour, per_day by 23 +| rate_ctr.abs.inst.0.foo = 101 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +| rate_ctr.per_day.inst.0.foo = 23 +| rate_ctr.per_day.inst.0.moo = 23 +| rate_ctr.per_day.inst.0.var = 23 +| rate_ctr.per_day.inst.1.foo = 23 +| rate_ctr.per_day.inst.1.moo = 23 +| rate_ctr.per_day.inst.1.var = 23 +| rate_ctr.per_day.inst.2.foo = 23 +| rate_ctr.per_day.inst.2.moo = 23 +| rate_ctr.per_day.inst.2.var = 23 +| rate_ctr.per_hour.inst.0.foo = 23 +| rate_ctr.per_hour.inst.0.moo = 23 +| rate_ctr.per_hour.inst.0.var = 23 +| rate_ctr.per_hour.inst.1.foo = 23 +| rate_ctr.per_hour.inst.1.moo = 23 +| rate_ctr.per_hour.inst.1.var = 23 +| rate_ctr.per_hour.inst.2.foo = 23 +| rate_ctr.per_hour.inst.2.moo = 23 +| rate_ctr.per_hour.inst.2.var = 23 +- copy +| rate_ctr.abs.inst.0.foo = 101 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +| rate_ctr.per_day.inst.0.foo = 23 +| rate_ctr.per_day.inst.0.moo = 23 +| rate_ctr.per_day.inst.0.var = 23 +| rate_ctr.per_day.inst.1.foo = 23 +| rate_ctr.per_day.inst.1.moo = 23 +| rate_ctr.per_day.inst.1.var = 23 +| rate_ctr.per_day.inst.2.foo = 23 +| rate_ctr.per_day.inst.2.moo = 23 +| rate_ctr.per_day.inst.2.var = 23 +| rate_ctr.per_hour.inst.0.foo = 23 +| rate_ctr.per_hour.inst.0.moo = 23 +| rate_ctr.per_hour.inst.0.var = 23 +| rate_ctr.per_hour.inst.1.foo = 23 +| rate_ctr.per_hour.inst.1.moo = 23 +| rate_ctr.per_hour.inst.1.var = 23 +| rate_ctr.per_hour.inst.2.foo = 23 +| rate_ctr.per_hour.inst.2.moo = 23 +| rate_ctr.per_hour.inst.2.var = 23 +- match? True +- increment foo +| rate_ctr.abs.inst.0.foo = 102 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +| rate_ctr.per_day.inst.0.foo = 23 +| rate_ctr.per_day.inst.0.moo = 23 +| rate_ctr.per_day.inst.0.var = 23 +| rate_ctr.per_day.inst.1.foo = 23 +| rate_ctr.per_day.inst.1.moo = 23 +| rate_ctr.per_day.inst.1.var = 23 +| rate_ctr.per_day.inst.2.foo = 23 +| rate_ctr.per_day.inst.2.moo = 23 +| rate_ctr.per_day.inst.2.var = 23 +| rate_ctr.per_hour.inst.0.foo = 23 +| rate_ctr.per_hour.inst.0.moo = 23 +| rate_ctr.per_hour.inst.0.var = 23 +| rate_ctr.per_hour.inst.1.foo = 23 +| rate_ctr.per_hour.inst.1.moo = 23 +| rate_ctr.per_hour.inst.1.var = 23 +| rate_ctr.per_hour.inst.2.foo = 23 +| rate_ctr.per_hour.inst.2.moo = 23 +| rate_ctr.per_hour.inst.2.var = 23 +- match? False diff --git a/selftest/rate_ctrs_test/rate_ctrs_test.py b/selftest/rate_ctrs_test/rate_ctrs_test.py new file mode 100755 index 0000000..935bd9d --- /dev/null +++ b/selftest/rate_ctrs_test/rate_ctrs_test.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +import _prep + +from osmo_gsm_tester.obj.osmo_ctrl import * + +rc = RateCounters() +print('- empty RateCounters()' + rc.str()) + +rc = RateCounters('inst', 'var') +print('- initialized RateCounters, single var' + rc.str()) +rc.inc('inst', 'var') +print('- incremented inst.var' + rc.str()) +rc.inc('inst', 'var') +print('- incremented inst.var again' + rc.str()) +rc.inc('inst', 'var', 5) +print('- incremented inst.var by 5' + rc.str()) + +rc = RateCounters('inst', ('foo', 'var')) +print('- initialized RateCounters, two vars' + rc.str()) +rc.inc('inst', ('foo', 'var')) +print('- incremented foo and var' + rc.str()) +rc.inc('inst', 'var') +print('- incremented var again' + rc.str()) +rc.inc('inst', 'foo', 5) +print('- incremented foo by 5' + rc.str()) + +rc = RateCounters('inst', ('foo', 'var'), instances=range(3)) +print('- initialized RateCounters, two vars, three instances' + rc.str()) +rc.inc('inst', 'foo', instances=0) +rc.inc('inst', 'var', instances=1) +print('- incremented foo and var on separate instances' + rc.str()) +rc.inc('inst', 'var', instances=2) +print('- incremented var on instance 2' + rc.str()) +rc.inc('inst', 'foo', 5, instances=(1,2)) +print('- incremented foo by 5 on instances 1,2' + rc.str()) + +rc_rel = rc.copy() +print('- copy' + rc_rel.str()) +rc.inc('inst', ('foo', 'var'), 100, instances=range(3)) +print('- increment two vars by 100 on all three instances' + rc.str()) +rc.subtract(rc_rel) +print('- subtract original copy' + rc.str()) +rc.add(rc_rel) +print('- add original copy' + rc.str()) + +rc.inc('inst', ('foo', 'var', 'moo'), 23, instances=range(3), kinds=('per_hour', 'per_day')) +print('- increment types per_hour, per_day by 23' + rc.str()) + +rc2 = rc.copy() +print('- copy' + rc2.str()) +print('- match? ', (rc == rc2)) +rc2.inc('inst', 'foo') +print('- increment foo' + rc2.str()) +print('- match? ', (rc == rc2)) + +# vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index 43191df..36b0689 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -119,4 +119,232 @@ def __exit__(self, *exc_info): self.disconnect() +class RateCountersExn(log.Error): + pass + +class RateCounters(dict): + '''Usage example: + counter_names = ( + 'handover:completed', + 'handover:stopped', + 'handover:no_channel', + 'handover:timeout', + 'handover:failed', + 'handover:error', + ) + # open a CTRL connection and keep it open + with bsc.ctrl() as bsc_ctrl: + + # initialize the listing of CTRL vars of the counters to watch. + # First on the 'bsc' node: + # rate_ctr.abs.bsc.0.handover:completed + # rate_ctr.abs.bsc.0.handover:stopped + # ... + counters = RateCounters('bsc', counter_names, from_ctrl=bsc_ctrl) + + # And also add counters for two 'bts' instances: + # rate_ctr.abs.bts.0.handover:completed + # rate_ctr.abs.bts.0.handover:stopped + # ... + # rate_ctr.abs.bts.1.handover:completed + # ... + counters.add(RateCounters('bts', counter_names, instances=(0, 1))) + + # read initial counter values, from the bsc_ctrl, as set in + # counters.from_ctrl in the RateCounters() constructor above. + counters.read() + + # Do some actions that should increment counters in the SUT + do_a_handover() + + if approach_without_wait: + # increment the counters as expected + counters.inc('bts', 'handover:completed') + + # read counters from CTRL again, and fail if they differ + counters.verify() + + if approach_with_wait: + # you can wait for counters to change. counters.changed() does not + # modify counters' values, just reads values from CTRL and stores + # the changes in counters.diff. + wait(counters.changed, timeout=20) + + # log which counters changed by how much, found in counters.diff + # after each counters.changed() call: + print(counters.diff.str(skip_zero_vals=True)) + + if check_all_vals: + # Assert all values: + expected_diff = counters.copy().clear() + expected_diff.inc('bts', 'handover:completed', instances=(0, 1)) + counters.diff.expect(expected_diff) + else: + # Assert only some specific counters: + expected_diff = RateCounters() + expected_diff.inc('bts', 'handover:completed', instances=(0, 1)) + counters.diff.expect(expected_diff) + + # update counters to the last read values if desired + counters.add(counters.diff) + ''' + + def __init__(self, instance_names=(), counter_names=(), instances=0, kinds='abs', init_val=0, from_ctrl=None): + def init_cb(var): + self[var] = init_val + RateCounters.for_each(init_cb, instance_names, counter_names, instances, kinds, results=False) + self.from_ctrl = from_ctrl + self.diff = None + + @staticmethod + def for_each(callback_func, instance_names, counter_names, instances=0, kinds='abs', results=True): + '''Call callback_func for a set of rate counter var names, mostly + called by more convenient functions. See inc() for a comprehensive + explanation. + ''' + if type(instance_names) is str: + instance_names = (instance_names, ) + if type(counter_names) is str: + counter_names = (counter_names, ) + if type(kinds) is str: + kinds = (kinds, ) + if type(instances) is int: + instances = (instances, ) + if results is True: + results = RateCounters() + elif results is False: + results = None + for instance_name in instance_names: + for instance_nr in instances: + for counter_name in counter_names: + for kind in kinds: + var = 'rate_ctr.{kind}.{instance_name}.{instance_nr}.{counter_name}'.format(**locals()) + result = callback_func(var) + if results is not None: + results[var] = result + return results + + def __str__(self): + return self.str(', ', '') + + def str(self, sep='\n| ', prefix='\n| ', vals=None, skip_zero_vals=False): + '''The 'vals' arg is useful to print a plain dict() of counter values like a RateCounters class. + By default print self.''' + if vals is None: + vals = self + return prefix + sep.join('%s = %d' % (var, val) for var, val in sorted(vals.items()) + if (not skip_zero_vals) or (val != 0)) + + def inc(self, instance_names, counter_names, inc=1, instances=0, kinds='abs'): + '''Increment a set of counters. + inc('xyz', 'val') --> rate_ctr.abs.xyz.0.val += 1 + + inc('xyz', ('foo', 'bar')) --> rate_ctr.abs.xyz.0.foo += 1 + rate_ctr.abs.xyz.0.bar += 1 + + inc(('xyz', 'pqr'), 'val') --> rate_ctr.abs.xyz.0.val += 1 + rate_ctr.abs.pqr.0.val += 1 + + inc('xyz', 'val', instances=range(3)) + --> rate_ctr.abs.xyz.0.val += 1 + rate_ctr.abs.xyz.1.val += 1 + rate_ctr.abs.xyz.2.val += 1 + ''' + def inc_cb(var): + val = self.get(var, 0) + val += inc + self[var] = val + return val + RateCounters.for_each(inc_cb, instance_names, counter_names, instances, kinds, results=False) + return self + + def add(self, rate_counters): + '''Add the given values up to the values in self. + rate_counters can be a RateCounters instance or a plain dict of CTRL + var as key and counter integer as value. + ''' + for var, add_val in rate_counters.items(): + val = self.get(var, 0) + val += add_val + self[var] = val + return self + + def subtract(self, rate_counters): + '''Same as add(), but subtract values from self instead. + Useful to verify counters relative to an arbitrary reference.''' + for var, subtract_val in rate_counters.items(): + val = self.get(var, 0) + val -= subtract_val + self[var] = val + return self + + + def clear(self, val=0): + '''Set all counts to 0 (or a specific value)''' + for var in self.keys(): + self[var] = val + return self + + def copy(self): + '''Return a copy of all keys and values stored in self.''' + cpy = RateCounters(from_ctrl = self.from_ctrl) + cpy.update(self) + return cpy + + def read(self): + '''Read all counters from the CTRL connection passed to RateCounters(from_ctrl=x). + The CTRL must be connected, e.g. + with bsc.ctrl() as ctrl: + counters = RateCounters(ctrl) + counters.read() + ''' + for var in self.keys(): + self[var] = self.from_ctrl.get_int_var(var) + self.from_ctrl.dbg('Read counters:', self.str()) + return self + + def verify(self): + '''Read counters from CTRL and assert that they match the current counts''' + got_vals = self.copy() + got_vals.read() + got_vals.expect(self) + + def changed(self): + '''Read counters from CTRL, and return True if anyone is different now. + Store the difference in counts in self.diff (replace self.diff for + each changed() call). The counts in self are never modified.''' + self.diff = None + got_vals = self.copy() + got_vals.read() + if self != got_vals: + self.diff = got_vals + self.diff.subtract(self) + self.from_ctrl.dbg('Changed counters:', self.diff.str(skip_zero_vals=True)) + return True + return False + + def expect(self, expect_vals): + '''Iterate expect_vals and fail if any counter value differs from self. + expect_vals can be a RateCounters instance or a plain dict of CTRL + var as key and counter integer as value. + ''' + ok = 0 + errs = [] + for var, expect_val in expect_vals.items(): + got_val = self.get(var) + if got_val is None: + errs.append('expected {var} == {expect_val}, but no such value found'.format(**locals())) + continue + if got_val != expect_val: + errs.append('expected {var} == {expect_val}, but is {got_val}'.format(**locals())) + continue + ok += 1 + if errs: + self.from_ctrl.dbg('Expected rate counters:', self.str(vals=expect_vals)) + self.from_ctrl.dbg('Got rate counters:', self.str()) + raise RateCountersExn('%d of %d rate counters mismatch:' % (len(errs), len(errs) + ok), '\n| ' + '\n| '.join(errs)) + else: + self.from_ctrl.log('Verified %d rate counters' % ok) + self.from_ctrl.dbg('Verified %d rate counters:' % ok, expect_vals) + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21522 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: Id799b3bb81eb9c04d13c26ff611e40363920300e Gerrit-Change-Number: 21522 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 Dec 3 23:56:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:27 +0000 Subject: Change in osmo-gsm-tester[master]: add handover_2G suite, with handover.py test References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 ) Change subject: add handover_2G suite, with handover.py test ...................................................................... add handover_2G suite, with handover.py test Via VTY, handover two lchans of a voice call from bts0 to bts1 and back. New scenarios/bts1-* allow selecting various types for bts1, complementing the already existing files for selecting bts0. Change-Id: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 --- M src/osmo_gsm_tester/obj/bsc_osmo.py M src/osmo_gsm_tester/testenv.py A sysmocom/handover-suites.conf A sysmocom/scenarios/bts1-nanobts.conf A sysmocom/scenarios/bts1-oc2g.conf A sysmocom/scenarios/bts1-octphy.conf A sysmocom/scenarios/bts1-sysmo.conf A sysmocom/scenarios/bts1-trx-b200.conf A sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf A sysmocom/scenarios/bts1-trx-lms.conf A sysmocom/scenarios/bts1-trx-sysmocell5000.conf A sysmocom/scenarios/bts1-trx-umtrx.conf A sysmocom/suites/handover_2G/handover.py A sysmocom/suites/handover_2G/suite.conf 14 files changed, 315 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/23/21523/1 diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index 62026e6..1be3277 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -154,6 +154,9 @@ def vty(self): return OsmoBscVty(self) + def ctrl(self): + return OsmoBscCtrl(self).ctrl() + def get_active_lchans(self): lchan_summary = self.vty().cmd('show lchan summary') diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 651183c..c7e0f65 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -31,6 +31,7 @@ from .core import resource from .core.event_loop import MainLoop +test = None suite = None log = None dbg = None diff --git a/sysmocom/handover-suites.conf b/sysmocom/handover-suites.conf new file mode 100644 index 0000000..623bbfb --- /dev/null +++ b/sysmocom/handover-suites.conf @@ -0,0 +1,36 @@ +- handover_2G:nanobts+bts1-oc2g +- handover_2G:nanobts+bts1-octphy +- handover_2G:nanobts+bts1-trx-lms +- handover_2G:nanobts+bts1-trx-lms-limenet-micro +- handover_2G:nanobts+bts1-trx-sysmocell5000 +- handover_2G:nanobts+bts1-sysmo +- handover_2G:nanobts+bts1-trx-b200 +- handover_2G:nanobts+bts1-trx-umtrx +- handover_2G:oc2g+bts1-octphy +- handover_2G:oc2g+bts1-trx-lms +- handover_2G:oc2g+bts1-trx-lms-limenet-micro +- handover_2G:oc2g+bts1-trx-sysmocell5000 +- handover_2G:oc2g+bts1-sysmo +- handover_2G:oc2g+bts1-trx-b200 +- handover_2G:oc2g+bts1-trx-umtrx +- handover_2G:octphy+bts1-trx-lms +- handover_2G:octphy+bts1-trx-lms-limenet-micro +- handover_2G:octphy+bts1-trx-sysmocell5000 +- handover_2G:octphy+bts1-sysmo +- handover_2G:octphy+bts1-trx-b200 +- handover_2G:octphy+bts1-trx-umtrx +- handover_2G:trx-lms+bts1-trx-lms-limenet-micro +- handover_2G:trx-lms+bts1-trx-sysmocell5000 +- handover_2G:trx-lms+bts1-sysmo +- handover_2G:trx-lms+bts1-trx-b200 +- handover_2G:trx-lms+bts1-trx-umtrx +- handover_2G:trx-lms-limenet-micro+bts1-trx-sysmocell5000 +- handover_2G:trx-lms-limenet-micro+bts1-sysmo +- handover_2G:trx-lms-limenet-micro+bts1-trx-b200 +- handover_2G:trx-lms-limenet-micro+bts1-trx-umtrx +- handover_2G:trx-sysmocell5000+bts1-sysmo +- handover_2G:trx-sysmocell5000+bts1-trx-b200 +- handover_2G:trx-sysmocell5000+bts1-trx-umtrx +- handover_2G:sysmo+bts1-trx-b200 +- handover_2G:sysmo+bts1-trx-umtrx +- handover_2G:trx-b200+bts1-trx-umtrx diff --git a/sysmocom/scenarios/bts1-nanobts.conf b/sysmocom/scenarios/bts1-nanobts.conf new file mode 100644 index 0000000..2425b7f --- /dev/null +++ b/sysmocom/scenarios/bts1-nanobts.conf @@ -0,0 +1,4 @@ +resources: + bts: + - {} + - type: nanobts diff --git a/sysmocom/scenarios/bts1-oc2g.conf b/sysmocom/scenarios/bts1-oc2g.conf new file mode 100644 index 0000000..ff45d8e --- /dev/null +++ b/sysmocom/scenarios/bts1-oc2g.conf @@ -0,0 +1,4 @@ +resources: + bts: + - {} + - type: osmo-bts-oc2g diff --git a/sysmocom/scenarios/bts1-octphy.conf b/sysmocom/scenarios/bts1-octphy.conf new file mode 100644 index 0000000..2eb51d1 --- /dev/null +++ b/sysmocom/scenarios/bts1-octphy.conf @@ -0,0 +1,4 @@ +resources: + bts: + - {} + - type: osmo-bts-octphy diff --git a/sysmocom/scenarios/bts1-sysmo.conf b/sysmocom/scenarios/bts1-sysmo.conf new file mode 100644 index 0000000..fa466a8 --- /dev/null +++ b/sysmocom/scenarios/bts1-sysmo.conf @@ -0,0 +1,4 @@ +resources: + bts: + - {} + - type: osmo-bts-sysmo diff --git a/sysmocom/scenarios/bts1-trx-b200.conf b/sysmocom/scenarios/bts1-trx-b200.conf new file mode 100644 index 0000000..9927b88 --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-b200.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: Ettus B200 + type: osmo-bts-trx diff --git a/sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf b/sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf new file mode 100644 index 0000000..e0536ec --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: LimeNET-Micro + type: osmo-bts-trx diff --git a/sysmocom/scenarios/bts1-trx-lms.conf b/sysmocom/scenarios/bts1-trx-lms.conf new file mode 100644 index 0000000..df644c0 --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-lms.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: LimeSDR-USB + type: osmo-bts-trx diff --git a/sysmocom/scenarios/bts1-trx-sysmocell5000.conf b/sysmocom/scenarios/bts1-trx-sysmocell5000.conf new file mode 100644 index 0000000..d5d3069 --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-sysmocell5000.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: sysmoCell 5000 + type: osmo-bts-trx diff --git a/sysmocom/scenarios/bts1-trx-umtrx.conf b/sysmocom/scenarios/bts1-trx-umtrx.conf new file mode 100644 index 0000000..e8504bf --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-umtrx.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: UmTRX + type: osmo-bts-trx diff --git a/sysmocom/suites/handover_2G/handover.py b/sysmocom/suites/handover_2G/handover.py new file mode 100755 index 0000000..f5476d9 --- /dev/null +++ b/sysmocom/suites/handover_2G/handover.py @@ -0,0 +1,225 @@ +#!/usr/bin/env python3 +from osmo_gsm_tester.testenv import * +from osmo_gsm_tester.obj.osmo_ctrl import * + +hlr = tenv.hlr() +bts0 = tenv.bts() +bts1 = tenv.bts() +mgw_msc = tenv.mgw() +mgw_bsc = tenv.mgw() +stp = tenv.stp() +msc = tenv.msc(hlr, mgw_msc, stp) +bsc = tenv.bsc(msc, mgw_bsc, stp) +ms_mo = tenv.modem() +ms_mt = tenv.modem() + +hlr.start() +stp.start() +msc.start() +mgw_msc.start() +mgw_bsc.start() +bsc.bts_add(bts0) +bsc.bts_add(bts1) +bsc.start() + +# prevent handovers from measurement reports, enable handover so that +# triggering handover from VTY works. +bsc.vty().cmds( + 'enable', + 'configure terminal', + 'network', + 'handover algorithm 2', + 'handover2 min rxlev -110', + 'handover2 min rxqual 7', + 'handover2 power budget hysteresis 999', + 'handover 1') + +# first start only the first BTS, to make sure both modems subscribe there +with test.report_fragment('01_bts0_started'): + bts0.start() + wait(bsc.bts_is_connected, bts0) + +hlr.subscriber_add(ms_mo) +hlr.subscriber_add(ms_mt) + +ms_mo.connect(msc.mcc_mnc()) +ms_mt.connect(msc.mcc_mnc()) + +ms_mo.log_info() +ms_mt.log_info() + +print('waiting for modems to attach...') + +with test.report_fragment('02.1_ms0_attach'): + wait(ms_mo.is_registered, msc.mcc_mnc()) + +with test.report_fragment('02.2_ms1_attach'): + wait(ms_mt.is_registered, msc.mcc_mnc()) + +with test.report_fragment('02.3_subscribed_in_msc'): + wait(msc.subscriber_attached, ms_mo, ms_mt) + +assert len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0 +mo_cid = ms_mo.call_dial(ms_mt) +mt_cid = ms_mt.call_wait_incoming(ms_mo) +print('dial success') + +with test.report_fragment('03_call_established'): + assert not ms_mo.call_is_active(mo_cid) and not ms_mt.call_is_active(mt_cid) + ms_mt.call_answer(mt_cid) + wait(ms_mo.call_is_active, mo_cid) + wait(ms_mt.call_is_active, mt_cid) + print('answer success, call established and ongoing') + + assert bsc.active_lchans_match( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED')) + +# call is connected; start up the second BTS so that we can trigger a handover to it +with test.report_fragment('04.1_bts1_started'): + bts1.start() + wait(bsc.bts_is_connected, bts1) + +print('wait a bit for modems to see bts1') +sleep(10.0) + +print('starting the second BTS probably took a while, check on the ongoing call') +assert bsc.active_lchans_match( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED')) + +with bsc.ctrl() as bsc_ctrl: + counter_names = ( + 'handover:completed', + 'handover:stopped', + 'handover:no_channel', + 'handover:timeout', + 'handover:failed', + 'handover:error', + ) + counters = RateCounters('bsc', counter_names, from_ctrl=bsc_ctrl) + counters.add(RateCounters('bts', counter_names, instances=(0, 1))) + + def do_handover(initial_lchans, target_lchan, vty_cmd, final_lchans, attempts=5): + worked = False + while (attempts > 0) and (not worked): + # make sure the call is still active as expected + assert bsc.active_lchans_match(**initial_lchans) + # make sure the handover target lchan is unused (maybe waiting after previous error) + wait(bsc.active_lchans_match, **target_lchan, timeout=20) + + counters.read() + log_mark = bsc.process.get_output_mark('stderr') + + print('trigger handover: %s' % vty_cmd) + bsc.vty().cmds('enable', vty_cmd) + + print('wait for handover counters to change...') + wait_no_raise(counters.changed, timeout=20) + print(counters.diff.str(skip_zero_vals=True)) + + print('\n'+'\n'.join(bsc.process.grep_output('stderr', r'\bhandover\(|\bDCHAN\b', log_mark))) + + worked = bsc.active_lchans_match(**final_lchans) + if not worked and attempts > 0: + attempts -= 1 + print('did not work, try again... (attempts left: %d)' % attempts) + return worked + + + with test.report_fragment('05.1_handover'): + assert do_handover( + initial_lchans=dict( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED'), + ), + target_lchan=dict( + not_expected=('1-0-2-0',), + ), + vty_cmd='bts 0 trx 0 timeslot 2 sub-slot 0 handover 1', + final_lchans=dict( + expected=('0-0-3-0 TCH/F ESTABLISHED', + '1-0-2-0 TCH/F ESTABLISHED',), + not_expected=('0-0-2-0 TCH/F ESTABLISHED',), + ), + ) + + with test.report_fragment('05.2_handover'): + assert do_handover( + initial_lchans=dict( + expected=('0-0-3-0 TCH/F ESTABLISHED', + '1-0-2-0 TCH/F ESTABLISHED'), + ), + target_lchan=dict( + not_expected=('1-0-3-0',), + ), + vty_cmd='bts 0 trx 0 timeslot 3 sub-slot 0 handover 1', + final_lchans=dict( + expected=('1-0-2-0 TCH/F ESTABLISHED', + '1-0-3-0 TCH/F ESTABLISHED',), + not_expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED',), + ), + ) + + with test.report_fragment('06_call_stable'): + print('expect the call to continue for a while, to ensure the new lchan is functional') + for i in range(5): + sleep(5) + assert bsc.active_lchans_match( + expected=('1-0-2-0 TCH/F ESTABLISHED', + '1-0-3-0 TCH/F ESTABLISHED',)) + print('call is still fine') + + print('handover back (test the other BTS model)') + + with test.report_fragment('07.1_handover'): + assert do_handover( + initial_lchans=dict( + expected=('1-0-2-0 TCH/F ESTABLISHED', + '1-0-3-0 TCH/F ESTABLISHED'), + ), + target_lchan=dict( + not_expected=('0-0-2-0',), + ), + vty_cmd='bts 1 trx 0 timeslot 3 sub-slot 0 handover 0', + final_lchans=dict( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '1-0-2-0 TCH/F ESTABLISHED',), + not_expected=('1-0-3-0 TCH/F ESTABLISHED',), + ), + ) + + with test.report_fragment('07.2_handover'): + assert do_handover( + initial_lchans=dict( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '1-0-2-0 TCH/F ESTABLISHED'), + ), + target_lchan=dict( + not_expected=('0-0-3-0',), + ), + vty_cmd='bts 1 trx 0 timeslot 2 sub-slot 0 handover 0', + final_lchans=dict( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED',), + not_expected=('1-0-2-0 TCH/F ESTABLISHED', + '1-0-3-0 TCH/F ESTABLISHED',), + ), + ) + + with test.report_fragment('08_call_stable'): + print('expect the call to continue for a while, to ensure the new lchan is functional') + for i in range(5): + sleep(5) + assert bsc.active_lchans_match( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED',)) + print('call is still fine') + + assert ms_mo.call_is_active(mo_cid) and ms_mt.call_is_active(mt_cid) + ms_mt.call_hangup(mt_cid) + wait(lambda: len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0) + print('hangup success') + +# vim: tabstop=4 shiftwidth=4 expandtab diff --git a/sysmocom/suites/handover_2G/suite.conf b/sysmocom/suites/handover_2G/suite.conf new file mode 100644 index 0000000..00d3fca --- /dev/null +++ b/sysmocom/suites/handover_2G/suite.conf @@ -0,0 +1,9 @@ +resources: + ip_address: + - times: 6 # msc, bsc, hlr, stp, mgw*2 + bts: + - times: 2 + modem: + - times: 2 + features: + - voice -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 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: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 Gerrit-Change-Number: 21523 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 Dec 3 23:56:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 3 Dec 2020 23:56:27 +0000 Subject: Change in osmo-gsm-tester[master]: run handover_2G in default-suites.conf References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21524 ) Change subject: run handover_2G in default-suites.conf ...................................................................... run handover_2G in default-suites.conf Change-Id: Ic6bb013cc2c395211eeb86fe7a3d3f42671793c7 --- M sysmocom/default-suites.conf 1 file changed, 37 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/24/21524/1 diff --git a/sysmocom/default-suites.conf b/sysmocom/default-suites.conf index b32d7b1..5ebd9d1 100644 --- a/sysmocom/default-suites.conf +++ b/sysmocom/default-suites.conf @@ -172,3 +172,40 @@ - encryption - 4g:srsenb-rftype at zmq+srsue-rftype@zmq + +- handover_2G:nanobts+bts1-oc2g +- handover_2G:nanobts+bts1-octphy +- handover_2G:nanobts+bts1-trx-lms +- handover_2G:nanobts+bts1-trx-lms-limenet-micro +- handover_2G:nanobts+bts1-trx-sysmocell5000 +- handover_2G:nanobts+bts1-sysmo +- handover_2G:nanobts+bts1-trx-b200 +- handover_2G:nanobts+bts1-trx-umtrx +- handover_2G:oc2g+bts1-octphy +- handover_2G:oc2g+bts1-trx-lms +- handover_2G:oc2g+bts1-trx-lms-limenet-micro +- handover_2G:oc2g+bts1-trx-sysmocell5000 +- handover_2G:oc2g+bts1-sysmo +- handover_2G:oc2g+bts1-trx-b200 +- handover_2G:oc2g+bts1-trx-umtrx +- handover_2G:octphy+bts1-trx-lms +- handover_2G:octphy+bts1-trx-lms-limenet-micro +- handover_2G:octphy+bts1-trx-sysmocell5000 +- handover_2G:octphy+bts1-sysmo +- handover_2G:octphy+bts1-trx-b200 +- handover_2G:octphy+bts1-trx-umtrx +- handover_2G:trx-lms+bts1-trx-lms-limenet-micro +- handover_2G:trx-lms+bts1-trx-sysmocell5000 +- handover_2G:trx-lms+bts1-sysmo +- handover_2G:trx-lms+bts1-trx-b200 +- handover_2G:trx-lms+bts1-trx-umtrx +- handover_2G:trx-lms-limenet-micro+bts1-trx-sysmocell5000 +- handover_2G:trx-lms-limenet-micro+bts1-sysmo +- handover_2G:trx-lms-limenet-micro+bts1-trx-b200 +- handover_2G:trx-lms-limenet-micro+bts1-trx-umtrx +- handover_2G:trx-sysmocell5000+bts1-sysmo +- handover_2G:trx-sysmocell5000+bts1-trx-b200 +- handover_2G:trx-sysmocell5000+bts1-trx-umtrx +- handover_2G:sysmo+bts1-trx-b200 +- handover_2G:sysmo+bts1-trx-umtrx +- handover_2G:trx-b200+bts1-trx-umtrx -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21524 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: Ic6bb013cc2c395211eeb86fe7a3d3f42671793c7 Gerrit-Change-Number: 21524 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 Fri Dec 4 00:05:35 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 00:05:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 ) Change subject: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss ...................................................................... gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss These functions would not set a verdict in case no message was ever received. This patch ensures that a timeout while waiting for a paging message actually fails the test. Change-Id: If71db2d37d67d02c5d9550202128ee3470762964 Related: SYS#5002 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 18 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/25/21525/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index a84d346..714a56d 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1140,6 +1140,7 @@ boolean use_sig := false,integer pcu_idx := 0) runs on BSSGP_ConnHdlr { var template (present) PDU_BSSGP exp_rx; + var boolean test_done := false; /* 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 */ exp_rx := f_send_paging_ps(p4, sgsn_idx, use_sig); @@ -1147,15 +1148,17 @@ timer T := 2.0; T.start; alt { - [not use_sig] PCU[pcu_idx].receive(exp_rx) { + [not use_sig and not test_done] PCU[pcu_idx].receive(exp_rx) { setverdict(pass); + test_done := true; repeat; } [not use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on SIGNALING BVC, expected PTP BVC"); } - [use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { + [use_sig and not test_done] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(pass); + test_done := true; repeat; } [use_sig] PCU[pcu_idx].receive(exp_rx) { @@ -1173,7 +1176,10 @@ [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging than expected on SIGNALING BVC"); } - [] T.timeout; + [not test_done] T.timeout { + setverdict(fail, "Timeout waiting for paging"); + } + [test_done] T.timeout; } } @@ -1555,6 +1561,7 @@ boolean use_sig := false,integer pcu_idx := 0) runs on BSSGP_ConnHdlr { var template (present) PDU_BSSGP exp_rx; + var boolean test_done := false; /* 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 */ exp_rx := f_send_paging_cs(p4, sgsn_idx, use_sig); @@ -1562,15 +1569,17 @@ timer T := 2.0; T.start; alt { - [not use_sig] PCU[pcu_idx].receive(exp_rx) { + [not use_sig and not test_done] PCU[pcu_idx].receive(exp_rx) { setverdict(pass); + test_done := true; repeat; } [not use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on SIGNALING BVC, expected PTP BVC"); } - [use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { + [use_sig and not test_done] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(pass); + test_done := true; repeat; } [use_sig] PCU[pcu_idx].receive(exp_rx) { @@ -1588,7 +1597,10 @@ [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { setverdict(fail, "Different Paging than expected on SIGNALING BVC"); } - [] T.timeout; + [not test_done] T.timeout { + setverdict(fail, "Timeout while waiting for paging") + } + [test_done] T.timeout; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If71db2d37d67d02c5d9550202128ee3470762964 Gerrit-Change-Number: 21525 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 Dec 4 00:18:39 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 00:18:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Improve NSEI/... numbering and improve paging test coverage In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 ) Change subject: gbproxy: Improve NSEI/... numbering and improve paging test coverage ...................................................................... Patch Set 4: Hmm, I guess this will make FR test fail because only one nsei and bvc is configured there -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 00:18: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 Fri Dec 4 00:31:39 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 00:31:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters 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/+/21495 to look at the new patch set (#3). Change subject: gbproxy: Add BVC log filters ...................................................................... gbproxy: Add BVC log filters Since gbproxy doesn't use bssgp_rcvmsg from libosmocore we need to implement our own filtering. Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Related: SYS#5232 --- 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 4 files changed, 46 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/95/21495/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 Gerrit-PatchSet: 3 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 Fri Dec 4 00:31:40 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 00:31:40 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add newline to log message References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21526 ) Change subject: gbproxy: Add newline to log message ...................................................................... gbproxy: Add newline to log message Change-Id: I91a076872b5d744a237f6d325857b95362455e8d --- M src/gbproxy/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/26/21526/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 329c1d1..a4ad7af 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1204,7 +1204,7 @@ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { - LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)"); + LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; /* Only send it once to each NSE */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I91a076872b5d744a237f6d325857b95362455e8d Gerrit-Change-Number: 21526 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 Dec 4 00:38:02 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 00:38:02 +0000 Subject: Change in libosmocore[master]: ns2: Fix argv index in logging filter VTY commands References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21527 ) Change subject: ns2: Fix argv index in logging filter VTY commands ...................................................................... ns2: Fix argv index in logging filter VTY commands Change-Id: I8adaf8094ef028b2d580e918532d6712d2ebbc2c Related: SYS#5232 --- M src/gb/gprs_ns2_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/27/21527/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 9c214a3..43e9c2c 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -778,7 +778,7 @@ { struct log_target *tgt; struct gprs_ns2_nse *nse; - uint16_t id = atoi(argv[1]); + uint16_t id = atoi(argv[0]); log_tgt_mutex_lock(); tgt = osmo_log_vty2tgt(vty); @@ -810,7 +810,7 @@ { struct log_target *tgt; struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[1]); + uint16_t id = atoi(argv[0]); log_tgt_mutex_lock(); tgt = osmo_log_vty2tgt(vty); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8adaf8094ef028b2d580e918532d6712d2ebbc2c Gerrit-Change-Number: 21527 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 Dec 4 00:43:47 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 00:43:47 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 ) Change subject: gbproxy: Add BVC log filters ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21495/2/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21495/2/src/gbproxy/gb_proxy_peer.c at 93 PS2, Line 93: if (peer->bvci == bvci) { : return peer; : } : } > unrelated cosmetic change Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 00:43:47 +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 Dec 4 00:44:46 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 00:44:46 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add newline to log message In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21526 ) Change subject: gbproxy: Add newline to log message ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I91a076872b5d744a237f6d325857b95362455e8d Gerrit-Change-Number: 21526 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 04 Dec 2020 00:44: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 Dec 4 00:46:25 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 00:46:25 +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: daniel has posted comments on 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 ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21476/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21476/1/src/gbproxy/gb_proxy.c at 1025 PS1, Line 1025: LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u, cause=%s)\n", nsei, bvci, > we don't have an nse object resolved yet at this point. [?] Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21476/1/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21476/1/src/gbproxy/gb_proxy_peer.c at 263 PS1, Line 263: /*! remove peers (BVCs) withon NSE specified by NSEI. > withon? Done -- 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: 2 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 00:46:25 +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 admin at opensuse.org Fri Dec 4 01:32:14 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:32:14 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc991a71647c_48252b172cac05f83688c6@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: [ 105s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_udp.c -fPIC -DPIC -o .libs/gprs_ns2_udp.o [ 105s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_vc_fsm.lo gprs_ns2_vc_fsm.c [ 105s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 105s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 105s] In file included from gprs_ns2_fr.c:53: [ 105s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 105s] 7 | #include [ 105s] | ^~~~~~~~~~~~~~~~~ [ 105s] compilation terminated. [ 105s] make[2]: *** [Makefile:572: gprs_ns2_fr.lo] Error 1 [ 105s] make[2]: *** Waiting for unfinished jobs.... [ 105s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 105s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 106s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197/src/gb' [ 106s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 106s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197' [ 106s] make: *** [Makefile:483: all] Error 2 [ 106s] error: Bad exit status from /var/tmp/rpm-tmp.sFP62P (%build) [ 106s] [ 106s] [ 106s] RPM build errors: [ 106s] Bad exit status from /var/tmp/rpm-tmp.sFP62P (%build) [ 106s] ### VM INTERACTION START ### [ 109s] [ 96.344484] sysrq: Power Off [ 109s] [ 96.345691] reboot: Power down [ 109s] ### VM INTERACTION END ### [ 109s] [ 109s] obs-arm-8 failed "build libosmocore.spec" at Fri Dec 4 01:31:57 UTC 2020. [ 109s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:32:14 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:32:14 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5fc991a94301_48252b172cac05f83689d0@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: [ 93s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 93s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 93s] In file included from gprs_ns2_fr.c:53: [ 93s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 93s] 7 | #include [ 93s] | ^~~~~~~~~~~~~~~~~ [ 93s] compilation terminated. [ 93s] make[2]: *** [Makefile:572: gprs_ns2_fr.lo] Error 1 [ 93s] make[2]: *** Waiting for unfinished jobs.... [ 93s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_frgre.c -fPIC -DPIC -o .libs/gprs_ns2_frgre.o [ 93s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 93s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vty.c -fPIC -DPIC -o .libs/gprs_ns2_vty.o [ 93s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_message.c -fPIC -DPIC -o .libs/gprs_ns2_message.o [ 94s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197/src/gb' [ 94s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 94s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197' [ 94s] make: *** [Makefile:483: all] Error 2 [ 94s] error: Bad exit status from /var/tmp/rpm-tmp.0MaA8r (%build) [ 94s] [ 94s] [ 94s] RPM build errors: [ 94s] Bad exit status from /var/tmp/rpm-tmp.0MaA8r (%build) [ 94s] ### VM INTERACTION START ### [ 97s] [ 88.160152] sysrq: Power Off [ 97s] [ 88.192169] reboot: Power down [ 97s] ### VM INTERACTION END ### [ 97s] [ 97s] lamb27 failed "build libosmocore.spec" at Fri Dec 4 01:31:50 UTC 2020. [ 97s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:32:31 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:32:31 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc991c7166e3_48252b172cac05f83691da@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: [ 178s] ^ [ 178s] In file included from gprs_ns2_fr.c:343:0: [ 178s] /usr/include/linux/if.h:252:8: error: redefinition of 'struct ifconf' [ 178s] struct ifconf { [ 178s] ^ [ 178s] In file included from gprs_ns2_fr.c:39:0: [ 178s] /usr/include/net/if.h:176:8: note: originally defined here [ 178s] struct ifconf [ 178s] ^ [ 178s] Makefile:545: recipe for target 'gprs_ns2_fr.lo' failed [ 178s] make[3]: *** [gprs_ns2_fr.lo] Error 1 [ 178s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/gb' [ 178s] Makefile:693: recipe for target 'all-recursive' failed [ 178s] make[2]: *** [all-recursive] Error 1 [ 178s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 178s] Makefile:471: recipe for target 'all' failed [ 178s] make[1]: *** [all] Error 2 [ 178s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 178s] dh_auto_build: make -j1 returned exit code 2 [ 178s] debian/rules:15: recipe for target 'build' failed [ 178s] make: *** [build] Error 2 [ 178s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 178s] ### VM INTERACTION START ### [ 179s] Powering off. [ 179s] [ 170.433677] reboot: Power down [ 179s] ### VM INTERACTION END ### [ 179s] [ 179s] lamb08 failed "build libosmocore_1.4.0.240.75197.dsc" at Fri Dec 4 01:32:20 UTC 2020. [ 179s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:32:50 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:32:50 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc991e33d9_48252b172cac05f83693db@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: [ 112s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_fr.lo gprs_ns2_fr.c [ 112s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_vc_fsm.lo gprs_ns2_vc_fsm.c [ 112s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 112s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 112s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 112s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 112s] In file included from gprs_ns2_fr.c:53:0: [ 112s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 112s] #include [ 112s] ^~~~~~~~~~~~~~~~~ [ 112s] compilation terminated. [ 112s] make[2]: *** [Makefile:556: gprs_ns2_fr.lo] Error 1 [ 112s] make[2]: *** Waiting for unfinished jobs.... [ 113s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197/src/gb' [ 113s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 113s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197' [ 113s] make: *** [Makefile:483: all] Error 2 [ 113s] error: Bad exit status from /var/tmp/rpm-tmp.2tkTuJ (%build) [ 113s] [ 113s] [ 113s] RPM build errors: [ 113s] Bad exit status from /var/tmp/rpm-tmp.2tkTuJ (%build) [ 113s] ### VM INTERACTION START ### [ 116s] [ 100.346864] sysrq: SysRq : Power Off [ 116s] [ 100.352552] reboot: Power down [ 116s] ### VM INTERACTION END ### [ 116s] [ 116s] obs-arm-8 failed "build libosmocore.spec" at Fri Dec 4 01:32:42 UTC 2020. [ 116s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:35:57 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:35:57 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <5fc992975675f_48252b172cac05f8370553@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: [ 60s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_fr.lo gprs_ns2_fr.c [ 60s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_vc_fsm.lo gprs_ns2_vc_fsm.c [ 60s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 61s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 61s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 61s] In file included from gprs_ns2_fr.c:53:0: [ 61s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 61s] #include [ 61s] ^~~~~~~~~~~~~~~~~ [ 61s] compilation terminated. [ 61s] make[2]: *** [Makefile:556: gprs_ns2_fr.lo] Error 1 [ 61s] make[2]: *** Waiting for unfinished jobs.... [ 61s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 61s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197/src/gb' [ 61s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 61s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197' [ 61s] make: *** [Makefile:483: all] Error 2 [ 61s] error: Bad exit status from /var/tmp/rpm-tmp.aEK1UA (%build) [ 61s] [ 61s] [ 61s] RPM build errors: [ 61s] Bad exit status from /var/tmp/rpm-tmp.aEK1UA (%build) [ 61s] ### VM INTERACTION START ### [ 64s] [ 56.305052] sysrq: Power Off [ 64s] [ 56.309259] reboot: Power down [ 64s] ### VM INTERACTION END ### [ 64s] [ 64s] sheep86 failed "build libosmocore.spec" at Fri Dec 4 01:35:36 UTC 2020. [ 64s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:35:57 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:35:57 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fc99297bf3f3_48252b172cac05f83706c2@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: [ 57s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o common_vty.lo common_vty.c [ 57s] In file included from gprs_ns2_fr.c:53: [ 57s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 57s] 7 | #include [ 57s] | ^~~~~~~~~~~~~~~~~ [ 57s] compilation terminated. [ 57s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 57s] make[2]: *** [Makefile:572: gprs_ns2_fr.lo] Error 1 [ 57s] make[2]: *** Waiting for unfinished jobs.... [ 57s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 57s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vty.c -fPIC -DPIC -o .libs/gprs_ns2_vty.o [ 57s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_message.c -fPIC -DPIC -o .libs/gprs_ns2_message.o [ 57s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c common_vty.c -fPIC -DPIC -o .libs/common_vty.o [ 57s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197/src/gb' [ 57s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 57s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197' [ 57s] make: *** [Makefile:483: all] Error 2 [ 57s] error: Bad exit status from /var/tmp/rpm-tmp.TlgYM9 (%build) [ 57s] [ 57s] [ 57s] RPM build errors: [ 57s] Bad exit status from /var/tmp/rpm-tmp.TlgYM9 (%build) [ 57s] ### VM INTERACTION START ### [ 60s] [ 53.900343] sysrq: Power Off [ 60s] [ 53.904829] reboot: Power down [ 60s] ### VM INTERACTION END ### [ 60s] [ 60s] sheep88 failed "build libosmocore.spec" at Fri Dec 4 01:35:38 UTC 2020. [ 60s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:36:14 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:36:14 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5fc9929a81e83_48252b172cac05f8370764@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: [ 73s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_udp.c -fPIC -DPIC -o .libs/gprs_ns2_udp.o [ 73s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_frgre.c -fPIC -DPIC -o .libs/gprs_ns2_frgre.o [ 73s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 73s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 73s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 73s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 73s] In file included from gprs_ns2_fr.c:53:0: [ 73s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 73s] #include [ 73s] ^~~~~~~~~~~~~~~~~ [ 73s] compilation terminated. [ 73s] make[2]: *** [Makefile:556: gprs_ns2_fr.lo] Error 1 [ 73s] make[2]: *** Waiting for unfinished jobs.... [ 74s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197/src/gb' [ 74s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 74s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197' [ 74s] make: *** [Makefile:483: all] Error 2 [ 74s] error: Bad exit status from /var/tmp/rpm-tmp.fpwhDv (%build) [ 74s] [ 74s] [ 74s] RPM build errors: [ 74s] Bad exit status from /var/tmp/rpm-tmp.fpwhDv (%build) [ 74s] ### VM INTERACTION START ### [ 77s] [ 67.859542] sysrq: SysRq : Power Off [ 77s] [ 67.874831] reboot: Power down [ 77s] ### VM INTERACTION END ### [ 77s] [ 77s] lamb62 failed "build libosmocore.spec" at Fri Dec 4 01:35:53 UTC 2020. [ 77s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:38:49 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:38:49 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc9932b314f3_48252b172cac05f8371260@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: [ 160s] ^ [ 160s] In file included from gprs_ns2_fr.c:343:0: [ 160s] /usr/include/linux/if.h:252:8: error: redefinition of 'struct ifconf' [ 160s] struct ifconf { [ 160s] ^ [ 160s] In file included from gprs_ns2_fr.c:39:0: [ 160s] /usr/include/net/if.h:176:8: note: originally defined here [ 160s] struct ifconf [ 160s] ^ [ 160s] Makefile:545: recipe for target 'gprs_ns2_fr.lo' failed [ 160s] make[3]: *** [gprs_ns2_fr.lo] Error 1 [ 160s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/gb' [ 160s] Makefile:693: recipe for target 'all-recursive' failed [ 160s] make[2]: *** [all-recursive] Error 1 [ 160s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 160s] Makefile:471: recipe for target 'all' failed [ 160s] make[1]: *** [all] Error 2 [ 160s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 160s] dh_auto_build: make -j1 returned exit code 2 [ 160s] debian/rules:15: recipe for target 'build' failed [ 160s] make: *** [build] Error 2 [ 160s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 160s] ### VM INTERACTION START ### [ 161s] Powering off. [ 161s] [ 150.103435] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] lamb58 failed "build libosmocore_1.4.0.240.75197.dsc" at Fri Dec 4 01:38:27 UTC 2020. [ 161s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:38:49 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:38:49 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc9932cc990c_48252b172cac05f8371348@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: [ 199s] make[2]: Nothing to be done for 'all'. [ 199s] make[2]: Leaving directory '/usr/src/packages/BUILD/include' [ 199s] Making all in src [ 199s] make[2]: Entering directory '/usr/src/packages/BUILD/src' [ 199s] CXX gprs_debug.lo [ 200s] CC csn1.lo [ 203s] CC gsm_rlcmac.lo [ 204s] CXX gprs_bssgp_pcu.lo [ 205s] gprs_bssgp_pcu.cpp: In function 'int ns_create_nsvc(gprs_rlcmac_bts*, uint16_t, const osmo_sockaddr*, const osmo_sockaddr*, const uint16_t*, uint16_t)': [ 205s] gprs_bssgp_pcu.cpp:987:13: error: 'GPRS_NS2_LL_UDP' was not declared in this scope [ 205s] GPRS_NS2_LL_UDP); [ 205s] ^ [ 205s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 205s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 205s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 205s] Makefile:405: recipe for target 'all-recursive' failed [ 205s] make[1]: *** [all-recursive] Error 1 [ 205s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 205s] dh_auto_build: make -j1 returned exit code 2 [ 205s] debian/rules:12: recipe for target 'build' failed [ 205s] make: *** [build] Error 2 [ 205s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 205s] ### VM INTERACTION START ### [ 206s] Powering off. [ 206s] [ 192.969282] reboot: Power down [ 206s] ### VM INTERACTION END ### [ 206s] [ 206s] cloud122 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Fri Dec 4 01:38:39 UTC 2020. [ 206s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:39:57 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:39:57 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc9938672891_48252b172cac05f8371462@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: [ 284s] [407/469] installing python3.9-3.9.1~rc1-2 [ 286s] Processing triggers for mailcap (3.67) ... [ 286s] Processing triggers for man-db (2.9.3-2) ... [ 287s] [408/469] installing texlive-plain-generic-2020.20201129-1 [ 295s] Processing triggers for tex-common (6.15) ... [ 296s] Running mktexlsr. This may take some time... done. [ 296s] [409/469] installing texlive-latex-base-2020.20201129-2 [ 297s] Processing triggers for man-db (2.9.3-2) ... [ 298s] Processing triggers for tex-common (6.15) ... [ 298s] Running mktexlsr. This may take some time... done. [ 299s] Running updmap-sys. This may take some time... done. [ 299s] Running mktexlsr /var/lib/texmf ... done. [ 299s] Building format(s) --all. [ 308s] This may take some time... [ 308s] fmtutil failed. Output has been stored in [ 308s] /tmp/fmtutil.adlvjj0t [ 308s] Please include this file if you report a bug. [ 308s] dpkg: error processing package tex-common (--install): [ 308s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 308s] Errors were encountered while processing: [ 308s] tex-common [ 308s] exit ... [ 308s] ### VM INTERACTION START ### [ 311s] [ 267.694458] sysrq: Power Off [ 311s] [ 267.698847] reboot: Power down [ 311s] ### VM INTERACTION END ### [ 311s] [ 311s] lamb54 failed "build osmo-gsm-manuals-dev_0.3.0.37.c507.dsc" at Fri Dec 4 01:39:49 UTC 2020. [ 311s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:40:49 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:40:49 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5fc993a3d774b_48252b172cac05f83715f4@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: [ 187s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_udp.lo gprs_ns2_udp.c [ 187s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_udp.c -fPIC -DPIC -o .libs/gprs_ns2_udp.o [ 187s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_frgre.lo gprs_ns2_frgre.c [ 188s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_fr.lo gprs_ns2_fr.c [ 188s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_frgre.c -fPIC -DPIC -o .libs/gprs_ns2_frgre.o [ 188s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_fr.c -fPIC -DPIC -o .libs/gprs_ns2_fr.o [ 188s] In file included from gprs_ns2_fr.c:53:0: [ 188s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 188s] #include [ 188s] ^~~~~~~~~~~~~~~~~ [ 188s] compilation terminated. [ 188s] make[2]: *** [Makefile:556: gprs_ns2_fr.lo] Error 1 [ 188s] make[2]: *** Waiting for unfinished jobs.... [ 188s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197/src/gb' [ 188s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 188s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197' [ 188s] make: *** [Makefile:483: all] Error 2 [ 188s] error: Bad exit status from /var/tmp/rpm-tmp.g7s2D3 (%build) [ 188s] [ 188s] [ 188s] RPM build errors: [ 188s] Bad exit status from /var/tmp/rpm-tmp.g7s2D3 (%build) [ 188s] ### VM INTERACTION START ### [ 191s] [ 174.837498] sysrq: SysRq : Power Off [ 191s] [ 174.859974] reboot: Power down [ 192s] ### VM INTERACTION END ### [ 192s] [ 192s] armbuild02 failed "build libosmocore.spec" at Fri Dec 4 01:40:36 UTC 2020. [ 192s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:44:49 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:44:49 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fc994943a474_48252b172cac05f8372063@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: [ 401s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_vc_fsm.lo gprs_ns2_vc_fsm.c [ 401s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_sns.lo gprs_ns2_sns.c [ 401s] In file included from gprs_ns2_fr.c:53: [ 401s] ../../include/osmocom/core/mnl.h:7:10: fatal error: libmnl/libmnl.h: No such file or directory [ 401s] 7 | #include [ 401s] | ^~~~~~~~~~~~~~~~~ [ 401s] compilation terminated. [ 401s] /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c -o gprs_ns2_message.lo gprs_ns2_message.c [ 401s] make[2]: *** [Makefile:572: gprs_ns2_fr.lo] Error 1 [ 401s] make[2]: *** Waiting for unfinished jobs.... [ 401s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_sns.c -fPIC -DPIC -o .libs/gprs_ns2_sns.o [ 401s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_vc_fsm.c -fPIC -DPIC -o .libs/gprs_ns2_vc_fsm.o [ 402s] libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DBUILDING_LIBOSMOCORE -Wall -c gprs_ns2_message.c -fPIC -DPIC -o .libs/gprs_ns2_message.o [ 404s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197/src/gb' [ 404s] make[1]: *** [Makefile:704: all-recursive] Error 1 [ 404s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/libosmocore-1.4.0.240.75197' [ 404s] make: *** [Makefile:483: all] Error 2 [ 404s] error: Bad exit status from /var/tmp/rpm-tmp.ppfV7S (%build) [ 404s] [ 404s] [ 404s] RPM build errors: [ 404s] Bad exit status from /var/tmp/rpm-tmp.ppfV7S (%build) [ 404s] ### VM INTERACTION START ### [ 407s] [ 316.798544] sysrq: Power Off [ 407s] [ 317.298142] reboot: Power down [ 408s] ### VM INTERACTION END ### [ 408s] [ 408s] armbuild24 failed "build libosmocore.spec" at Fri Dec 4 01:44:17 UTC 2020. [ 408s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:50:15 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:50:15 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fc995de7a31c_48252b172cac05f83730df@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: [ 347s] [COMPILING apps/dfu/main.c] [ 348s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 348s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 348s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 348s] Memory region Used Size Region Size %age Used [ 348s] rom: 16580 B 16 KB 101.20% [ 348s] 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 [ 348s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 348s] /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' [ 348s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 348s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 348s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 348s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 348s] collect2: error: ld returned 1 exit status [ 348s] % [ 348s] make[2]: *** [Makefile:234: flash] Error 1 [ 348s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 348s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 348s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 348s] dh_auto_build: error: make -j1 returned exit code 2 [ 348s] make: *** [debian/rules:16: build] Error 25 [ 348s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 348s] ### VM INTERACTION START ### [ 352s] [ 337.967076] sysrq: Power Off [ 352s] [ 337.997364] reboot: Power down [ 352s] ### VM INTERACTION END ### [ 352s] [ 352s] lamb22 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 4 01:49:56 UTC 2020. [ 352s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:53:06 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:53:06 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc99693bfc74_48252b172cac05f837397b@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: [ 180s] make[2]: Nothing to be done for 'all'. [ 180s] make[2]: Leaving directory '/usr/src/packages/BUILD/include' [ 180s] Making all in src [ 180s] make[2]: Entering directory '/usr/src/packages/BUILD/src' [ 180s] CXX gprs_debug.lo [ 180s] CC csn1.lo [ 182s] CC gsm_rlcmac.lo [ 183s] CXX gprs_bssgp_pcu.lo [ 184s] gprs_bssgp_pcu.cpp: In function 'int ns_create_nsvc(gprs_rlcmac_bts*, uint16_t, const osmo_sockaddr*, const osmo_sockaddr*, const uint16_t*, uint16_t)': [ 184s] gprs_bssgp_pcu.cpp:987:13: error: 'GPRS_NS2_LL_UDP' was not declared in this scope [ 184s] GPRS_NS2_LL_UDP); [ 184s] ^ [ 184s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 184s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 184s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 184s] Makefile:405: recipe for target 'all-recursive' failed [ 184s] make[1]: *** [all-recursive] Error 1 [ 184s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 184s] dh_auto_build: make -j1 returned exit code 2 [ 184s] debian/rules:12: recipe for target 'build' failed [ 184s] make: *** [build] Error 2 [ 184s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 184s] ### VM INTERACTION START ### [ 185s] Powering off. [ 185s] [ 169.838988] reboot: Power down [ 185s] ### VM INTERACTION END ### [ 185s] [ 185s] old-atreju3 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Fri Dec 4 01:52:57 UTC 2020. [ 185s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:53:40 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:53:40 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc996b0aaba1_48252b172cac05f837402e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: [ 138s] [439/514] installing python3.9-3.9.1~rc1-2 [ 140s] Processing triggers for mailcap (3.67) ... [ 140s] Processing triggers for man-db (2.9.3-2) ... [ 140s] [440/514] installing texlive-plain-generic-2020.20201129-1 [ 145s] Processing triggers for tex-common (6.15) ... [ 145s] Running mktexlsr. This may take some time... done. [ 145s] [441/514] installing texlive-latex-base-2020.20201129-2 [ 145s] Processing triggers for man-db (2.9.3-2) ... [ 146s] Processing triggers for tex-common (6.15) ... [ 146s] Running mktexlsr. This may take some time... done. [ 147s] Running updmap-sys. This may take some time... done. [ 147s] Running mktexlsr /var/lib/texmf ... done. [ 147s] Building format(s) --all. [ 155s] This may take some time... [ 155s] fmtutil failed. Output has been stored in [ 155s] /tmp/fmtutil.eDSq9Ny0 [ 155s] Please include this file if you report a bug. [ 155s] dpkg: error processing package tex-common (--install): [ 155s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 155s] Errors were encountered while processing: [ 155s] tex-common [ 155s] exit ... [ 155s] ### VM INTERACTION START ### [ 158s] [ 142.985554] sysrq: Power Off [ 158s] [ 142.991350] reboot: Power down [ 158s] ### VM INTERACTION END ### [ 158s] [ 158s] sheep86 failed "build osmo-sip-connector_1.4.1.6.05ee.dsc" at Fri Dec 4 01:53:23 UTC 2020. [ 158s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:53:40 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:53:40 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc996b152259_48252b172cac05f8374133@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-ggsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: [ 299s] [428/491] installing python3.9-3.9.1~rc1-2 [ 300s] Processing triggers for mailcap (3.67) ... [ 300s] Processing triggers for man-db (2.9.3-2) ... [ 301s] [429/491] installing texlive-plain-generic-2020.20201129-1 [ 305s] Processing triggers for tex-common (6.15) ... [ 305s] Running mktexlsr. This may take some time... done. [ 305s] [430/491] installing texlive-latex-base-2020.20201129-2 [ 305s] Processing triggers for man-db (2.9.3-2) ... [ 306s] Processing triggers for tex-common (6.15) ... [ 306s] Running mktexlsr. This may take some time... done. [ 307s] Running updmap-sys. This may take some time... done. [ 307s] Running mktexlsr /var/lib/texmf ... done. [ 307s] Building format(s) --all. [ 315s] This may take some time... [ 315s] fmtutil failed. Output has been stored in [ 315s] /tmp/fmtutil.BKjdrWaj [ 315s] Please include this file if you report a bug. [ 315s] dpkg: error processing package tex-common (--install): [ 315s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 315s] Errors were encountered while processing: [ 315s] tex-common [ 315s] exit ... [ 315s] ### VM INTERACTION START ### [ 318s] [ 299.498813] sysrq: Power Off [ 318s] [ 299.505476] reboot: Power down [ 318s] ### VM INTERACTION END ### [ 318s] [ 318s] lamb14 failed "build osmo-ggsn_1.6.0.13.1230.dsc" at Fri Dec 4 01:53:24 UTC 2020. [ 318s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:54:49 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:54:49 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc996ef1498c_48252b172cac05f837450@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 151s] Processing triggers for man-db (2.9.3-2) ... [ 152s] [508/655] installing texlive-plain-generic-2020.20201129-1 [ 155s] Processing triggers for tex-common (6.15) ... [ 155s] Running mktexlsr. This may take some time... done. [ 155s] [509/655] installing libpython3.9-3.9.1~rc1-2 [ 155s] Processing triggers for libc-bin (2.31-5) ... [ 155s] [510/655] installing texlive-latex-base-2020.20201129-2 [ 156s] Processing triggers for man-db (2.9.3-2) ... [ 156s] Processing triggers for tex-common (6.15) ... [ 156s] Running mktexlsr. This may take some time... done. [ 157s] Running updmap-sys. This may take some time... done. [ 157s] Running mktexlsr /var/lib/texmf ... done. [ 157s] Building format(s) --all. [ 162s] This may take some time... [ 162s] fmtutil failed. Output has been stored in [ 162s] /tmp/fmtutil.KPT2Evo1 [ 162s] Please include this file if you report a bug. [ 162s] dpkg: error processing package tex-common (--install): [ 162s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 162s] Errors were encountered while processing: [ 162s] tex-common [ 162s] exit ... [ 162s] ### VM INTERACTION START ### [ 166s] [ 146.696626] sysrq: Power Off [ 166s] [ 146.699576] reboot: Power down [ 166s] ### VM INTERACTION END ### [ 166s] [ 166s] sheep87 failed "build osmo-trx_1.2.0.114.57db.dsc" at Fri Dec 4 01:54:30 UTC 2020. [ 166s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:55:40 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:55:40 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc9972b3c1ee_48252b172cac05f837466e@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: [ 338s] [426/489] installing python3.9-3.9.1~rc1-2 [ 340s] Processing triggers for mailcap (3.67) ... [ 340s] Processing triggers for man-db (2.9.3-2) ... [ 341s] [427/489] installing texlive-plain-generic-2020.20201129-1 [ 349s] Processing triggers for tex-common (6.15) ... [ 350s] Running mktexlsr. This may take some time... done. [ 350s] [428/489] installing texlive-latex-base-2020.20201129-2 [ 351s] Processing triggers for man-db (2.9.3-2) ... [ 351s] Processing triggers for tex-common (6.15) ... [ 352s] Running mktexlsr. This may take some time... done. [ 353s] Running updmap-sys. This may take some time... done. [ 353s] Running mktexlsr /var/lib/texmf ... done. [ 353s] Building format(s) --all. [ 364s] This may take some time... [ 364s] fmtutil failed. Output has been stored in [ 364s] /tmp/fmtutil.lNo0jUa8 [ 364s] Please include this file if you report a bug. [ 364s] dpkg: error processing package tex-common (--install): [ 364s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 364s] Errors were encountered while processing: [ 364s] tex-common [ 364s] exit ... [ 364s] ### VM INTERACTION START ### [ 368s] [ 346.624154] sysrq: Power Off [ 368s] [ 346.666336] reboot: Power down [ 368s] ### VM INTERACTION END ### [ 368s] [ 368s] lamb24 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Fri Dec 4 01:55:33 UTC 2020. [ 368s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:55:57 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:55:57 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5fc99745a75a4_48252b172cac05f837475d@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: [ 32s] CC gb_proxy.o [ 32s] CC gb_proxy_main.o [ 32s] CC gb_proxy_vty.o [ 32s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 32s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 32s] 1421 | case BSSGP_PDUT_OVERLOAD: [ 32s] | ^~~~~~~~~~~~~~~~~~~ [ 32s] | BSSGP_PDUT_BVC_BLOCK [ 32s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 32s] make[3]: *** [Makefile:502: gb_proxy.o] Error 1 [ 32s] make[3]: *** Waiting for unfinished jobs.... [ 32s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/gbproxy' [ 32s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 32s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src' [ 32s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 32s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525' [ 32s] make: *** [Makefile:392: all] Error 2 [ 32s] error: Bad exit status from /var/tmp/rpm-tmp.uxqEeF (%build) [ 32s] [ 32s] [ 32s] RPM build errors: [ 32s] Bad exit status from /var/tmp/rpm-tmp.uxqEeF (%build) [ 32s] ### VM INTERACTION START ### [ 35s] [ 29.866669] sysrq: Power Off [ 35s] [ 29.867926] reboot: Power down [ 35s] ### VM INTERACTION END ### [ 35s] [ 35s] build75 failed "build osmo-sgsn.spec" at Fri Dec 4 01:55:47 UTC 2020. [ 35s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:56:14 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:56:14 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fc997475fc11_48252b172cac05f83748ab@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: [ 168s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 168s] [COMPILING libboard/qmod/source/card_pres.c] [ 168s] [COMPILING libboard/qmod/source/wwan_led.c] [ 168s] [COMPILING libboard/qmod/source/i2c.c] [ 169s] [COMPILING libboard/qmod/source/board_qmod.c] [ 169s] [COMPILING apps/dfu/main.c] [ 169s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 169s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 169s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 169s] Memory region Used Size Region Size %age Used [ 169s] rom: 16588 B 16 KB 101.25% [ 169s] 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' [ 169s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 169s] collect2: error: ld returned 1 exit status [ 169s] % [ 169s] make[2]: *** [Makefile:234: flash] Error 1 [ 169s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 169s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 169s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 169s] dh_auto_build: error: make -j1 returned exit code 2 [ 169s] make: *** [debian/rules:16: build] Error 25 [ 169s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 169s] ### VM INTERACTION START ### [ 172s] [ 160.918421] sysrq: Power Off [ 172s] [ 160.923391] reboot: Power down [ 173s] ### VM INTERACTION END ### [ 173s] [ 173s] lamb17 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 4 01:56:12 UTC 2020. [ 173s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 01:57:40 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 01:57:40 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc997a25e729_48252b172cac05f83755fc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-e1d failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-e1d Last lines of build log: [ 436s] [426/489] installing python3.9-3.9.1~rc1-2 [ 439s] Processing triggers for mailcap (3.67) ... [ 439s] Processing triggers for man-db (2.9.3-2) ... [ 441s] [427/489] installing texlive-plain-generic-2020.20201129-1 [ 451s] Processing triggers for tex-common (6.15) ... [ 452s] Running mktexlsr. This may take some time... done. [ 452s] [428/489] installing texlive-latex-base-2020.20201129-2 [ 453s] Processing triggers for man-db (2.9.3-2) ... [ 455s] Processing triggers for tex-common (6.15) ... [ 456s] Running mktexlsr. This may take some time... done. [ 457s] Running updmap-sys. This may take some time... done. [ 457s] Running mktexlsr /var/lib/texmf ... done. [ 457s] Building format(s) --all. [ 474s] This may take some time... [ 474s] fmtutil failed. Output has been stored in [ 474s] /tmp/fmtutil.fjfK0b6Y [ 474s] Please include this file if you report a bug. [ 474s] dpkg: error processing package tex-common (--install): [ 474s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 474s] Errors were encountered while processing: [ 474s] tex-common [ 474s] exit ... [ 474s] ### VM INTERACTION START ### [ 477s] [ 457.938333] sysrq: Power Off [ 477s] [ 458.005079] reboot: Power down [ 477s] ### VM INTERACTION END ### [ 477s] [ 477s] lamb57 failed "build osmo-e1d_0.1.1.20.e542.dsc" at Fri Dec 4 01:57:30 UTC 2020. [ 477s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:05:06 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:05:06 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc99969dee95_48252b172cac05f83772b@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: [ 401s] [437/500] installing python3.9-3.9.1~rc1-2 [ 403s] Processing triggers for mailcap (3.67) ... [ 403s] Processing triggers for man-db (2.9.3-2) ... [ 404s] [438/500] installing texlive-plain-generic-2020.20201129-1 [ 412s] Processing triggers for tex-common (6.15) ... [ 413s] Running mktexlsr. This may take some time... done. [ 413s] [439/500] installing texlive-latex-base-2020.20201129-2 [ 415s] Processing triggers for man-db (2.9.3-2) ... [ 417s] Processing triggers for tex-common (6.15) ... [ 417s] Running mktexlsr. This may take some time... done. [ 419s] Running updmap-sys. This may take some time... done. [ 419s] Running mktexlsr /var/lib/texmf ... done. [ 419s] Building format(s) --all. [ 427s] This may take some time... [ 427s] fmtutil failed. Output has been stored in [ 427s] /tmp/fmtutil.85M01uDz [ 427s] Please include this file if you report a bug. [ 427s] dpkg: error processing package tex-common (--install): [ 427s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 427s] Errors were encountered while processing: [ 427s] tex-common [ 427s] exit ... [ 427s] ### VM INTERACTION START ### [ 430s] [ 380.106611] sysrq: Power Off [ 431s] [ 380.203114] reboot: Power down [ 431s] ### VM INTERACTION END ### [ 431s] [ 431s] old-atreju5 failed "build osmo-bts_1.2.0.354.3b1e.dsc" at Fri Dec 4 02:04:46 UTC 2020. [ 431s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:05:40 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:05:40 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fc999816d2ac_48252b172cac05f837744a@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: [ 562s] ^ [ 562s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 562s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function) [ 562s] case BSSGP_PDUT_OVERLOAD: [ 562s] ^ [ 562s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 562s] Makefile:482: recipe for target 'gb_proxy.o' failed [ 562s] make[4]: *** [gb_proxy.o] Error 1 [ 562s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/gbproxy' [ 562s] Makefile:383: recipe for target 'all-recursive' failed [ 562s] make[3]: *** [all-recursive] Error 1 [ 562s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 562s] Makefile:449: recipe for target 'all-recursive' failed [ 562s] make[2]: *** [all-recursive] Error 1 [ 562s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 562s] Makefile:380: recipe for target 'all' failed [ 562s] make[1]: *** [all] Error 2 [ 562s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 562s] dh_auto_build: make -j1 returned exit code 2 [ 562s] debian/rules:45: recipe for target 'build' failed [ 562s] make: *** [build] Error 2 [ 562s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 562s] ### VM INTERACTION START ### [ 564s] Powering off. [ 564s] [ 505.161185] reboot: Power down [ 564s] ### VM INTERACTION END ### [ 564s] [ 564s] lamb03 failed "build osmo-sgsn_1.6.0.75.5525.dsc" at Fri Dec 4 02:05:19 UTC 2020. [ 564s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:08:31 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:08:31 +0000 Subject: Build failure of network:osmocom:nightly/osmo-uecups in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc99a3552105_48252b172cac05f83780c8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-uecups/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-uecups failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-uecups Last lines of build log: [ 146s] Processing triggers for mailcap (3.67) ... [ 146s] Processing triggers for man-db (2.9.3-2) ... [ 146s] [434/498] installing texlive-plain-generic-2020.20201129-1 [ 150s] Processing triggers for tex-common (6.15) ... [ 150s] Running mktexlsr. This may take some time... done. [ 150s] [435/498] installing libosmo-netif-dev-1.0.0.8.bd77 [ 150s] [436/498] installing texlive-latex-base-2020.20201129-2 [ 151s] Processing triggers for man-db (2.9.3-2) ... [ 151s] Processing triggers for tex-common (6.15) ... [ 151s] Running mktexlsr. This may take some time... done. [ 152s] Running updmap-sys. This may take some time... done. [ 152s] Running mktexlsr /var/lib/texmf ... done. [ 152s] Building format(s) --all. [ 159s] This may take some time... [ 159s] fmtutil failed. Output has been stored in [ 159s] /tmp/fmtutil.yRHAsD3B [ 159s] Please include this file if you report a bug. [ 159s] dpkg: error processing package tex-common (--install): [ 159s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 159s] Errors were encountered while processing: [ 159s] tex-common [ 159s] exit ... [ 159s] ### VM INTERACTION START ### [ 162s] [ 143.567827] sysrq: Power Off [ 162s] [ 143.570805] reboot: Power down [ 162s] ### VM INTERACTION END ### [ 162s] [ 162s] old-atreju4 failed "build osmo-uecups_0.1.3.1.8362.dsc" at Fri Dec 4 02:08:19 UTC 2020. [ 162s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:10:32 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:10:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-hlr in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc99aab9bd7a_48252b172cac05f8378688@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-hlr/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-hlr failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-hlr Last lines of build log: [ 257s] Processing triggers for mailcap (3.67) ... [ 257s] Processing triggers for man-db (2.9.3-2) ... [ 258s] [437/501] installing texlive-plain-generic-2020.20201129-1 [ 262s] Processing triggers for tex-common (6.15) ... [ 262s] Running mktexlsr. This may take some time... done. [ 262s] [438/501] installing libosmo-netif-dev-1.0.0.8.bd77 [ 262s] [439/501] installing texlive-latex-base-2020.20201129-2 [ 263s] Processing triggers for man-db (2.9.3-2) ... [ 263s] Processing triggers for tex-common (6.15) ... [ 264s] Running mktexlsr. This may take some time... done. [ 264s] Running updmap-sys. This may take some time... done. [ 264s] Running mktexlsr /var/lib/texmf ... done. [ 264s] Building format(s) --all. [ 273s] This may take some time... [ 273s] fmtutil failed. Output has been stored in [ 273s] /tmp/fmtutil.qVKqtaHY [ 273s] Please include this file if you report a bug. [ 273s] dpkg: error processing package tex-common (--install): [ 273s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 273s] Errors were encountered while processing: [ 273s] tex-common [ 273s] exit ... [ 273s] ### VM INTERACTION START ### [ 277s] [ 255.987659] sysrq: Power Off [ 277s] [ 255.997373] reboot: Power down [ 277s] ### VM INTERACTION END ### [ 277s] [ 277s] lamb06 failed "build osmo-hlr_1.2.0.67.dac8.dsc" at Fri Dec 4 02:10:16 UTC 2020. [ 277s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:11:06 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:11:06 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc99ac7f04f1_48252b172cac05f83789e3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-mgw failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: [ 258s] Processing triggers for mailcap (3.67) ... [ 258s] Processing triggers for man-db (2.9.3-2) ... [ 259s] [435/498] installing texlive-plain-generic-2020.20201129-1 [ 263s] Processing triggers for tex-common (6.15) ... [ 264s] Running mktexlsr. This may take some time... done. [ 264s] [436/498] installing libosmo-netif-dev-1.0.0.8.bd77 [ 264s] [437/498] installing texlive-latex-base-2020.20201129-2 [ 264s] Processing triggers for man-db (2.9.3-2) ... [ 265s] Processing triggers for tex-common (6.15) ... [ 265s] Running mktexlsr. This may take some time... done. [ 266s] Running updmap-sys. This may take some time... done. [ 266s] Running mktexlsr /var/lib/texmf ... done. [ 266s] Building format(s) --all. [ 279s] This may take some time... [ 279s] fmtutil failed. Output has been stored in [ 279s] /tmp/fmtutil.MVn4e2Jq [ 279s] Please include this file if you report a bug. [ 279s] dpkg: error processing package tex-common (--install): [ 279s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 279s] Errors were encountered while processing: [ 279s] tex-common [ 279s] exit ... [ 279s] ### VM INTERACTION START ### [ 283s] [ 241.133271] sysrq: Power Off [ 283s] [ 241.203328] reboot: Power down [ 283s] ### VM INTERACTION END ### [ 283s] [ 283s] lamb09 failed "build osmo-mgw_1.7.0.132.6e279.dsc" at Fri Dec 4 02:10:54 UTC 2020. [ 283s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:13:24 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:13:24 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc99b6137026_48252b172cac05f8379780@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-sccp Last lines of build log: [ 428s] Processing triggers for mailcap (3.67) ... [ 428s] Processing triggers for man-db (2.9.3-2) ... [ 429s] [437/501] installing texlive-plain-generic-2020.20201129-1 [ 434s] Processing triggers for tex-common (6.15) ... [ 434s] Running mktexlsr. This may take some time... done. [ 434s] [438/501] installing libosmo-netif-dev-1.0.0.8.bd77 [ 434s] [439/501] installing texlive-latex-base-2020.20201129-2 [ 435s] Processing triggers for man-db (2.9.3-2) ... [ 436s] Processing triggers for tex-common (6.15) ... [ 436s] Running mktexlsr. This may take some time... done. [ 437s] Running updmap-sys. This may take some time... done. [ 437s] Running mktexlsr /var/lib/texmf ... done. [ 437s] Building format(s) --all. [ 447s] This may take some time... [ 447s] fmtutil failed. Output has been stored in [ 447s] /tmp/fmtutil.hLc2sXhU [ 447s] Please include this file if you report a bug. [ 447s] dpkg: error processing package tex-common (--install): [ 447s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 447s] Errors were encountered while processing: [ 447s] tex-common [ 447s] exit ... [ 447s] ### VM INTERACTION START ### [ 450s] [ 409.372231] sysrq: Power Off [ 450s] [ 409.384550] reboot: Power down [ 450s] ### VM INTERACTION END ### [ 450s] [ 450s] lamb15 failed "build libosmo-sccp_1.3.0.25.48e2.dsc" at Fri Dec 4 02:13:05 UTC 2020. [ 450s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:15:40 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:15:40 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fc99bdc62339_48252b172cac05f8380993@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: [ 54s] CC gb_proxy_patch.o [ 54s] CC gb_proxy_tlli.o [ 54s] CC gb_proxy_peer.o [ 54s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 54s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 54s] 1421 | case BSSGP_PDUT_OVERLOAD: [ 54s] | ^~~~~~~~~~~~~~~~~~~ [ 54s] | BSSGP_PDUT_BVC_BLOCK [ 54s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 54s] make[3]: *** [Makefile:502: gb_proxy.o] Error 1 [ 54s] make[3]: *** Waiting for unfinished jobs.... [ 55s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/gbproxy' [ 55s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 55s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src' [ 55s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 55s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525' [ 55s] make: *** [Makefile:392: all] Error 2 [ 55s] error: Bad exit status from /var/tmp/rpm-tmp.6e8YiI (%build) [ 55s] [ 55s] [ 55s] RPM build errors: [ 55s] Bad exit status from /var/tmp/rpm-tmp.6e8YiI (%build) [ 55s] ### VM INTERACTION START ### [ 58s] [ 50.544925] sysrq: Power Off [ 58s] [ 50.573869] reboot: Power down [ 58s] ### VM INTERACTION END ### [ 58s] [ 58s] lamb07 failed "build osmo-sgsn.spec" at Fri Dec 4 02:15:26 UTC 2020. [ 58s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:23:57 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:23:57 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <5fc99dd88efd1_48252b172cac05f83842e5@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: [ 61s] CC gb_proxy_patch.o [ 61s] CC gb_proxy_tlli.o [ 61s] CC gb_proxy_peer.o [ 61s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 61s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 61s] case BSSGP_PDUT_OVERLOAD: [ 61s] ^~~~~~~~~~~~~~~~~~~ [ 61s] BSSGP_PDUT_BVC_BLOCK [ 61s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 61s] make[3]: *** [Makefile:492: gb_proxy.o] Error 1 [ 61s] make[3]: *** Waiting for unfinished jobs.... [ 62s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/gbproxy' [ 62s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 62s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src' [ 62s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 62s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525' [ 62s] make: *** [Makefile:392: all] Error 2 [ 62s] error: Bad exit status from /var/tmp/rpm-tmp.NytCuu (%build) [ 62s] [ 62s] [ 62s] RPM build errors: [ 62s] Bad exit status from /var/tmp/rpm-tmp.NytCuu (%build) [ 62s] ### VM INTERACTION START ### [ 65s] [ 55.082651] sysrq: Power Off [ 65s] [ 55.092447] reboot: Power down [ 65s] ### VM INTERACTION END ### [ 65s] [ 65s] lamb11 failed "build osmo-sgsn.spec" at Fri Dec 4 02:23:40 UTC 2020. [ 65s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:24:31 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:24:31 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5fc99df537b3e_48252b172cac05f83844b2@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: [ 112s] CC gb_proxy_patch.o [ 112s] CC gb_proxy_tlli.o [ 112s] CC gb_proxy_peer.o [ 113s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 113s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 113s] case BSSGP_PDUT_OVERLOAD: [ 113s] ^~~~~~~~~~~~~~~~~~~ [ 113s] BSSGP_PDUT_BVC_BLOCK [ 113s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 113s] make[3]: *** [Makefile:492: gb_proxy.o] Error 1 [ 113s] make[3]: *** Waiting for unfinished jobs.... [ 113s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/gbproxy' [ 113s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 113s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src' [ 113s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 113s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525' [ 113s] make: *** [Makefile:392: all] Error 2 [ 113s] error: Bad exit status from /var/tmp/rpm-tmp.Jb90H7 (%build) [ 113s] [ 113s] [ 113s] RPM build errors: [ 113s] Bad exit status from /var/tmp/rpm-tmp.Jb90H7 (%build) [ 113s] ### VM INTERACTION START ### [ 116s] [ 87.836285] sysrq: SysRq : Power Off [ 116s] [ 87.870970] reboot: Power down [ 116s] ### VM INTERACTION END ### [ 116s] [ 116s] lamb08 failed "build osmo-sgsn.spec" at Fri Dec 4 02:24:11 UTC 2020. [ 116s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:26:14 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:26:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc99e504235d_48252b172cac05f8384859@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-smlc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: [ 176s] Processing triggers for mailcap (3.67) ... [ 176s] Processing triggers for man-db (2.9.3-2) ... [ 176s] [430/495] installing texlive-plain-generic-2020.20201129-1 [ 180s] Processing triggers for tex-common (6.15) ... [ 180s] Running mktexlsr. This may take some time... done. [ 180s] [431/495] installing libosmo-netif-dev-1.0.0.8.bd77 [ 180s] [432/495] installing texlive-latex-base-2020.20201129-2 [ 181s] Processing triggers for man-db (2.9.3-2) ... [ 181s] Processing triggers for tex-common (6.15) ... [ 181s] Running mktexlsr. This may take some time... done. [ 182s] Running updmap-sys. This may take some time... done. [ 182s] Running mktexlsr /var/lib/texmf ... done. [ 182s] Building format(s) --all. [ 189s] This may take some time... [ 189s] fmtutil failed. Output has been stored in [ 189s] /tmp/fmtutil.QLU6eL1L [ 189s] Please include this file if you report a bug. [ 189s] dpkg: error processing package tex-common (--install): [ 189s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 189s] Errors were encountered while processing: [ 189s] tex-common [ 189s] exit ... [ 189s] ### VM INTERACTION START ### [ 192s] [ 174.040856] sysrq: Power Off [ 192s] [ 174.048817] reboot: Power down [ 192s] ### VM INTERACTION END ### [ 192s] [ 192s] lamb06 failed "build osmo-smlc_0.1.0.5.5dad.dsc" at Fri Dec 4 02:25:50 UTC 2020. [ 192s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:27:09 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:27:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc99e8b295bb_48252b172cac05f838534d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-bsc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 223s] Processing triggers for mailcap (3.67) ... [ 223s] Processing triggers for man-db (2.9.3-2) ... [ 223s] [440/506] installing texlive-plain-generic-2020.20201129-1 [ 227s] Processing triggers for tex-common (6.15) ... [ 227s] Running mktexlsr. This may take some time... done. [ 227s] [441/506] installing libosmo-netif-dev-1.0.0.8.bd77 [ 227s] [442/506] installing texlive-latex-base-2020.20201129-2 [ 228s] Processing triggers for man-db (2.9.3-2) ... [ 228s] Processing triggers for tex-common (6.15) ... [ 229s] Running mktexlsr. This may take some time... done. [ 229s] Running updmap-sys. This may take some time... done. [ 229s] Running mktexlsr /var/lib/texmf ... done. [ 229s] Building format(s) --all. [ 237s] This may take some time... [ 237s] fmtutil failed. Output has been stored in [ 237s] /tmp/fmtutil.kqBCYH5P [ 237s] Please include this file if you report a bug. [ 238s] dpkg: error processing package tex-common (--install): [ 238s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 238s] Errors were encountered while processing: [ 238s] tex-common [ 238s] exit ... [ 238s] ### VM INTERACTION START ### [ 241s] [ 218.071427] sysrq: Power Off [ 241s] [ 218.081300] reboot: Power down [ 241s] ### VM INTERACTION END ### [ 241s] [ 241s] lamb05 failed "build osmo-bsc_1.6.0.417.8c03b.dsc" at Fri Dec 4 02:26:52 UTC 2020. [ 241s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:36:53 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:36:53 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fc9a0e38a3b4_48252b172cac05f839233a@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: [ 550s] ^ [ 550s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 550s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function) [ 550s] case BSSGP_PDUT_OVERLOAD: [ 550s] ^ [ 550s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 550s] Makefile:482: recipe for target 'gb_proxy.o' failed [ 550s] make[4]: *** [gb_proxy.o] Error 1 [ 550s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/gbproxy' [ 550s] Makefile:383: recipe for target 'all-recursive' failed [ 550s] make[3]: *** [all-recursive] Error 1 [ 550s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 550s] Makefile:449: recipe for target 'all-recursive' failed [ 550s] make[2]: *** [all-recursive] Error 1 [ 550s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 550s] Makefile:380: recipe for target 'all' failed [ 550s] make[1]: *** [all] Error 2 [ 550s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 550s] dh_auto_build: make -j1 returned exit code 2 [ 550s] debian/rules:45: recipe for target 'build' failed [ 550s] make: *** [build] Error 2 [ 550s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 550s] ### VM INTERACTION START ### [ 551s] Powering off. [ 551s] [ 504.589627] reboot: Power down [ 551s] ### VM INTERACTION END ### [ 551s] [ 551s] lamb53 failed "build osmo-sgsn_1.6.0.75.5525.dsc" at Fri Dec 4 02:36:40 UTC 2020. [ 551s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:38:19 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:38:19 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc9a12277e47_48252b172cac05f8392814@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 183s] Processing triggers for mailcap (3.67) ... [ 183s] Processing triggers for man-db (2.9.3-2) ... [ 184s] [450/515] installing texlive-plain-generic-2020.20201129-1 [ 187s] Processing triggers for tex-common (6.15) ... [ 187s] Running mktexlsr. This may take some time... done. [ 187s] [451/515] installing libosmo-netif-dev-1.0.0.8.bd77 [ 187s] [452/515] installing texlive-latex-base-2020.20201129-2 [ 188s] Processing triggers for man-db (2.9.3-2) ... [ 188s] Processing triggers for tex-common (6.15) ... [ 188s] Running mktexlsr. This may take some time... done. [ 189s] Running updmap-sys. This may take some time... done. [ 189s] Running mktexlsr /var/lib/texmf ... done. [ 189s] Building format(s) --all. [ 197s] This may take some time... [ 197s] fmtutil failed. Output has been stored in [ 197s] /tmp/fmtutil.Fhe0wSmJ [ 197s] Please include this file if you report a bug. [ 197s] dpkg: error processing package tex-common (--install): [ 197s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 197s] Errors were encountered while processing: [ 197s] tex-common [ 197s] exit ... [ 197s] ### VM INTERACTION START ### [ 200s] [ 179.577452] sysrq: Power Off [ 200s] [ 179.585586] reboot: Power down [ 200s] ### VM INTERACTION END ### [ 200s] [ 200s] lamb11 failed "build osmo-msc_1.6.1.87.e917b.dsc" at Fri Dec 4 02:38:12 UTC 2020. [ 200s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:39:44 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:39:44 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc9a17e3f660_48252b172cac05f8393522@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: [ 226s] Processing triggers for mailcap (3.67) ... [ 226s] Processing triggers for man-db (2.9.3-2) ... [ 226s] [448/512] installing texlive-plain-generic-2020.20201129-1 [ 230s] Processing triggers for tex-common (6.15) ... [ 230s] Running mktexlsr. This may take some time... done. [ 230s] [449/512] installing libosmo-netif-dev-1.0.0.8.bd77 [ 230s] [450/512] installing texlive-latex-base-2020.20201129-2 [ 231s] Processing triggers for man-db (2.9.3-2) ... [ 231s] Processing triggers for tex-common (6.15) ... [ 231s] Running mktexlsr. This may take some time... done. [ 232s] Running updmap-sys. This may take some time... done. [ 232s] Running mktexlsr /var/lib/texmf ... done. [ 232s] Building format(s) --all. [ 240s] This may take some time... [ 240s] fmtutil failed. Output has been stored in [ 240s] /tmp/fmtutil.DgVnBhas [ 240s] Please include this file if you report a bug. [ 240s] dpkg: error processing package tex-common (--install): [ 240s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 240s] Errors were encountered while processing: [ 240s] tex-common [ 240s] exit ... [ 240s] ### VM INTERACTION START ### [ 243s] [ 221.650361] sysrq: Power Off [ 243s] [ 221.656265] reboot: Power down [ 243s] ### VM INTERACTION END ### [ 243s] [ 243s] lamb16 failed "build osmo-sgsn_1.6.0.75.5525.dsc" at Fri Dec 4 02:39:26 UTC 2020. [ 243s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:46:36 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:46:36 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc9a31e8348b_48252b172cac05f8396031@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: [ 83s] CC gb_proxy_main.o [ 83s] CC gb_proxy_vty.o [ 83s] CC gb_proxy_ctrl.o [ 84s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 84s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 84s] case BSSGP_PDUT_OVERLOAD: [ 84s] ^~~~~~~~~~~~~~~~~~~ [ 84s] BSSGP_PDUT_BVC_BLOCK [ 84s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 84s] make[3]: *** [Makefile:492: gb_proxy.o] Error 1 [ 84s] make[3]: *** Waiting for unfinished jobs.... [ 84s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/gbproxy' [ 84s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 84s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src' [ 84s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 84s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525' [ 84s] make: *** [Makefile:392: all] Error 2 [ 84s] error: Bad exit status from /var/tmp/rpm-tmp.adts6w (%build) [ 84s] [ 84s] [ 84s] RPM build errors: [ 84s] Bad exit status from /var/tmp/rpm-tmp.adts6w (%build) [ 84s] ### VM INTERACTION START ### [ 87s] [ 66.806655] sysrq: SysRq : Power Off [ 87s] [ 66.807844] reboot: Power down [ 88s] ### VM INTERACTION END ### [ 88s] [ 88s] obs-arm-9 failed "build osmo-sgsn.spec" at Fri Dec 4 02:46:28 UTC 2020. [ 88s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 02:53:27 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 02:53:27 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fc9a4c1414c4_48252b172cac05f83986b8@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: [ 82s] CC gb_proxy_ctrl.o [ 82s] CC gb_proxy_main.o [ 82s] CC gb_proxy_vty.o [ 82s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 82s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 82s] 1421 | case BSSGP_PDUT_OVERLOAD: [ 82s] | ^~~~~~~~~~~~~~~~~~~ [ 82s] | BSSGP_PDUT_BVC_BLOCK [ 82s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 82s] make[3]: *** [Makefile:502: gb_proxy.o] Error 1 [ 82s] make[3]: *** Waiting for unfinished jobs.... [ 82s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/gbproxy' [ 82s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 82s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src' [ 82s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 82s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525' [ 82s] make: *** [Makefile:392: all] Error 2 [ 82s] error: Bad exit status from /var/tmp/rpm-tmp.4yTNw1 (%build) [ 82s] [ 82s] [ 82s] RPM build errors: [ 82s] Bad exit status from /var/tmp/rpm-tmp.4yTNw1 (%build) [ 82s] ### VM INTERACTION START ### [ 86s] [ 66.806579] sysrq: Power Off [ 86s] [ 66.807836] reboot: Power down [ 86s] ### VM INTERACTION END ### [ 86s] [ 86s] obs-arm-8 failed "build osmo-sgsn.spec" at Fri Dec 4 02:53:16 UTC 2020. [ 86s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 03:08:19 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 03:08:19 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fc9a825b5297_48252b172cac05f84043d8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 132s] [460/527] installing python3.9-3.9.1~rc1-2 [ 133s] Processing triggers for mailcap (3.67) ... [ 133s] Processing triggers for man-db (2.9.3-2) ... [ 133s] [461/527] installing texlive-plain-generic-2020.20201129-1 [ 136s] Processing triggers for tex-common (6.15) ... [ 136s] Running mktexlsr. This may take some time... done. [ 136s] [462/527] installing texlive-latex-base-2020.20201129-2 [ 137s] Processing triggers for man-db (2.9.3-2) ... [ 137s] Processing triggers for tex-common (6.15) ... [ 137s] Running mktexlsr. This may take some time... done. [ 138s] Running updmap-sys. This may take some time... done. [ 138s] Running mktexlsr /var/lib/texmf ... done. [ 138s] Building format(s) --all. [ 144s] This may take some time... [ 144s] fmtutil failed. Output has been stored in [ 144s] /tmp/fmtutil.Y3vDP8RD [ 144s] Please include this file if you report a bug. [ 144s] dpkg: error processing package tex-common (--install): [ 144s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 144s] Errors were encountered while processing: [ 144s] tex-common [ 144s] exit ... [ 144s] ### VM INTERACTION START ### [ 147s] [ 134.339127] sysrq: Power Off [ 147s] [ 134.341946] reboot: Power down [ 147s] ### VM INTERACTION END ### [ 147s] [ 147s] build83 failed "build osmo-remsim_0.2.2.103.dc34.dsc" at Fri Dec 4 03:08:13 UTC 2020. [ 147s] -- 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 Dec 4 04:06:45 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 4 Dec 2020 04:06:45 +0000 Subject: Change in osmo-sgsn[master]: mm_state_gb_fsm: Handle implicit detach from mm_standby In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 ) Change subject: mm_state_gb_fsm: Handle implicit detach from mm_standby ...................................................................... Patch Set 3: next time I'm looking into the fsm I'll write a comment and add it to this gerrit. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I63d04a2dcdc17b4df6616c515641c435d919c787 Gerrit-Change-Number: 17080 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 04:06:45 +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 Dec 4 07:35:27 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 07:35:27 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fc9e6d66dae0_48252b172cac05f8465682@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: [ 145s] CC gb_proxy_ctrl.o [ 145s] CC gb_proxy_tlli.o [ 145s] CC gb_proxy_patch.o [ 146s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 146s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 146s] 1421 | case BSSGP_PDUT_OVERLOAD: [ 146s] | ^~~~~~~~~~~~~~~~~~~ [ 146s] | BSSGP_PDUT_BVC_BLOCK [ 146s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 146s] make[3]: *** [Makefile:502: gb_proxy.o] Error 1 [ 146s] make[3]: *** Waiting for unfinished jobs.... [ 146s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/gbproxy' [ 146s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 146s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src' [ 146s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 146s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525' [ 146s] make: *** [Makefile:392: all] Error 2 [ 146s] error: Bad exit status from /var/tmp/rpm-tmp.N0E7tT (%build) [ 146s] [ 146s] [ 146s] RPM build errors: [ 146s] Bad exit status from /var/tmp/rpm-tmp.N0E7tT (%build) [ 147s] ### VM INTERACTION START ### [ 150s] [ 130.798655] sysrq: Power Off [ 150s] [ 130.800534] reboot: Power down [ 151s] ### VM INTERACTION END ### [ 151s] [ 151s] obs-arm-5 failed "build osmo-sgsn.spec" at Fri Dec 4 07:35:24 UTC 2020. [ 151s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 07:51:44 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 07:51:44 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5fc9ea989d956_48252b172cac05f8467166@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: [ 151s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/sgsn' [ 151s] Making all in gbproxy [ 151s] make[3]: Entering directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/gbproxy' [ 151s] CC gb_proxy.o [ 151s] gb_proxy.c: In function 'gbprox_rx_sig_from_sgsn': [ 151s] gb_proxy.c:1421:7: error: 'BSSGP_PDUT_OVERLOAD' undeclared (first use in this function); did you mean 'BSSGP_PDUT_BVC_BLOCK'? [ 151s] case BSSGP_PDUT_OVERLOAD: [ 151s] ^~~~~~~~~~~~~~~~~~~ [ 151s] BSSGP_PDUT_BVC_BLOCK [ 151s] gb_proxy.c:1421:7: note: each undeclared identifier is reported only once for each function it appears in [ 151s] make[3]: *** [Makefile:492: gb_proxy.o] Error 1 [ 151s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src/gbproxy' [ 151s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 151s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525/src' [ 151s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 151s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.75.5525' [ 151s] make: *** [Makefile:392: all] Error 2 [ 151s] error: Bad exit status from /var/tmp/rpm-tmp.KecQ9s (%build) [ 151s] [ 151s] [ 151s] RPM build errors: [ 151s] Bad exit status from /var/tmp/rpm-tmp.KecQ9s (%build) [ 152s] ### VM INTERACTION START ### [ 155s] [ 128.012562] sysrq: SysRq : Power Off [ 155s] [ 128.014717] reboot: Power down [ 155s] ### VM INTERACTION END ### [ 155s] [ 155s] armbuild15 failed "build osmo-sgsn.spec" at Fri Dec 4 07:51:39 UTC 2020. [ 155s] -- 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 Dec 4 08:25:09 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 08:25:09 +0000 Subject: Change in osmo-bts[master]: tests/power: rename s/power_test/ms_power_loop_test/ In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21478 ) Change subject: tests/power: rename s/power_test/ms_power_loop_test/ ...................................................................... tests/power: rename s/power_test/ms_power_loop_test/ There will also be bs_power_loop test soon. Change-Id: I3f58eb85e44825a159af58948f01d9ffd75bceec Related: SYS#4918 --- M .gitignore M tests/power/Makefile.am R tests/power/ms_power_loop_test.c R tests/power/ms_power_loop_test.err R tests/power/ms_power_loop_test.ok M tests/testsuite.at 6 files changed, 9 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/.gitignore b/.gitignore index dfb09c7..22a1bdd 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,7 @@ tests/handover/handover_test tests/tx_power/tx_power_test tests/ta_control/ta_control_test +tests/power/ms_power_loop_test tests/testsuite tests/testsuite.log @@ -85,7 +86,6 @@ debian/osmo-bts-trx-dbg/ debian/osmo-bts-trx/ debian/tmp/ -/tests/power/power_test # manuals doc/manuals/*.html diff --git a/tests/power/Makefile.am b/tests/power/Makefile.am index de83760..d6e1a6b 100644 --- a/tests/power/Makefile.am +++ b/tests/power/Makefile.am @@ -2,8 +2,8 @@ AM_CFLAGS = -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCODEC_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOSMOTRAU_CFLAGS) LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOCODEC_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) $(LIBOSMOTRAU_LIBS) -noinst_PROGRAMS = power_test -EXTRA_DIST = power_test.ok power_test.err +noinst_PROGRAMS = ms_power_loop_test +EXTRA_DIST = ms_power_loop_test.ok ms_power_loop_test.err -power_test_SOURCES = power_test.c $(srcdir)/../stubs.c -power_test_LDADD = $(top_builddir)/src/common/libbts.a $(LIBOSMOABIS_LIBS) $(LDADD) +ms_power_loop_test_SOURCES = ms_power_loop_test.c $(srcdir)/../stubs.c +ms_power_loop_test_LDADD = $(top_builddir)/src/common/libbts.a $(LIBOSMOABIS_LIBS) $(LDADD) diff --git a/tests/power/power_test.c b/tests/power/ms_power_loop_test.c similarity index 100% rename from tests/power/power_test.c rename to tests/power/ms_power_loop_test.c diff --git a/tests/power/power_test.err b/tests/power/ms_power_loop_test.err similarity index 100% rename from tests/power/power_test.err rename to tests/power/ms_power_loop_test.err diff --git a/tests/power/power_test.ok b/tests/power/ms_power_loop_test.ok similarity index 100% rename from tests/power/power_test.ok rename to tests/power/ms_power_loop_test.ok diff --git a/tests/testsuite.at b/tests/testsuite.at index e9d6e46..0590580 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -31,11 +31,11 @@ AT_CHECK([$abs_top_builddir/tests/handover/handover_test], [], [expout], [ignore]) AT_CLEANUP -AT_SETUP([power]) +AT_SETUP([ms_power_loop]) AT_KEYWORDS([power]) -cat $abs_srcdir/power/power_test.ok > expout -cat $abs_srcdir/power/power_test.err > experr -AT_CHECK([$abs_top_builddir/tests/power/power_test], [], [expout], [experr]) +cat $abs_srcdir/power/ms_power_loop_test.ok > expout +cat $abs_srcdir/power/ms_power_loop_test.err > experr +AT_CHECK([$abs_top_builddir/tests/power/ms_power_loop_test], [], [expout], [experr]) AT_CLEANUP AT_SETUP([tx_power]) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f58eb85e44825a159af58948f01d9ffd75bceec Gerrit-Change-Number: 21478 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 Fri Dec 4 08:37:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 08:37:13 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct bts_power_ctrl_params' 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/+/21499 to look at the new patch set (#2). Change subject: power_control: clarify units in 'struct bts_power_ctrl_params' ...................................................................... power_control: clarify units in 'struct bts_power_ctrl_params' Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M src/common/power_control.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/ms_power_loop_test.c 11 files changed, 41 insertions(+), 41 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/99/21499/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Gerrit-Change-Number: 21499 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 Fri Dec 4 08:37:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 08:37:13 +0000 Subject: Change in osmo-bts[master]: vty: add commands for Downlink power control 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/+/21438 to look at the new patch set (#3). Change subject: vty: add commands for Downlink power control ...................................................................... vty: add commands for Downlink power control Change-Id: I61efbe177aa06584cd7412640b888913de6e8f9d Related: SYS#4918 --- M src/common/vty.c 1 file changed, 93 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/38/21438/3 -- 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: 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 Fri Dec 4 08:37:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 08:37:13 +0000 Subject: Change in osmo-bts[master]: vty: resurrect per-lchan BS/MS Power Control information 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/+/21481 to look at the new patch set (#3). Change subject: vty: resurrect per-lchan BS/MS Power Control information ...................................................................... vty: resurrect per-lchan BS/MS Power Control information Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 47 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/81/21481/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Gerrit-Change-Number: 21481 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Dec 4 09:09:31 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 4 Dec 2020 09:09:31 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master?= =?UTF-8?Q?-osmo-ccid-firmware_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,a4=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#402?= In-Reply-To: <641933232.766.1606986459871@jenkins.osmocom.org> References: <641933232.766.1606986459871@jenkins.osmocom.org> Message-ID: <1906603874.822.1607072971629@jenkins.osmocom.org> See Changes: ------------------------------------------ [...truncated 84.78 KB...] checking whether arm-none-eabi-gcc is Clang... no checking whether pthreads work with -pthread... no checking whether pthreads work with -pthreads... no checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... no checking whether pthreads work with -Kthread... no checking whether pthreads work with -pthread... no checking whether pthreads work with -pthreads... no checking whether pthreads work with -mthreads... no checking for the pthreads library -lpthread... no checking whether pthreads work with --thread-safe... no checking whether pthreads work with -mt... no checking for pthread-config... no checking for library containing clock_gettime... no checking for doxygen... /usr/bin/doxygen checking whether SYS_getrandom is declared... no checking if arm-none-eabi-gcc supports -fvisibility=hidden... yes checking for localtime_r... no checking whether struct tm has tm_gmtoff member... no checking whether to workaround TLS bug in old gcc on ARM platforms... -mtls-dialect=gnu2 configure: WARNING: Applying workaround for TLS bug on ARM platform for GCC < 7.3.0 (-mtls-dialect=gnu2). On some toolchain versions, ld may crash. In that case you must build with CFLAGS='-O0' and run ./configure with --disable-detect-tls-gcc-arm-bug checking for TALLOC... yes checking for PCSC... yes checking for LIBGNUTLS... yes checking for LIBMNL... yes checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/site-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/site-packages checking for osmo_verify_transcript_vty.py... yes checking whether to enable VTY/CTRL tests... yes checking whether to enable ARM NEON instructions support... no checking whether to build with code coverage support... no checking whether arm-none-eabi-gcc has __builtin_cpu_supports built-in... no configure: WARNING: Runtime SIMD detection will be disabled CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -mthumb -Os -mlong-calls -g3 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -I /home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM -Wno-error=format -mtls-dialect=gnu2 -DBUILDING_LIBOSMOCORE -Wall" CPPFLAGS="-D__thread='' -DBUILDING_LIBOSMOCORE -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmocore.pc config.status: creating libosmocodec.pc config.status: creating libosmocoding.pc config.status: creating libosmovty.pc config.status: creating libosmogsm.pc config.status: creating libosmogb.pc config.status: creating libosmoctrl.pc config.status: creating libosmosim.pc config.status: creating libosmousb.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/vty/Makefile config.status: creating src/codec/Makefile config.status: creating src/coding/Makefile config.status: creating src/sim/Makefile config.status: creating src/usb/Makefile config.status: creating src/gsm/Makefile config.status: creating src/gb/Makefile config.status: creating src/ctrl/Makefile config.status: creating src/pseudotalloc/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating utils/Makefile config.status: creating Doxyfile.core config.status: creating Doxyfile.gsm config.status: creating Doxyfile.vty config.status: creating Doxyfile.codec config.status: creating Doxyfile.coding config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating contrib/libosmocore.spec config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.4.0.240-75197 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/libosmocore' Making install in include make[2]: Entering directory '/build/deps/libosmocore/include' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'tch_axs_sid_update' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory '/build/deps/libosmocore/include' GEN osmocom/core/bit16gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc8gen.h make[4]: Entering directory '/build/deps/libosmocore/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/install/stow/libosmocore/include' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/core' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/exec.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/mnl.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h '/build/install/stow/libosmocore/include/osmocom/core' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/cbsp.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/bsslap.h osmocom/gsm/bssmap_le.h osmocom/gsm/gad.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm0808_lcs.h osmocom/gsm/gsm29205.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm23236.h osmocom/gsm/gsm29118.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_arfcn_range_encode.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm48_rest_octets.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/gsup_sms.h osmocom/gsm/i460_mux.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h '/build/install/stow/libosmocore/include/osmocom/gsm' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/coding' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h osmocom/coding/gsm0503_amr_dtx.h '/build/install/stow/libosmocore/include/osmocom/coding' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/core' /usr/bin/install -c -m 644 osmocom/core/signal.h osmocom/core/socket.h osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/tdef.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/sockaddr_str.h osmocom/core/use_count.h '/build/install/stow/libosmocore/include/osmocom/core' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm/protocol' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_23_032.h osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_23_041.h osmocom/gsm/protocol/gsm_29_118.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/gsm_48_049.h osmocom/gsm/protocol/gsm_48_071.h osmocom/gsm/protocol/gsm_49_031.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h '/build/install/stow/libosmocore/include/osmocom/gsm/protocol' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/sim' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h '/build/install/stow/libosmocore/include/osmocom/sim' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gprs' /usr/bin/install -c -m 644 osmocom/gprs/frame_relay.h osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_ns2.h osmocom/gprs/gprs_rlc.h '/build/install/stow/libosmocore/include/osmocom/gprs' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/crypt' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h '/build/install/stow/libosmocore/include/osmocom/crypt' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm' /usr/bin/install -c -m 644 osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/oap_client.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h '/build/install/stow/libosmocore/include/osmocom/gsm' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/ctrl' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h '/build/install/stow/libosmocore/include/osmocom/ctrl' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gprs/protocol' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h '/build/install/stow/libosmocore/include/osmocom/gprs/protocol' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/codec' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h '/build/install/stow/libosmocore/include/osmocom/codec' make[4]: Leaving directory '/build/deps/libosmocore/include' make[3]: Leaving directory '/build/deps/libosmocore/include' make[2]: Leaving directory '/build/deps/libosmocore/include' Making install in src make[2]: Entering directory '/build/deps/libosmocore/src' GEN crc8gen.c GEN crc32gen.c GEN crc16gen.c GEN crc64gen.c make install-am make[3]: Entering directory '/build/deps/libosmocore/src' CC timer.lo CC context.lo CC timer_gettimeofday.lo CC timer_clockgettime.lo CC signal.lo CC select.lo CC msgb.lo CC bits.lo CC bitvec.lo CC bitcomp.lo CC counter.lo CC fsm.lo CC write_queue.lo CC utils.lo CC socket.lo CC logging.lo CC logging_syslog.lo CC logging_gsmtap.lo CC rate_ctr.lo CC gsmtap_util.lo logging.c:119:9: note: #pragma message: logging multithread support disabled in embedded build #pragma message ("logging multithread support disabled in embedded build") ^ CC crc16.lo CC panic.lo CC backtrace.lo CC conv.lo CC application.lo CC rbtree.lo CC strrb.lo CC loggingrb.lo CC crc8gen.lo CC crc16gen.lo CC crc32gen.lo CC crc64gen.lo CC macaddr.lo CC stat_item.lo CC stats.lo CC stats_statsd.lo CC prim.lo CC conv_acc.lo CC conv_acc_generic.lo CC sercomm.lo CC prbs.lo CC isdnhdlc.lo CC tdef.lo CC sockaddr_str.lo CC use_count.lo CC exec.lo CC mnl.lo In file included from mnl.c:34:0: ../include/osmocom/core/mnl.h:7:27: fatal error: libmnl/libmnl.h: No such file or directory compilation terminated. Makefile:624: recipe for target 'mnl.lo' failed make[3]: *** [mnl.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/libosmocore/src' make[2]: *** [install] Error 2 Makefile:728: recipe for target 'install' failed make[2]: Leaving directory '/build/deps/libosmocore/src' Makefile:705: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmocore' make[1]: *** [install-recursive] Error 1 Makefile:1004: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Dec 4 09:17:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:17:30 +0000 Subject: Change in libosmocore[master]: libosmogb: Add missing LIBMNL_CFLAGS References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21528 ) Change subject: libosmogb: Add missing LIBMNL_CFLAGS ...................................................................... libosmogb: Add missing LIBMNL_CFLAGS In Change-Id I779556991bfc88b7751b2be17bb81c329cfb9e01 we introduced the use of libmnl via osmo_mnl to libosmogb. Howver, we didn't add LIBMNL_CFLAGS in Makefile.am, which now (rightfully) fails on some distributions like the SuSE family of distributions. Let's fix this. Change-Id: Ib8740e8fd677026efb9dad5d5fe6b95147fb3c23 --- M src/gb/Makefile.am 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/28/21528/1 diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 41b6c6d..b140727 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -4,7 +4,10 @@ LIBVERSION=11:0:0 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} -fno-strict-aliasing $(TALLOC_CFLAGS) +AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} -fno-strict-aliasing \ + $(TALLOC_CFLAGS) \ + $(LIBMNL_CFLAGS) \ + $(NULL) # FIXME: this should eventually go into a milenage/Makefile.am noinst_HEADERS = common_vty.h gb_internal.h gprs_bssgp_internal.h gprs_ns2_internal.h -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib8740e8fd677026efb9dad5d5fe6b95147fb3c23 Gerrit-Change-Number: 21528 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 Dec 4 09:18:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:18:26 +0000 Subject: Change in libosmocore[master]: libosmogb: Add missing LIBMNL_CFLAGS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21528 ) Change subject: libosmogb: Add missing LIBMNL_CFLAGS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib8740e8fd677026efb9dad5d5fe6b95147fb3c23 Gerrit-Change-Number: 21528 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 04 Dec 2020 09:18: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 Dec 4 09:20:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:20:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: remove include In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21453 ) Change subject: gprs_ns2_fr: remove include ...................................................................... Patch Set 2: somehow we still have debian8 compile errors. will have a look. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iccf931207d8bea19969fbfc4225f622a1a709972 Gerrit-Change-Number: 21453 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 09:20: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 Fri Dec 4 09:22:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:22:07 +0000 Subject: Change in libosmocore[master]: libosmogb: Add missing LIBMNL_CFLAGS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21528 ) Change subject: libosmogb: Add missing LIBMNL_CFLAGS ...................................................................... libosmogb: Add missing LIBMNL_CFLAGS In Change-Id I779556991bfc88b7751b2be17bb81c329cfb9e01 we introduced the use of libmnl via osmo_mnl to libosmogb. Howver, we didn't add LIBMNL_CFLAGS in Makefile.am, which now (rightfully) fails on some distributions like the SuSE family of distributions. Let's fix this. Change-Id: Ib8740e8fd677026efb9dad5d5fe6b95147fb3c23 --- M src/gb/Makefile.am 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 41b6c6d..b140727 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -4,7 +4,10 @@ LIBVERSION=11:0:0 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} -fno-strict-aliasing $(TALLOC_CFLAGS) +AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} -fno-strict-aliasing \ + $(TALLOC_CFLAGS) \ + $(LIBMNL_CFLAGS) \ + $(NULL) # FIXME: this should eventually go into a milenage/Makefile.am noinst_HEADERS = common_vty.h gb_internal.h gprs_bssgp_internal.h gprs_ns2_internal.h -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib8740e8fd677026efb9dad5d5fe6b95147fb3c23 Gerrit-Change-Number: 21528 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 Fri Dec 4 09:29:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:29:18 +0000 Subject: Change in libosmocore[master]: mnl: Use mnl_socket_open() insatead of mnl_socket_open2() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21529 ) Change subject: mnl: Use mnl_socket_open() insatead of mnl_socket_open2() ...................................................................... mnl: Use mnl_socket_open() insatead of mnl_socket_open2() mnl_socket_open2 is not yet available on e.g. Debian 8. Furthermore, osmo_fd_register() will set the CLOEXEC flag on every file descriptor anyway, so there is no benefit from using mnl_socket_open2() at all. Change-Id: I0b37ffa148ff0c0a22281b490820353f5fef00eb --- M src/mnl.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/21529/1 diff --git a/src/mnl.c b/src/mnl.c index 13d9c9e..a7d3511 100644 --- a/src/mnl.c +++ b/src/mnl.c @@ -74,7 +74,7 @@ olm->priv = priv; olm->mnl_cb = mnl_cb; - olm->mnls = mnl_socket_open2(bus, SOCK_CLOEXEC); + olm->mnls = mnl_socket_open(bus); if (!olm->mnls) { LOGP(DLGLOBAL, LOGL_ERROR, "Error creating netlink socket for bus %d: %s\n", bus, strerror(errno)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0b37ffa148ff0c0a22281b490820353f5fef00eb Gerrit-Change-Number: 21529 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 Dec 4 09:30:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:30:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: remove include References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21530 ) Change subject: gprs_ns2_fr: remove include ...................................................................... gprs_ns2_fr: remove include It's not needed because net/if.h already include the required parts. Furthermore the linux/if.h generates a compiler error in combination with net/if.h on older systems (e.g. debian jessie) Change-Id: I53650e9c55bb9dd98ba60269025e72673e9f82c1 --- M src/gb/gprs_ns2_fr.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/21530/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 3cf44ef..a651e1d 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -340,7 +340,6 @@ #ifdef ENABLE_LIBMNL #include -#include #include #include -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53650e9c55bb9dd98ba60269025e72673e9f82c1 Gerrit-Change-Number: 21530 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 Dec 4 09:31:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:31:58 +0000 Subject: Change in libosmocore[master]: mnl: Use mnl_socket_open() insatead of mnl_socket_open2() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21529 ) Change subject: mnl: Use mnl_socket_open() insatead of mnl_socket_open2() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0b37ffa148ff0c0a22281b490820353f5fef00eb Gerrit-Change-Number: 21529 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 04 Dec 2020 09:31: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 Dec 4 09:32:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:32:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: remove include In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21530 ) Change subject: gprs_ns2_fr: remove include ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53650e9c55bb9dd98ba60269025e72673e9f82c1 Gerrit-Change-Number: 21530 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 04 Dec 2020 09: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 Fri Dec 4 09:35:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:35:09 +0000 Subject: Change in libosmocore[master]: f References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21531 ) Change subject: f ...................................................................... f Change-Id: I671f3d69c0489e246b9cf93d470d64e2a3d6007a --- M src/gb/gprs_bssgp.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/31/21531/1 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 1bc621c..7fb3a30 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -586,6 +586,7 @@ !TLVP_PRES_LEN(tp, BSSGP_IE_NUM_OCT_AFF, 3)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx LLC DISCARDED " "missing mandatory IE\n", ctx->bvci); + return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I671f3d69c0489e246b9cf93d470d64e2a3d6007a Gerrit-Change-Number: 21531 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 Dec 4 09:35:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:35:37 +0000 Subject: Change in libosmocore[master]: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21493 ) Change subject: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21493/2/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/21493/2/src/gb/gprs_bssgp.c at 588 PS2, Line 588: "missing mandatory IE\n", ctx->bvci); > return bssgp_tx_status() missing here [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 Gerrit-Change-Number: 21493 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 09:35: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 Fri Dec 4 09:35:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 09:35:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21494 ) Change subject: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21494/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21494/2/src/gb/gprs_ns2.c at 596 PS2, Line 596: LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rejecting message without NSVCI. Tx NS STATUS (cause=%s)\n", This logging statement looks wrong: we check if NSEI is present, and log that NSVCI is absent? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b Gerrit-Change-Number: 21494 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 09:35:44 +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 Dec 4 09:37:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:37:37 +0000 Subject: Change in libosmocore[master]: mnl: Use mnl_socket_open() insatead of mnl_socket_open2() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21529 ) Change subject: mnl: Use mnl_socket_open() insatead of mnl_socket_open2() ...................................................................... mnl: Use mnl_socket_open() insatead of mnl_socket_open2() mnl_socket_open2 is not yet available on e.g. Debian 8. Furthermore, osmo_fd_register() will set the CLOEXEC flag on every file descriptor anyway, so there is no benefit from using mnl_socket_open2() at all. Change-Id: I0b37ffa148ff0c0a22281b490820353f5fef00eb --- M src/mnl.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/mnl.c b/src/mnl.c index 13d9c9e..a7d3511 100644 --- a/src/mnl.c +++ b/src/mnl.c @@ -74,7 +74,7 @@ olm->priv = priv; olm->mnl_cb = mnl_cb; - olm->mnls = mnl_socket_open2(bus, SOCK_CLOEXEC); + olm->mnls = mnl_socket_open(bus); if (!olm->mnls) { LOGP(DLGLOBAL, LOGL_ERROR, "Error creating netlink socket for bus %d: %s\n", bus, strerror(errno)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0b37ffa148ff0c0a22281b490820353f5fef00eb Gerrit-Change-Number: 21529 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 Fri Dec 4 09:37:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:37:37 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: remove include In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21530 ) Change subject: gprs_ns2_fr: remove include ...................................................................... gprs_ns2_fr: remove include It's not needed because net/if.h already include the required parts. Furthermore the linux/if.h generates a compiler error in combination with net/if.h on older systems (e.g. debian jessie) Change-Id: I53650e9c55bb9dd98ba60269025e72673e9f82c1 --- M src/gb/gprs_ns2_fr.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: laforge: 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 3cf44ef..a651e1d 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -340,7 +340,6 @@ #ifdef ENABLE_LIBMNL #include -#include #include #include -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53650e9c55bb9dd98ba60269025e72673e9f82c1 Gerrit-Change-Number: 21530 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 Fri Dec 4 09:37:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:37:57 +0000 Subject: Change in libosmocore[master]: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT 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/+/21493 to look at the new patch set (#5). Change subject: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT With TLVP_PRESENT we only check if a given TLV/IE is present, but don't verify that it's length matches our expectation. This can lead to out-of-bounds reads, so let's always use TLVP_PRES_LEN. Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 --- M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c 2 files changed, 32 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/21493/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 Gerrit-Change-Number: 21493 Gerrit-PatchSet: 5 Gerrit-Owner: laforge 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 Fri Dec 4 09:37:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:37:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT 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/+/21494 to look at the new patch set (#4). Change subject: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT With TLVP_PRESENT we only check if a given TLV/IE is present, but don't verify that it's length matches our expectation. This can lead to out-of-bounds reads, so let's always use TLVP_PRES_LEN. Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_message.c 2 files changed, 14 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/21494/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b Gerrit-Change-Number: 21494 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Dec 4 09:38:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:38:14 +0000 Subject: Change in libosmocore[master]: f In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21531 ) Change subject: f ...................................................................... Abandoned fixup, should never have been pushed -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I671f3d69c0489e246b9cf93d470d64e2a3d6007a Gerrit-Change-Number: 21531 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 Fri Dec 4 09:44:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 09:44:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21494 ) Change subject: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21494/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21494/2/src/gb/gprs_ns2.c at 596 PS2, Line 596: LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rejecting message without NSVCI. Tx NS STATUS (cause=%s)\n", > This logging statement looks wrong: we check if NSEI is present, and log that NSVCI is absent? I agree, but it is not changed by the patch at hand. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b Gerrit-Change-Number: 21494 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 09:44:21 +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 admin at opensuse.org Fri Dec 4 09:49:27 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 09:49:27 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca0641b8c30_48252b172cac05f8497244@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: [ 127s] [407/469] installing python3.9-3.9.1~rc1-2 [ 128s] Processing triggers for mailcap (3.67) ... [ 128s] Processing triggers for man-db (2.9.3-2) ... [ 128s] [408/469] installing texlive-plain-generic-2020.20201129-1 [ 131s] Processing triggers for tex-common (6.15) ... [ 131s] Running mktexlsr. This may take some time... done. [ 132s] [409/469] installing texlive-latex-base-2020.20201129-2 [ 132s] Processing triggers for man-db (2.9.3-2) ... [ 132s] Processing triggers for tex-common (6.15) ... [ 132s] Running mktexlsr. This may take some time... done. [ 133s] Running updmap-sys. This may take some time... done. [ 133s] Running mktexlsr /var/lib/texmf ... done. [ 133s] Building format(s) --all. [ 138s] This may take some time... [ 138s] fmtutil failed. Output has been stored in [ 138s] /tmp/fmtutil.xzj5gt7P [ 138s] Please include this file if you report a bug. [ 138s] dpkg: error processing package tex-common (--install): [ 138s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 138s] Errors were encountered while processing: [ 138s] tex-common [ 138s] exit ... [ 138s] ### VM INTERACTION START ### [ 141s] [ 125.541266] sysrq: Power Off [ 141s] [ 125.546286] reboot: Power down [ 142s] ### VM INTERACTION END ### [ 142s] [ 142s] sheep87 failed "build osmo-gsm-manuals-dev_0.3.0.37.c507.dsc" at Fri Dec 4 09:49:15 UTC 2020. [ 142s] -- 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 Dec 4 10:02:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 10:02:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21494 ) Change subject: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b Gerrit-Change-Number: 21494 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 10:02:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Dec 4 10:11:27 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 10:11:27 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fca0b695cf9a_48252b172cac05f8505863@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: [ 197s] [COMPILING apps/dfu/main.c] [ 198s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 198s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 198s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 198s] Memory region Used Size Region Size %age Used [ 198s] rom: 16580 B 16 KB 101.20% [ 198s] 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 [ 198s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 198s] /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' [ 198s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 198s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 198s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 198s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 198s] collect2: error: ld returned 1 exit status [ 198s] % [ 198s] make[2]: *** [Makefile:234: flash] Error 1 [ 198s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 198s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 198s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 198s] dh_auto_build: error: make -j1 returned exit code 2 [ 198s] make: *** [debian/rules:16: build] Error 25 [ 198s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 198s] ### VM INTERACTION START ### [ 202s] [ 186.469503] sysrq: Power Off [ 202s] [ 186.508791] reboot: Power down [ 202s] ### VM INTERACTION END ### [ 202s] [ 202s] lamb14 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 4 10:11:11 UTC 2020. [ 202s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 10:11:44 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 10:11:44 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fca0b6ae6034_48252b172cac05f85059d8@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: [ 199s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 199s] [COMPILING libboard/qmod/source/card_pres.c] [ 199s] [COMPILING libboard/qmod/source/wwan_led.c] [ 199s] [COMPILING libboard/qmod/source/i2c.c] [ 199s] [COMPILING libboard/qmod/source/board_qmod.c] [ 199s] [COMPILING apps/dfu/main.c] [ 200s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 200s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 200s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 200s] Memory region Used Size Region Size %age Used [ 200s] rom: 16588 B 16 KB 101.25% [ 200s] 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' [ 200s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 200s] collect2: error: ld returned 1 exit status [ 200s] % [ 200s] make[2]: *** [Makefile:234: flash] Error 1 [ 200s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 200s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 200s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 200s] dh_auto_build: error: make -j1 returned exit code 2 [ 200s] make: *** [debian/rules:16: build] Error 25 [ 200s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 200s] ### VM INTERACTION START ### [ 203s] [ 188.461844] sysrq: Power Off [ 203s] [ 188.464740] reboot: Power down [ 203s] ### VM INTERACTION END ### [ 203s] [ 203s] old-atreju4 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 4 10:11:27 UTC 2020. [ 203s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 10:21:09 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 10:21:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca0da16c005_48252b172cac05f850962@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: [ 137s] [439/514] installing python3.9-3.9.1~rc1-2 [ 138s] Processing triggers for mailcap (3.67) ... [ 138s] Processing triggers for man-db (2.9.3-2) ... [ 139s] [440/514] installing texlive-plain-generic-2020.20201129-1 [ 142s] Processing triggers for tex-common (6.15) ... [ 142s] Running mktexlsr. This may take some time... done. [ 142s] [441/514] installing texlive-latex-base-2020.20201129-2 [ 142s] Processing triggers for man-db (2.9.3-2) ... [ 143s] Processing triggers for tex-common (6.15) ... [ 143s] Running mktexlsr. This may take some time... done. [ 143s] Running updmap-sys. This may take some time... done. [ 143s] Running mktexlsr /var/lib/texmf ... done. [ 143s] Building format(s) --all. [ 150s] This may take some time... [ 150s] fmtutil failed. Output has been stored in [ 150s] /tmp/fmtutil.CiKBc99c [ 150s] Please include this file if you report a bug. [ 150s] dpkg: error processing package tex-common (--install): [ 150s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 150s] Errors were encountered while processing: [ 150s] tex-common [ 150s] exit ... [ 150s] ### VM INTERACTION START ### [ 153s] [ 138.973123] sysrq: Power Off [ 153s] [ 138.983254] reboot: Power down [ 153s] ### VM INTERACTION END ### [ 153s] [ 153s] sheep82 failed "build osmo-sip-connector_1.4.1.6.05ee.dsc" at Fri Dec 4 10:21:01 UTC 2020. [ 153s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 10:21:26 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 10:21:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca0dc17dfd8_48252b172cac05f8509764@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-ggsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: [ 146s] [428/491] installing python3.9-3.9.1~rc1-2 [ 146s] Processing triggers for mailcap (3.67) ... [ 147s] Processing triggers for man-db (2.9.3-2) ... [ 147s] [429/491] installing texlive-plain-generic-2020.20201129-1 [ 149s] Processing triggers for tex-common (6.15) ... [ 150s] Running mktexlsr. This may take some time... done. [ 150s] [430/491] installing texlive-latex-base-2020.20201129-2 [ 150s] Processing triggers for man-db (2.9.3-2) ... [ 150s] Processing triggers for tex-common (6.15) ... [ 150s] Running mktexlsr. This may take some time... done. [ 151s] Running updmap-sys. This may take some time... done. [ 151s] Running mktexlsr /var/lib/texmf ... done. [ 151s] Building format(s) --all. [ 158s] This may take some time... [ 158s] fmtutil failed. Output has been stored in [ 158s] /tmp/fmtutil.gnVnOiTV [ 158s] Please include this file if you report a bug. [ 158s] dpkg: error processing package tex-common (--install): [ 158s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 158s] Errors were encountered while processing: [ 158s] tex-common [ 158s] exit ... [ 158s] ### VM INTERACTION START ### [ 161s] [ 144.337358] sysrq: Power Off [ 161s] [ 144.340596] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] build70 failed "build osmo-ggsn_1.6.0.13.1230.dsc" at Fri Dec 4 10:21:08 UTC 2020. [ 161s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 10:21:43 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 10:21:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca0dc2a8d43_48252b172cac05f850981f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-e1d failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-e1d Last lines of build log: [ 174s] [426/489] installing python3.9-3.9.1~rc1-2 [ 175s] Processing triggers for mailcap (3.67) ... [ 175s] Processing triggers for man-db (2.9.3-2) ... [ 176s] [427/489] installing texlive-plain-generic-2020.20201129-1 [ 181s] Processing triggers for tex-common (6.15) ... [ 181s] Running mktexlsr. This may take some time... done. [ 181s] [428/489] installing texlive-latex-base-2020.20201129-2 [ 182s] Processing triggers for man-db (2.9.3-2) ... [ 183s] Processing triggers for tex-common (6.15) ... [ 183s] Running mktexlsr. This may take some time... done. [ 184s] Running updmap-sys. This may take some time... done. [ 184s] Running mktexlsr /var/lib/texmf ... done. [ 184s] Building format(s) --all. [ 190s] This may take some time... [ 191s] fmtutil failed. Output has been stored in [ 191s] /tmp/fmtutil.ODF3gqjO [ 191s] Please include this file if you report a bug. [ 191s] dpkg: error processing package tex-common (--install): [ 191s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 191s] Errors were encountered while processing: [ 191s] tex-common [ 191s] exit ... [ 191s] ### VM INTERACTION START ### [ 194s] [ 179.211469] sysrq: Power Off [ 194s] [ 179.225039] reboot: Power down [ 194s] ### VM INTERACTION END ### [ 194s] [ 194s] goat09 failed "build osmo-e1d_0.1.1.20.e542.dsc" at Fri Dec 4 10:21:35 UTC 2020. [ 194s] -- 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 Dec 4 10:25:19 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 10:25:19 +0000 Subject: Change in osmo-bts[master]: power_control: generalize power control state structure In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21441 ) Change subject: power_control: generalize power control state structure ...................................................................... power_control: generalize power control state structure Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Related: SYS#4918 --- M include/osmo-bts/gsm_data.h M src/common/power_control.c M tests/power/ms_power_loop_test.c 3 files changed, 13 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/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 64102f5..04c6629 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -161,6 +161,15 @@ uint32_t fn; }; +struct lchan_power_ctrl_state { + uint8_t current; + uint8_t max; + bool fixed; + + /* Scaled up (100 times) average UL/DL RxLev (in dBm) */ + int avg100_rxlev_dbm; +}; + struct gsm_lchan { /* The TS that we're part of */ struct gsm_bts_trx_ts *ts; @@ -306,15 +315,9 @@ enum lchan_rel_act_kind rel_act_kind; /* RTP header Marker bit to indicate beginning of speech after pause */ bool rtp_tx_marker; - /* power handling */ - struct { - uint8_t current; - uint8_t max; - bool fixed; - /* Scaled up (100 times) average UL RSSI */ - int avg100_ul_rssi; - } ms_power_ctrl; + /* MS power control */ + struct lchan_power_ctrl_state ms_power_ctrl; /* BTS power reduction (in dB) */ uint8_t bs_power_red; diff --git a/src/common/power_control.c b/src/common/power_control.c index e022e59..3328167 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -79,7 +79,7 @@ const int8_t Pwr) { const uint8_t A = bts->ul_power_ctrl.pf.ewma.alpha; - int *Avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi; + int *Avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm; /* We don't have 'Avg[n - 1]' if this is the first run */ if (lchan->meas.res_nr == 0) { diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index f1b910b..1abe532 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -152,7 +152,7 @@ init_test(__func__); lchan = &g_trx->ts[0].lchan[0]; - avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi; + 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 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 Gerrit-Change-Number: 21441 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 Fri Dec 4 10:25:21 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 10:25:21 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21442 ) Change subject: power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr ...................................................................... power_control: lchan_ul_pf_ewma(): do not use lchan->meas.res_nr This would allow to pass only two pointers: - 'struct bts_power_ctrl_params', and - 'struct lchan_power_ctrl_state', and get rid of 'struct gsm_lchan' dependency. The later is exactly where all state variables are supposed to be kept. Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Related: SYS#4918 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c 2 files changed, 2 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/power_control.c b/src/common/power_control.c index 3328167..5dbf8ce 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -82,7 +82,7 @@ int *Avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm; /* We don't have 'Avg[n - 1]' if this is the first run */ - if (lchan->meas.res_nr == 0) { + if (*Avg100 == 0) { *Avg100 = Pwr * EWMA_SCALE_FACTOR; return Pwr; } diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 1abe532..147c725 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -191,7 +191,7 @@ g_bts->ul_power_ctrl.pf.ewma.alpha = 70; /* 30% smoothing */ lchan->ms_power_ctrl.current = 15; - lchan->meas.res_nr = 0; + lchan->ms_power_ctrl.avg100_rxlev_dbm = 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/+/21442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idfefca30f4944bc722b4e9d8f1685eb77670a9db Gerrit-Change-Number: 21442 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 Fri Dec 4 10:25:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 10:25:22 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21443 ) Change subject: power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer ...................................................................... power_control: lchan_ms_pwr_ctrl(): use existing 'trx' pointer Change-Id: Idf46e47f20f031ff9dded1be1e6c4337d7b423e7 Related: SYS#4918 --- M src/common/power_control.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, approved diff --git a/src/common/power_control.c b/src/common/power_control.c index 5dbf8ce..a20ce55 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -108,7 +108,7 @@ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; int8_t avg_ul_rssi_dbm; - if (!trx_ms_pwr_ctrl_is_osmo(lchan->ts->trx)) + if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; if (lchan->ms_power_ctrl.fixed) return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idf46e47f20f031ff9dded1be1e6c4337d7b423e7 Gerrit-Change-Number: 21443 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 Fri Dec 4 10:25:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 10:25:23 +0000 Subject: Change in osmo-bts[master]: power_control: generalize and rename lchan_ul_pf_ewma() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21444 ) Change subject: power_control: generalize and rename lchan_ul_pf_ewma() ...................................................................... power_control: generalize and rename lchan_ul_pf_ewma() This way EWMA based filtering logic can be used not only for MS Power Control, but also for BS Power Control. Change-Id: I16c2e1b997f2b8af44d47809420293f072335bbd Related: SYS#4918 --- M src/common/power_control.c 1 file changed, 9 insertions(+), 6 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/power_control.c b/src/common/power_control.c index a20ce55..9d17c89 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -74,12 +74,12 @@ * 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 lchan_ul_pf_ewma(const struct gsm_bts *bts, - struct gsm_lchan *lchan, - const int8_t Pwr) +static int8_t do_pf_ewma(const struct bts_power_ctrl_params *params, + struct lchan_power_ctrl_state *state, + const int8_t Pwr) { - const uint8_t A = bts->ul_power_ctrl.pf.ewma.alpha; - int *Avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm; + const uint8_t A = params->pf.ewma.alpha; + int *Avg100 = &state->avg100_rxlev_dbm; /* We don't have 'Avg[n - 1]' if this is the first run */ if (*Avg100 == 0) { @@ -108,6 +108,9 @@ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; int8_t avg_ul_rssi_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 (lchan->ms_power_ctrl.fixed) @@ -131,7 +134,7 @@ /* Filter UL RSSI to reduce unnecessary Tx power oscillations */ switch (bts->ul_power_ctrl.pf_algo) { case BTS_PF_ALGO_EWMA: - avg_ul_rssi_dbm = lchan_ul_pf_ewma(bts, lchan, ul_rssi_dbm); + avg_ul_rssi_dbm = do_pf_ewma(params, state, ul_rssi_dbm); break; case BTS_PF_ALGO_NONE: default: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16c2e1b997f2b8af44d47809420293f072335bbd Gerrit-Change-Number: 21444 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 Fri Dec 4 10:25:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 10:25:24 +0000 Subject: Change in osmo-bts[master]: power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21445 ) Change subject: power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers ...................................................................... power_control: lchan_ms_pwr_ctrl(): make use of params/state pointers Change-Id: I177d82cd61d59256976007fed2f7da400b814789 Related: SYS#4918 --- M src/common/power_control.c 1 file changed, 15 insertions(+), 17 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/power_control.c b/src/common/power_control.c index 9d17c89..21f7ce5 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -113,7 +113,7 @@ if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; - if (lchan->ms_power_ctrl.fixed) + if (state->fixed) return 0; ms_dbm = ms_pwr_dbm(band, ms_power_lvl); @@ -123,16 +123,16 @@ ms_power_lvl, gsm_band_name(band)); return 0; } - bsc_max_dbm = ms_pwr_dbm(band, lchan->ms_power_ctrl.max); + bsc_max_dbm = ms_pwr_dbm(band, state->max); if (bsc_max_dbm < 0) { LOGPLCHAN(lchan, DLOOP, LOGL_NOTICE, "Failed to calculate dBm for power ctl level %" PRIu8 " on band %s\n", - lchan->ms_power_ctrl.max, gsm_band_name(band)); + state->max, gsm_band_name(band)); return 0; } /* Filter UL RSSI to reduce unnecessary Tx power oscillations */ - switch (bts->ul_power_ctrl.pf_algo) { + switch (params->pf_algo) { case BTS_PF_ALGO_EWMA: avg_ul_rssi_dbm = do_pf_ewma(params, state, ul_rssi_dbm); break; @@ -144,17 +144,17 @@ /* How many dBs measured power should be increased (+) or decreased (-) to reach expected power. */ - diff = bts->ul_power_ctrl.target - avg_ul_rssi_dbm; + diff = params->target - avg_ul_rssi_dbm; /* Tolerate small deviations from 'rx-target' */ - if (abs(diff) <= bts->ul_power_ctrl.hysteresis) { + if (abs(diff) <= params->hysteresis) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm) because diff %d dBm " "from 'rx-target' %d dBm is not significant (hysteresis %d dBm)\n", - ms_power_lvl, ms_dbm, diff, bts->ul_power_ctrl.target, bts->ul_power_ctrl.hysteresis); + ms_power_lvl, ms_dbm, diff, params->target, params->hysteresis); /* Keep the current power level in sync (just to be sure) */ - lchan->ms_power_ctrl.current = ms_power_lvl; + state->current = ms_power_lvl; bts_model_adjst_ms_pwr(lchan); return 0; } @@ -186,25 +186,23 @@ return 0; } - if (lchan->ms_power_ctrl.current == new_power_lvl) { + 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, lchan->ms_power_ctrl.max, - avg_ul_rssi_dbm, bts->ul_power_ctrl.target); + new_power_lvl, new_dbm, ms_power_lvl, state->max, + avg_ul_rssi_dbm, params->target); return 0; } - current_dbm = ms_pwr_dbm(band, lchan->ms_power_ctrl.current); + current_dbm = ms_pwr_dbm(band, state->current); LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s MS power from control level %d (%d dBm) to %d, %d dBm " "(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", - lchan->ms_power_ctrl.current, current_dbm, new_power_lvl, new_dbm, - ms_power_lvl, lchan->ms_power_ctrl.max, - avg_ul_rssi_dbm, bts->ul_power_ctrl.target); + state->current, current_dbm, new_power_lvl, new_dbm, + ms_power_lvl, state->max, avg_ul_rssi_dbm, params->target); /* store the resulting new MS power level in the lchan */ - lchan->ms_power_ctrl.current = new_power_lvl; + state->current = new_power_lvl; bts_model_adjst_ms_pwr(lchan); return 1; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I177d82cd61d59256976007fed2f7da400b814789 Gerrit-Change-Number: 21445 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 Fri Dec 4 10:25:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 10:25:24 +0000 Subject: Change in osmo-bts[master]: power_control: remove a logging statement and early return In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21479 ) Change subject: power_control: remove a logging statement and early return ...................................................................... power_control: remove a logging statement and early return This change would allow to separate the common logic from lchan_ms_pwr_ctrl() and re-use it for Downlink power control. The logging statement was quite useful during early stages of development and testing of hysteresis and filtering, but now we can sacrifice it. Change-Id: I3c07cb6e14acd5a988761bbc51a9c3b60fb22d87 Related: SYS#4918 --- M src/common/power_control.c M tests/power/ms_power_loop_test.err 2 files changed, 11 insertions(+), 19 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 21f7ce5..e08966f 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -148,16 +148,8 @@ /* Tolerate small deviations from 'rx-target' */ - if (abs(diff) <= params->hysteresis) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, - "Keeping MS power at control level %d (%d dBm) because diff %d dBm " - "from 'rx-target' %d dBm is not significant (hysteresis %d dBm)\n", - ms_power_lvl, ms_dbm, diff, params->target, params->hysteresis); - /* Keep the current power level in sync (just to be sure) */ - state->current = ms_power_lvl; - bts_model_adjst_ms_pwr(lchan); - return 0; - } + if (abs(diff) <= params->hysteresis) + diff = 0; /* don't ever change more than MS_{LOWER,RAISE}_MAX_DBM during one loop iteration, i.e. reduce the speed at which the MS transmit power can diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 988b3ba..f2e187b 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -4,7 +4,7 @@ (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 9 (12 dBm) to 7, 16 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 7 (16 dBm) to 5, 20 dBm (rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5 (20 dBm) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 0 dBm) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5, 20 dBm (rx-ms-pwr-lvl 5, 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 5 (20 dBm) to 3, 24 dBm (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 3 (24 dBm) to 2, 26 dBm (rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2, 26 dBm (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) @@ -13,7 +13,7 @@ (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 0 (30 dBm) to 30, 34 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) (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) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 0 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) @@ -21,17 +21,17 @@ (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 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) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 0 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 -78 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -80 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 11 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -78 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 -50 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 -50 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -92 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff -3 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 3 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 0 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff -5 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm) because diff 5 dBm from 'rx-target' -75 dBm is not significant (hysteresis 5 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) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -72 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 -78 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) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -70 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 -80 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -85 dBm, rx-target -75 dBm) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c07cb6e14acd5a988761bbc51a9c3b60fb22d87 Gerrit-Change-Number: 21479 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 Fri Dec 4 10:25:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 10:25:25 +0000 Subject: Change in osmo-bts[master]: power_control: do not log averaged RSSI values as 'rx-current' In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21498 ) Change subject: power_control: do not log averaged RSSI values as 'rx-current' ...................................................................... power_control: do not log averaged RSSI values as 'rx-current' Similar to I3c07cb6e14acd5a988761bbc51a9c3b60fb22d87, this change is another step towards separating the common delta calculation logic from lchan_ms_pwr_ctrl(), since this function will loose access to the averaged values. On the one hand, the affected logging statements are getting less precise; on the other, logging the averaged value as the actual value ('rx-current') may be even more confusing. Change-Id: I07007e45c859b4080fbbe520ffb5ccc0bb9c4244 Related: SYS#4918 --- M src/common/power_control.c M tests/power/ms_power_loop_test.err 2 files 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/common/power_control.c b/src/common/power_control.c index e08966f..5eb1687 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -182,7 +182,7 @@ 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, - avg_ul_rssi_dbm, params->target); + ul_rssi_dbm, params->target); return 0; } @@ -191,7 +191,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, avg_ul_rssi_dbm, params->target); + ms_power_lvl, state->max, ul_rssi_dbm, params->target); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index f2e187b..cf43081 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -22,12 +22,12 @@ (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 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 -78 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -80 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 11 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -78 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) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 11 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -70 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 -50 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 -50 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -92 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -110 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) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -72 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 -78 dBm, rx-target -75 dBm) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I07007e45c859b4080fbbe520ffb5ccc0bb9c4244 Gerrit-Change-Number: 21498 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 Fri Dec 4 10:25:26 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 4 Dec 2020 10:25:26 +0000 Subject: Change in osmo-bts[master]: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21446 ) Change subject: power_control: derive calc_delta() from lchan_ms_pwr_ctrl() ...................................................................... power_control: derive calc_delta() from lchan_ms_pwr_ctrl() This function will also be used by the BS Power Control logic. Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Related: SYS#4918 --- M src/common/power_control.c 1 file changed, 43 insertions(+), 33 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 5eb1687..3441439 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -34,8 +34,8 @@ #include /* how many dB do we raise/lower as maximum (1 ms power level = 2 dB) */ -#define MS_RAISE_MAX_DB 4 -#define MS_LOWER_MAX_DB 8 +#define PWR_RAISE_MAX_DB 4 +#define PWR_LOWER_MAX_DB 8 /* We don't want to deal with floating point, so we scale up */ #define EWMA_SCALE_FACTOR 100 @@ -91,6 +91,45 @@ return *Avg100 / EWMA_SCALE_FACTOR; } +/* 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, + struct lchan_power_ctrl_state *state, + const int rxlev_dbm) +{ + int rxlev_dbm_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); + break; + case BTS_PF_ALGO_NONE: + default: + /* No filtering (pass through) */ + rxlev_dbm_avg = rxlev_dbm; + } + + /* How many dBs measured power should be increased (+) or decreased (-) + * to reach expected power. */ + delta = params->target - rxlev_dbm_avg; + + /* Tolerate small deviations from 'rx-target' */ + if (abs(delta) <= params->hysteresis) + return 0; + + /* 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 > PWR_RAISE_MAX_DB) + delta = PWR_RAISE_MAX_DB; + else if (delta < -PWR_LOWER_MAX_DB) + delta = -PWR_LOWER_MAX_DB; + + return delta; +} + /*! compute the new MS POWER LEVEL communicated to the MS and store it in lchan. * \param lchan logical channel for which to compute (and in which to store) new power value. * \param[in] ms_power_lvl MS Power Level received from Uplink L1 SACCH Header in SACCH block. @@ -100,13 +139,11 @@ const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm) { - int diff; 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; - int8_t avg_ul_rssi_dbm; const struct bts_power_ctrl_params *params = &bts->ul_power_ctrl; struct lchan_power_ctrl_state *state = &lchan->ms_power_ctrl; @@ -131,35 +168,8 @@ return 0; } - /* Filter UL RSSI to reduce unnecessary Tx power oscillations */ - switch (params->pf_algo) { - case BTS_PF_ALGO_EWMA: - avg_ul_rssi_dbm = do_pf_ewma(params, state, ul_rssi_dbm); - break; - case BTS_PF_ALGO_NONE: - default: - /* No filtering (pass through) */ - avg_ul_rssi_dbm = ul_rssi_dbm; - } - - /* How many dBs measured power should be increased (+) or decreased (-) - to reach expected power. */ - diff = params->target - avg_ul_rssi_dbm; - - - /* Tolerate small deviations from 'rx-target' */ - if (abs(diff) <= params->hysteresis) - diff = 0; - - /* don't ever change more than MS_{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 (diff > MS_RAISE_MAX_DB) - diff = MS_RAISE_MAX_DB; - else if (diff < -MS_LOWER_MAX_DB) - diff = -MS_LOWER_MAX_DB; - - new_dbm = ms_dbm + diff; + /* Calculate the new Tx power value (in dBm) */ + new_dbm = ms_dbm + calc_delta(params, state, ul_rssi_dbm); /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on cope with any unsigned dbm value, regardless of band minimal value. */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2525eb2c3f1fdb3d0847a8ad50b30a44d7741a55 Gerrit-Change-Number: 21446 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 admin at opensuse.org Fri Dec 4 10:25:43 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 10:25:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca0eb42a618_48252b172cac05f8510327@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 404s] Processing triggers for man-db (2.9.3-2) ... [ 406s] [508/655] installing texlive-plain-generic-2020.20201129-1 [ 411s] Processing triggers for tex-common (6.15) ... [ 412s] Running mktexlsr. This may take some time... done. [ 412s] [509/655] installing libpython3.9-3.9.1~rc1-2 [ 412s] Processing triggers for libc-bin (2.31-5) ... [ 412s] [510/655] installing texlive-latex-base-2020.20201129-2 [ 413s] Processing triggers for man-db (2.9.3-2) ... [ 414s] Processing triggers for tex-common (6.15) ... [ 415s] Running mktexlsr. This may take some time... done. [ 415s] Running updmap-sys. This may take some time... done. [ 415s] Running mktexlsr /var/lib/texmf ... done. [ 416s] Building format(s) --all. [ 425s] This may take some time... [ 425s] fmtutil failed. Output has been stored in [ 425s] /tmp/fmtutil.5fYAfxvD [ 425s] Please include this file if you report a bug. [ 425s] dpkg: error processing package tex-common (--install): [ 425s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 425s] Errors were encountered while processing: [ 425s] tex-common [ 425s] exit ... [ 425s] ### VM INTERACTION START ### [ 428s] [ 364.592698] sysrq: Power Off [ 428s] [ 364.613206] reboot: Power down [ 428s] ### VM INTERACTION END ### [ 428s] [ 428s] lamb14 failed "build osmo-trx_1.2.0.114.57db.dsc" at Fri Dec 4 10:25:30 UTC 2020. [ 428s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 10:26:19 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 10:26:19 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca0ed0569b8_48252b172cac05f85106af@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: [ 430s] [426/489] installing python3.9-3.9.1~rc1-2 [ 432s] Processing triggers for mailcap (3.67) ... [ 432s] Processing triggers for man-db (2.9.3-2) ... [ 433s] [427/489] installing texlive-plain-generic-2020.20201129-1 [ 437s] Processing triggers for tex-common (6.15) ... [ 437s] Running mktexlsr. This may take some time... done. [ 437s] [428/489] installing texlive-latex-base-2020.20201129-2 [ 437s] Processing triggers for man-db (2.9.3-2) ... [ 438s] Processing triggers for tex-common (6.15) ... [ 438s] Running mktexlsr. This may take some time... done. [ 439s] Running updmap-sys. This may take some time... done. [ 439s] Running mktexlsr /var/lib/texmf ... done. [ 439s] Building format(s) --all. [ 447s] This may take some time... [ 447s] fmtutil failed. Output has been stored in [ 447s] /tmp/fmtutil.t0ATtgta [ 447s] Please include this file if you report a bug. [ 447s] dpkg: error processing package tex-common (--install): [ 447s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 447s] Errors were encountered while processing: [ 447s] tex-common [ 447s] exit ... [ 447s] ### VM INTERACTION START ### [ 450s] [ 358.154535] sysrq: Power Off [ 450s] [ 358.166632] reboot: Power down [ 450s] ### VM INTERACTION END ### [ 450s] [ 450s] lamb24 failed "build osmo-pcu_0.8.0.283.30d9.dsc" at Fri Dec 4 10:26:01 UTC 2020. [ 450s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 10:46:19 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 10:46:19 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca13997bb81_48252b172cac05f85168ec@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: [ 126s] [437/500] installing python3.9-3.9.1~rc1-2 [ 126s] Processing triggers for mailcap (3.67) ... [ 126s] Processing triggers for man-db (2.9.3-2) ... [ 127s] [438/500] installing texlive-plain-generic-2020.20201129-1 [ 130s] Processing triggers for tex-common (6.15) ... [ 130s] Running mktexlsr. This may take some time... done. [ 130s] [439/500] installing texlive-latex-base-2020.20201129-2 [ 130s] Processing triggers for man-db (2.9.3-2) ... [ 130s] Processing triggers for tex-common (6.15) ... [ 131s] Running mktexlsr. This may take some time... done. [ 131s] Running updmap-sys. This may take some time... done. [ 131s] Running mktexlsr /var/lib/texmf ... done. [ 131s] Building format(s) --all. [ 137s] This may take some time... [ 137s] fmtutil failed. Output has been stored in [ 137s] /tmp/fmtutil.31xiFPKG [ 137s] Please include this file if you report a bug. [ 137s] dpkg: error processing package tex-common (--install): [ 137s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 137s] Errors were encountered while processing: [ 137s] tex-common [ 137s] exit ... [ 137s] ### VM INTERACTION START ### [ 140s] [ 125.381507] sysrq: Power Off [ 140s] [ 125.385364] reboot: Power down [ 140s] ### VM INTERACTION END ### [ 140s] [ 140s] sheep85 failed "build osmo-bts_1.2.0.355.fb03.dsc" at Fri Dec 4 10:46:06 UTC 2020. [ 140s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:12:36 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:12:36 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca19b6baffb_48252b172cac05f85233af@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-mgw failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: [ 117s] Processing triggers for mailcap (3.67) ... [ 117s] Processing triggers for man-db (2.9.3-2) ... [ 117s] [435/498] installing texlive-plain-generic-2020.20201129-1 [ 120s] Processing triggers for tex-common (6.15) ... [ 120s] Running mktexlsr. This may take some time... done. [ 120s] [436/498] installing libosmo-netif-dev-1.0.0.8.bd77 [ 120s] [437/498] installing texlive-latex-base-2020.20201129-2 [ 120s] Processing triggers for man-db (2.9.3-2) ... [ 120s] Processing triggers for tex-common (6.15) ... [ 121s] Running mktexlsr. This may take some time... done. [ 121s] Running updmap-sys. This may take some time... done. [ 121s] Running mktexlsr /var/lib/texmf ... done. [ 121s] Building format(s) --all. [ 126s] This may take some time... [ 126s] fmtutil failed. Output has been stored in [ 126s] /tmp/fmtutil.dU5WV9FJ [ 126s] Please include this file if you report a bug. [ 126s] dpkg: error processing package tex-common (--install): [ 126s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 126s] Errors were encountered while processing: [ 126s] tex-common [ 126s] exit ... [ 126s] ### VM INTERACTION START ### [ 129s] [ 114.357845] sysrq: Power Off [ 129s] [ 114.360386] reboot: Power down [ 129s] ### VM INTERACTION END ### [ 129s] [ 129s] hci-cnode2-m1 failed "build osmo-mgw_1.7.0.132.6e279.dsc" at Fri Dec 4 11:12:30 UTC 2020. [ 129s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:13:10 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:13:10 +0000 Subject: Build failure of network:osmocom:nightly/osmo-hlr in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca19d299ff_48252b172cac05f8523471@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-hlr/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-hlr failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-hlr Last lines of build log: [ 145s] Processing triggers for mailcap (3.67) ... [ 145s] Processing triggers for man-db (2.9.3-2) ... [ 145s] [437/501] installing texlive-plain-generic-2020.20201129-1 [ 149s] Processing triggers for tex-common (6.15) ... [ 149s] Running mktexlsr. This may take some time... done. [ 149s] [438/501] installing libosmo-netif-dev-1.0.0.8.bd77 [ 150s] [439/501] installing texlive-latex-base-2020.20201129-2 [ 150s] Processing triggers for man-db (2.9.3-2) ... [ 150s] Processing triggers for tex-common (6.15) ... [ 151s] Running mktexlsr. This may take some time... done. [ 151s] Running updmap-sys. This may take some time... done. [ 151s] Running mktexlsr /var/lib/texmf ... done. [ 151s] Building format(s) --all. [ 159s] This may take some time... [ 159s] fmtutil failed. Output has been stored in [ 159s] /tmp/fmtutil.uuRM6AAK [ 159s] Please include this file if you report a bug. [ 159s] dpkg: error processing package tex-common (--install): [ 159s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 159s] Errors were encountered while processing: [ 159s] tex-common [ 159s] exit ... [ 159s] ### VM INTERACTION START ### [ 162s] [ 145.706768] sysrq: Power Off [ 162s] [ 145.710786] reboot: Power down [ 163s] ### VM INTERACTION END ### [ 163s] [ 163s] old-atreju4 failed "build osmo-hlr_1.2.0.67.dac8.dsc" at Fri Dec 4 11:13:03 UTC 2020. [ 163s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:13:44 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:13:44 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca19f19869a_48252b172cac05f8523559@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 181s] [460/527] installing python3.9-3.9.1~rc1-2 [ 182s] Processing triggers for mailcap (3.67) ... [ 182s] Processing triggers for man-db (2.9.3-2) ... [ 183s] [461/527] installing texlive-plain-generic-2020.20201129-1 [ 186s] Processing triggers for tex-common (6.15) ... [ 186s] Running mktexlsr. This may take some time... done. [ 186s] [462/527] installing texlive-latex-base-2020.20201129-2 [ 187s] Processing triggers for man-db (2.9.3-2) ... [ 187s] Processing triggers for tex-common (6.15) ... [ 187s] Running mktexlsr. This may take some time... done. [ 188s] Running updmap-sys. This may take some time... done. [ 188s] Running mktexlsr /var/lib/texmf ... done. [ 188s] Building format(s) --all. [ 196s] This may take some time... [ 196s] fmtutil failed. Output has been stored in [ 196s] /tmp/fmtutil.z5xkP8OW [ 196s] Please include this file if you report a bug. [ 196s] dpkg: error processing package tex-common (--install): [ 196s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 196s] Errors were encountered while processing: [ 196s] tex-common [ 196s] exit ... [ 196s] ### VM INTERACTION START ### [ 199s] [ 180.862414] sysrq: Power Off [ 199s] [ 180.867446] reboot: Power down [ 199s] ### VM INTERACTION END ### [ 199s] [ 199s] lamb08 failed "build osmo-remsim_0.2.2.103.dc34.dsc" at Fri Dec 4 11:13:43 UTC 2020. [ 199s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:13:44 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:13:44 +0000 Subject: Build failure of network:osmocom:nightly/osmo-uecups in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca19f228451_48252b172cac05f8523628@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-uecups/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-uecups failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-uecups Last lines of build log: [ 171s] Processing triggers for mailcap (3.67) ... [ 171s] Processing triggers for man-db (2.9.3-2) ... [ 171s] [434/498] installing texlive-plain-generic-2020.20201129-1 [ 175s] Processing triggers for tex-common (6.15) ... [ 175s] Running mktexlsr. This may take some time... done. [ 175s] [435/498] installing libosmo-netif-dev-1.0.0.8.bd77 [ 175s] [436/498] installing texlive-latex-base-2020.20201129-2 [ 175s] Processing triggers for man-db (2.9.3-2) ... [ 176s] Processing triggers for tex-common (6.15) ... [ 176s] Running mktexlsr. This may take some time... done. [ 176s] Running updmap-sys. This may take some time... done. [ 176s] Running mktexlsr /var/lib/texmf ... done. [ 177s] Building format(s) --all. [ 184s] This may take some time... [ 184s] fmtutil failed. Output has been stored in [ 184s] /tmp/fmtutil.F7wvyBvZ [ 184s] Please include this file if you report a bug. [ 184s] dpkg: error processing package tex-common (--install): [ 184s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 184s] Errors were encountered while processing: [ 184s] tex-common [ 184s] exit ... [ 184s] ### VM INTERACTION START ### [ 187s] [ 167.908327] sysrq: Power Off [ 187s] [ 167.914589] reboot: Power down [ 187s] ### VM INTERACTION END ### [ 187s] [ 187s] lamb13 failed "build osmo-uecups_0.1.3.1.8362.dsc" at Fri Dec 4 11:13:28 UTC 2020. [ 187s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:14:19 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:14:19 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca1a0ef127b_48252b172cac05f852394e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-sccp Last lines of build log: [ 197s] Processing triggers for mailcap (3.67) ... [ 197s] Processing triggers for man-db (2.9.3-2) ... [ 197s] [437/501] installing texlive-plain-generic-2020.20201129-1 [ 201s] Processing triggers for tex-common (6.15) ... [ 201s] Running mktexlsr. This may take some time... done. [ 201s] [438/501] installing libosmo-netif-dev-1.0.0.8.bd77 [ 201s] [439/501] installing texlive-latex-base-2020.20201129-2 [ 202s] Processing triggers for man-db (2.9.3-2) ... [ 202s] Processing triggers for tex-common (6.15) ... [ 202s] Running mktexlsr. This may take some time... done. [ 203s] Running updmap-sys. This may take some time... done. [ 203s] Running mktexlsr /var/lib/texmf ... done. [ 203s] Building format(s) --all. [ 211s] This may take some time... [ 211s] fmtutil failed. Output has been stored in [ 211s] /tmp/fmtutil.05J9JONN [ 211s] Please include this file if you report a bug. [ 211s] dpkg: error processing package tex-common (--install): [ 211s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 211s] Errors were encountered while processing: [ 211s] tex-common [ 211s] exit ... [ 211s] ### VM INTERACTION START ### [ 214s] [ 173.569338] sysrq: Power Off [ 214s] [ 173.574357] reboot: Power down [ 214s] ### VM INTERACTION END ### [ 214s] [ 214s] cloud117 failed "build libosmo-sccp_1.3.0.25.48e2.dsc" at Fri Dec 4 11:14:02 UTC 2020. [ 214s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:32:36 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:32:36 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca1e61d43ac_48252b172cac05f85290ba@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-smlc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: [ 123s] Processing triggers for mailcap (3.67) ... [ 123s] Processing triggers for man-db (2.9.3-2) ... [ 123s] [430/495] installing texlive-plain-generic-2020.20201129-1 [ 126s] Processing triggers for tex-common (6.15) ... [ 126s] Running mktexlsr. This may take some time... done. [ 126s] [431/495] installing libosmo-netif-dev-1.0.0.8.bd77 [ 126s] [432/495] installing texlive-latex-base-2020.20201129-2 [ 127s] Processing triggers for man-db (2.9.3-2) ... [ 127s] Processing triggers for tex-common (6.15) ... [ 127s] Running mktexlsr. This may take some time... done. [ 128s] Running updmap-sys. This may take some time... done. [ 128s] Running mktexlsr /var/lib/texmf ... done. [ 128s] Building format(s) --all. [ 133s] This may take some time... [ 133s] fmtutil failed. Output has been stored in [ 133s] /tmp/fmtutil.Kiyw8KeE [ 133s] Please include this file if you report a bug. [ 133s] dpkg: error processing package tex-common (--install): [ 133s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 133s] Errors were encountered while processing: [ 133s] tex-common [ 133s] exit ... [ 133s] ### VM INTERACTION START ### [ 136s] [ 121.817216] sysrq: Power Off [ 136s] [ 121.820379] reboot: Power down [ 136s] ### VM INTERACTION END ### [ 136s] [ 136s] sheep88 failed "build osmo-smlc_0.1.0.5.5dad.dsc" at Fri Dec 4 11:32:20 UTC 2020. [ 136s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:32:36 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:32:36 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca1e6271b1f_48252b172cac05f852912f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-bsc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 131s] Processing triggers for mailcap (3.67) ... [ 131s] Processing triggers for man-db (2.9.3-2) ... [ 132s] [440/506] installing texlive-plain-generic-2020.20201129-1 [ 135s] Processing triggers for tex-common (6.15) ... [ 135s] Running mktexlsr. This may take some time... done. [ 135s] [441/506] installing libosmo-netif-dev-1.0.0.8.bd77 [ 135s] [442/506] installing texlive-latex-base-2020.20201129-2 [ 135s] Processing triggers for man-db (2.9.3-2) ... [ 136s] Processing triggers for tex-common (6.15) ... [ 136s] Running mktexlsr. This may take some time... done. [ 136s] Running updmap-sys. This may take some time... done. [ 136s] Running mktexlsr /var/lib/texmf ... done. [ 136s] Building format(s) --all. [ 142s] This may take some time... [ 142s] fmtutil failed. Output has been stored in [ 142s] /tmp/fmtutil.OAy5C6OG [ 142s] Please include this file if you report a bug. [ 142s] dpkg: error processing package tex-common (--install): [ 142s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 142s] Errors were encountered while processing: [ 142s] tex-common [ 142s] exit ... [ 142s] ### VM INTERACTION START ### [ 145s] [ 129.501832] sysrq: Power Off [ 145s] [ 129.506020] reboot: Power down [ 145s] ### VM INTERACTION END ### [ 145s] [ 145s] sheep87 failed "build osmo-bsc_1.6.0.417.8c03b.dsc" at Fri Dec 4 11:32:22 UTC 2020. [ 145s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:48:18 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:48:18 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca2208197cb_48252b172cac05f85344e0@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: [ 188s] Processing triggers for mailcap (3.67) ... [ 188s] Processing triggers for man-db (2.9.3-2) ... [ 189s] [448/512] installing texlive-plain-generic-2020.20201129-1 [ 193s] Processing triggers for tex-common (6.15) ... [ 193s] Running mktexlsr. This may take some time... done. [ 193s] [449/512] installing libosmo-netif-dev-1.0.0.8.bd77 [ 193s] [450/512] installing texlive-latex-base-2020.20201129-2 [ 194s] Processing triggers for man-db (2.9.3-2) ... [ 195s] Processing triggers for tex-common (6.15) ... [ 195s] Running mktexlsr. This may take some time... done. [ 196s] Running updmap-sys. This may take some time... done. [ 196s] Running mktexlsr /var/lib/texmf ... done. [ 196s] Building format(s) --all. [ 206s] This may take some time... [ 206s] fmtutil failed. Output has been stored in [ 206s] /tmp/fmtutil.mMMCVfkA [ 206s] Please include this file if you report a bug. [ 206s] dpkg: error processing package tex-common (--install): [ 206s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 206s] Errors were encountered while processing: [ 206s] tex-common [ 206s] exit ... [ 207s] ### VM INTERACTION START ### [ 210s] [ 188.798773] sysrq: Power Off [ 210s] [ 188.880418] reboot: Power down [ 210s] ### VM INTERACTION END ### [ 210s] [ 210s] lamb23 failed "build osmo-sgsn_1.6.0.75.5525.dsc" at Fri Dec 4 11:48:11 UTC 2020. [ 210s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:48:35 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:48:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca2222e6fff_48252b172cac05f8534664@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 209s] Processing triggers for mailcap (3.67) ... [ 209s] Processing triggers for man-db (2.9.3-2) ... [ 209s] [450/515] installing texlive-plain-generic-2020.20201129-1 [ 213s] Processing triggers for tex-common (6.15) ... [ 213s] Running mktexlsr. This may take some time... done. [ 213s] [451/515] installing libosmo-netif-dev-1.0.0.8.bd77 [ 213s] [452/515] installing texlive-latex-base-2020.20201129-2 [ 214s] Processing triggers for man-db (2.9.3-2) ... [ 214s] Processing triggers for tex-common (6.15) ... [ 214s] Running mktexlsr. This may take some time... done. [ 215s] Running updmap-sys. This may take some time... done. [ 215s] Running mktexlsr /var/lib/texmf ... done. [ 215s] Building format(s) --all. [ 223s] This may take some time... [ 223s] fmtutil failed. Output has been stored in [ 223s] /tmp/fmtutil.OwDlP427 [ 223s] Please include this file if you report a bug. [ 223s] dpkg: error processing package tex-common (--install): [ 223s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 223s] Errors were encountered while processing: [ 223s] tex-common [ 223s] exit ... [ 223s] ### VM INTERACTION START ### [ 226s] [ 200.716417] sysrq: Power Off [ 226s] [ 200.721468] reboot: Power down [ 226s] ### VM INTERACTION END ### [ 226s] [ 226s] lamb21 failed "build osmo-msc_1.6.1.87.e917b.dsc" at Fri Dec 4 11:48:28 UTC 2020. [ 226s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:49:26 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:49:26 +0000 Subject: Build failure of network:osmocom:latest/osmo-gsm-manuals in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca226115ab2_48252b172cac05f853484d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-gsm-manuals/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-gsm-manuals failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-gsm-manuals Last lines of build log: [ 174s] [407/469] installing python3.9-3.9.1~rc1-2 [ 176s] Processing triggers for mailcap (3.67) ... [ 176s] Processing triggers for man-db (2.9.3-2) ... [ 176s] [408/469] installing texlive-plain-generic-2020.20201129-1 [ 180s] Processing triggers for tex-common (6.15) ... [ 180s] Running mktexlsr. This may take some time... done. [ 180s] [409/469] installing texlive-latex-base-2020.20201129-2 [ 180s] Processing triggers for man-db (2.9.3-2) ... [ 181s] Processing triggers for tex-common (6.15) ... [ 181s] Running mktexlsr. This may take some time... done. [ 182s] Running updmap-sys. This may take some time... done. [ 182s] Running mktexlsr /var/lib/texmf ... done. [ 182s] Building format(s) --all. [ 190s] This may take some time... [ 190s] fmtutil failed. Output has been stored in [ 190s] /tmp/fmtutil.X1gsMDFN [ 190s] Please include this file if you report a bug. [ 190s] dpkg: error processing package tex-common (--install): [ 190s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 190s] Errors were encountered while processing: [ 190s] tex-common [ 190s] exit ... [ 190s] ### VM INTERACTION START ### [ 193s] [ 173.538612] sysrq: Power Off [ 193s] [ 173.550637] reboot: Power down [ 193s] ### VM INTERACTION END ### [ 193s] [ 193s] lamb01 failed "build osmo-gsm-manuals-dev_0.3.0.dsc" at Fri Dec 4 11:49:10 UTC 2020. [ 193s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:55:26 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:55:26 +0000 Subject: Build failure of network:osmocom:latest/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca23c8e904d_48252b172cac05f8536890@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-pcu/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-pcu failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-pcu Last lines of build log: [ 98s] [425/488] installing python3.9-3.9.1~rc1-2 [ 98s] Processing triggers for mailcap (3.67) ... [ 98s] Processing triggers for man-db (2.9.3-2) ... [ 99s] [426/488] installing texlive-plain-generic-2020.20201129-1 [ 101s] Processing triggers for tex-common (6.15) ... [ 101s] Running mktexlsr. This may take some time... done. [ 101s] [427/488] installing texlive-latex-base-2020.20201129-2 [ 102s] Processing triggers for man-db (2.9.3-2) ... [ 102s] Processing triggers for tex-common (6.15) ... [ 102s] Running mktexlsr. This may take some time... done. [ 102s] Running updmap-sys. This may take some time... done. [ 102s] Running mktexlsr /var/lib/texmf ... done. [ 102s] Building format(s) --all. [ 107s] This may take some time... [ 107s] fmtutil failed. Output has been stored in [ 107s] /tmp/fmtutil.hqKC7PtP [ 107s] Please include this file if you report a bug. [ 107s] dpkg: error processing package tex-common (--install): [ 107s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 107s] Errors were encountered while processing: [ 107s] tex-common [ 107s] exit ... [ 107s] ### VM INTERACTION START ### [ 110s] [ 98.985617] sysrq: Power Off [ 110s] [ 98.986998] reboot: Power down [ 110s] ### VM INTERACTION END ### [ 110s] [ 110s] build71 failed "build osmo-pcu_0.8.0.dsc" at Fri Dec 4 11:55:22 UTC 2020. [ 110s] -- 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 Dec 4 11:55:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 11:55:59 +0000 Subject: Change in libosmocore[master]: bssgp: Update bssgp_pdu_strings with Release 15 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21532 ) Change subject: bssgp: Update bssgp_pdu_strings with Release 15 ...................................................................... bssgp: Update bssgp_pdu_strings with Release 15 In I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 we introduced the enum values for all the new BSSGP message types up to Release 15. Let's also add value_strings for them here. Change-Id: Ia108ba0d5f1f2c9d46f0c0bd11cd93104b9d62ea --- M src/gb/gprs_bssgp_util.c 1 file changed, 19 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/32/21532/1 diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index 917f1f3..da0b103 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -107,6 +107,8 @@ { BSSGP_PDUT_UL_UNITDATA, "UL-UNITDATA" }, { BSSGP_PDUT_RA_CAPABILITY, "RA-CAPABILITY" }, { BSSGP_PDUT_PTM_UNITDATA, "PTM-UNITDATA" }, + { BSSGP_PDUT_DL_MMBS_UNITDATA, "DL-MBMS-UNITDATA" }, + { BSSGP_PDUT_UL_MMBS_UNITDATA, "UL-MBMS-UNITDATA" }, { BSSGP_PDUT_PAGING_PS, "PAGING-PS" }, { BSSGP_PDUT_PAGING_CS, "PAGING-CS" }, { BSSGP_PDUT_RA_CAPA_UDPATE, "RA-CAPABILITY-UPDATE" }, @@ -118,6 +120,10 @@ { BSSGP_PDUT_RESUME, "RESUME" }, { BSSGP_PDUT_RESUME_ACK, "RESUME-ACK" }, { BSSGP_PDUT_RESUME_NACK, "RESUME-NACK" }, + { BSSGP_PDUT_DUMMY_PAGING_PS, "DUMMY-PAGING-PS" }, + { BSSGP_PDUT_DUMMY_PAGING_PS_RESP, "DUMMY-PAGING-PS-RESP" }, + { BSSGP_PDUT_MS_REGISTR_ENQ, "MS-REGISTRATION-ENQ" }, + { BSSGP_PDUT_MS_REGISTR_ENQ_RESP, "MS-REGISTRATION-ENQ-RESP" }, { BSSGP_PDUT_BVC_BLOCK, "BVC-BLOCK" }, { BSSGP_PDUT_BVC_BLOCK_ACK, "BVC-BLOCK-ACK" }, { BSSGP_PDUT_BVC_RESET, "BVC-RESET" }, @@ -131,8 +137,11 @@ { BSSGP_PDUT_FLUSH_LL, "FLUSH-LL" }, { BSSGP_PDUT_FLUSH_LL_ACK, "FLUSH-LL-ACK" }, { BSSGP_PDUT_LLC_DISCARD, "LLC DISCARDED" }, + { BSSGP_PDUT_FLOW_CONTROL_PFC, "FLOW-CONTROL-PFC" }, + { BSSGP_PDUT_FLOW_CONTROL_PFC_ACK, "FLOW-CONTROL-PFC-ACK" }, { BSSGP_PDUT_SGSN_INVOKE_TRACE, "SGSN-INVOKE-TRACE" }, { BSSGP_PDUT_STATUS, "STATUS" }, + { BSSGP_PDUT_OVERLOAD, "OVERLOAD" }, { BSSGP_PDUT_DOWNLOAD_BSS_PFC, "DOWNLOAD-BSS-PFC" }, { BSSGP_PDUT_CREATE_BSS_PFC, "CREATE-BSS-PFC" }, { BSSGP_PDUT_CREATE_BSS_PFC_ACK, "CREATE-BSS-PFC-ACK" }, @@ -141,6 +150,16 @@ { BSSGP_PDUT_MODIFY_BSS_PFC_ACK, "MODIFY-BSS-PFC-ACK" }, { BSSGP_PDUT_DELETE_BSS_PFC, "DELETE-BSS-PFC" }, { BSSGP_PDUT_DELETE_BSS_PFC_ACK, "DELETE-BSS-PFC-ACK" }, + { BSSGP_PDUT_DELETE_BSS_PFC_REQ, "DELETE-BSS-PFC-REQ" }, + { BSSGP_PDUT_PS_HO_REQUIRED, "PS-HO-REQUIRED" }, + { BSSGP_PDUT_PS_HO_REQUIRED_ACK, "PS-HO-REQUIRED-ACK" }, + { BSSGP_PDUT_PS_HO_REQUIRED_NACK, "PS-HO-REQUIRED-NACK" }, + { BSSGP_PDUT_PS_HO_REQUEST, "PS-HO-REQUEST" }, + { BSSGP_PDUT_PS_HO_REQUEST_ACK, "PS-HO-REQUEST-ACK" }, + { BSSGP_PDUT_PS_HO_REQUEST_NACK, "PS-HO-REQUEST-NACK" }, + { BSSGP_PDUT_PS_HO_COMPLETE, "PS-HO-COMPLETE" }, + { BSSGP_PDUT_PS_HO_CANCEL, "PS-HO-CANCEL" }, + { BSSGP_PDUT_PS_HO_COMPLETE_ACK, "PS-HO-COMPLETE-ACK" }, { 0, NULL }, }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia108ba0d5f1f2c9d46f0c0bd11cd93104b9d62ea Gerrit-Change-Number: 21532 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Dec 4 11:56:00 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:56:00 +0000 Subject: Build failure of network:osmocom:latest/osmo-ggsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca23e4d8249_48252b172cac05f8537063@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-ggsn/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-ggsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-ggsn Last lines of build log: [ 131s] [427/490] installing python3.9-3.9.1~rc1-2 [ 132s] Processing triggers for mailcap (3.67) ... [ 132s] Processing triggers for man-db (2.9.3-2) ... [ 132s] [428/490] installing texlive-plain-generic-2020.20201129-1 [ 135s] Processing triggers for tex-common (6.15) ... [ 136s] Running mktexlsr. This may take some time... done. [ 136s] [429/490] installing texlive-latex-base-2020.20201129-2 [ 136s] Processing triggers for man-db (2.9.3-2) ... [ 136s] Processing triggers for tex-common (6.15) ... [ 136s] Running mktexlsr. This may take some time... done. [ 137s] Running updmap-sys. This may take some time... done. [ 137s] Running mktexlsr /var/lib/texmf ... done. [ 137s] Building format(s) --all. [ 142s] This may take some time... [ 142s] fmtutil failed. Output has been stored in [ 142s] /tmp/fmtutil.GrejJDSa [ 142s] Please include this file if you report a bug. [ 142s] dpkg: error processing package tex-common (--install): [ 142s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 142s] Errors were encountered while processing: [ 142s] tex-common [ 142s] exit ... [ 142s] ### VM INTERACTION START ### [ 146s] [ 133.073157] sysrq: Power Off [ 146s] [ 133.082759] reboot: Power down [ 146s] ### VM INTERACTION END ### [ 146s] [ 146s] sheep82 failed "build osmo-ggsn_1.6.0.dsc" at Fri Dec 4 11:55:43 UTC 2020. [ 146s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:56:36 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:56:36 +0000 Subject: Build failure of network:osmocom:latest/osmo-e1d in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca240633913_48252b172cac05f8537315@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-e1d/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-e1d failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-e1d Last lines of build log: [ 151s] [425/488] installing python3.9-3.9.1~rc1-2 [ 152s] Processing triggers for mailcap (3.67) ... [ 152s] Processing triggers for man-db (2.9.3-2) ... [ 153s] [426/488] installing texlive-plain-generic-2020.20201129-1 [ 156s] Processing triggers for tex-common (6.15) ... [ 156s] Running mktexlsr. This may take some time... done. [ 156s] [427/488] installing texlive-latex-base-2020.20201129-2 [ 157s] Processing triggers for man-db (2.9.3-2) ... [ 157s] Processing triggers for tex-common (6.15) ... [ 157s] Running mktexlsr. This may take some time... done. [ 158s] Running updmap-sys. This may take some time... done. [ 158s] Running mktexlsr /var/lib/texmf ... done. [ 158s] Building format(s) --all. [ 165s] This may take some time... [ 165s] fmtutil failed. Output has been stored in [ 165s] /tmp/fmtutil.fHtsjCa5 [ 165s] Please include this file if you report a bug. [ 165s] dpkg: error processing package tex-common (--install): [ 165s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 165s] Errors were encountered while processing: [ 165s] tex-common [ 165s] exit ... [ 165s] ### VM INTERACTION START ### [ 169s] [ 151.495405] sysrq: Power Off [ 169s] [ 151.498525] reboot: Power down [ 169s] ### VM INTERACTION END ### [ 169s] [ 169s] build81 failed "build osmo-e1d_0.1.1.dsc" at Fri Dec 4 11:56:25 UTC 2020. [ 169s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 11:57:10 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 11:57:10 +0000 Subject: Build failure of network:osmocom:latest/osmo-sip-connector in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca2420e94d1_48252b172cac05f8537576@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sip-connector/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-sip-connector failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sip-connector Last lines of build log: [ 175s] [438/513] installing python3.9-3.9.1~rc1-2 [ 177s] Processing triggers for mailcap (3.67) ... [ 177s] Processing triggers for man-db (2.9.3-2) ... [ 177s] [439/513] installing texlive-plain-generic-2020.20201129-1 [ 181s] Processing triggers for tex-common (6.15) ... [ 181s] Running mktexlsr. This may take some time... done. [ 181s] [440/513] installing texlive-latex-base-2020.20201129-2 [ 181s] Processing triggers for man-db (2.9.3-2) ... [ 182s] Processing triggers for tex-common (6.15) ... [ 182s] Running mktexlsr. This may take some time... done. [ 183s] Running updmap-sys. This may take some time... done. [ 183s] Running mktexlsr /var/lib/texmf ... done. [ 183s] Building format(s) --all. [ 191s] This may take some time... [ 191s] fmtutil failed. Output has been stored in [ 191s] /tmp/fmtutil.VXgHEQIF [ 191s] Please include this file if you report a bug. [ 191s] dpkg: error processing package tex-common (--install): [ 191s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 191s] Errors were encountered while processing: [ 191s] tex-common [ 191s] exit ... [ 191s] ### VM INTERACTION START ### [ 194s] [ 175.487552] sysrq: Power Off [ 194s] [ 175.493508] reboot: Power down [ 194s] ### VM INTERACTION END ### [ 194s] [ 194s] lamb56 failed "build osmo-sip-connector_1.4.1.dsc" at Fri Dec 4 11:56:53 UTC 2020. [ 194s] -- 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 Dec 4 11:57:59 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 11:57:59 +0000 Subject: Change in libosmocore[master]: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21493 ) Change subject: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 Gerrit-Change-Number: 21493 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 11:57: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 Dec 4 12:02:11 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 12:02:11 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 ) Change subject: gbproxy: Add BVC log filters ...................................................................... Patch Set 3: (1 comment) Fixed an issue with wrong index in argv as well and change vty to also support bvci 0 and 1 https://gerrit.osmocom.org/c/osmo-sgsn/+/21495/1/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21495/1/src/gbproxy/gb_proxy_vty.c at 556 PS1, Line 556: "logging filter bvc bvci <2-65535>", > I'd like some comments on this. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 12:02: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 Fri Dec 4 12:03:43 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 12:03:43 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca25a7d4763_48252b172cac05f8538897@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-bts failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 129s] [436/499] installing python3.9-3.9.1~rc1-2 [ 130s] Processing triggers for mailcap (3.67) ... [ 130s] Processing triggers for man-db (2.9.3-2) ... [ 130s] [437/499] installing texlive-plain-generic-2020.20201129-1 [ 133s] Processing triggers for tex-common (6.15) ... [ 134s] Running mktexlsr. This may take some time... done. [ 134s] [438/499] installing texlive-latex-base-2020.20201129-2 [ 134s] Processing triggers for man-db (2.9.3-2) ... [ 134s] Processing triggers for tex-common (6.15) ... [ 134s] Running mktexlsr. This may take some time... done. [ 135s] Running updmap-sys. This may take some time... done. [ 135s] Running mktexlsr /var/lib/texmf ... done. [ 135s] Building format(s) --all. [ 140s] This may take some time... [ 140s] fmtutil failed. Output has been stored in [ 140s] /tmp/fmtutil.uupJ4Mm0 [ 140s] Please include this file if you report a bug. [ 140s] dpkg: error processing package tex-common (--install): [ 140s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 140s] Errors were encountered while processing: [ 140s] tex-common [ 140s] exit ... [ 140s] ### VM INTERACTION START ### [ 144s] [ 129.586208] sysrq: Power Off [ 144s] [ 129.595074] reboot: Power down [ 144s] ### VM INTERACTION END ### [ 144s] [ 144s] sheep82 failed "build osmo-bts_1.2.2.dsc" at Fri Dec 4 12:03:29 UTC 2020. [ 144s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 12:05:27 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 12:05:27 +0000 Subject: Build failure of network:osmocom:latest/osmo-trx in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca262143d64_48252b172cac05f853986b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-trx/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-trx failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-trx Last lines of build log: [ 190s] Processing triggers for man-db (2.9.3-2) ... [ 190s] [507/654] installing texlive-plain-generic-2020.20201129-1 [ 193s] Processing triggers for tex-common (6.15) ... [ 193s] Running mktexlsr. This may take some time... done. [ 193s] [508/654] installing libpython3.9-3.9.1~rc1-2 [ 194s] Processing triggers for libc-bin (2.31-5) ... [ 194s] [509/654] installing texlive-latex-base-2020.20201129-2 [ 194s] Processing triggers for man-db (2.9.3-2) ... [ 195s] Processing triggers for tex-common (6.15) ... [ 195s] Running mktexlsr. This may take some time... done. [ 195s] Running updmap-sys. This may take some time... done. [ 196s] Running mktexlsr /var/lib/texmf ... done. [ 196s] Building format(s) --all. [ 203s] This may take some time... [ 203s] fmtutil failed. Output has been stored in [ 203s] /tmp/fmtutil.eTCOhoPv [ 203s] Please include this file if you report a bug. [ 203s] dpkg: error processing package tex-common (--install): [ 203s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 203s] Errors were encountered while processing: [ 203s] tex-common [ 203s] exit ... [ 203s] ### VM INTERACTION START ### [ 206s] [ 185.969630] sysrq: Power Off [ 206s] [ 185.976447] reboot: Power down [ 206s] ### VM INTERACTION END ### [ 206s] [ 206s] lamb16 failed "build osmo-trx_1.2.0.dsc" at Fri Dec 4 12:05:13 UTC 2020. [ 206s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 12:06:37 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 12:06:37 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca26616ca2c_48252b172cac05f8540346@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-hlr failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 128s] Processing triggers for mailcap (3.67) ... [ 128s] Processing triggers for man-db (2.9.3-2) ... [ 128s] [436/500] installing texlive-plain-generic-2020.20201129-1 [ 131s] Processing triggers for tex-common (6.15) ... [ 131s] Running mktexlsr. This may take some time... done. [ 131s] [437/500] installing libosmo-netif-dev-1.0.0 [ 131s] [438/500] installing texlive-latex-base-2020.20201129-2 [ 132s] Processing triggers for man-db (2.9.3-2) ... [ 132s] Processing triggers for tex-common (6.15) ... [ 132s] Running mktexlsr. This may take some time... done. [ 132s] Running updmap-sys. This may take some time... done. [ 132s] Running mktexlsr /var/lib/texmf ... done. [ 133s] Building format(s) --all. [ 138s] This may take some time... [ 138s] fmtutil failed. Output has been stored in [ 138s] /tmp/fmtutil.2C7RKitr [ 138s] Please include this file if you report a bug. [ 138s] dpkg: error processing package tex-common (--install): [ 138s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 138s] Errors were encountered while processing: [ 138s] tex-common [ 138s] exit ... [ 138s] ### VM INTERACTION START ### [ 141s] [ 125.939016] sysrq: Power Off [ 141s] [ 125.943651] reboot: Power down [ 141s] ### VM INTERACTION END ### [ 141s] [ 141s] sheep86 failed "build osmo-hlr_1.2.0.dsc" at Fri Dec 4 12:06:32 UTC 2020. [ 141s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 12:06:54 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 12:06:54 +0000 Subject: Build failure of network:osmocom:latest/libosmo-sccp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca267cdcbf6_48252b172cac05f8540686@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-sccp/Debian_Unstable/x86_64 Package network:osmocom:latest/libosmo-sccp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-sccp Last lines of build log: [ 149s] Processing triggers for mailcap (3.67) ... [ 150s] Processing triggers for man-db (2.9.3-2) ... [ 150s] [436/500] installing texlive-plain-generic-2020.20201129-1 [ 154s] Processing triggers for tex-common (6.15) ... [ 154s] Running mktexlsr. This may take some time... done. [ 154s] [437/500] installing libosmo-netif-dev-1.0.0 [ 154s] [438/500] installing texlive-latex-base-2020.20201129-2 [ 154s] Processing triggers for man-db (2.9.3-2) ... [ 155s] Processing triggers for tex-common (6.15) ... [ 155s] Running mktexlsr. This may take some time... done. [ 156s] Running updmap-sys. This may take some time... done. [ 156s] Running mktexlsr /var/lib/texmf ... done. [ 156s] Building format(s) --all. [ 163s] This may take some time... [ 163s] fmtutil failed. Output has been stored in [ 163s] /tmp/fmtutil.G68Ju8VX [ 163s] Please include this file if you report a bug. [ 163s] dpkg: error processing package tex-common (--install): [ 163s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 163s] Errors were encountered while processing: [ 163s] tex-common [ 163s] exit ... [ 163s] ### VM INTERACTION START ### [ 166s] [ 149.567772] sysrq: Power Off [ 166s] [ 149.570092] reboot: Power down [ 166s] ### VM INTERACTION END ### [ 166s] [ 166s] old-atreju4 failed "build libosmo-sccp_1.3.0.dsc" at Fri Dec 4 12:06:52 UTC 2020. [ 166s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 12:07:27 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 12:07:27 +0000 Subject: Build failure of network:osmocom:latest/osmo-remsim in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca26945678b_48252b172cac05f85409c0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-remsim/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-remsim failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-remsim Last lines of build log: [ 185s] [457/524] installing python3.9-3.9.1~rc1-2 [ 186s] Processing triggers for mailcap (3.67) ... [ 187s] Processing triggers for man-db (2.9.3-2) ... [ 187s] [458/524] installing texlive-plain-generic-2020.20201129-1 [ 190s] Processing triggers for tex-common (6.15) ... [ 190s] Running mktexlsr. This may take some time... done. [ 190s] [459/524] installing texlive-latex-base-2020.20201129-2 [ 191s] Processing triggers for man-db (2.9.3-2) ... [ 191s] Processing triggers for tex-common (6.15) ... [ 192s] Running mktexlsr. This may take some time... done. [ 192s] Running updmap-sys. This may take some time... done. [ 192s] Running mktexlsr /var/lib/texmf ... done. [ 192s] Building format(s) --all. [ 200s] This may take some time... [ 200s] fmtutil failed. Output has been stored in [ 200s] /tmp/fmtutil.86JJBQGs [ 200s] Please include this file if you report a bug. [ 200s] dpkg: error processing package tex-common (--install): [ 200s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 200s] Errors were encountered while processing: [ 200s] tex-common [ 200s] exit ... [ 200s] ### VM INTERACTION START ### [ 203s] [ 183.639720] sysrq: Power Off [ 203s] [ 183.646533] reboot: Power down [ 203s] ### VM INTERACTION END ### [ 203s] [ 203s] lamb11 failed "build osmo-remsim_0.2.3.dsc" at Fri Dec 4 12:07:10 UTC 2020. [ 203s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 12:09:09 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 12:09:09 +0000 Subject: Build failure of network:osmocom:latest/osmo-mgw in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca26f1bb89f_48252b172cac05f854151@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-mgw/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-mgw failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-mgw Last lines of build log: [ 263s] Processing triggers for mailcap (3.67) ... [ 263s] Processing triggers for man-db (2.9.3-2) ... [ 264s] [426/489] installing texlive-plain-generic-2020.20201129-1 [ 268s] Processing triggers for tex-common (6.15) ... [ 268s] Running mktexlsr. This may take some time... done. [ 268s] [427/489] installing libosmo-netif-dev-1.0.0 [ 268s] [428/489] installing texlive-latex-base-2020.20201129-2 [ 269s] Processing triggers for man-db (2.9.3-2) ... [ 269s] Processing triggers for tex-common (6.15) ... [ 270s] Running mktexlsr. This may take some time... done. [ 270s] Running updmap-sys. This may take some time... done. [ 270s] Running mktexlsr /var/lib/texmf ... done. [ 271s] Building format(s) --all. [ 280s] This may take some time... [ 280s] fmtutil failed. Output has been stored in [ 280s] /tmp/fmtutil.yZxrz4nZ [ 280s] Please include this file if you report a bug. [ 280s] dpkg: error processing package tex-common (--install): [ 280s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 280s] Errors were encountered while processing: [ 280s] tex-common [ 280s] exit ... [ 280s] ### VM INTERACTION START ### [ 283s] [ 265.601567] sysrq: Power Off [ 283s] [ 265.613209] reboot: Power down [ 283s] ### VM INTERACTION END ### [ 283s] [ 283s] lamb55 failed "build osmo-mgw_1.7.0.dsc" at Fri Dec 4 12:08:58 UTC 2020. [ 283s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 12:15:27 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 12:15:27 +0000 Subject: Build failure of network:osmocom:latest/osmo-bsc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca287784531_48252b172cac05f8543354@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bsc/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-bsc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bsc Last lines of build log: [ 184s] Processing triggers for mailcap (3.67) ... [ 184s] Processing triggers for man-db (2.9.3-2) ... [ 184s] [439/505] installing texlive-plain-generic-2020.20201129-1 [ 188s] Processing triggers for tex-common (6.15) ... [ 188s] Running mktexlsr. This may take some time... done. [ 188s] [440/505] installing libosmo-netif-dev-1.0.0 [ 188s] [441/505] installing texlive-latex-base-2020.20201129-2 [ 188s] Processing triggers for man-db (2.9.3-2) ... [ 189s] Processing triggers for tex-common (6.15) ... [ 189s] Running mktexlsr. This may take some time... done. [ 190s] Running updmap-sys. This may take some time... done. [ 190s] Running mktexlsr /var/lib/texmf ... done. [ 190s] Building format(s) --all. [ 197s] This may take some time... [ 197s] fmtutil failed. Output has been stored in [ 197s] /tmp/fmtutil.3eLonprM [ 197s] Please include this file if you report a bug. [ 197s] dpkg: error processing package tex-common (--install): [ 197s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 197s] Errors were encountered while processing: [ 197s] tex-common [ 197s] exit ... [ 197s] ### VM INTERACTION START ### [ 200s] [ 181.349465] sysrq: Power Off [ 200s] [ 181.355943] reboot: Power down [ 200s] ### VM INTERACTION END ### [ 200s] [ 200s] lamb01 failed "build osmo-bsc_1.6.1.dsc" at Fri Dec 4 12:15:22 UTC 2020. [ 200s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 12:22:19 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 12:22:19 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca29ff4c834_48252b172cac05f85441d2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-sgsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 172s] Processing triggers for mailcap (3.67) ... [ 172s] Processing triggers for man-db (2.9.3-2) ... [ 172s] [447/511] installing texlive-plain-generic-2020.20201129-1 [ 176s] Processing triggers for tex-common (6.15) ... [ 176s] Running mktexlsr. This may take some time... done. [ 176s] [448/511] installing libosmo-netif-dev-1.0.0 [ 176s] [449/511] installing texlive-latex-base-2020.20201129-2 [ 177s] Processing triggers for man-db (2.9.3-2) ... [ 177s] Processing triggers for tex-common (6.15) ... [ 177s] Running mktexlsr. This may take some time... done. [ 178s] Running updmap-sys. This may take some time... done. [ 178s] Running mktexlsr /var/lib/texmf ... done. [ 178s] Building format(s) --all. [ 186s] This may take some time... [ 186s] fmtutil failed. Output has been stored in [ 186s] /tmp/fmtutil.rZJ070Pd [ 186s] Please include this file if you report a bug. [ 186s] dpkg: error processing package tex-common (--install): [ 186s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 186s] Errors were encountered while processing: [ 186s] tex-common [ 186s] exit ... [ 186s] ### VM INTERACTION START ### [ 189s] [ 171.605844] sysrq: Power Off [ 189s] [ 171.612831] reboot: Power down [ 189s] ### VM INTERACTION END ### [ 189s] [ 189s] lamb11 failed "build osmo-sgsn_1.6.2.dsc" at Fri Dec 4 12:22:17 UTC 2020. [ 189s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 4 12:22:53 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 04 Dec 2020 12:22:53 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fca2a3956455_48252b172cac05f8544247@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-msc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 184s] Processing triggers for mailcap (3.67) ... [ 184s] Processing triggers for man-db (2.9.3-2) ... [ 185s] [449/514] installing texlive-plain-generic-2020.20201129-1 [ 188s] Processing triggers for tex-common (6.15) ... [ 189s] Running mktexlsr. This may take some time... done. [ 189s] [450/514] installing libosmo-netif-dev-1.0.0 [ 189s] [451/514] installing texlive-latex-base-2020.20201129-2 [ 189s] Processing triggers for man-db (2.9.3-2) ... [ 189s] Processing triggers for tex-common (6.15) ... [ 190s] Running mktexlsr. This may take some time... done. [ 190s] Running updmap-sys. This may take some time... done. [ 190s] Running mktexlsr /var/lib/texmf ... done. [ 191s] Building format(s) --all. [ 199s] This may take some time... [ 199s] fmtutil failed. Output has been stored in [ 199s] /tmp/fmtutil.r5zlvwTH [ 199s] Please include this file if you report a bug. [ 199s] dpkg: error processing package tex-common (--install): [ 199s] installed tex-common package post-installation script subprocess returned error exit status 1 [ 199s] Errors were encountered while processing: [ 199s] tex-common [ 199s] exit ... [ 199s] ### VM INTERACTION START ### [ 202s] [ 163.566408] sysrq: Power Off [ 202s] [ 163.584870] reboot: Power down [ 202s] ### VM INTERACTION END ### [ 202s] [ 202s] cloud121 failed "build osmo-msc_1.6.3.dsc" at Fri Dec 4 12:22:39 UTC 2020. [ 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 Dec 4 12:25:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 12:25:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 ) Change subject: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If71db2d37d67d02c5d9550202128ee3470762964 Gerrit-Change-Number: 21525 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 12:25: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 Dec 4 12:27:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 12:27:09 +0000 Subject: Change in libosmocore[master]: ns2: Fix argv index in logging filter VTY commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21527 ) Change subject: ns2: Fix argv index in logging filter VTY commands ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8adaf8094ef028b2d580e918532d6712d2ebbc2c Gerrit-Change-Number: 21527 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 12: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 Fri Dec 4 12:27:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 12:27:27 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add newline to log message In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21526 ) Change subject: gbproxy: Add newline to log message ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I91a076872b5d744a237f6d325857b95362455e8d Gerrit-Change-Number: 21526 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 12: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 Fri Dec 4 12:28:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 12:28:18 +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: pespin has posted comments on 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 ...................................................................... Patch Set 2: Code-Review+2 -- 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: 2 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 04 Dec 2020 12:28: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 Dec 4 12:32:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 12:32:57 +0000 Subject: Change in libosmocore[master]: bssgp: Update bssgp_pdu_strings with Release 15 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21532 ) Change subject: bssgp: Update bssgp_pdu_strings with Release 15 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia108ba0d5f1f2c9d46f0c0bd11cd93104b9d62ea Gerrit-Change-Number: 21532 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 12:32: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 Dec 4 12:33:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 12:33:45 +0000 Subject: Change in libosmocore[master]: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21493 ) Change subject: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 Gerrit-Change-Number: 21493 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 12:33: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 Dec 4 12:53:44 2020 From: gerrit-no-reply at lists.osmocom.org (ninjab3s) Date: Fri, 4 Dec 2020 12:53:44 +0000 Subject: Change in osmo-gsm-tester[master]: enb: Set cipher and integrity algos via scenario file References: Message-ID: ninjab3s has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533 ) Change subject: enb: Set cipher and integrity algos via scenario file ...................................................................... enb: Set cipher and integrity algos 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 integrity and chipger algorithms: - 4g:srsue-rftype at uhd+srsenb-rftype@uhd+cfg-enb-cipher at EEA1+cfg-enb-cipher@EEA0+cfg-enb-integ at EIA2+mod-enb-nprb@6 Change-Id: Id1fbf31c71967d67de11a23d52d32e44c0925061 --- M src/osmo_gsm_tester/core/schema.py M src/osmo_gsm_tester/obj/enb.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/cfg-enb-cipher at .conf A sysmocom/scenarios/cfg-enb-integ at .conf 7 files changed, 34 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/33/21533/1 diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py index d56d6ec..adcbe3c 100644 --- a/src/osmo_gsm_tester/core/schema.py +++ b/src/osmo_gsm_tester/core/schema.py @@ -106,7 +106,7 @@ return True def cipher(val): - if val in ('a5_0', 'a5_1', 'a5_2', 'a5_3', 'a5_4', 'a5_5', 'a5_6', 'a5_7'): + if val in ('a5_0', 'a5_1', 'a5_2', 'a5_3', 'a5_4', 'a5_5', 'a5_6', 'a5_7', 'EEA0', 'EEA1', 'EEA2'): return True raise ValueError('Unknown Cipher value: %r' % val) @@ -152,6 +152,11 @@ return True raise ValueError('Invalid duration value: %r' % val) +def integrity_algo(val): + if val in ('EIA0', 'EIA1', 'EIA2'): + return True + raise ValueError('Unknown integrity algorithm') + INT = 'int' STR = 'str' UINT = 'uint' @@ -174,6 +179,7 @@ OSMO_TRX_CLOCK_REF = 'osmo_trx_clock_ref' LTE_TRANSMISSION_MODE = 'lte_transmission_mode' DURATION = 'duration' +INTEGRITY_ALGO = 'integrity_algo' SCHEMA_TYPES = { INT: int, @@ -198,6 +204,7 @@ OSMO_TRX_CLOCK_REF: osmo_trx_clock_ref, LTE_TRANSMISSION_MODE: lte_transmission_mode, DURATION: duration, + INTEGRITY_ALGO: integrity_algo, } def add(dest, src): diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index cdf9505..1031662 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -24,6 +24,12 @@ from .gnuradio_zmq_broker import GrBroker def on_register_schemas(): + config_schema = { + 'cipher_algo_list[]': schema.CIPHER, + 'integrity_algo_list[]': schema.INTEGRITY_ALGO, + } + schema.register_config_schema('enb', config_schema) + resource_schema = { 'label': schema.STR, 'type': schema.STR, diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl index 4c7aa33..a7fdc63 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl @@ -224,9 +224,9 @@ dpc_pucch_snr_target: 10, /* RRC/UP ciphering algorithm preference. EEA0 is always the last. */ - cipher_algo_pref: [], + cipher_algo_pref: [${(', '.join(list(dict.fromkeys(enb.cipher_algo)))).replace('EEA', '')}], /* RRC integrity algorithm preference. EIA0 is always the last. */ - integ_algo_pref: [2, 1], + integ_algo_pref: [${(', '.join(list(dict.fromkeys(enb.integrity_algo)))).replace('EIA', '')}], /* (in ms) send RRC connection release after this time of network inactivity */ diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl index 5df432b..8ebfee9 100644 --- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl @@ -282,5 +282,5 @@ #link_failure_nof_err = 50 rrc_inactivity_timer = ${enb.inactivity_timer} #max_prach_offset_us = 30 -#eea_pref_list = EEA0, EEA2, EEA1 -#eia_pref_list = EIA2, EIA1, EIA0 +eea_pref_list = ${', '.join(list(dict.fromkeys(enb.cipher_algo_list)))} +eia_pref_list = ${', '.join(list(dict.fromkeys(enb.integrity_algo_list)))} diff --git a/sysmocom/defaults.conf b/sysmocom/defaults.conf index 7704857..384535b 100644 --- a/sysmocom/defaults.conf +++ b/sysmocom/defaults.conf @@ -130,6 +130,14 @@ a3_hysteresis: 0 a3_time_to_trigger: 480 cell_list: + cipher_algo_list: + - eea_0 + - eea_2 + - eea_1 + integrity_algo_list: + - eia_2 + - eia_1 + - eia_0 - cell_id: 0x01 pci: 0x01 dl_earfcn: 2850 diff --git a/sysmocom/scenarios/cfg-enb-cipher at .conf b/sysmocom/scenarios/cfg-enb-cipher at .conf new file mode 100644 index 0000000..b4d64ed --- /dev/null +++ b/sysmocom/scenarios/cfg-enb-cipher at .conf @@ -0,0 +1,4 @@ +config: + enb: + cipher_algo_list: + - ${param1} \ No newline at end of file diff --git a/sysmocom/scenarios/cfg-enb-integ at .conf b/sysmocom/scenarios/cfg-enb-integ at .conf new file mode 100644 index 0000000..2b6c9f9 --- /dev/null +++ b/sysmocom/scenarios/cfg-enb-integ at .conf @@ -0,0 +1,4 @@ +config: + enb: + integrity_algo_list: + - ${param1} \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533 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: Id1fbf31c71967d67de11a23d52d32e44c0925061 Gerrit-Change-Number: 21533 Gerrit-PatchSet: 1 Gerrit-Owner: ninjab3s Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Dec 4 13:10:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 13:10:09 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols This extends our existing TLV parser with the ability to * validate that mandatory IEs of a given message are present * validate that all present IEs are of required minimum length Introducing this generic layer will help us to reduce open-coded imperative verification across virtually all the protocols iwe implement, as well as add validation to those protocols where we don't properly perform related input validation yet. Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 --- M include/osmocom/gsm/tlv.h M src/gsm/tlv_parser.c 2 files changed, 141 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/21534/1 diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index 254c21b..7fb5052 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -620,4 +620,43 @@ int osmo_shift_lv(uint8_t **data, size_t *data_len, uint8_t **value, size_t *value_len); + +struct osmo_tlv_prot_msg_def { + const char *name; + /*! array of mandatory IEs */ + uint8_t *mand_ies; + /*! number of entries in 'ies' above */ + uint8_t mand_count; +}; +struct osmo_tlv_prot_ie_def { + uint16_t min_len; + const char *name; +}; + +/*! Osmocom TLV protocol definition */ +struct osmo_tlv_prot_def { + /*! human-readable name of protocol */ + const char *name; + /*! TLV parser definition */ + const struct tlv_definition *tlv_def; + /*! definition of each message (8-bit message type) */ + struct osmo_tlv_prot_msg_def msg_def[256]; + /*! minimum length = name of IEs, for each 8-bit tag */ + struct osmo_tlv_prot_ie_def ie_def[256]; + /*! value_string array of message type names (legacy, if not populated in msg_def) */ + const struct value_string *msgt_names; +}; + +const char *osmo_tlv_prot_msg_name(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type); +const char *osmo_tlv_prot_ie_name(const struct osmo_tlv_prot_def *pdef, uint8_t iei); + +int osmo_tlv_prot_validate_tp(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type, + const struct tlv_parsed *tp, int log_subsys, const char *log_pfx); + +int osmo_tlv_prot_parse(const struct osmo_tlv_prot_def *pdef, + struct tlv_parsed *dec, unsigned int dec_multiples, uint8_t msg_type, + const uint8_t *buf, unsigned int buf_len, uint8_t lv_tag, uint8_t lv_tag2, + int log_subsys, const char *log_pfx); + + /*! @} */ diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 159b42b..ddc48c8 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -1,4 +1,4 @@ -/* (C) 2008-2017 by Harald Welte +/* (C) 2008-2020 by Harald Welte * (C) 2016-2017 by sysmocom - s.f.m.c. GmbH * * All Rights Reserved @@ -24,6 +24,7 @@ #include #include #include +#include #include /*! \addtogroup tlv @@ -627,4 +628,104 @@ return -1; } +static __thread char ienamebuf[32]; +static __thread char msgnamebuf[32]; + +/*! get the message name for given msg_type in protocol pdef */ +const char *osmo_tlv_prot_msg_name(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type) +{ + if (pdef->msg_def[msg_type].name) { + return pdef->msg_def[msg_type].name; + } else if (pdef->msgt_names) { + return get_value_string(pdef->msgt_names, msg_type); + } else { + snprintf(msgnamebuf, sizeof(msgnamebuf), "Unknown msg_type 0x%02x", msg_type); + return msgnamebuf; + } +} + +/*! get the IE name for given IEI in protocol pdef */ +const char *osmo_tlv_prot_ie_name(const struct osmo_tlv_prot_def *pdef, uint8_t iei) +{ + if (pdef->ie_def[iei].name) { + return pdef->ie_def[iei].name; + } else { + snprintf(ienamebuf, sizeof(ienamebuf), "Unknown IEI 0x%02x", iei); + return ienamebuf; + } +} + +/*! Validate an already TLV-decoded message against the protocol definition. + * \param[in] pdef protocol definition of given protocol + * \param[in] msg_type message type of the parsed message + * \param[in] tp TLV parser result + * \param[in] log_subsys logging sub-system for log messages + * \param[in] log_pfx prefix for log messages + */ +int osmo_tlv_prot_validate_tp(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type, + const struct tlv_parsed *tp, int log_subsys, const char *log_pfx) +{ + const struct osmo_tlv_prot_msg_def *msg_def= &pdef->msg_def[msg_type]; + unsigned int num_err = 0; + unsigned int i; + + if (msg_def->mand_ies) { + for (i = 0; i < msg_def->mand_count; i++) { + uint8_t iei = msg_def->mand_ies[i]; + if (!TLVP_PRESENT(tp, iei)) { + LOGP(log_subsys, LOGL_ERROR, "%s %s %s: Missing Mandatory IE: %s\n", + log_pfx, pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), + osmo_tlv_prot_ie_name(pdef, iei)); + num_err++; + } + } + } + + for (i = 0; i < ARRAY_SIZE(tp->lv); i++) { + uint16_t min_len; + + if (!TLVP_PRESENT(tp, i)) + continue; + + min_len = pdef->ie_def[i].min_len; + if (TLVP_LEN(tp, i) < min_len) { + LOGP(log_subsys, LOGL_ERROR, "%s %s %s: Short IE %s: %u < %u\n", log_pfx, + pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), + osmo_tlv_prot_ie_name(pdef, i), TLVP_LEN(tp, i), min_len); + num_err++; + } + } + + return -num_err; +} + +/*! Parse + Validate a TLV-encoded message against the protocol definition. + * \param[in] pdef protocol definition of given protocol + * \param[out] dec caller-allocated pointer to \ref tlv_parsed + * \param[in] dec_multiples length of the tlv_parsed[] in \a dec. + * \param[in] msg_type message type of the parsed message + * \param[in] buf the input data buffer to be parsed + * \param[in] buf_len length of the input data buffer + * \param[in] lv_tag an initial LV tag at the start of the buffer + * \param[in] lv_tag2 a second initial LV tag following the \a lv_tag + * \param[in] log_subsys logging sub-system for log messages + * \param[in] log_pfx prefix for log messages + */ +int osmo_tlv_prot_parse(const struct osmo_tlv_prot_def *pdef, + struct tlv_parsed *dec, unsigned int dec_multiples, uint8_t msg_type, + const uint8_t *buf, unsigned int buf_len, uint8_t lv_tag, uint8_t lv_tag2, + int log_subsys, const char *log_pfx) +{ + int rc; + + rc = tlv_parse2(dec, dec_multiples, pdef->tlv_def, buf, buf_len, lv_tag, lv_tag2); + if (rc < 0) { + LOGP(log_subsys, LOGL_ERROR, "%s %s %s: TLV parser error %d\n", log_pfx, + pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), rc); + return rc; + } + + return osmo_tlv_prot_validate_tp(pdef, msg_type, dec, log_subsys, log_pfx); +} + /*! @} */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 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 Dec 4 13:10:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 13:10:10 +0000 Subject: Change in libosmocore[master]: tlv: Introduce enum with error codes for TLV parser functions References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21535 ) Change subject: tlv: Introduce enum with error codes for TLV parser functions ...................................................................... tlv: Introduce enum with error codes for TLV parser functions Change-Id: I0b352792089c5c0c714712d2ea237beb92e1d73f --- M include/osmocom/gsm/tlv.h M src/gsm/tlv_parser.c 2 files changed, 31 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/35/21535/1 diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index 7fb5052..702a26c 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -40,6 +40,16 @@ /*! maximum length of TLV of one byte length */ #define TVLV_MAX_ONEBYTE 0x7f +/*! error return codes of various TLV parser functions */ +enum osmo_tlv_parser_error { + OSMO_TLVP_ERR_OFS_BEYOND_BUFFER = -1, + OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER = -2, + OSMO_TLVP_ERR_UNKNOWN_TLV_TYPE = -3, + + OSMO_TLVP_ERR_MAND_IE_MISSING = -50, + OSMO_TLVP_ERR_IE_TOO_SHORT = -51, +}; + /*! gross length of a TVLV type field */ static inline uint16_t TVLV_GROSS_LEN(uint16_t len) { diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index ddc48c8..7930d64 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -266,24 +266,24 @@ case TLV_TYPE_TLV: tlv: /* GSM TS 04.07 11.2.4: Type 4 TLV */ if (buf + 1 > buf + buf_len) - return -1; + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+2; *o_len = *(buf+1); len = *o_len + 2; if (len > buf_len) - return -2; + 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+1) & 0x80) { /* like TL16Vbut without highest bit of len */ if (2 > buf_len) - return -1; + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+3; *o_len = (*(buf+1) & 0x7F) << 8 | *(buf+2); len = *o_len + 3; if (len > buf_len) - return -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; } else { /* like TLV */ goto tlv; @@ -293,26 +293,26 @@ if (*(buf+1) & 0x80) { /* like TLV, but without highest bit of len */ if (buf + 1 > buf + buf_len) - return -1; + 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 -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; } /* like TL16V, fallthrough */ case TLV_TYPE_TL16V: if (2 > buf_len) - return -1; + 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 -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; default: - return -3; + return OSMO_TLVP_ERR_UNKNOWN_TLV_TYPE; } return len; @@ -370,12 +370,12 @@ const uint8_t *val; uint16_t parsed_len; if (ofs > buf_len) - return -1; + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; val = &buf[ofs+1]; len = buf[ofs]; parsed_len = len + 1; if (ofs + parsed_len > buf_len) - return -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; num_parsed++; ofs += parsed_len; /* store the resulting val and len */ @@ -391,12 +391,12 @@ const uint8_t *val; uint16_t parsed_len; if (ofs > buf_len) - return -1; + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; val = &buf[ofs+1]; len = buf[ofs]; parsed_len = len + 1; if (ofs + parsed_len > buf_len) - return -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; num_parsed++; ofs += parsed_len; /* store the resulting val and len */ @@ -661,12 +661,13 @@ * \param[in] tp TLV parser result * \param[in] log_subsys logging sub-system for log messages * \param[in] log_pfx prefix for log messages + * \returns 0 in case of success; negative osmo_tlv_parser_error in case of error */ int osmo_tlv_prot_validate_tp(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type, const struct tlv_parsed *tp, int log_subsys, const char *log_pfx) { const struct osmo_tlv_prot_msg_def *msg_def= &pdef->msg_def[msg_type]; - unsigned int num_err = 0; + unsigned int err = 0; unsigned int i; if (msg_def->mand_ies) { @@ -676,7 +677,8 @@ LOGP(log_subsys, LOGL_ERROR, "%s %s %s: Missing Mandatory IE: %s\n", log_pfx, pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), osmo_tlv_prot_ie_name(pdef, iei)); - num_err++; + if (!err) + err = OSMO_TLVP_ERR_MAND_IE_MISSING; } } } @@ -692,11 +694,12 @@ LOGP(log_subsys, LOGL_ERROR, "%s %s %s: Short IE %s: %u < %u\n", log_pfx, pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), osmo_tlv_prot_ie_name(pdef, i), TLVP_LEN(tp, i), min_len); - num_err++; + if (!err) + err = OSMO_TLVP_ERR_IE_TOO_SHORT; } } - return -num_err; + return err; } /*! Parse + Validate a TLV-encoded message against the protocol definition. @@ -710,6 +713,7 @@ * \param[in] lv_tag2 a second initial LV tag following the \a lv_tag * \param[in] log_subsys logging sub-system for log messages * \param[in] log_pfx prefix for log messages + * \returns 0 in case of success; negative osmo_tlv_parser_error in case of error */ int osmo_tlv_prot_parse(const struct osmo_tlv_prot_def *pdef, struct tlv_parsed *dec, unsigned int dec_multiples, uint8_t msg_type, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0b352792089c5c0c714712d2ea237beb92e1d73f Gerrit-Change-Number: 21535 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 Dec 4 14:16:03 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 14:16:03 +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: daniel has uploaded a new patch set (#3) to the change originally created by laforge. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21476 ) Change subject: gbproxy: Send BVC-BLOCK for PTP BVC to SGSN when BSS resets BVCI=0 ...................................................................... gbproxy: Send BVC-BLOCK for PTP BVC to SGSN when BSS resets BVCI=0 We cannot pass the RESET of BVCI=0 on to the SGSN, as this would affect all other NSE/BSS, too. Instead, we block the corresponding PTP BVC. The BSS is expected to trigger a RESET of the PTP BVC shortly after completing the BVCI=0 RESET, which will then also unblock those PTP BVC again. Change-Id: I48f1c148bc5c7c9a49b789dac78f76c2aa7baff8 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 50 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/76/21476/3 -- 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: 3 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Dec 4 14:17:57 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 14:17:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Reset gbproxy bvc as well as ns state References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21536 ) Change subject: gbproxy: Reset gbproxy bvc as well as ns state ...................................................................... gbproxy: Reset gbproxy bvc as well as ns state We need to ensure that before each test the gbproxy does not have any state. Move the vty commands into loops that run before we init either SGSN or PCU Gb. This ensures that we don't send some spurious block or other message at the start of the test. Related: SYS#5002 Change-Id: Iaedfadf94f716b190495a807c28785be0078addc --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/36/21536/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index c9b08cc..a9bbded 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -382,11 +382,17 @@ f_init_vty(); for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { f_vty_transceive(GBPVTY, "nsvc nsei " & int2str(g_sgsn[i].cfg.nsei) & " force-unconfigured"); + } + for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) { + f_vty_transceive(GBPVTY, "nsvc nsei " & int2str(g_pcu[i].cfg.nsei) & " force-unconfigured"); + f_vty_transceive(GBPVTY, "delete-gbproxy-peer " & int2str(g_pcu[i].cfg.nsei) & " only-bvc"); + } + + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { f_init_gb_sgsn(g_sgsn[i], "GbProxy_Test", i); } f_sleep(4.0); for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) { - f_vty_transceive(GBPVTY, "nsvc nsei " & int2str(g_pcu[i].cfg.nsei) & " force-unconfigured"); f_init_gb_pcu(g_pcu[i], "GbProxy_Test", i); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaedfadf94f716b190495a807c28785be0078addc Gerrit-Change-Number: 21536 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 Dec 4 14:17:58 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 14:17:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21537 ) Change subject: gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass ...................................................................... gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass If we hit none of the failures in the test case it means the test was passed. Change-Id: I6fe00558b346174f05f36703fe630796fb04a71e Related: SYS#5002 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/37/21537/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index a9bbded..91735bf 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2112,7 +2112,7 @@ /* check if BVC-block was not received on any unexpected BVC is not required as * such a message would basically run into 'no matching clause' */ - + setverdict(pass); f_cleanup(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6fe00558b346174f05f36703fe630796fb04a71e Gerrit-Change-Number: 21537 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 Dec 4 14:58:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 14:58:35 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#7) to the change originally created by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Introduce NM GPRS NSVC FSM Related: OS#4870 Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 --- M include/osmocom/bsc/bts_sm.h M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nsvc_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 16 files changed, 557 insertions(+), 41 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/52/21452/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 7 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 Fri Dec 4 14:58:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 14:58:35 +0000 Subject: Change in osmo-bsc[master]: oml: Delay configuring NSVC until BTS features are negotiated 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/osmo-bsc/+/21451 ) Change subject: oml: Delay configuring NSVC until BTS features are negotiated ...................................................................... oml: Delay configuring NSVC until BTS features are negotiated This is needed in order to to proper feature support verification for IPv6 when configuring the NSVC. Before this patch, there could be a race condition where NSVC FSM checked for BTS feature BTS_FEAT_IPV6_NSVC before it was negotiated through BTS Get Attributes (Ack). Fixes: OS#4870 Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/nm_common_fsm.h M src/osmo-bsc/nm_bts_fsm.c M src/osmo-bsc/nm_common_fsm.c M src/osmo-bsc/nm_gprs_nsvc_fsm.c 5 files changed, 38 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/51/21451/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 Gerrit-PatchSet: 3 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 Dec 4 14:58:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 14:58:36 +0000 Subject: Change in osmo-bsc[master]: Fix typo in function nanobts_attr_nsvc_get References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21538 ) Change subject: Fix typo in function nanobts_attr_nsvc_get ...................................................................... Fix typo in function nanobts_attr_nsvc_get Change-Id: I50235ba7b045ab7fba2112e61191d2756a67dfdc --- M include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/nm_gprs_nsvc_fsm.c M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/nanobts_omlattr/nanobts_omlattr_test.ok 5 files changed, 13 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/38/21538/1 diff --git a/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h b/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h index 22a8c34..687f16a 100644 --- a/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h +++ b/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h @@ -31,6 +31,6 @@ struct msgb *nanobts_attr_bts_get(struct gsm_bts *bts); struct msgb *nanobts_attr_nse_get(struct gsm_bts_sm *bts_sm); struct msgb *nanobts_attr_cell_get(struct gsm_bts *bts); -struct msgb *nanobts_attr_nscv_get(struct gsm_bts *bts); +struct msgb *nanobts_attr_nsvc_get(struct gsm_bts *bts); struct msgb *nanobts_attr_radio_get(struct gsm_bts *bts, struct gsm_bts_trx *trx); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index e23a688..885f4cc 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -199,7 +199,7 @@ return msgb; } -struct msgb *nanobts_attr_nscv_get(struct gsm_bts *bts) +struct msgb *nanobts_attr_nsvc_get(struct gsm_bts *bts) { struct msgb *msgb; uint8_t buf[256]; diff --git a/src/osmo-bsc/nm_gprs_nsvc_fsm.c b/src/osmo-bsc/nm_gprs_nsvc_fsm.c index d28dfd3..ffc5659 100644 --- a/src/osmo-bsc/nm_gprs_nsvc_fsm.c +++ b/src/osmo-bsc/nm_gprs_nsvc_fsm.c @@ -103,7 +103,7 @@ return; } nsvc->mo.set_attr_sent = true; - msgb = nanobts_attr_nscv_get(nsvc->bts); + msgb = nanobts_attr_nsvc_get(nsvc->bts); OSMO_ASSERT(msgb); abis_nm_ipaccess_set_attr(nsvc->bts, NM_OC_GPRS_NSVC, nsvc->bts->bts_nr, nsvc->id, 0xff, msgb->data, msgb->len); diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index 6e85138..73ba869 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -151,13 +151,13 @@ printf("\n"); } -static void test_nanobts_attr_nscv_get(struct gsm_bts *bts, uint8_t *expected) +static void test_nanobts_attr_nsvc_get(struct gsm_bts *bts, uint8_t *expected) { struct msgb *msgb; - printf("Testing nanobts_attr_nscv_get()...\n"); + printf("Testing nanobts_attr_nsvc_get()...\n"); - msgb = nanobts_attr_nscv_get(bts); + msgb = nanobts_attr_nsvc_get(bts); printf("result= %s\n", osmo_hexdump_nospc(msgb->data, msgb->len)); printf("expected=%s\n", osmo_hexdump_nospc(expected, msgb->len)); OSMO_ASSERT(memcmp(msgb->data, expected, msgb->len) == 0); @@ -173,7 +173,7 @@ { struct msgb *msgb; - printf("Testing nanobts_attr_nscv_get()...\n"); + printf("Testing nanobts_attr_nsvc_get()...\n"); msgb = nanobts_attr_radio_get(bts, trx); printf("result= %s\n", osmo_hexdump_nospc(msgb->data, msgb->len)); @@ -263,7 +263,7 @@ 0xfa, 0x00, 0xfa, 0x02 }; - /* Parameters needed to test nanobts_attr_nscv_get() */ + /* Parameters needed to test nanobts_attr_nsvc_get() */ struct osmo_sockaddr_str addr; osmo_sockaddr_str_from_str(&addr, "10.9.1.101", 23000); osmo_sockaddr_str_to_sockaddr(&addr, &bts->site_mgr->gprs.nsvc[0].remote.u.sas); @@ -285,7 +285,7 @@ test_nanobts_attr_bts_get(bts, attr_bts_expected); test_nanobts_attr_nse_get(bts, attr_nse_expected); test_nanobts_attr_cell_get(bts, attr_cell_expected); - test_nanobts_attr_nscv_get(bts, attr_nscv_expected); + test_nanobts_attr_nsvc_get(bts, attr_nscv_expected); test_nanobts_attr_radio_get(bts, trx, attr_radio_expected); /* NSVC IPv6 test */ @@ -303,7 +303,7 @@ 0xfd, 0x00, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12, }; - test_nanobts_attr_nscv_get(bts, attr_nscv6_expected); + test_nanobts_attr_nsvc_get(bts, attr_nscv6_expected); printf("Done\n"); diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.ok b/tests/nanobts_omlattr/nanobts_omlattr_test.ok index abdb95e..2f3ff77 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.ok +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.ok @@ -13,17 +13,17 @@ expected=9a0001009c000205039e00020002a30009140505a0050a04080fa800020f00a9000500fa00fa02 ok. -Testing nanobts_attr_nscv_get()... +Testing nanobts_attr_nsvc_get()... result= 9f00020065a2000859d80a0901655a3c expected=9f00020065a2000859d80a0901655a3c ok. -Testing nanobts_attr_nscv_get()... +Testing nanobts_attr_nsvc_get()... result= 2d0b0500020362 expected=2d0b0500020362 ok. -Testing nanobts_attr_nscv_get()... +Testing nanobts_attr_nsvc_get()... result= 9f00020065fd001629005a3c59e2fd005678901234567890123456789012 expected=9f00020065fd001629005a3c59e2fd005678901234567890123456789012 ok. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I50235ba7b045ab7fba2112e61191d2756a67dfdc Gerrit-Change-Number: 21538 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 Dec 4 15:50:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 15:50:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Reset gbproxy bvc as well as ns state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21536 ) Change subject: gbproxy: Reset gbproxy bvc as well as ns state ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaedfadf94f716b190495a807c28785be0078addc Gerrit-Change-Number: 21536 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 15: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 Fri Dec 4 15:51:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 15:51:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21537 ) Change subject: gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6fe00558b346174f05f36703fe630796fb04a71e Gerrit-Change-Number: 21537 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 15:51: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 Dec 4 15:55:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 15:55:57 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 ) Change subject: gbproxy: Add BVC log filters ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 15:55: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 Dec 4 16:06:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 16:06:00 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 1: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21534/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/21534/1//COMMIT_MSG at 14 PS1, Line 14: imperative verification across virtually all the protocols iwe iwe -> we https://gerrit.osmocom.org/c/libosmocore/+/21534/1/include/osmocom/gsm/tlv.h File include/osmocom/gsm/tlv.h: https://gerrit.osmocom.org/c/libosmocore/+/21534/1/include/osmocom/gsm/tlv.h at 644 PS1, Line 644: /*! minimum length = name of IEs, for each 8-bit tag */ I don't really get what you mean here. https://gerrit.osmocom.org/c/libosmocore/+/21534/1/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/21534/1/src/gsm/tlv_parser.c at 641 PS1, Line 641: } else { IIRC get_value_string can already return a similar "unknown 0x%x" string, so you can probably drop this else condition. https://gerrit.osmocom.org/c/libosmocore/+/21534/1/src/gsm/tlv_parser.c at 690 PS1, Line 690: min_len = pdef->ie_def[i].min_len; May it make sense to instead have a min_len max_len range? with some special value NO_MAX_LEN 0xffff meaning max is not to be checked. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 16:06: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 Fri Dec 4 16:06:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 16:06:45 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 1: BTW, this probably deserves some sort of unit test to have some sample use of the API. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 16:06: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 Fri Dec 4 16:07:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 16:07:24 +0000 Subject: Change in libosmocore[master]: tlv: Introduce enum with error codes for TLV parser functions In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21535 ) Change subject: tlv: Introduce enum with error codes for TLV parser functions ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0b352792089c5c0c714712d2ea237beb92e1d73f Gerrit-Change-Number: 21535 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 16: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 Fri Dec 4 16:49:39 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 16:49:39 +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: daniel has uploaded a new patch set (#4) to the change originally created by laforge. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21476 ) Change subject: gbproxy: Send BVC-BLOCK for PTP BVC to SGSN when BSS resets BVCI=0 ...................................................................... gbproxy: Send BVC-BLOCK for PTP BVC to SGSN when BSS resets BVCI=0 We cannot pass the RESET of BVCI=0 on to the SGSN, as this would affect all other NSE/BSS, too. Instead, we block the corresponding PTP BVC. The BSS is expected to trigger a RESET of the PTP BVC shortly after completing the BVCI=0 RESET, which will then also unblock those PTP BVC again. Change-Id: I48f1c148bc5c7c9a49b789dac78f76c2aa7baff8 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 49 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/76/21476/4 -- 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: daniel Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Dec 4 16:49:41 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 16:49:41 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Allow gbproxy_nse_free(NULL) References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21539 ) Change subject: gbproxy: Allow gbproxy_nse_free(NULL) ...................................................................... gbproxy: Allow gbproxy_nse_free(NULL) Calling free() with a null-pointer is usually supported and does nothing. Change gbproxy_{peer,nse}_free() to reflect that behaviour. Change-Id: Ia32084f81ca8f8cb9ddea3adabd4b44fd766f1c7 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/39/21539/1 diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 2b28dd5..ea5fe1e 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -242,7 +242,8 @@ void gbproxy_peer_free(struct gbproxy_peer *peer) { - OSMO_ASSERT(peer); + if (!peer) + return; llist_del(&peer->list); osmo_timer_del(&peer->clean_stale_timer); @@ -305,7 +306,8 @@ void gbproxy_nse_free(struct gbproxy_nse *nse) { struct gbproxy_peer *peer, *tmp; - OSMO_ASSERT(nse); + if (!nse) + return; llist_del(&nse->list); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia32084f81ca8f8cb9ddea3adabd4b44fd766f1c7 Gerrit-Change-Number: 21539 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 Dec 4 16:49:41 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 16:49:41 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21540 ) Change subject: gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command ...................................................................... gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command The gbproxy_nse is created when the signalling BVC is resetted. When we delete all bvcs of an nsei we need to remove it as well. Change-Id: I997b29fef93188565f81bd403bc68840473958c3 Related: SYS#5002 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/40/21540/1 diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 379b8c2..bf1c4e0 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -696,9 +696,11 @@ delete_bvc = delete_nsvc = 1; if (delete_bvc) { - if (!dry_run) + if (!dry_run) { + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei); counter = gbproxy_cleanup_peers(g_cfg, nsei, 0); - else { + gbproxy_nse_free(nse); + } else { struct gbproxy_nse *nse; struct gbproxy_peer *peer; counter = 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I997b29fef93188565f81bd403bc68840473958c3 Gerrit-Change-Number: 21540 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 Dec 4 16:52:09 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 16:52:09 +0000 Subject: Change in libosmocore[master]: ns2: Fix argv index in logging filter VTY commands In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21527 ) Change subject: ns2: Fix argv index in logging filter VTY commands ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8adaf8094ef028b2d580e918532d6712d2ebbc2c Gerrit-Change-Number: 21527 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 16:52: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 Dec 4 16:52:12 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 16:52:12 +0000 Subject: Change in libosmocore[master]: ns2: Fix argv index in logging filter VTY commands In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21527 ) Change subject: ns2: Fix argv index in logging filter VTY commands ...................................................................... ns2: Fix argv index in logging filter VTY commands Change-Id: I8adaf8094ef028b2d580e918532d6712d2ebbc2c Related: SYS#5232 --- M src/gb/gprs_ns2_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) 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 9c214a3..43e9c2c 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -778,7 +778,7 @@ { struct log_target *tgt; struct gprs_ns2_nse *nse; - uint16_t id = atoi(argv[1]); + uint16_t id = atoi(argv[0]); log_tgt_mutex_lock(); tgt = osmo_log_vty2tgt(vty); @@ -810,7 +810,7 @@ { struct log_target *tgt; struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[1]); + uint16_t id = atoi(argv[0]); log_tgt_mutex_lock(); tgt = osmo_log_vty2tgt(vty); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8adaf8094ef028b2d580e918532d6712d2ebbc2c Gerrit-Change-Number: 21527 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 Fri Dec 4 17:36:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:36:39 +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: pespin has posted comments on 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 ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21476/4/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21476/4/src/gbproxy/gb_proxy.c at 1005 PS4, Line 1005: if (llist_empty(&nse->bts_peers)) { looks like it may make sense to have this inside gbproxy_peer_free? I assume llist_del nse->bts_peers is called inside there right? -- 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: daniel Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 04 Dec 2020 17:36: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 Fri Dec 4 17:38:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:38:01 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21540 ) Change subject: gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I997b29fef93188565f81bd403bc68840473958c3 Gerrit-Change-Number: 21540 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17:38: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 Dec 4 17:38:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:38:18 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Allow gbproxy_nse_free(NULL) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21539 ) Change subject: gbproxy: Allow gbproxy_nse_free(NULL) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia32084f81ca8f8cb9ddea3adabd4b44fd766f1c7 Gerrit-Change-Number: 21539 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17:38: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 Dec 4 17:39:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:39:37 +0000 Subject: Change in osmo-gsm-tester[master]: cfg templates: log level and source basename last, log no category-hex In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 ) Change subject: cfg templates: log level and source basename last, log no category-hex ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 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: I2755beffd18d6779367c04e4aaaed119d66eb3be Gerrit-Change-Number: 21503 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17:39: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 Dec 4 17:43:40 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 4 Dec 2020 17:43:40 +0000 Subject: Change in osmo-gsm-tester[master]: cfg templates: log level and source basename last, log no category-hex 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/+/21503 to look at the new patch set (#2). Change subject: cfg templates: log level and source basename last, log no category-hex ...................................................................... cfg templates: log level and source basename last, log no category-hex Makes for saner log output in stderr files. Change-Id: I2755beffd18d6779367c04e4aaaed119d66eb3be --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl 17 files changed, 51 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/03/21503/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 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: I2755beffd18d6779367c04e4aaaed119d66eb3be Gerrit-Change-Number: 21503 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 Fri Dec 4 17:43:40 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 4 Dec 2020 17:43:40 +0000 Subject: Change in osmo-gsm-tester[master]: do not redirect_stdout in test scripts In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21513 ) Change subject: do not redirect_stdout in test scripts ...................................................................... do not redirect_stdout in test scripts In a test, I called print() on a multi-line string and saw the log showing each line 0.2 seconds apart. redirect.stdout seems to be pretty inefficient. Instead, put a print() function into the testenv, to directly call log() on the strings passed to print(). The initial idea for redirect_stdout was that we could print() in any deeper functions called from a test script. But we have no such nested print() anywhere, only in test scripts themselves. As a result of this, a multi-line print() in test scripts now no longer puts the log prefix (timestamp, test name...) and suffix (backtrace / source position) to each single line, but prints the multiline block between a single log prefix and suffix -- exactly like the log() function does everywhere else. I actually briefly implemented adding the log prefix to each separate line everywhere, but decided that it is not a good idea: in some places we log config file snippets and other lists, and prepending the log prefix to each line makes pasting such a snippet from (say) a jenkins log super cumbersome. And the log prefix (backtrace) attached on each separate line makes multiline blocks very noisy, unreadable. Change-Id: I0972c66b9165bd7f2b0b387e0335172849199193 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 4 files changed, 24 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/13/21513/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21513 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: I0972c66b9165bd7f2b0b387e0335172849199193 Gerrit-Change-Number: 21513 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Dec 4 17:43:40 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 4 Dec 2020 17:43:40 +0000 Subject: Change in osmo-gsm-tester[master]: add test.report_fragment() In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 ) Change subject: add test.report_fragment() ...................................................................... add test.report_fragment() Allow enriching the junit output with arbitrary subtasks within a test. The current aim is, for handover tests, to not just show that a test failed, but to show exactly which steps worked and which didn't, e.g.: handover.py__01_bts0_started PASSED handover.py__02.1_ms0_attach PASSED handover.py__02.2_ms1_attach PASSED handover.py__02.3_subscribed_in_msc PASSED handover.py__03_call_established PASSED handover.py__04.1_bts1_started FAILED In this case it is immediately obvious from looking at the jenkins results analyzer that bts1 is the cause of the test failure, and it is visible which parts of the test are flaky, over time. First user Will be the upcoming handover_2G suite, in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.ok.ign M selftest/suite_test/suite_test.py A selftest/suite_test/suitedirA/test_suite/test_report_fragment.py M src/osmo_gsm_tester/core/report.py M src/osmo_gsm_tester/core/test.py 6 files changed, 173 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/16/21516/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 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: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 Gerrit-Change-Number: 21516 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Dec 4 17:43:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 4 Dec 2020 17:43:42 +0000 Subject: Change in osmo-gsm-tester[master]: fix: line nr in test name in wrong places References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21541 ) Change subject: fix: line nr in test name in wrong places ...................................................................... fix: line nr in test name in wrong places test.Test() overrides name() in order to provide source line number information. However, overriding name() is the wrong place for that, as name() is also often used for identifying an object - when listing the tests of a suite, the line number should not appear in the test name. For example, the line number sometimes ends up in the test results in jenkins, making 'foo.py' and 'foo.py:23' two distinct report items. Instead, add a separate function Origin.src() that defaults to name(), but specific classes can override src() if they wish to provide more detailed information with the object name. Override src() in Test, not name(). Use src() in backtraces. The suite_test.ok shows that the backtracing in the log remains unchanged, but the place where the test name is printed is corrected: I am 'test_suite' / 'hello_world.py:23' becomes I am 'test_suite' / 'hello_world.py' (Notice that "[LINENR]" in suite_test.ok is a masking of an actual number, done within the selftest suite) Change-Id: I0c4698fa2b3db3de777d8b6dcdcee84e433c62b7 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py 3 files changed, 17 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/41/21541/1 diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index b25479a..7bcddef 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -207,7 +207,7 @@ trial test_suite hello_world.py ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py:[LINENR]' [test_suite?hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] @@ -234,7 +234,7 @@ ---------------------------------------------- trial test_suite test_error.py ---------------------------------------------- -tst test_error.py:[LINENR]: I am 'test_suite' / 'test_error.py:[LINENR]' [test_suite?test_error.py:[LINENR]] [test_error.py:[LINENR]] +tst test_error.py:[LINENR]: I am 'test_suite' / 'test_error.py' [test_suite?test_error.py:[LINENR]] [test_error.py:[LINENR]] tst test_error.py:[LINENR]: ERR: AssertionError: test_error.py:[LINENR]: assert False [test_suite?test_error.py:[LINENR]] [test_error.py:[LINENR]: assert False] tst test_error.py:[LINENR]: Test FAILED (N.N sec) [test_suite?test_error.py:[LINENR]] [test.py:[LINENR]] --------------------------------------------------------------------- @@ -259,7 +259,7 @@ ---------------------------------------------- trial test_suite test_fail.py ---------------------------------------------- -tst test_fail.py:[LINENR]: I am 'test_suite' / 'test_fail.py:[LINENR]' [test_suite?test_fail.py:[LINENR]] [test_fail.py:[LINENR]] +tst test_fail.py:[LINENR]: I am 'test_suite' / 'test_fail.py' [test_suite?test_fail.py:[LINENR]] [test_fail.py:[LINENR]] tst test_fail.py:[LINENR]: ERR: EpicFail: This failure is expected [test_suite?test_fail.py:[LINENR]] [test_fail.py:[LINENR]] tst test_fail.py:[LINENR]: Test FAILED (N.N sec) [test_suite?test_fail.py:[LINENR]] [test.py:[LINENR]] --------------------------------------------------------------------- @@ -483,7 +483,7 @@ trial test_suite hello_world.py ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py:[LINENR]' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] @@ -685,7 +685,7 @@ trial test_suite hello_world.py ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py:[LINENR]' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] @@ -933,7 +933,7 @@ trial test_suite hello_world.py ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py:[LINENR]' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index b8182f5..2b8db62 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -222,7 +222,7 @@ if origin is None: name = '-' elif isinstance(origin, Origin): - name = origin.name() + name = origin.src() # only log ancestry when there is more than one if origin._parent is not None: deeper_origins = origin.ancestry_str() @@ -447,6 +447,12 @@ def name(self): return self._name or self.__class__.__name__ + def src(self): + '''subclasses may override this to provide more detailed source + information with the name, for a backtrace. For example, a line number + in a test script.''' + return self.name() + __str__ = name __repr__ = name @@ -476,7 +482,7 @@ return origins def ancestry_str(self): - return '?'.join([o.name() for o in self.ancestry()]) + return '?'.join([o.src() for o in self.ancestry()]) def highest_ancestor(self): if self._parent: diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index fd3ac04..896eb4c 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -102,11 +102,11 @@ for log_tgt in self.log_targets: log_tgt.remove() - def name(self): + def src(self): l = log.get_line_for_src(self.path) if l is not None: - return '%s:%s' % (self._name, l) - return super().name() + return '%s:%s' % (self.name(), l) + return self.name() def elapsed_time(self): 'time elapsed since test was started' -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21541 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: I0c4698fa2b3db3de777d8b6dcdcee84e433c62b7 Gerrit-Change-Number: 21541 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 Fri Dec 4 17:43:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 4 Dec 2020 17:43:42 +0000 Subject: Change in osmo-gsm-tester[master]: typo / newline in selftest log output References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21542 ) Change subject: typo / newline in selftest log output ...................................................................... typo / newline in selftest log output ...because it otherwise causes confusing selftest log changes in upcoming I0972c66b9165bd7f2b0b387e0335172849199193 Change-Id: I1eec31c5baba5ef33d0c8441b1e94a00d79af9bf --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suitedirB/suiteC/test_template_overlay.py M selftest/template_test/template_test.ok M selftest/template_test/template_test.py 4 files changed, 4 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/42/21542/1 diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 7bcddef..6ed7619 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -1242,8 +1242,7 @@ ---------------------------------------------- tst test_template_overlay.py:[LINENR]: - Testing: expect to fail on invalid templates overlay dir [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/nonexistent-templatedir [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py] [testenv.py:[LINENR]] -tst test_template_overlay.py:[LINENR]: sucess: setting non-existing templates dir raised RuntimeError [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] -tst test_template_overlay.py:[LINENR]: [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +tst test_template_overlay.py:[LINENR]: success: setting non-existing templates dir raised RuntimeError [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/mytemplatedir [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py] [testenv.py:[LINENR]] --- ReservedResources: DBG: requesting use of ip_address {specifics={}} [resource.py:[LINENR]] tst suiteC: Using 1 x ip_address (candidates: 1) [resource.py:[LINENR]] diff --git a/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py b/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py index 2dd9378..7d35138 100644 --- a/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py +++ b/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py @@ -11,7 +11,7 @@ sys.stderr.write('Error: setting non-existing templates dir should raise RuntimeError\n') assert(False) except RuntimeError: - print('sucess: setting non-existing templates dir raised RuntimeError\n') + print('success: setting non-existing templates dir raised RuntimeError') pass mytemplatedir = os.path.join(os.path.dirname(__file__), 'mytemplatedir') diff --git a/selftest/template_test/template_test.ok b/selftest/template_test/template_test.ok index 718ef6e..39b0cd3 100644 --- a/selftest/template_test/template_test.ok +++ b/selftest/template_test/template_test.ok @@ -189,8 +189,7 @@ bind val_ip_address - Testing: expect to fail on invalid templates dir -sucess: setting non-existing templates dir raised RuntimeError - +success: setting non-existing templates dir raised RuntimeError - Testing: template directory overlay (still can find default one?) cnf Templates: DBG: rendering osmo-nitb.cfg.tmpl ! Configuration rendered by osmo-gsm-tester diff --git a/selftest/template_test/template_test.py b/selftest/template_test/template_test.py index 52976e5..9dc967f 100755 --- a/selftest/template_test/template_test.py +++ b/selftest/template_test/template_test.py @@ -89,7 +89,7 @@ assert(False) except RuntimeError: # not logging exception to omit non-constant path name from expected output - print('sucess: setting non-existing templates dir raised RuntimeError\n') + print('success: setting non-existing templates dir raised RuntimeError') pass mytemplatedir = os.path.join(os.path.dirname(__file__), 'mytemplatedir') -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21542 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: I1eec31c5baba5ef33d0c8441b1e94a00d79af9bf Gerrit-Change-Number: 21542 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 Fri Dec 4 17:46:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:46:02 +0000 Subject: Change in osmo-gsm-tester[master]: add osmo_vty.py In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 ) Change subject: add osmo_vty.py ...................................................................... Patch Set 2: Code-Review-1 (4 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py File src/osmo_gsm_tester/obj/osmo_vty.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py at 3 PS1, Line 3: # Copyright (C) 2016-2017 by sysmocom - s.f.m.c. GmbH it's 2020 already! https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py at 44 PS1, Line 44: def connect(self): Please if this API is aimed at be used internally also through __enter__ and __exit__ add comments sections as in obj/bts.py (PROTECTED, PUBLIC - INTERNAL API, PUBLIC (test API included)) It really helps at understanding at first glance which kind of stuff is used internally or aimed at be used by tests, etc. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py at 56 PS1, Line 56: time.sleep(3) this should be Mainloop.sleep. You most probably want to use Mainloop.wait() instead of all this loop here. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py at 125 PS1, Line 125: time.sleep(.1) again, don't use time.sleep here or anywhere. Mainloop.sleep, and even better if you use Mainloop.wait() -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 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: I7c17b143b7c690b8c4105ee7c6272670046fa91d Gerrit-Change-Number: 21504 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17:46: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 Fri Dec 4 17:49:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:49:31 +0000 Subject: Change in osmo-gsm-tester[master]: add bsc.vty() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 ) Change subject: add bsc.vty() ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505/2/src/osmo_gsm_tester/obj/bsc_osmo.py File src/osmo_gsm_tester/obj/bsc_osmo.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505/2/src/osmo_gsm_tester/obj/bsc_osmo.py at 26 PS2, Line 26: from . import osmo_ctrl, osmo_vty, pcap_recorder please as much as possible try to add new imports in new lines. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 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: I06652db04fc9e48748f3c2196334f5352e9cc48a Gerrit-Change-Number: 21505 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17: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 Fri Dec 4 17:53:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 17:53:44 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols 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/+/21534 to look at the new patch set (#2). Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols This extends our existing TLV parser with the ability to * validate that mandatory IEs of a given message are present * validate that all present IEs are of required minimum length Introducing this generic layer will help us to reduce open-coded imperative verification across virtually all the protocols iwe implement, as well as add validation to those protocols where we don't properly perform related input validation yet. Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 --- M include/osmocom/gsm/tlv.h M src/gsm/libosmogsm.map M src/gsm/tlv_parser.c 3 files changed, 147 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/21534/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Dec 4 17:53:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 17:53:45 +0000 Subject: Change in libosmocore[master]: bssgp: Fix typo in BSSGP Message Type enum References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21543 ) Change subject: bssgp: Fix typo in BSSGP Message Type enum ...................................................................... bssgp: Fix typo in BSSGP Message Type enum Change-Id: I63941f8b38485e569f56ba5065c2c00232703028 --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/43/21543/1 diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 70ab011..4c04f6b 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -9,6 +9,9 @@ #define BVCI_SIGNALLING 0x0000 #define BVCI_PTM 0x0001 +/* typo backwards compatiblity */ +#define BSSGP_PDUT_RA_CAPA_UDPATE BSSGP_PDUT_RA_CAPA_UPDATE + /*! BSSGP PDU types (Section 11.3.26 / Table 11.27) */ enum bssgp_pdu_type { /* PDUs between RL and BSSGP SAPs */ @@ -22,7 +25,7 @@ /* PDUs between GMM SAPs */ BSSGP_PDUT_PAGING_PS = 0x06, BSSGP_PDUT_PAGING_CS = 0x07, - BSSGP_PDUT_RA_CAPA_UDPATE = 0x08, + BSSGP_PDUT_RA_CAPA_UPDATE = 0x08, BSSGP_PDUT_RA_CAPA_UPDATE_ACK = 0x09, BSSGP_PDUT_RADIO_STATUS = 0x0a, BSSGP_PDUT_SUSPEND = 0x0b, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63941f8b38485e569f56ba5065c2c00232703028 Gerrit-Change-Number: 21543 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 Dec 4 17:53:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 17:53:45 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21544 ) Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... bssgp: Add osmo_tlv_prot_def for BSSGP Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 --- M include/osmocom/gprs/gprs_bssgp.h M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 3 files changed, 283 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/21544/1 diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index e962b44..37ba68d 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -12,6 +12,7 @@ #include /* gprs_bssgp_util.c */ +const struct osmo_tlv_prot_def osmo_pdef_bssgp; typedef int (*bssgp_bvc_send)(void *ctx, struct msgb *msg); extern struct gprs_ns_inst *bssgp_nsi; diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index da0b103..4d455a9 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -163,6 +163,286 @@ { 0, NULL }, }; +static const uint8_t dl_ud_ies[] = { BSSGP_IE_PDU_LIFETIME }; +static const uint8_t ul_ud_ies[] = { BSSGP_IE_CELL_ID }; +static const uint8_t ra_cap_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_MS_RADIO_ACCESS_CAP }; +static const uint8_t dl_mb_ud_ies[] = { BSSGP_IE_PDU_LIFETIME, BSSGP_IE_TMGI, BSSGP_IE_LLC_PDU }; +static const uint8_t ul_mb_ud_ies[] = { BSSGP_IE_PDU_LIFETIME, BSSGP_IE_TMGI, BSSGP_IE_LLC_PDU }; +static const uint8_t pag_ps_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_QOS_PROFILE }; +static const uint8_t pag_cs_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_DRX_PARAMS }; +static const uint8_t ra_cap_upd_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }; +static const uint8_t ra_cap_upd_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_RA_CAP_UPD_CAUSE }; +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 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 }; +static const uint8_t d_pag_ps_ies[] = { BSSGP_IE_IMSI }; +static const uint8_t d_pag_ps_resp_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_T_UNTIL_NEXT_PAGING }; +static const uint8_t d_pag_ps_rej_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_T_UNTIL_NEXT_PAGING }; +static const uint8_t ms_reg_enq_ies[] = { BSSGP_IE_IMSI }; +static const uint8_t ms_reg_enq_res_ies[] = { BSSGP_IE_IMSI }; +static const uint8_t flush_ll_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_BVCI }; +static const uint8_t flush_ll_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_FLUSH_ACTION }; +static const uint8_t llc_disc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_LLC_FRAMES_DISCARDED, BSSGP_IE_BVCI, + BSSGP_IE_NUM_OCT_AFF }; +static const uint8_t fc_bvc_ies[] = { BSSGP_IE_TAG, BSSGP_IE_BVC_BUCKET_SIZE, BSSGP_IE_BUCKET_LEAK_RATE, + BSSGP_IE_BMAX_DEFAULT_MS, BSSGP_IE_R_DEFAULT_MS }; +static const uint8_t fc_bvc_ack_ies[] = { BSSGP_IE_TAG }; +static const uint8_t fc_ms_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_MS_BUCKET_SIZE, + BSSGP_IE_BUCKET_LEAK_RATE }; +static const uint8_t fc_ms_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }; +static const uint8_t block_ies[] = { BSSGP_IE_BVCI, BSSGP_IE_CAUSE }; +static const uint8_t block_ack_ies[] = { BSSGP_IE_BVCI }; +static const uint8_t unblock_ies[] = { BSSGP_IE_BVCI }; +static const uint8_t unblock_ack_ies[] = { BSSGP_IE_BVCI }; +static const uint8_t reset_ies[] = { BSSGP_IE_BVCI, BSSGP_IE_CAUSE }; +static const uint8_t reset_ack_ies[] = { BSSGP_IE_BVCI }; +static const uint8_t status_ies[] = { BSSGP_IE_CAUSE }; +static const uint8_t inv_trc_ies[] = { BSSGP_IE_TRACE_TYPE, BSSGP_IE_TRACE_REFERENC }; +static const uint8_t dl_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }; +static const uint8_t crt_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, + BSSGP_IE_PACKET_FLOW_TIMER, BSSGP_IE_AGG_BSS_QOS_PROFILE }; +static const uint8_t crt_bss_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, + BSSGP_IE_AGG_BSS_QOS_PROFILE }; +static const uint8_t crt_bss_pfc_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }; +static const uint8_t mod_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, + BSSGP_IE_AGG_BSS_QOS_PROFILE }; +static const uint8_t mod_bss_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, + BSSGP_IE_PACKET_FLOW_TIMER, BSSGP_IE_AGG_BSS_QOS_PROFILE }; +static const uint8_t del_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }; +static const uint8_t del_bss_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }; +static const uint8_t fc_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_PFC_FLOW_CTRL_PARAMS }; +static const uint8_t fc_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }; +static const uint8_t del_bss_pfc_req_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }; +static const uint8_t ps_ho_required_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE, BSSGP_IE_CELL_ID, + BSSGP_IE_ACTIVE_PFC_LIST }; +static const uint8_t ps_ho_required_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_LIST_OF_SETUP_PFC }; +static const uint8_t ps_ho_required_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE }; +static const uint8_t ps_ho_request_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_IMSI, BSSGP_IE_CAUSE, + BSSGP_IE_CELL_ID, BSSGP_IE_SBSS_TO_TBSS_TR_CONT, + BSSGP_IE_PFC_TO_BE_SETUP_LIST }; +static const uint8_t ps_ho_request_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_LIST_OF_SETUP_PFC, + BSSGP_IE_TBSS_TO_SBSS_TR_CONT }; +static const uint8_t ps_ho_request_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE }; +static const uint8_t ps_ho_compl_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_IMSI }; +static const uint8_t ps_ho_cancel_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE, BSSGP_IE_CELL_ID }; +static const uint8_t ps_ho_compl_ack_ies[] = { BSSGP_IE_TLLI }; +static const uint8_t overload_ies[] = { BSSGP_IE_PRIO_CLASS_IND }; + + +const struct osmo_tlv_prot_def osmo_pdef_bssgp = { + .name = "BSSGP", + .tlv_def = &tvlv_att_def, + .msg_def = { + [BSSGP_PDUT_DL_UNITDATA] = MSG_DEF("DL-UNITDAT", dl_ud_ies), + [BSSGP_PDUT_UL_UNITDATA] = MSG_DEF("UL-UNITDATA", ul_ud_ies), + [BSSGP_PDUT_RA_CAPABILITY] = MSG_DEF("RA-CAPABILITY", ra_cap_ies), + [BSSGP_PDUT_DL_MMBS_UNITDATA] = MSG_DEF("DL-MBMS-UNITDATA", dl_mb_ud_ies), + [BSSGP_PDUT_UL_MMBS_UNITDATA] = MSG_DEF("UL-MBMS-UNITDATA", ul_mb_ud_ies), + [BSSGP_PDUT_PAGING_PS] = MSG_DEF("PAGING-PS", pag_ps_ies), + [BSSGP_PDUT_PAGING_CS] = MSG_DEF("PAGING-CS", pag_cs_ies), + [BSSGP_PDUT_RA_CAPA_UDPATE] = MSG_DEF("RA-CAPABILITY-UPDATE", ra_cap_upd_ies), + [BSSGP_PDUT_RA_CAPA_UPDATE_ACK] = MSG_DEF("RA-CAPABILITY-UPDATE-ACK", ra_cap_upd_ack_ies), + [BSSGP_PDUT_RADIO_STATUS] = MSG_DEF("RADIO-STATUS", rad_sts_ies), + [BSSGP_PDUT_SUSPEND] = MSG_DEF("SUSPEND", suspend_ies), + [BSSGP_PDUT_SUSPEND_ACK] = MSG_DEF("SUSPEND-ACK", suspend_ack_ies), + [BSSGP_PDUT_RESUME] = MSG_DEF("RESUME", resume_ies), + [BSSGP_PDUT_RESUME_ACK] = MSG_DEF("RESUME-ACK", resume_ack_ies), + [BSSGP_PDUT_RESUME_NACK] = MSG_DEF("RESUME-NACK", resume_nack_ies), + [BSSGP_PDUT_DUMMY_PAGING_PS] = MSG_DEF("DUMMY-PAGING-PS", d_pag_ps_ies), + [BSSGP_PDUT_DUMMY_PAGING_PS_RESP] = MSG_DEF("DUMMY-PAGING-PS-RESP", d_pag_ps_resp_ies), + [BSSGP_PDUT_PAGING_PS_REJECT] = MSG_DEF("PAGING-PS-REJ", d_pag_ps_rej_ies), + [BSSGP_PDUT_MS_REGISTR_ENQ] = MSG_DEF("MS-REGISRATION-ENQ", ms_reg_enq_ies), + [BSSGP_PDUT_MS_REGISTR_ENQ_RESP] = MSG_DEF("MS-REGISRATION-ENQ-RESP", ms_reg_enq_res_ies), + [BSSGP_PDUT_FLUSH_LL] = MSG_DEF("FLUSH-LL", flush_ll_ies), + [BSSGP_PDUT_FLUSH_LL_ACK] = MSG_DEF("FLUSH-LL-ACK", flush_ll_ack_ies), + [BSSGP_PDUT_LLC_DISCARD] = MSG_DEF("LLC-DISCARDED", llc_disc_ies), + [BSSGP_PDUT_FLOW_CONTROL_BVC] = MSG_DEF("FC-BVC", fc_bvc_ies), + [BSSGP_PDUT_FLOW_CONTROL_BVC_ACK] = MSG_DEF("FC-BVC-ACK", fc_bvc_ack_ies), + [BSSGP_PDUT_FLOW_CONTROL_MS] = MSG_DEF("FC-MS", fc_ms_ies), + [BSSGP_PDUT_FLOW_CONTROL_MS_ACK] = MSG_DEF("FC-MS-ACK", fc_ms_ack_ies), + [BSSGP_PDUT_BVC_BLOCK] = MSG_DEF("BVC-BLOCK", block_ies), + [BSSGP_PDUT_BVC_BLOCK_ACK] = MSG_DEF("BVC-BLOCK-ACK", block_ack_ies), + [BSSGP_PDUT_BVC_UNBLOCK] = MSG_DEF("BVC-UNBLOCK", unblock_ies), + [BSSGP_PDUT_BVC_UNBLOCK_ACK] = MSG_DEF("BVC-UNBLOCK-ACK", unblock_ack_ies), + [BSSGP_PDUT_BVC_RESET] = MSG_DEF("BVC-RESET", reset_ies), + [BSSGP_PDUT_BVC_RESET_ACK] = MSG_DEF("BVC-RESET-ACK", reset_ack_ies), + [BSSGP_PDUT_STATUS] = MSG_DEF("STATUS", status_ies), + [BSSGP_PDUT_SGSN_INVOKE_TRACE] = MSG_DEF("SGSN-INVOKE-TRACE", inv_trc_ies), + [BSSGP_PDUT_DOWNLOAD_BSS_PFC] = MSG_DEF("DOWNLOAD-BSS-PFC", dl_bss_pfc_ies), + [BSSGP_PDUT_CREATE_BSS_PFC] = MSG_DEF("CREATE-BSS-PFC", crt_bss_pfc_ies), + [BSSGP_PDUT_CREATE_BSS_PFC_ACK] = MSG_DEF("CREATE-BSS-PFC-ACK", crt_bss_pfc_ack_ies), + [BSSGP_PDUT_CREATE_BSS_PFC_NACK] = MSG_DEF("CREATE-BSS-PFC-NACK", crt_bss_pfc_nack_ies), + [BSSGP_PDUT_MODIFY_BSS_PFC] = MSG_DEF("MODIFY-BSS-PFC", mod_bss_pfc_ies), + [BSSGP_PDUT_MODIFY_BSS_PFC_ACK] = MSG_DEF("MODIFY-BSS-PFC-ACK", mod_bss_pfc_ack_ies), + [BSSGP_PDUT_DELETE_BSS_PFC] = MSG_DEF("DELETE-BSS-PFC", del_bss_pfc_ies), + [BSSGP_PDUT_DELETE_BSS_PFC_ACK] = MSG_DEF("DELETE-BSS-PFC-ACK", del_bss_pfc_ack_ies), + [BSSGP_PDUT_FLOW_CONTROL_PFC] = MSG_DEF("FC-PFC", fc_pfc_ies), + [BSSGP_PDUT_FLOW_CONTROL_PFC_ACK] = MSG_DEF("FC-PFC-ACK", fc_pfc_ack_ies), + [BSSGP_PDUT_DELETE_BSS_PFC_REQ] = MSG_DEF("DELETE-BSS-PFC-REQ", del_bss_pfc_req_ies), + [BSSGP_PDUT_PS_HO_REQUIRED] = MSG_DEF("PS-HO-REQUIRED", ps_ho_required_ies), + [BSSGP_PDUT_PS_HO_REQUIRED_ACK] = MSG_DEF("PS-HO-REQUIRED-ACK", ps_ho_required_ack_ies), + [BSSGP_PDUT_PS_HO_REQUIRED_NACK] = MSG_DEF("PS-HO-REQUIRED-NACK", ps_ho_required_nack_ies), + [BSSGP_PDUT_PS_HO_REQUEST] = MSG_DEF("PS-HO-REQUEST", ps_ho_request_ies), + [BSSGP_PDUT_PS_HO_REQUEST_ACK] = MSG_DEF("PS-HO-REQUEST-ACK", ps_ho_request_ack_ies), + [BSSGP_PDUT_PS_HO_REQUEST_NACK] = MSG_DEF("PS-HO-REQUEST-NACK", ps_ho_request_nack_ies), + [BSSGP_PDUT_PS_HO_COMPLETE] = MSG_DEF("PS-HO-COMPLETE", ps_ho_compl_ies), + [BSSGP_PDUT_PS_HO_CANCEL] = MSG_DEF("PS-HO-CANCEL", ps_ho_cancel_ies), + [BSSGP_PDUT_PS_HO_COMPLETE_ACK] = MSG_DEF("PS-HO-COMPLETE-ACK", ps_ho_compl_ack_ies), + [BSSGP_PDUT_OVERLOAD] = MSG_DEF("OVERLOAD", overload_ies), + /* TODO: Messages on LCS SAP */ + /* TODO: Messages on RIM SAP */ + /* TODO: Messages on MSMS SAP */ + }, + .ie_def = { + [BSSGP_IE_ALIGNMENT] = { 0, "Alignment Octets" }, + [BSSGP_IE_BMAX_DEFAULT_MS] = { 2, "Bmax default MS" }, + [BSSGP_IE_BSS_AREA_ID] = { 1, "BSS Area Indication" }, + [BSSGP_IE_BUCKET_LEAK_RATE] = { 2, "Bucket Leak Rate (R)" }, + [BSSGP_IE_BVC_BUCKET_SIZE] = { 2, "BVC Bucket Size" }, + [BSSGP_IE_BVCI] = { 2, "BVCI" }, + [BSSGP_IE_BVC_MEASUREMENT] = {2, "BVC Measurement" }, + [BSSGP_IE_CAUSE] = { 1, "Cause" }, + [BSSGP_IE_CELL_ID] = { 8, "Cell Identifier" }, + [BSSGP_IE_CHAN_NEEDED] = { 1, "Channel Needed" }, + [BSSGP_IE_DRX_PARAMS] = { 2, "DRX Parameters" }, + [BSSGP_IE_EMLPP_PRIO] = { 3, "eMLPP Priority" }, + [BSSGP_IE_FLUSH_ACTION] = { 1, "Flush Action" }, + [BSSGP_IE_IMSI] = { 1, "Mobile Identity" }, + [BSSGP_IE_LLC_PDU] = { 0, "LLC-PDU" }, + [BSSGP_IE_LLC_FRAMES_DISCARDED] = { 1, "LLC Frames Discarded" }, + [BSSGP_IE_LOCATION_AREA] = { 5, "Location Area" }, + [BSSGP_IE_LSA_ID_LIST] = { 3, "LSA Identifier List" }, + [BSSGP_IE_LSA_INFORMATION] = { 5, "LSA Information" }, + [BSSGP_IE_MOBILE_ID] = { 1, "Mobile Identity" }, + [BSSGP_IE_MS_BUCKET_SIZE] = { 2, "MS Bucket Size" }, + [BSSGP_IE_MS_RADIO_ACCESS_CAP] = { 1, "MS Radio Access Capability" }, + [BSSGP_IE_OMC_ID] = { 1, "OMC Id" }, + [BSSGP_IE_PDU_IN_ERROR] = { 0, "PDU In Error" }, + [BSSGP_IE_PDU_LIFETIME] = { 2, "PDU Lifetime" }, + [BSSGP_IE_PRIORITY] = { 1, "Priority" }, + [BSSGP_IE_QOS_PROFILE] = { 3, "QoS Profile" }, + [BSSGP_IE_RADIO_CAUSE] = { 1, "Radio Cause" }, + [BSSGP_IE_RA_CAP_UPD_CAUSE] = { 1, "RA-Cap-UPD-Cause" }, + [BSSGP_IE_ROUTEING_AREA] = { 6, "Routeing Area" }, + [BSSGP_IE_R_DEFAULT_MS] = { 2, "R_default_MS" }, + [BSSGP_IE_SUSPEND_REF_NR] = { 1, "Suspend Reference Number" }, + [BSSGP_IE_TAG] = { 1, "Tag" }, + [BSSGP_IE_TLLI] = { 4, "TLLI" }, + [BSSGP_IE_TMSI] = { 4, "TMSI" }, + [BSSGP_IE_TRACE_REFERENC] = { 2, "Trace Reference" }, + [BSSGP_IE_TRACE_TYPE] = { 1, "Trace Type" }, + [BSSGP_IE_TRANSACTION_ID] = { 2, "Transaction Id" }, + [BSSGP_IE_TRIGGER_ID] = { 1, "Trigger Id" }, + [BSSGP_IE_NUM_OCT_AFF] = { 3, "Number of octets affected" }, + [BSSGP_IE_PACKET_FLOW_ID] = { 1, "Packet Flow Identifier (PFI)" }, + [BSSGP_IE_AGG_BSS_QOS_PROFILE] = { 14, "Aggregate BSS QoS Profile" }, + [BSSGP_IE_PACKET_FLOW_TIMER] = { 1, "GPRS Timer" }, + [BSSGP_IE_FEATURE_BITMAP] = { 1, "Feature Bitmap" }, + [BSSGP_IE_BUCKET_FULL_RATIO] = { 1, "Bucket Full Ratio" }, + [BSSGP_IE_SERVICE_UTRAN_CCO] = { 1, "Service UTRAN COO" }, + [BSSGP_IE_NSEI] = { 2, "NSEI" }, + [BSSGP_IE_RRLP_APDU] = { 1, "RLLP APDU" }, + [BSSGP_IE_LCS_QOS] = { 4, "LCS QoS" }, + [BSSGP_IE_LCS_CLIENT_TYPE] = { 1, "LCS Client Type" }, + [BSSGP_IE_REQUESTED_GPS_AST_DATA] = { 4, "Requested GPS Assistance Data" }, + [BSSGP_IE_LOCATION_TYPE] = { 2, "Location Type" }, + [BSSGP_IE_LOCATION_ESTIMATE] = { 1, "Location Estimate" }, + [BSSGP_IE_POSITIONING_DATA] = { 1, "Positioning Data" }, + [BSSGP_IE_DECIPHERING_KEYS] = { 15, "Deciphering Keys" }, + [BSSGP_IE_LCS_PRIORITY] = { 1, "LCS Priority" }, + [BSSGP_IE_LCS_CAUSE] = { 1, "LCS Cause" }, + [BSSGP_IE_LCS_CAPABILITY] = { 1, "LCS Capability" }, + [BSSGP_IE_RRLP_FLAGS] = { 1, "RRLP Flags" }, + [BSSGP_IE_RIM_APP_IDENTITY] = { 1, "RIM Application Identity" }, + [BSSGP_IE_RIM_SEQ_NR] = { 4, "RIM Sequence Number" }, + [BSSGP_IE_RIM_REQ_APP_CONTAINER] = { 12, "RIM-REQUEST RIM Container" }, + [BSSGP_IE_RAN_INFO_APP_CONTAINER] = { 12, "RAN-INFORMATION RIM Container" }, + [BSSGP_IE_RI_ACK_RIM_CONTAINER] = { 9, "RAN-INFORMATION-ACK RIM Container" }, + [BSSGP_IE_RI_ERROR_RIM_COINTAINER] = { 9, "RAN-INFOIRMATION-ERROR RIM Container" }, + [BSSGP_IE_RI_APP_ERROR_RIM_CONT] = { 14, "RAN-INFORMATION-APP-ERROR RIM Container" }, + [BSSGP_IE_RIM_PDU_INDICATIONS] = { 1, "RIM PDU Indications" }, + [BSSGP_IE_RIM_PROTOCOL_VERSION] = { 1, "RIM Protocol Version Number" }, + [BSSGP_IE_PFC_FLOW_CTRL_PARAMS] = { 7, "PFC FLow Control Parameters" }, + [BSSGP_IE_GLOBAL_CN_ID] = { 5, "Global CN-Id" }, + [BSSGP_IE_RIM_ROUTING_INFO] = { 1, "RIM Routing Information" }, + [BSSGP_IE_MBMS_SESSION_ID] = { 0, "MBMS Session Identity" }, + [BSSGP_IE_MBMS_SESSION_DURATION] = { 0, "MBMS Session Duration" }, + [BSSGP_IE_MBMS_SA_ID_LIST] = { 3, "MBMS Service Area Identity List" }, + [BSSGP_IE_MBMS_RESPONSE] = { 1, "MBMS Response" }, + [BSSGP_IE_MBMS_RA_LIST] = { 9, "MBMS Routing Area List" }, + [BSSGP_IE_MBMS_SESSION_INFO] = { 1, "MBMS Session Information" }, + [BSSGP_IE_TMGI] = { 6, "TMGI" }, + [BSSGP_IE_MBMS_STOP_CAUSE] = { 1, "MBM Stop Cause" }, + [BSSGP_IE_SBSS_TO_TBSS_TR_CONT] = { 7, "Source BSS to Target BSS Transparent Container" }, + [BSSGP_IE_TBSS_TO_SBSS_TR_CONT] = { 0, "Target BSS to Source BSS Transparent Container" }, + [BSSGP_IE_NAS_CONT_FOR_PS_HO] = { 0, "NAS container for PS Handover" }, + [BSSGP_IE_PFC_TO_BE_SETUP_LIST] = { 9, "PFCs to be set-up list" }, + [BSSGP_IE_LIST_OF_SETUP_PFC] = { 1, "List of set-up PFCs" }, + [BSSGP_IE_EXT_FEATURE_BITMAP] = { 1, "Extended Feature Bitmap" }, + [BSSGP_IE_SRC_TO_TGT_TR_CONT] = { 0, "Source to Target Transparent Container" }, + [BSSGP_IE_TGT_TO_SRC_TR_CONT] = { 0, "Target to Source Transparent Container" }, + [BSSGP_IE_NC_ID] = { 8, "RNC Identifier" }, + [BSSGP_IE_PAGE_MODE] = { 1, "Page Mode" }, + [BSSGP_IE_CONTAINER_ID] = { 1, "Container ID" }, + [BSSGP_IE_GLOBAL_TFI] = { 1, "Global TFI" }, + [BSSGP_IE_IMEI] = { 1, "IMEI" }, + [BSSGP_IE_TIME_TO_MBMS_DATA_XFR] = { 1, "Time to MBMS Data Transfer" }, + [BSSGP_IE_MBMS_SESSION_REP_NR] = { 1, "MBMS Session Repetition Number" }, + [BSSGP_IE_INTER_RAT_HO_INFO] = { 0, "Inter RAT Handover Info" }, + [BSSGP_IE_PS_HO_COMMAND] = { 0, "PS Handover Command" }, + [BSSGP_IE_PS_HO_INDICATIONS] = { 1, "PS Handover Indications" }, + [BSSGP_IE_SI_PSI_CONTAINER] = { 1, "SI/PSI Container" }, + [BSSGP_IE_ACTIVE_PFC_LIST] = { 2, "Active PFCs List" }, + [BSSGP_IE_VELOCITY_DATA] = { 0, "Velocity Data" }, + [BSSGP_IE_DTM_HO_COMMAND] = { 0, "DTM Handover Command" }, + [BSSGP_IE_CS_INDICATION] = { 1, "CS Indication" }, + [BSSGP_IE_RQD_GANNS_AST_DATA] = { 0, "Requested GANSS Assistance Data" }, + [BSSGP_IE_GANSS_LOCATION_TYPE] = { 1, "GANSS Location Type" }, + [BSSGP_IE_GANSS_POSITIONING_DATA] = { 0, "GANSS Positioning Data" }, + [BSSGP_IE_FLOW_CTRL_GRANULARITY] = { 1, "Flow Control Granularity" }, + [BSSGP_IE_ENB_ID] = { 6, "eNB Identifier" }, + [BSSGP_IE_EUTRAN_IRAT_HO_INFO] = { 0, "E-UTRAN Inter RAT Handover Info" }, + [BSSGP_IE_SUB_PID4RAT_FREQ_PRIO] = { 1, "Subscriber Profile ID for RAT/Frequency priority" }, + [BSSGP_IE_REQ4IRAT_HO_INFO] = { 1, "Request for Inter-RAT Handover Info" }, + [BSSGP_IE_RELIABLE_IRAT_HO_INFO] = { 1, "Reliable Inter-RAT Handover Info" }, + [BSSGP_IE_SON_TRANSFER_APP_ID] = { 0, "SON Transfer Application Identity" }, + [BSSGP_IE_CSG_ID] = { 5, "CSG Identifier" }, + [BSSGP_IE_TAC] = { 3, "Tracking Area Code" }, + [BSSGP_IE_REDIRECT_ATTEMPT_FLAG] = { 1, "Redirect Attempt Flag" }, + [BSSGP_IE_REDIRECTION_INDICATION] = { 1, "Redirection Indication" }, + [BSSGP_IE_REDIRECTION_COMPLETED] = { 1, "Redirection Completed" }, + [BSSGP_IE_UNCONF_SEND_STATE_VAR] = { 2, "Unconfirmed send state variable" }, + [BSSGP_IE_IRAT_MEASUREMENT_CONF] = { 10, "IRAT Measurement Configuration" }, + [BSSGP_IE_SCI] = { 1, "SCI" }, + [BSSGP_IE_GGSN_PGW_LOCATION] = { 1, "GGSN/P-GW Location" }, + [BSSGP_IE_SELECTED_PLMN_ID] = { 3, "Selected PLMN ID" }, + [BSSGP_IE_PRIO_CLASS_IND] = { 1, "Priority Class Indication" }, + [BSSGP_IE_SOURCE_CELL_ID] = { 6, "Source Cell ID" }, + [BSSGP_IE_IRAT_MEAS_CFG_E_EARFCN] = { 10, "IRAT Measurement Configuration (extended E-ARFCNs)" }, + [BSSGP_IE_EDRX_PARAMETERS] = { 1, "eDRX Parameters" }, + [BSSGP_IE_T_UNTIL_NEXT_PAGING] = { 2, "Time Until Next Paging Occasion" }, + [BSSGP_IE_COVERAGE_CLASS] = { 1, "Coverage Class" }, + [BSSGP_IE_PAGING_ATTEMPT_INFO] = { 1, "Paging Attempt Information" }, + [BSSGP_IE_EXCEPTION_REPORT_FLAG] = { 1, "Exception Report Flag" }, + [BSSGP_IE_OLD_RA_ID] = { 6, "Old Routing Area Identification" }, + [BSSGP_IE_ATTACH_IND] = { 1, "Attach Indicator" }, + [BSSGP_IE_PLMN_ID] = { 3, "PLMN Identity" }, + [BSSGP_IE_MME_QUERY] = { 1, "MME Query" }, + [BSSGP_IE_SGSN_GROUP_ID] = { 3, "SGSN Group Identity" }, + [BSSGP_IE_ADDITIONAL_PTMSI] = { 4, "Additional P-TMSI" }, + [BSSGP_IE_UE_USAGE_TYPE] = { 1, "UE Usage Type" }, + [BSSGP_IE_MLAT_TIMER] = { 1, "Multilateration Timer" }, + [BSSGP_IE_MLAT_TA] = { 2, "Multilateration Timing Advance" }, + [BSSGP_IE_MS_SYNC_ACCURACY] = { 1, "MS Sync Accuracy" }, + [BSSGP_IE_BTS_RX_ACCURACY_LVL] = { 1, "BTS Reception Accuracy Level" }, + [BSSGP_IE_TA_REQ] = { 1, "Timing Advance Request (TAR)" }, + }, + .msgt_names = bssgp_pdu_strings, +}; + const char *bssgp_cause_str(enum gprs_bssgp_cause cause) { return get_value_string(bssgp_cause_strings, cause); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 2c4e897..8abac74 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -149,5 +149,7 @@ btsctx_by_bvci_nsei; btsctx_by_raid_cid; +osmo_pdef_bssgp; + local: *; }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 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 Dec 4 17:54:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:54:46 +0000 Subject: Change in osmo-gsm-tester[master]: bsc: add active lchan matching via vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 ) Change subject: bsc: add active lchan matching via vty ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506/2/src/osmo_gsm_tester/obj/bsc_osmo.py File src/osmo_gsm_tester/obj/bsc_osmo.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506/2/src/osmo_gsm_tester/obj/bsc_osmo.py at 157 PS2, Line 157: def get_active_lchans(self): This all seems to belong to the OsmoBscVty class rather than here. This way we keep all Osmocom VTY-specific in the same class and we don't pollute the BSC class. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506/2/src/osmo_gsm_tester/obj/bsc_osmo.py at 173 PS2, Line 173: def active_lchans_match(self, expected=[], not_expected=[]): Are these APIs to be used by tests? I would like to keep the public available APIs to a minimum in general. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 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: I03df8f3ae2ee47930eee311c7ce104c36dbb3154 Gerrit-Change-Number: 21506 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17:54: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 Fri Dec 4 17:55:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:55:13 +0000 Subject: Change in osmo-gsm-tester[master]: bts: allow configuring ARFCN and BSIC: add to schema In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21507 ) Change subject: bts: allow configuring ARFCN and BSIC: add to schema ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21507 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: I8e0583e9208d563c66b0bdc9f25b1b74f92403c2 Gerrit-Change-Number: 21507 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17: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 Fri Dec 4 17:56:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:56:41 +0000 Subject: Change in osmo-gsm-tester[master]: wait_no_raise(): set default args In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21508 ) Change subject: wait_no_raise(): set default args ...................................................................... Patch Set 2: I don't like this really much. I would favour only using the wait() method and handling the exception in the test. Let's keep the amount of APIs we need to maintain in tests as small as possible please. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21508 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: I225a175b25c5c148ef5e23d2184f5d1aa2f4188a Gerrit-Change-Number: 21508 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17: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 Fri Dec 4 17:58:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 17:58:03 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21534/1/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/21534/1/src/gsm/tlv_parser.c at 641 PS1, Line 641: } else { > IIRC get_value_string can already return a similar "unknown 0x%x" string, so you can probably drop t [?] but the pdef->msgt_names is optional, by intention. The value_string for message type is no longer needed with this new API. Instead, we have a more efficient way by looking up pdef->msg_def[x].name without any linear iteration. However, since most existing protocols have those old value_string arrays, we keep the option until everything is eventually converted. So the else-clause-with-snprintf is needed. https://gerrit.osmocom.org/c/libosmocore/+/21534/1/src/gsm/tlv_parser.c at 690 PS1, Line 690: min_len = pdef->ie_def[i].min_len; > May it make sense to instead have a min_len max_len range? with some special value NO_MAX_LEN 0xffff [?] I think in general it's ok to simply ignore any extraneous length. Sure, one could make it even tighter, but I also think some IEs are getting longer and longer in each 3GPP release of the spec, so checking for a maximum length might be detrimental to future compatibility. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17:58:03 +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 Dec 4 17:58:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 17:58:40 +0000 Subject: Change in osmo-gsm-tester[master]: log passed tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 ) Change subject: log passed tests ...................................................................... Patch Set 2: I have the feeling printing both is actually worse, specially if you have lots of suites and have to find what's failing. But if you really think it's an improvement feel free to +2 and merge. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 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: Ib85a5b90e267c2ed2f844691187ecadc8939b1bb Gerrit-Change-Number: 21509 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 17:58:40 +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 Dec 4 18:01:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:01:08 +0000 Subject: Change in osmo-gsm-tester[master]: log reserved resources In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 ) Change subject: log reserved resources ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/2/selftest/suite_test/suite_test.ok File selftest/suite_test/suite_test.ok: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/2/selftest/suite_test/suite_test.ok at 148 PS2, Line 148: tst test_suite: RESERVED RESOURCES for test_suite: So what's the point? you already see the same output above ^ I think we are already printing tons of output and it's difficult to find stuff, lets try not to duplicate it! Is there some reason for doing this I'm not seeing? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 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: Ic23556eafee654c93d13c5ef405028da09bd51d7 Gerrit-Change-Number: 21510 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:01: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 Fri Dec 4 18:05:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:05:14 +0000 Subject: Change in osmo-gsm-tester[master]: configure fixed ARFCN per bts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 ) Change subject: configure fixed ARFCN per bts ...................................................................... Patch Set 2: (2 comments) Thanks! nce you fix the multi-arfcn B200 stuff I give +1000 :D https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/src/osmo_gsm_tester/core/schema.py File src/osmo_gsm_tester/core/schema.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/src/osmo_gsm_tester/core/schema.py at 381 PS2, Line 381: 'ip_address[].addr': IPV4, this is going to dissapear too at some point once we move osmocom objects to the newly run_nodes :) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/sysmocom/resources.conf.prod File sysmocom/resources.conf.prod: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/sysmocom/resources.conf.prod at 37 PS2, Line 37: - arfcn: 870 Be careful here, because when used with multi_arfcn, 870 + 2 more ARFCN (with separation of 4 on each iirc, it's documented in osmo-trx user manual) are going to be picked. So that means you should assign that range to other BTSs :) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 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: I0a6c60544226f4261f9106013478d6a27fc39f38 Gerrit-Change-Number: 21511 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:05: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 Fri Dec 4 18:08:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:08:28 +0000 Subject: Change in osmo-gsm-tester[master]: process: add get_output_mark() and grep_output() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 ) Change subject: process: add get_output_mark() and grep_output() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512/2/src/osmo_gsm_tester/core/process.py File src/osmo_gsm_tester/core/process.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512/2/src/osmo_gsm_tester/core/process.py at 388 PS2, Line 388: def get_stdout_mark(self): Using this with get_stdout looks like a source of all Earth problem. Race condition between those 2 APIs for whoever is willing to use them. Do you plan to use them? If you do, please explain, otherwise drop them better. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 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: Ib6569f7486e9d961bd79a5f24232e58d053667a1 Gerrit-Change-Number: 21512 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:08: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 Fri Dec 4 18:10:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:10:06 +0000 Subject: Change in osmo-gsm-tester[master]: fix: line nr in test name in wrong places In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21541 ) Change subject: fix: line nr in test name in wrong places ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21541 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: I0c4698fa2b3db3de777d8b6dcdcee84e433c62b7 Gerrit-Change-Number: 21541 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18: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 Fri Dec 4 18:10:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:10:55 +0000 Subject: Change in osmo-gsm-tester[master]: typo / newline in selftest log output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21542 ) Change subject: typo / newline in selftest log output ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21542 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: I1eec31c5baba5ef33d0c8441b1e94a00d79af9bf Gerrit-Change-Number: 21542 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18: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 Dec 4 18:13:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:13:38 +0000 Subject: Change in osmo-gsm-tester[master]: do not redirect_stdout in test scripts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21513 ) Change subject: do not redirect_stdout in test scripts ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21513 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: I0972c66b9165bd7f2b0b387e0335172849199193 Gerrit-Change-Number: 21513 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:13: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 Dec 4 18:14:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:14:29 +0000 Subject: Change in osmo-gsm-tester[master]: log: process.py: fix weird space in stdout/stderr log output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21514 ) Change subject: log: process.py: fix weird space in stdout/stderr log output ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21514 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: I4202e7dfbb550acaf55a6c6487fc07819ab18b94 Gerrit-Change-Number: 21514 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:14: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 Dec 4 18:17:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:17:26 +0000 Subject: Change in osmo-gsm-tester[master]: implement test.get_log_output() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21515 ) Change subject: implement test.get_log_output() ...................................................................... Patch Set 2: I'm not sure what are you attempting here, AFAIR we already printing test output to the junit file. And if you want to put specific output instead (like a one line summarizing some KPIs) that can be done from within the test. This is being used by srsLTE objects/tests already. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21515 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: Idfa0a45f3e6a18dd4fe692e81d732c70b5cffb76 Gerrit-Change-Number: 21515 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:17: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 Fri Dec 4 18:19:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:19:54 +0000 Subject: Change in libosmocore[master]: bssgp: Update bssgp_pdu_strings with Release 15 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21532 ) Change subject: bssgp: Update bssgp_pdu_strings with Release 15 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia108ba0d5f1f2c9d46f0c0bd11cd93104b9d62ea Gerrit-Change-Number: 21532 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18: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 Fri Dec 4 18:20:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:20:10 +0000 Subject: Change in libosmocore[master]: bssgp: Fix typo in BSSGP Message Type enum In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21543 ) Change subject: bssgp: Fix typo in BSSGP Message Type enum ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63941f8b38485e569f56ba5065c2c00232703028 Gerrit-Change-Number: 21543 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 04 Dec 2020 18:20: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 Dec 4 18:20:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:20:15 +0000 Subject: Change in libosmocore[master]: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21493 ) Change subject: bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... bssgp: Use TLVP_PRES_LEN instead of TLVP_PRESENT With TLVP_PRESENT we only check if a given TLV/IE is present, but don't verify that it's length matches our expectation. This can lead to out-of-bounds reads, so let's always use TLVP_PRES_LEN. Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 --- M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c 2 files changed, 32 insertions(+), 33 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/gprs_bssgp.c b/src/gb/gprs_bssgp.c index ebbfab1..7fb3a30 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -351,7 +351,7 @@ /* When we receive a BVC-RESET PDU (at least of a PTP BVCI), the BSS * informs us about its RAC + Cell ID, so we can create a mapping */ if (bvci != 0 && bvci != 1) { - if (!TLVP_PRESENT(tp, BSSGP_IE_CELL_ID)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESET " "missing mandatory IE\n", bvci); return -EINVAL; @@ -467,7 +467,7 @@ DEBUGP(DBSSGP, "BSSGP TLLI=0x%08x Rx UPLINK-UNITDATA\n", msgb_tlli(msg)); /* Cell ID and LLC_PDU are the only mandatory IE */ - if (!TLVP_PRESENT(tp, BSSGP_IE_CELL_ID) || + if (!TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8) || !TLVP_PRESENT(tp, BSSGP_IE_LLC_PDU)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP TLLI=0x%08x Rx UL-UD " "missing mandatory IE\n", msgb_tlli(msg)); @@ -497,8 +497,8 @@ uint16_t ns_bvci = msgb_bvci(msg), nsei = msgb_nsei(msg); int rc; - if (!TLVP_PRESENT(tp, BSSGP_IE_TLLI) || - !TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4) || + !TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx SUSPEND " "missing mandatory IE\n", ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); @@ -538,9 +538,9 @@ uint16_t ns_bvci = msgb_bvci(msg), nsei = msgb_nsei(msg); int rc; - if (!TLVP_PRESENT(tp, BSSGP_IE_TLLI) || - !TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA) || - !TLVP_PRESENT(tp, BSSGP_IE_SUSPEND_REF_NR)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4 ) || + !TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6) || + !TLVP_PRES_LEN(tp, BSSGP_IE_SUSPEND_REF_NR, 1)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESUME " "missing mandatory IE\n", ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); @@ -580,16 +580,16 @@ uint32_t tlli = 0; uint16_t nsei = msgb_nsei(msg); - if (!TLVP_PRESENT(tp, BSSGP_IE_TLLI) || - !TLVP_PRESENT(tp, BSSGP_IE_LLC_FRAMES_DISCARDED) || - !TLVP_PRESENT(tp, BSSGP_IE_BVCI) || - !TLVP_PRESENT(tp, BSSGP_IE_NUM_OCT_AFF)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4) || + !TLVP_PRES_LEN(tp, BSSGP_IE_LLC_FRAMES_DISCARDED, 1) || + !TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_NUM_OCT_AFF, 3)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx LLC DISCARDED " "missing mandatory IE\n", ctx->bvci); + return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } - if (TLVP_PRESENT(tp, BSSGP_IE_TLLI)) - tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); + tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=%08x Rx LLC DISCARDED\n", ctx->bvci, tlli); @@ -615,7 +615,7 @@ struct osmo_bssgp_prim nmp; enum gprs_bssgp_cause cause; - if (!TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS " "missing mandatory IE\n", bvci); cause = BSSGP_CAUSE_PROTO_ERR_UNSPEC; @@ -627,7 +627,7 @@ bvci, bssgp_cause_str(cause)); if (cause == BSSGP_CAUSE_BVCI_BLOCKED || cause == BSSGP_CAUSE_UNKNOWN_BVCI) { - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS cause=%s " "missing conditional BVCI IE\n", @@ -882,11 +882,11 @@ DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx Flow Control BVC\n", bctx->bvci); - if (!TLVP_PRESENT(tp, BSSGP_IE_TAG) || - !TLVP_PRESENT(tp, BSSGP_IE_BVC_BUCKET_SIZE) || - !TLVP_PRESENT(tp, BSSGP_IE_BUCKET_LEAK_RATE) || - !TLVP_PRESENT(tp, BSSGP_IE_BMAX_DEFAULT_MS) || - !TLVP_PRESENT(tp, BSSGP_IE_R_DEFAULT_MS)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_TAG, 1) || + !TLVP_PRES_LEN(tp, BSSGP_IE_BVC_BUCKET_SIZE, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_BUCKET_LEAK_RATE, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_BMAX_DEFAULT_MS, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_R_DEFAULT_MS,2)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx FC BVC " "missing mandatory IE\n", bctx->bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); @@ -1040,8 +1040,8 @@ break; case BSSGP_PDUT_BVC_BLOCK: /* BSS tells us that BVC shall be blocked */ - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || - !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-BLOCK " "missing mandatory IE\n"); goto err_mand_ie; @@ -1050,7 +1050,7 @@ break; case BSSGP_PDUT_BVC_UNBLOCK: /* BSS tells us that BVC shall be unblocked */ - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-UNBLOCK " "missing mandatory IE\n"); goto err_mand_ie; @@ -1062,8 +1062,8 @@ break; case BSSGP_PDUT_BVC_RESET: /* BSS tells us that BVC init is required */ - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || - !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || + !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-RESET " "missing mandatory IE\n"); goto err_mand_ie; @@ -1135,7 +1135,7 @@ return rc; } - if (bvci == BVCI_SIGNALLING && TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) + if (bvci == BVCI_SIGNALLING && TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) bvci = tlvp_val16be(&tp, BSSGP_IE_BVCI); /* look-up or create the BTS context for this BVC */ diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index 59b06f0..462666a 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -511,24 +511,24 @@ TLVP_LEN(&tp, BSSGP_IE_IMSI)); /* DRX Parameters */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_DRX_PARAMS)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_DRX_PARAMS, 2)) goto err_mand_ie; pinfo->drx_params = tlvp_val16be(&tp, BSSGP_IE_DRX_PARAMS); /* Scope */ - if (TLVP_PRESENT(&tp, BSSGP_IE_BSS_AREA_ID)) { + if (TLVP_PRES_LEN(&tp, BSSGP_IE_BSS_AREA_ID, 1)) { pinfo->scope = BSSGP_PAGING_BSS_AREA; - } else if (TLVP_PRESENT(&tp, BSSGP_IE_LOCATION_AREA)) { + } else if (TLVP_PRES_LEN(&tp, BSSGP_IE_LOCATION_AREA, 5)) { pinfo->scope = BSSGP_PAGING_LOCATION_AREA; memcpy(ra, TLVP_VAL(&tp, BSSGP_IE_LOCATION_AREA), TLVP_LEN(&tp, BSSGP_IE_LOCATION_AREA)); gsm48_parse_ra(&pinfo->raid, ra); - } else if (TLVP_PRESENT(&tp, BSSGP_IE_ROUTEING_AREA)) { + } else if (TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) { pinfo->scope = BSSGP_PAGING_ROUTEING_AREA; memcpy(ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), TLVP_LEN(&tp, BSSGP_IE_ROUTEING_AREA)); gsm48_parse_ra(&pinfo->raid, ra); - } else if (TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) { + } else if (TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) { pinfo->scope = BSSGP_PAGING_BVCI; pinfo->bvci = tlvp_val16be(&tp, BSSGP_IE_BVCI); } else @@ -546,8 +546,7 @@ } /* Optional (P-)TMSI */ - if (TLVP_PRESENT(&tp, BSSGP_IE_TMSI) && - TLVP_LEN(&tp, BSSGP_IE_TMSI) >= 4) { + if (TLVP_PRES_LEN(&tp, BSSGP_IE_TMSI, 4)) { if (!pinfo->ptmsi) pinfo->ptmsi = talloc_zero_size(pinfo, sizeof(uint32_t)); *(pinfo->ptmsi) = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TMSI)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I56e8b31ce51602d2681e3db501c48f84bfe7e438 Gerrit-Change-Number: 21493 Gerrit-PatchSet: 6 Gerrit-Owner: laforge 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 Dec 4 18:20:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:20:17 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21494 ) Change subject: gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... gprs_ns2: Use TLVP_PRES_LEN instead of TLVP_PRESENT With TLVP_PRESENT we only check if a given TLV/IE is present, but don't verify that it's length matches our expectation. This can lead to out-of-bounds reads, so let's always use TLVP_PRES_LEN. Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_message.c 2 files changed, 14 insertions(+), 13 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/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 93807f0..d90ba85 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -590,7 +590,7 @@ if (!msg) return -ENOMEM; - if (TLVP_PRESENT(tp, NS_IE_NSEI)) { + if (TLVP_PRES_LEN(tp, NS_IE_NSEI, 2)) { nsei = tlvp_val16be(tp, NS_IE_NSEI); LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rejecting message without NSVCI. Tx NS STATUS (cause=%s)\n", @@ -602,7 +602,7 @@ nsh->pdu_type = NS_PDUT_STATUS; msgb_tvlv_put(msg, NS_IE_CAUSE, 1, &_cause); - have_vci = TLVP_PRESENT(tp, NS_IE_VCI); + have_vci = TLVP_PRES_LEN(tp, NS_IE_VCI, 2); /* Section 9.2.7.1: Static conditions for NS-VCI */ if (cause == NS_CAUSE_NSVC_BLOCKED || @@ -822,8 +822,8 @@ return GPRS_NS2_CS_REJECTED; } - if (!TLVP_PRESENT(&tp, NS_IE_CAUSE) || - !TLVP_PRESENT(&tp, NS_IE_VCI) || !TLVP_PRESENT(&tp, NS_IE_NSEI)) { + 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)) { LOGP(DLNS, LOGL_ERROR, "NS RESET Missing mandatory IE\n"); rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_MISSING_ESSENT_IE); return GPRS_NS2_CS_REJECTED; diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 69c833e..eb9a198 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -66,7 +66,8 @@ static int gprs_ns2_validate_reset(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_CAUSE) || !TLVP_PRESENT(tp, NS_IE_VCI) || !TLVP_PRESENT(tp, NS_IE_NSEI)) { + 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)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -76,7 +77,7 @@ static int gprs_ns2_validate_reset_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_VCI) || !TLVP_PRESENT(tp, NS_IE_NSEI)) { + if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_NSEI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -86,7 +87,7 @@ static int gprs_ns2_validate_block(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_VCI) || !TLVP_PRESENT(tp, NS_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -96,7 +97,7 @@ static int gprs_ns2_validate_block_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_VCI)) { + if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -107,7 +108,7 @@ static int gprs_ns2_validate_status(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { - if (!TLVP_PRESENT(tp, NS_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -117,7 +118,7 @@ switch (_cause) { case NS_CAUSE_NSVC_BLOCKED: case NS_CAUSE_NSVC_UNKNOWN: - if (!TLVP_PRESENT(tp, NS_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -127,19 +128,19 @@ case NS_CAUSE_PROTO_ERR_UNSPEC: case NS_CAUSE_INVAL_ESSENT_IE: case NS_CAUSE_MISSING_ESSENT_IE: - if (!TLVP_PRESENT(tp, NS_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } break; case NS_CAUSE_BVCI_UNKNOWN: - if (!TLVP_PRESENT(tp, NS_IE_BVCI)) { + if (!TLVP_PRES_LEN(tp, NS_IE_BVCI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } break; case NS_CAUSE_UNKN_IP_TEST_FAILED: - if (!TLVP_PRESENT (tp, NS_IE_IPv4_LIST) && !TLVP_PRESENT(tp, NS_IE_IPv6_LIST)) { + if (!TLVP_PRESENT(tp, NS_IE_IPv4_LIST) && !TLVP_PRESENT(tp, NS_IE_IPv6_LIST)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4c438bc82ea6a48243db568f96a234adf784dc0b Gerrit-Change-Number: 21494 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Fri Dec 4 18:20:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:20:17 +0000 Subject: Change in libosmocore[master]: bssgp: Update bssgp_pdu_strings with Release 15 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21532 ) Change subject: bssgp: Update bssgp_pdu_strings with Release 15 ...................................................................... bssgp: Update bssgp_pdu_strings with Release 15 In I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 we introduced the enum values for all the new BSSGP message types up to Release 15. Let's also add value_strings for them here. Change-Id: Ia108ba0d5f1f2c9d46f0c0bd11cd93104b9d62ea --- M src/gb/gprs_bssgp_util.c 1 file 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/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index 917f1f3..da0b103 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -107,6 +107,8 @@ { BSSGP_PDUT_UL_UNITDATA, "UL-UNITDATA" }, { BSSGP_PDUT_RA_CAPABILITY, "RA-CAPABILITY" }, { BSSGP_PDUT_PTM_UNITDATA, "PTM-UNITDATA" }, + { BSSGP_PDUT_DL_MMBS_UNITDATA, "DL-MBMS-UNITDATA" }, + { BSSGP_PDUT_UL_MMBS_UNITDATA, "UL-MBMS-UNITDATA" }, { BSSGP_PDUT_PAGING_PS, "PAGING-PS" }, { BSSGP_PDUT_PAGING_CS, "PAGING-CS" }, { BSSGP_PDUT_RA_CAPA_UDPATE, "RA-CAPABILITY-UPDATE" }, @@ -118,6 +120,10 @@ { BSSGP_PDUT_RESUME, "RESUME" }, { BSSGP_PDUT_RESUME_ACK, "RESUME-ACK" }, { BSSGP_PDUT_RESUME_NACK, "RESUME-NACK" }, + { BSSGP_PDUT_DUMMY_PAGING_PS, "DUMMY-PAGING-PS" }, + { BSSGP_PDUT_DUMMY_PAGING_PS_RESP, "DUMMY-PAGING-PS-RESP" }, + { BSSGP_PDUT_MS_REGISTR_ENQ, "MS-REGISTRATION-ENQ" }, + { BSSGP_PDUT_MS_REGISTR_ENQ_RESP, "MS-REGISTRATION-ENQ-RESP" }, { BSSGP_PDUT_BVC_BLOCK, "BVC-BLOCK" }, { BSSGP_PDUT_BVC_BLOCK_ACK, "BVC-BLOCK-ACK" }, { BSSGP_PDUT_BVC_RESET, "BVC-RESET" }, @@ -131,8 +137,11 @@ { BSSGP_PDUT_FLUSH_LL, "FLUSH-LL" }, { BSSGP_PDUT_FLUSH_LL_ACK, "FLUSH-LL-ACK" }, { BSSGP_PDUT_LLC_DISCARD, "LLC DISCARDED" }, + { BSSGP_PDUT_FLOW_CONTROL_PFC, "FLOW-CONTROL-PFC" }, + { BSSGP_PDUT_FLOW_CONTROL_PFC_ACK, "FLOW-CONTROL-PFC-ACK" }, { BSSGP_PDUT_SGSN_INVOKE_TRACE, "SGSN-INVOKE-TRACE" }, { BSSGP_PDUT_STATUS, "STATUS" }, + { BSSGP_PDUT_OVERLOAD, "OVERLOAD" }, { BSSGP_PDUT_DOWNLOAD_BSS_PFC, "DOWNLOAD-BSS-PFC" }, { BSSGP_PDUT_CREATE_BSS_PFC, "CREATE-BSS-PFC" }, { BSSGP_PDUT_CREATE_BSS_PFC_ACK, "CREATE-BSS-PFC-ACK" }, @@ -141,6 +150,16 @@ { BSSGP_PDUT_MODIFY_BSS_PFC_ACK, "MODIFY-BSS-PFC-ACK" }, { BSSGP_PDUT_DELETE_BSS_PFC, "DELETE-BSS-PFC" }, { BSSGP_PDUT_DELETE_BSS_PFC_ACK, "DELETE-BSS-PFC-ACK" }, + { BSSGP_PDUT_DELETE_BSS_PFC_REQ, "DELETE-BSS-PFC-REQ" }, + { BSSGP_PDUT_PS_HO_REQUIRED, "PS-HO-REQUIRED" }, + { BSSGP_PDUT_PS_HO_REQUIRED_ACK, "PS-HO-REQUIRED-ACK" }, + { BSSGP_PDUT_PS_HO_REQUIRED_NACK, "PS-HO-REQUIRED-NACK" }, + { BSSGP_PDUT_PS_HO_REQUEST, "PS-HO-REQUEST" }, + { BSSGP_PDUT_PS_HO_REQUEST_ACK, "PS-HO-REQUEST-ACK" }, + { BSSGP_PDUT_PS_HO_REQUEST_NACK, "PS-HO-REQUEST-NACK" }, + { BSSGP_PDUT_PS_HO_COMPLETE, "PS-HO-COMPLETE" }, + { BSSGP_PDUT_PS_HO_CANCEL, "PS-HO-CANCEL" }, + { BSSGP_PDUT_PS_HO_COMPLETE_ACK, "PS-HO-COMPLETE-ACK" }, { 0, NULL }, }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia108ba0d5f1f2c9d46f0c0bd11cd93104b9d62ea Gerrit-Change-Number: 21532 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 Dec 4 18:20:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:20:17 +0000 Subject: Change in libosmocore[master]: bssgp: Fix typo in BSSGP Message Type enum In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21543 ) Change subject: bssgp: Fix typo in BSSGP Message Type enum ...................................................................... bssgp: Fix typo in BSSGP Message Type enum Change-Id: I63941f8b38485e569f56ba5065c2c00232703028 --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 70ab011..4c04f6b 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -9,6 +9,9 @@ #define BVCI_SIGNALLING 0x0000 #define BVCI_PTM 0x0001 +/* typo backwards compatiblity */ +#define BSSGP_PDUT_RA_CAPA_UDPATE BSSGP_PDUT_RA_CAPA_UPDATE + /*! BSSGP PDU types (Section 11.3.26 / Table 11.27) */ enum bssgp_pdu_type { /* PDUs between RL and BSSGP SAPs */ @@ -22,7 +25,7 @@ /* PDUs between GMM SAPs */ BSSGP_PDUT_PAGING_PS = 0x06, BSSGP_PDUT_PAGING_CS = 0x07, - BSSGP_PDUT_RA_CAPA_UDPATE = 0x08, + BSSGP_PDUT_RA_CAPA_UPDATE = 0x08, BSSGP_PDUT_RA_CAPA_UPDATE_ACK = 0x09, BSSGP_PDUT_RADIO_STATUS = 0x0a, BSSGP_PDUT_SUSPEND = 0x0b, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I63941f8b38485e569f56ba5065c2c00232703028 Gerrit-Change-Number: 21543 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 Fri Dec 4 18:22:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:22:44 +0000 Subject: Change in osmo-gsm-tester[master]: add test.report_fragment() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 ) Change subject: add test.report_fragment() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/2/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py File selftest/suite_test/suitedirA/test_suite/test_report_fragment.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/2/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py at 11 PS2, Line 11: raise Exception('failure in the third fragment') Please see sysmocom/suites/4g/ping.py, last line "test.set_report_stdout(output)". We already have similar APIs which are being used by OGT users, let's not add new ones. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 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: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 Gerrit-Change-Number: 21516 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:22:44 +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 Dec 4 18:24:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:24:39 +0000 Subject: Change in osmo-gsm-tester[master]: report fragment: strip ansi colors from junit XML In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21517 ) Change subject: report fragment: strip ansi colors from junit XML ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21517 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: I656ecc23bbfd3f25bdf012c890e0c998168844d3 Gerrit-Change-Number: 21517 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:24: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 Dec 4 18:25:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:25:16 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: set socket timeout In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21518 ) Change subject: ctrl: set socket timeout ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21518 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: I20091daf13981dc3d0d894af5a65c23f4db0471d Gerrit-Change-Number: 21518 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 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 Fri Dec 4 18:26:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:26:16 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: increment message IDs for CTRL commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21519 ) Change subject: ctrl: increment message IDs for CTRL commands ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21519 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: I698faa013eb14f88759685d50d925f5d82d80aa0 Gerrit-Change-Number: 21519 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18: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 Fri Dec 4 18:28:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:28:11 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: add get_var() to properly GET and read a GET_REPLY In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21520 ) Change subject: ctrl: add get_var() to properly GET and read a GET_REPLY ...................................................................... Patch Set 2: >From the commit description this commit looks like fixing something, but I only see 2 methods being added so no behavior change... -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21520 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: I75ec2494412e9b36b665ee6e45bd9f8fcdd27be6 Gerrit-Change-Number: 21520 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:28: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 Fri Dec 4 18:30:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:30:14 +0000 Subject: Change in osmo-gsm-tester[master]: use ctrl.get_var() instead of do_get() with code dup In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21521 ) Change subject: use ctrl.get_var() instead of do_get() with code dup ...................................................................... Patch Set 2: Code-Review+2 (1 comment) Please squash this commit with the previous one if possible, otherwise it's not celar what those functions are for. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21521/2/src/osmo_gsm_tester/obj/bsc_osmo.py File src/osmo_gsm_tester/obj/bsc_osmo.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21521/2/src/osmo_gsm_tester/obj/bsc_osmo.py at 219 PS2, Line 219: oml_state = ctrl.get_var(OsmoBscCtrl.BTS_OML_STATE_VAR % bts_num) lol I first understood this as a modulus operation and I was not understanding what was going on here. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21521 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: I8dd6140787c6e84dff0882a1c9d5be4bdd3bbc43 Gerrit-Change-Number: 21521 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:30:14 +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 Dec 4 18:30:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:30:18 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 ) Change subject: gbproxy: Add BVC log filters ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:30: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 Dec 4 18:30:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:30:26 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: add get_var() to properly GET and read a GET_REPLY In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21520 ) Change subject: ctrl: add get_var() to properly GET and read a GET_REPLY ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21520 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: I75ec2494412e9b36b665ee6e45bd9f8fcdd27be6 Gerrit-Change-Number: 21520 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:30: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 Dec 4 18:30:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:30:54 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21540 ) Change subject: gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I997b29fef93188565f81bd403bc68840473958c3 Gerrit-Change-Number: 21540 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18: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 Fri Dec 4 18:30:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:30:59 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add BVC log filters In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 ) Change subject: gbproxy: Add BVC log filters ...................................................................... gbproxy: Add BVC log filters Since gbproxy doesn't use bssgp_rcvmsg from libosmocore we need to implement our own filtering. Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Related: SYS#5232 --- 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 4 files changed, 46 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/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index fae95c1..b3a9a6c 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -15,6 +15,9 @@ #define GBPROXY_INIT_VU_GEN_TX 256 +/* BVCI uses 16 bits */ +#define BVC_LOG_CTX_FLAG (1<<17) + struct rate_ctr_group; struct gprs_gb_parse_context; struct tlv_parsed; diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index d8b828c..329c1d1 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -1568,12 +1569,12 @@ } } - /* called by the ns layer */ int gprs_ns2_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { struct osmo_gprs_ns2_prim *nsp; struct gbproxy_config *cfg = (struct gbproxy_config *) ctx; + uintptr_t bvci; int rc = 0; if (oph->sap != SAP_NS) @@ -1589,11 +1590,14 @@ switch (oph->primitive) { case PRIM_NS_UNIT_DATA: + /* hand the message into the BSSGP implementation */ msgb_bssgph(oph->msg) = oph->msg->l3h; msgb_bvci(oph->msg) = nsp->bvci; msgb_nsei(oph->msg) = nsp->nsei; + bvci = nsp->bvci | BVC_LOG_CTX_FLAG; + log_set_context(LOG_CTX_GB_BVC, (void *)bvci); rc = gbprox_rcvmsg(cfg, oph->msg); msgb_free(oph->msg); break; diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 62c4d94..2b28dd5 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -25,6 +25,7 @@ #include #include +#include #include #include #include diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index caad52e..379b8c2 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -39,6 +39,7 @@ #include #include +#include #include #include @@ -538,6 +539,41 @@ return CMD_SUCCESS; } +static void log_set_bvc_filter(struct log_target *target, + const uint16_t *bvci) +{ + if (bvci) { + uintptr_t bvci_filter = *bvci | BVC_LOG_CTX_FLAG; + target->filter_map |= (1 << LOG_FLT_GB_BVC); + target->filter_data[LOG_FLT_GB_BVC] = (void *)bvci_filter; + } else if (target->filter_data[LOG_FLT_GB_BVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_BVC); + target->filter_data[LOG_FLT_GB_BVC] = NULL; + } +} + +DEFUN(logging_fltr_bvc, + logging_fltr_bvc_cmd, + "logging filter bvc bvci <0-65535>", + LOGGING_STR FILTER_STR + "Filter based on BSSGP VC\n" + "Identify BVC by BVCI\n" + "Numeric identifier\n") +{ + struct log_target *tgt; + uint16_t id = atoi(argv[0]); + + log_tgt_mutex_lock(); + tgt = osmo_log_vty2tgt(vty); + if (!tgt) { + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + log_set_bvc_filter(tgt, &id); + log_tgt_mutex_unlock(); + return CMD_SUCCESS; +} DEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy [stats]", SHOW_STR "Display information about the Gb proxy\n" "Show statistics\n") @@ -881,6 +917,7 @@ { install_element_ve(&show_gbproxy_cmd); install_element_ve(&show_gbproxy_links_cmd); + install_element_ve(&logging_fltr_bvc_cmd); install_element(ENABLE_NODE, &delete_gb_bvci_cmd); install_element(ENABLE_NODE, &delete_gb_nsei_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4d1b57b89990945d307f27a58a7f630be0253d5b Gerrit-Change-Number: 21495 Gerrit-PatchSet: 3 Gerrit-Owner: daniel 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 Dec 4 18:30:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:30:59 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add newline to log message In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21526 ) Change subject: gbproxy: Add newline to log message ...................................................................... gbproxy: Add newline to log message Change-Id: I91a076872b5d744a237f6d325857b95362455e8d --- M src/gbproxy/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved pespin: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 329c1d1..a4ad7af 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1204,7 +1204,7 @@ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { - LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)"); + LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; /* Only send it once to each NSE */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I91a076872b5d744a237f6d325857b95362455e8d Gerrit-Change-Number: 21526 Gerrit-PatchSet: 1 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 Fri Dec 4 18:31:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:31:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Allow gbproxy_nse_free(NULL) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21539 ) Change subject: gbproxy: Allow gbproxy_nse_free(NULL) ...................................................................... gbproxy: Allow gbproxy_nse_free(NULL) Calling free() with a null-pointer is usually supported and does nothing. Change gbproxy_{peer,nse}_free() to reflect that behaviour. Change-Id: Ia32084f81ca8f8cb9ddea3adabd4b44fd766f1c7 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 4 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 2b28dd5..ea5fe1e 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -242,7 +242,8 @@ void gbproxy_peer_free(struct gbproxy_peer *peer) { - OSMO_ASSERT(peer); + if (!peer) + return; llist_del(&peer->list); osmo_timer_del(&peer->clean_stale_timer); @@ -305,7 +306,8 @@ void gbproxy_nse_free(struct gbproxy_nse *nse) { struct gbproxy_peer *peer, *tmp; - OSMO_ASSERT(nse); + if (!nse) + return; llist_del(&nse->list); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia32084f81ca8f8cb9ddea3adabd4b44fd766f1c7 Gerrit-Change-Number: 21539 Gerrit-PatchSet: 1 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 Dec 4 18:31:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:31:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21540 ) Change subject: gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command ...................................................................... gbproxy: Delete gbproxy_nse in delete-gbproxy-peer VTY command The gbproxy_nse is created when the signalling BVC is resetted. When we delete all bvcs of an nsei we need to remove it as well. Change-Id: I997b29fef93188565f81bd403bc68840473958c3 Related: SYS#5002 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 4 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/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 379b8c2..bf1c4e0 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -696,9 +696,11 @@ delete_bvc = delete_nsvc = 1; if (delete_bvc) { - if (!dry_run) + if (!dry_run) { + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei); counter = gbproxy_cleanup_peers(g_cfg, nsei, 0); - else { + gbproxy_nse_free(nse); + } else { struct gbproxy_nse *nse; struct gbproxy_peer *peer; counter = 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I997b29fef93188565f81bd403bc68840473958c3 Gerrit-Change-Number: 21540 Gerrit-PatchSet: 1 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 Dec 4 18:31:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:31:35 +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 posted comments on 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 ...................................................................... Patch Set 4: Code-Review+1 -- 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: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 04 Dec 2020 18:31: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 Dec 4 18:32:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:32:04 +0000 Subject: Change in osmo-bsc[master]: Store GPRS MOs directly under BTS SiteMgr object In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21423 ) Change subject: Store GPRS MOs directly under BTS SiteMgr object ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 Gerrit-Change-Number: 21423 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Fri, 04 Dec 2020 18:32: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 Dec 4 18:32:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:32:20 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21461 ) Change subject: Introduce NM GPRS NSE FSM ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 04 Dec 2020 18: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 Fri Dec 4 18:32:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:32:23 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21463 ) Change subject: Introduce NM GPRS CELL FSM ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 04 Dec 2020 18:32: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 Dec 4 18:32:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:32:32 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18: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 Fri Dec 4 18:32:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:32:47 +0000 Subject: Change in osmo-bsc[master]: Fix typo in function nanobts_attr_nsvc_get In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21538 ) Change subject: Fix typo in function nanobts_attr_nsvc_get ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I50235ba7b045ab7fba2112e61191d2756a67dfdc Gerrit-Change-Number: 21538 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 04 Dec 2020 18: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 Fri Dec 4 18:33:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:33:21 +0000 Subject: Change in osmo-bsc[master]: oml: Delay configuring NSVC until BTS features are negotiated In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21451 ) Change subject: oml: Delay configuring NSVC until BTS features are negotiated ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:33: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 Dec 4 18:33:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:33:29 +0000 Subject: Change in osmo-bsc[master]: Store GPRS MOs directly under BTS SiteMgr object In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21423 ) Change subject: Store GPRS MOs directly under BTS SiteMgr object ...................................................................... Store GPRS MOs directly under BTS SiteMgr object The only real 1-1 relationship between BTS NM objects is the one between GPRS Cell and BTS (which is actually a BTS cell). In our current osmo-bts implementation we don't care much since we only handle 1-cell BTSses, but let's make the data structure organization more generic. Implementation notes: The gsm_bts_sm is moved to its own file, APIs to allocate are added and the new public object is hooked correctly in the allocation process of osmo-bsc. Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bts.h A include/osmocom/bsc/bts_sm.h M include/osmocom/bsc/gsm_data.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_nokia_site.c A src/osmo-bsc/bts_sm.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/nm_bb_transc_fsm.c M src/osmo-bsc/nm_bts_fsm.c M src/osmo-bsc/nm_bts_sm_fsm.c M src/osmo-bsc/nm_channel_fsm.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/pcu_sock.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.c M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 30 files changed, 270 insertions(+), 138 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index 1f066b6..e2d5db8 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -11,6 +11,7 @@ bsc_subscr_conn_fsm.h \ bss.h \ bts.h \ + bts_sm.h \ bts_trx.h \ bts_ipaccess_nanobts_omlattr.h \ chan_alloc.h \ diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 22839d6..fd968fa 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -14,6 +14,7 @@ #include "osmocom/bsc/gsm_data.h" #include "osmocom/bsc/bts_trx.h" +#include "osmocom/bsc/bts_sm.h" enum bts_counter_id { BTS_CTR_CHREQ_TOTAL, @@ -197,15 +198,11 @@ uint8_t _features_data[MAX_BTS_FEATURES/8]; }; -/* BTS Site Manager */ -struct gsm_bts_sm { +struct gsm_gprs_cell { struct gsm_abis_mo mo; - /* nanoBTS and old versions of osmo-bts behaves this way due to - broken FSMs not following TS 12.21: they never do - Dependency->Offline transition, but they should be OPSTARTed - nevertheless during Dependnecy state to work. This field is - used by all dependent NM objects. */ - bool peer_has_no_avstate_offline; + uint16_t bvci; + uint8_t timer[11]; + struct gprs_rlc_cfg rlc_cfg; }; /* One BTS */ @@ -272,7 +269,7 @@ /* CCCH is on C0 */ struct gsm_bts_trx *c0; - struct gsm_bts_sm site_mgr; + struct gsm_bts_sm *site_mgr; /* backpointer */ /* bitmask of all SI that are present/valid in si_buf */ uint32_t si_valid; @@ -354,18 +351,7 @@ /* Not entirely sure how ip.access specific this is */ struct { enum bts_gprs_mode mode; - struct { - struct gsm_abis_mo mo; - uint16_t nsei; - uint8_t timer[7]; - } nse; - struct { - struct gsm_abis_mo mo; - uint16_t bvci; - uint8_t timer[11]; - struct gprs_rlc_cfg rlc_cfg; - } cell; - struct gsm_bts_gprs_nsvc nsvc[2]; + struct gsm_gprs_cell cell; uint8_t rac; uint8_t net_ctrl_ord; bool ctrl_ack_type_use_block; @@ -574,11 +560,7 @@ return &lai; } -static inline struct gsm_bts *gsm_bts_sm_get_bts(struct gsm_bts_sm *site_mgr) { - return (struct gsm_bts *)container_of(site_mgr, struct gsm_bts, site_mgr); -} - -struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num); +struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, struct gsm_bts_sm *bts_sm, uint8_t bts_num); char *gsm_bts_name(const struct gsm_bts *bts); diff --git a/include/osmocom/bsc/bts_sm.h b/include/osmocom/bsc/bts_sm.h new file mode 100644 index 0000000..37ace77 --- /dev/null +++ b/include/osmocom/bsc/bts_sm.h @@ -0,0 +1,72 @@ +/* BTS Site Manager */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include +#include + +#include "osmocom/bsc/gsm_data.h" + +struct gsm_bts; + +struct gsm_gprs_nse { + struct gsm_abis_mo mo; + uint16_t nsei; + uint8_t timer[7]; +}; + +struct gsm_gprs_nsvc { + struct gsm_bts *bts; + /* data read via VTY config file, to configure the BTS + * via OML from BSC */ + int id; + uint16_t nsvci; + uint16_t local_port; /* on the BTS */ + struct osmo_sockaddr remote; + struct gsm_abis_mo mo; +}; + + +/* BTS Site Manager */ +struct gsm_bts_sm { + struct gsm_bts *bts[1]; /* only one bts supported so far */ + struct gsm_abis_mo mo; + /* nanoBTS and old versions of osmo-bts behaves this way due to + broken FSMs not following TS 12.21: they never do + Dependency->Offline transition, but they should be OPSTARTed + nevertheless during Dependnecy state to work. This field is + used by all dependent NM objects. */ + bool peer_has_no_avstate_offline; + struct { + struct gsm_gprs_nse nse; + struct gsm_gprs_nsvc nsvc[2]; + } gprs; +}; + +static inline struct gsm_bts *gsm_bts_sm_get_bts(struct gsm_bts_sm *site_mgr) { + return site_mgr->bts[0]; +} + +struct gsm_bts_sm *gsm_bts_sm_alloc(struct gsm_network *net, uint8_t bts_num); + +void gsm_bts_sm_mo_reset(struct gsm_bts_sm *bts_sm); diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index a5b5a50..d8f8be2 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -767,17 +767,6 @@ struct gsm_abis_mo mo; }; -struct gsm_bts_gprs_nsvc { - struct gsm_bts *bts; - /* data read via VTY config file, to configure the BTS - * via OML from BSC */ - int id; - uint16_t nsvci; - uint16_t local_port; /* on the BTS */ - struct osmo_sockaddr remote; - struct gsm_abis_mo mo; -}; - enum gprs_rlc_par { RLC_T3142, RLC_T3169, diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index 1574a8b..c489e0a 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -47,6 +47,7 @@ # FIXME: resolve the bogus dependencies patched around here: ipaccess_config_LDADD = \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ @@ -72,6 +73,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 5739885..89f869d 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -52,6 +52,7 @@ bts_ipaccess_nanobts_omlattr.c \ bts_nokia_site.c \ bts_siemens_bs11.c \ + bts_sm.c \ bts_sysmobts.c \ bts_unknown.c \ chan_alloc.c \ diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 73dc2d0..657948f 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -866,11 +866,11 @@ if (bts->gprs.cell.mo.nm_state.administrative == NM_STATE_LOCKED) return false; - if (bts->gprs.nse.mo.nm_state.administrative == NM_STATE_LOCKED) + if (bts->site_mgr->gprs.nse.mo.nm_state.administrative == NM_STATE_LOCKED) return false; - if (bts->gprs.nsvc[0].mo.nm_state.administrative == NM_STATE_LOCKED && - bts->gprs.nsvc[1].mo.nm_state.administrative == NM_STATE_LOCKED) + if (bts->site_mgr->gprs.nsvc[0].mo.nm_state.administrative == NM_STATE_LOCKED && + bts->site_mgr->gprs.nsvc[1].mo.nm_state.administrative == NM_STATE_LOCKED) return false; } diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 846339d..c98a254 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -463,17 +463,17 @@ vty_out(vty, " NM State: "); net_dump_nmstate(vty, &bts->mo.nm_state); vty_out(vty, " Site Mgr NM State: "); - net_dump_nmstate(vty, &bts->site_mgr.mo.nm_state); + net_dump_nmstate(vty, &bts->site_mgr->mo.nm_state); if (bts->gprs.mode != BTS_GPRS_NONE) { vty_out(vty, " GPRS NSE: "); - net_dump_nmstate(vty, &bts->gprs.nse.mo.nm_state); + net_dump_nmstate(vty, &bts->site_mgr->gprs.nse.mo.nm_state); vty_out(vty, " GPRS CELL: "); net_dump_nmstate(vty, &bts->gprs.cell.mo.nm_state); vty_out(vty, " GPRS NSVC0: "); - net_dump_nmstate(vty, &bts->gprs.nsvc[0].mo.nm_state); + net_dump_nmstate(vty, &bts->site_mgr->gprs.nsvc[0].mo.nm_state); vty_out(vty, " GPRS NSVC1: "); - net_dump_nmstate(vty, &bts->gprs.nsvc[1].mo.nm_state); + net_dump_nmstate(vty, &bts->site_mgr->gprs.nsvc[1].mo.nm_state); } else vty_out(vty, " GPRS: not configured%s", VTY_NEWLINE); @@ -740,6 +740,7 @@ static void config_write_bts_gprs(struct vty *vty, struct gsm_bts *bts) { unsigned int i; + struct gsm_bts_sm *bts_sm = bts->site_mgr; vty_out(vty, " gprs mode %s%s", bts_gprs_mode_name(bts->gprs.mode), VTY_NEWLINE); if (bts->gprs.mode == BTS_GPRS_NONE) @@ -757,15 +758,15 @@ vty_out(vty, " gprs cell timer %s %u%s", get_value_string(gprs_bssgp_cfg_strs, i), bts->gprs.cell.timer[i], VTY_NEWLINE); - vty_out(vty, " gprs nsei %u%s", bts->gprs.nse.nsei, + vty_out(vty, " gprs nsei %u%s", bts_sm->gprs.nse.nsei, VTY_NEWLINE); - for (i = 0; i < ARRAY_SIZE(bts->gprs.nse.timer); i++) + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nse.timer); i++) vty_out(vty, " gprs ns timer %s %u%s", get_value_string(gprs_ns_timer_strs, i), - bts->gprs.nse.timer[i], VTY_NEWLINE); - for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) { - struct gsm_bts_gprs_nsvc *nsvc = - &bts->gprs.nsvc[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]; struct osmo_sockaddr_str remote = {}; uint16_t port; @@ -3190,7 +3191,7 @@ GPRS_CHECK_ENABLED(bts); - bts->gprs.nse.nsei = atoi(argv[0]); + bts->site_mgr->gprs.nse.nsei = atoi(argv[0]); return CMD_SUCCESS; } @@ -3211,7 +3212,7 @@ GPRS_CHECK_ENABLED(bts); - bts->gprs.nsvc[idx].nsvci = atoi(argv[1]); + bts->site_mgr->gprs.nsvc[idx].nsvci = atoi(argv[1]); return CMD_SUCCESS; } @@ -3231,7 +3232,7 @@ GPRS_CHECK_ENABLED(bts); - bts->gprs.nsvc[idx].local_port = atoi(argv[1]); + bts->site_mgr->gprs.nsvc[idx].local_port = atoi(argv[1]); return CMD_SUCCESS; } @@ -3252,7 +3253,7 @@ GPRS_CHECK_ENABLED(bts); /* sockaddr_in and sockaddr_in6 have the port at the same position */ - bts->gprs.nsvc[idx].remote.u.sin.sin_port = htons(atoi(argv[1])); + bts->site_mgr->gprs.nsvc[idx].remote.u.sin.sin_port = htons(atoi(argv[1])); return CMD_SUCCESS; } @@ -3281,13 +3282,13 @@ } /* Can't use osmo_sockaddr_str_to_sockaddr() because the port would be overriden */ - bts->gprs.nsvc[idx].remote.u.sas.ss_family = remote.af; + bts->site_mgr->gprs.nsvc[idx].remote.u.sas.ss_family = remote.af; switch (remote.af) { case AF_INET: - osmo_sockaddr_str_to_in_addr(&remote, &bts->gprs.nsvc[idx].remote.u.sin.sin_addr); + osmo_sockaddr_str_to_in_addr(&remote, &bts->site_mgr->gprs.nsvc[idx].remote.u.sin.sin_addr); break; case AF_INET6: - osmo_sockaddr_str_to_in6_addr(&remote, &bts->gprs.nsvc[idx].remote.u.sin6.sin6_addr); + osmo_sockaddr_str_to_in6_addr(&remote, &bts->site_mgr->gprs.nsvc[idx].remote.u.sin6.sin6_addr); break; } @@ -3321,10 +3322,10 @@ GPRS_CHECK_ENABLED(bts); - if (idx < 0 || idx >= ARRAY_SIZE(bts->gprs.nse.timer)) + if (idx < 0 || idx >= ARRAY_SIZE(bts->site_mgr->gprs.nse.timer)) return CMD_WARNING; - bts->gprs.nse.timer[idx] = val; + bts->site_mgr->gprs.nse.timer[idx] = val; return CMD_SUCCESS; } diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 065b8ab..2c6b0f1 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -121,7 +121,6 @@ return 0; } -static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 }; static const uint8_t bts_cell_timer_default[] = { 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 }; static const struct gprs_rlc_cfg rlc_cfg_default = { @@ -149,10 +148,7 @@ static int gsm_bts_talloc_destructor(struct gsm_bts *bts) { - if (bts->site_mgr.mo.fi) { - osmo_fsm_inst_free(bts->site_mgr.mo.fi); - bts->site_mgr.mo.fi = NULL; - } + bts->site_mgr->bts[0] = NULL; if (bts->mo.fi) { osmo_fsm_inst_free(bts->mo.fi); bts->mo.fi = NULL; @@ -164,9 +160,9 @@ * This part is shared among the thin programs in osmo-bsc/src/utils/. * osmo-bsc requires further initialization that pulls in more dependencies (see * bsc_bts_alloc_register()). */ -struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num) +struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, struct gsm_bts_sm *bts_sm, uint8_t bts_num) { - struct gsm_bts *bts = talloc_zero(net, struct gsm_bts); + struct gsm_bts *bts = talloc_zero(bts_sm, struct gsm_bts); struct gsm48_multi_rate_conf mr_cfg; int i; @@ -182,26 +178,13 @@ bts->ms_max_power = 15; /* dBm */ - bts->site_mgr.mo.fi = osmo_fsm_inst_alloc(&nm_bts_sm_fsm, bts, &bts->site_mgr, - LOGL_INFO, NULL); - osmo_fsm_inst_update_id_f(bts->site_mgr.mo.fi, "bts_sm"); - gsm_mo_init(&bts->site_mgr.mo, bts, NM_OC_SITE_MANAGER, 0xff, 0xff, 0xff); + bts->site_mgr = bts_sm; bts->mo.fi = osmo_fsm_inst_alloc(&nm_bts_fsm, bts, bts, LOGL_INFO, NULL); osmo_fsm_inst_update_id_f(bts->mo.fi, "bts%d", bts->nr); gsm_mo_init(&bts->mo, bts, NM_OC_BTS, bts->nr, 0xff, 0xff); - for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) { - bts->gprs.nsvc[i].bts = bts; - bts->gprs.nsvc[i].id = i; - gsm_mo_init(&bts->gprs.nsvc[i].mo, bts, NM_OC_GPRS_NSVC, - bts->nr, i, 0xff); - } - memcpy(&bts->gprs.nse.timer, bts_nse_timer_default, - sizeof(bts->gprs.nse.timer)); - gsm_mo_init(&bts->gprs.nse.mo, bts, NM_OC_GPRS_NSE, - bts->nr, 0xff, 0xff); memcpy(&bts->gprs.cell.timer, bts_cell_timer_default, sizeof(bts->gprs.cell.timer)); gsm_mo_init(&bts->gprs.cell.mo, bts, NM_OC_GPRS_CELL, @@ -589,10 +572,6 @@ unsigned int i; gsm_abis_mo_reset(&bts->mo); - gsm_abis_mo_reset(&bts->site_mgr.mo); - for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) - gsm_abis_mo_reset(&bts->gprs.nsvc[i].mo); - gsm_abis_mo_reset(&bts->gprs.nse.mo); gsm_abis_mo_reset(&bts->gprs.cell.mo); llist_for_each_entry(trx, &bts->trx_list, list) { diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index f9dc8b3..73d6318 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -133,7 +133,7 @@ struct gsm_bts_trx *trx; struct gsm_bts_bb_trx *bb_transc; struct gsm_bts_trx_ts *ts; - struct gsm_bts_gprs_nsvc *nsvc; + struct gsm_gprs_nsvc *nsvc; struct msgb *msgb; @@ -174,7 +174,8 @@ osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_NSE: - bts = container_of(obj, struct gsm_bts, gprs.nse); + bts_sm = container_of(obj, struct gsm_bts_sm, gprs.nse); + bts = bts_sm->bts[0]; if (bts->gprs.mode == BTS_GPRS_NONE) break; if (new_state->availability == NM_AVSTATE_DEPENDENCY) { @@ -258,7 +259,7 @@ switch (foh->obj_class) { case NM_OC_SITE_MANAGER: - osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SW_ACT_REP, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_SW_ACT_REP, NULL); break; case NM_OC_BTS: osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_SW_ACT_REP, NULL); @@ -306,7 +307,7 @@ switch (foh->obj_class) { case NM_OC_SITE_MANAGER: - osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_OPSTART_ACK, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OPSTART_ACK, NULL); break; case NM_OC_BTS: osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL); @@ -339,7 +340,7 @@ switch (foh->obj_class) { case NM_OC_SITE_MANAGER: - osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_OPSTART_NACK, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OPSTART_NACK, NULL); break; case NM_OC_BTS: osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL); @@ -522,7 +523,7 @@ } } - osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_OML_DOWN, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OML_DOWN, NULL); osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OML_DOWN, NULL); gsm_bts_all_ts_dispatch(bts, TS_EV_OML_DOWN, NULL); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index 6d64a4b..5ad0f47 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -105,18 +105,19 @@ { struct msgb *msgb; uint8_t buf[256]; + struct gsm_bts_sm *bts_sm = bts->site_mgr; msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; /* NSEI 925 */ - buf[0] = bts->gprs.nse.nsei >> 8; - buf[1] = bts->gprs.nse.nsei & 0xff; + buf[0] = bts_sm->gprs.nse.nsei >> 8; + buf[1] = bts_sm->gprs.nse.nsei & 0xff; msgb_tl16v_put(msgb, NM_ATT_IPACC_NSEI, 2, buf); /* all timers in seconds */ - OSMO_ASSERT(ARRAY_SIZE(bts->gprs.nse.timer) < sizeof(buf)); - memcpy(buf, bts->gprs.nse.timer, ARRAY_SIZE(bts->gprs.nse.timer)); + OSMO_ASSERT(ARRAY_SIZE(bts_sm->gprs.nse.timer) < sizeof(buf)); + memcpy(buf, bts_sm->gprs.nse.timer, ARRAY_SIZE(bts_sm->gprs.nse.timer)); msgb_tl16v_put(msgb, NM_ATT_IPACC_NS_CFG, 7, buf); /* all timers in seconds */ @@ -202,16 +203,17 @@ { struct msgb *msgb; uint8_t buf[256]; + struct gsm_bts_sm *bts_sm = bts->site_mgr; msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; /* 925 */ - buf[0] = bts->gprs.nsvc[0].nsvci >> 8; - buf[1] = bts->gprs.nsvc[0].nsvci & 0xff; + buf[0] = bts_sm->gprs.nsvc[0].nsvci >> 8; + buf[1] = bts_sm->gprs.nsvc[0].nsvci & 0xff; msgb_tl16v_put(msgb, NM_ATT_IPACC_NSVCI, 2, buf); - switch (bts->gprs.nsvc->remote.u.sa.sa_family) { + switch (bts_sm->gprs.nsvc->remote.u.sa.sa_family) { case AF_INET6: /* all fields are encoded in network byte order */ /* protocol family */ @@ -219,20 +221,20 @@ /* padding */ buf[1] = 0x00; /* local udp port */ - osmo_store16be(bts->gprs.nsvc[0].local_port, &buf[2]); + osmo_store16be(bts_sm->gprs.nsvc[0].local_port, &buf[2]); /* remote udp port */ - memcpy(&buf[4], &bts->gprs.nsvc[0].remote.u.sin6.sin6_port, sizeof(uint16_t)); + memcpy(&buf[4], &bts_sm->gprs.nsvc[0].remote.u.sin6.sin6_port, sizeof(uint16_t)); /* remote ip address */ - memcpy(&buf[6], &bts->gprs.nsvc[0].remote.u.sin6.sin6_addr, sizeof(struct in6_addr)); + memcpy(&buf[6], &bts_sm->gprs.nsvc[0].remote.u.sin6.sin6_addr, sizeof(struct in6_addr)); msgb_tl16v_put(msgb, NM_ATT_OSMO_NS_LINK_CFG, 6 + sizeof(struct in6_addr), buf); break; case AF_INET: /* remote udp port */ - memcpy(&buf[0], &bts->gprs.nsvc[0].remote.u.sin.sin_port, sizeof(uint16_t)); + memcpy(&buf[0], &bts_sm->gprs.nsvc[0].remote.u.sin.sin_port, sizeof(uint16_t)); /* remote ip address */ - memcpy(&buf[2], &bts->gprs.nsvc[0].remote.u.sin.sin_addr, sizeof(struct in_addr)); + memcpy(&buf[2], &bts_sm->gprs.nsvc[0].remote.u.sin.sin_addr, sizeof(struct in_addr)); /* local udp port */ - osmo_store16be(bts->gprs.nsvc[0].local_port, &buf[6]); + osmo_store16be(bts_sm->gprs.nsvc[0].local_port, &buf[6]); msgb_tl16v_put(msgb, NM_ATT_IPACC_NS_LINK_CFG, 8, buf); break; default: diff --git a/src/osmo-bsc/bts_nokia_site.c b/src/osmo-bsc/bts_nokia_site.c index 2b6f918..3820ead 100644 --- a/src/osmo-bsc/bts_nokia_site.c +++ b/src/osmo-bsc/bts_nokia_site.c @@ -1452,7 +1452,7 @@ struct gsm_bts_trx *trx; mo_ok(&bts->mo); - mo_ok(&bts->site_mgr.mo); + mo_ok(&bts->site_mgr->mo); llist_for_each_entry(trx, &bts->trx_list, list) { int i; diff --git a/src/osmo-bsc/bts_sm.c b/src/osmo-bsc/bts_sm.c new file mode 100644 index 0000000..a016124 --- /dev/null +++ b/src/osmo-bsc/bts_sm.c @@ -0,0 +1,85 @@ +/* (C) 2008-2018 by Harald Welte + * (C) 2020 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include + +#include +#include +#include +#include + +static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 }; + +static int gsm_bts_sm_talloc_destructor(struct gsm_bts_sm *bts_sm) +{ + if (bts_sm->mo.fi) { + osmo_fsm_inst_free(bts_sm->mo.fi); + bts_sm->mo.fi = NULL; + } + return 0; +} + +struct gsm_bts_sm *gsm_bts_sm_alloc(struct gsm_network *net, uint8_t bts_num) +{ + struct gsm_bts_sm *bts_sm = talloc_zero(net, struct gsm_bts_sm); + struct gsm_bts *bts; + int i; + if (!bts_sm) + return NULL; + + talloc_set_destructor(bts_sm, gsm_bts_sm_talloc_destructor); + bts_sm->mo.fi = osmo_fsm_inst_alloc(&nm_bts_sm_fsm, bts_sm, bts_sm, + LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts_sm->mo.fi, "bts_sm"); + + bts = gsm_bts_alloc(net, bts_sm, bts_num); + if (!bts) { + talloc_free(bts_sm); + return NULL; + } + bts_sm->bts[0] = bts; + + gsm_mo_init(&bts_sm->mo, bts, NM_OC_SITE_MANAGER, 0xff, 0xff, 0xff); + + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { + bts_sm->gprs.nsvc[i].bts = bts; + bts_sm->gprs.nsvc[i].id = i; + gsm_mo_init(&bts_sm->gprs.nsvc[i].mo, bts, NM_OC_GPRS_NSVC, + bts->nr, i, 0xff); + } + memcpy(&bts_sm->gprs.nse.timer, bts_nse_timer_default, + sizeof(bts_sm->gprs.nse.timer)); + gsm_mo_init(&bts_sm->gprs.nse.mo, bts, NM_OC_GPRS_NSE, + bts->nr, 0xff, 0xff); + + return bts_sm; +} + +void gsm_bts_sm_mo_reset(struct gsm_bts_sm *bts_sm) +{ + int i; + gsm_abis_mo_reset(&bts_sm->mo); + + gsm_abis_mo_reset(&bts_sm->gprs.nse.mo); + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) + gsm_abis_mo_reset(&bts_sm->gprs.nsvc[i].mo); + + gsm_bts_mo_reset(bts_sm->bts[0]); +} diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 22616f3..28f7c27 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -110,14 +110,16 @@ uint8_t bsic) { struct gsm_bts_model *model = bts_model_find(type); + struct gsm_bts_sm *bts_sm; struct gsm_bts *bts; if (!model && type != GSM_BTS_TYPE_UNKNOWN) return NULL; - bts = gsm_bts_alloc(net, net->num_bts); - if (!bts) + bts_sm = gsm_bts_sm_alloc(net, net->num_bts); + if (!bts_sm) return NULL; + bts = bts_sm->bts[0]; net->num_bts++; @@ -378,7 +380,7 @@ mo = &trx->ts[obj_inst->ts_nr].mo; break; case NM_OC_SITE_MANAGER: - mo = &bts->site_mgr.mo; + mo = &bts->site_mgr->mo; break; case NM_OC_BS11: switch (obj_inst->bts_nr) { @@ -410,15 +412,15 @@ mo = &bts->bs11.envabtse[obj_inst->trx_nr].mo; break; case NM_OC_GPRS_NSE: - mo = &bts->gprs.nse.mo; + mo = &bts->site_mgr->gprs.nse.mo; break; case NM_OC_GPRS_CELL: mo = &bts->gprs.cell.mo; break; case NM_OC_GPRS_NSVC: - if (obj_inst->trx_nr >= ARRAY_SIZE(bts->gprs.nsvc)) + if (obj_inst->trx_nr >= ARRAY_SIZE(bts->site_mgr->gprs.nsvc)) return NULL; - mo = &bts->gprs.nsvc[obj_inst->trx_nr].mo; + mo = &bts->site_mgr->gprs.nsvc[obj_inst->trx_nr].mo; break; } return mo; @@ -474,18 +476,18 @@ obj = &trx->ts[obj_inst->ts_nr]; break; case NM_OC_SITE_MANAGER: - obj = &bts->site_mgr; + obj = bts->site_mgr; break; case NM_OC_GPRS_NSE: - obj = &bts->gprs.nse; + obj = &bts->site_mgr->gprs.nse; break; case NM_OC_GPRS_CELL: obj = &bts->gprs.cell; break; case NM_OC_GPRS_NSVC: - if (obj_inst->trx_nr >= ARRAY_SIZE(bts->gprs.nsvc)) + if (obj_inst->trx_nr >= ARRAY_SIZE(bts->site_mgr->gprs.nsvc)) return NULL; - obj = &bts->gprs.nsvc[obj_inst->trx_nr]; + obj = &bts->site_mgr->gprs.nsvc[obj_inst->trx_nr]; break; } return obj; diff --git a/src/osmo-bsc/nm_bb_transc_fsm.c b/src/osmo-bsc/nm_bb_transc_fsm.c index c29f53d..e7132e8 100644 --- a/src/osmo-bsc/nm_bb_transc_fsm.c +++ b/src/osmo-bsc/nm_bb_transc_fsm.c @@ -113,7 +113,7 @@ struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); - if (trx->bts->site_mgr.peer_has_no_avstate_offline) { + if (trx->bts->site_mgr->peer_has_no_avstate_offline) { nm_bb_transc_fsm_state_chg(fi, NM_BB_TRANSC_ST_OP_DISABLED_OFFLINE); return; } @@ -187,7 +187,7 @@ case NM_AVSTATE_DEPENDENCY: /* There's no point in moving back to Dependency, since it's broken and it acts actually as if it was in Offline state */ - if (!trx->bts->site_mgr.peer_has_no_avstate_offline) { + if (!trx->bts->site_mgr->peer_has_no_avstate_offline) { nm_bb_transc_fsm_state_chg(fi, NM_BB_TRANSC_ST_OP_DISABLED_DEPENDENCY); } else { /* Moreover, in nanoBTS we need to check here for tx diff --git a/src/osmo-bsc/nm_bts_fsm.c b/src/osmo-bsc/nm_bts_fsm.c index 5f47fdc..6c577bd 100644 --- a/src/osmo-bsc/nm_bts_fsm.c +++ b/src/osmo-bsc/nm_bts_fsm.c @@ -119,7 +119,7 @@ /* nanoBTS is broken, doesn't follow TS 12.21. Opstart MUST be sent during Dependency, so we simply move to OFFLINE state here to avoid duplicating code */ - if (bts->site_mgr.peer_has_no_avstate_offline) { + if (bts->site_mgr->peer_has_no_avstate_offline) { nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_OFFLINE); return; } @@ -202,7 +202,7 @@ case NM_AVSTATE_DEPENDENCY: /* There's no point in moving back to Dependency, since it's broken and it acts actually as if it was in Offline state */ - if (!bts->site_mgr.peer_has_no_avstate_offline) { + if (!bts->site_mgr->peer_has_no_avstate_offline) { nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_DEPENDENCY); } else { /* Moreover, in nanoBTS we need to check here for tx diff --git a/src/osmo-bsc/nm_bts_sm_fsm.c b/src/osmo-bsc/nm_bts_sm_fsm.c index ce9e15b..e5b5a3c 100644 --- a/src/osmo-bsc/nm_bts_sm_fsm.c +++ b/src/osmo-bsc/nm_bts_sm_fsm.c @@ -78,7 +78,7 @@ "have your .cfg with 'type nanobts'. Otherwise, you probably " "are using an old osmo-bts; automatically adjusting OML " "behavior to be backward-compatible.\n"); - bts->site_mgr.peer_has_no_avstate_offline = true; + site_mgr->peer_has_no_avstate_offline = true; } nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_ENABLED); return; diff --git a/src/osmo-bsc/nm_channel_fsm.c b/src/osmo-bsc/nm_channel_fsm.c index 676c471..620051a 100644 --- a/src/osmo-bsc/nm_channel_fsm.c +++ b/src/osmo-bsc/nm_channel_fsm.c @@ -125,7 +125,7 @@ { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; - if (ts->trx->bts->site_mgr.peer_has_no_avstate_offline) { + if (ts->trx->bts->site_mgr->peer_has_no_avstate_offline) { nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_OFFLINE); return; } @@ -208,7 +208,7 @@ case NM_AVSTATE_DEPENDENCY: /* There's no point in moving back to Dependency, since it's broken and it acts actually as if it was in Offline state */ - if (!ts->trx->bts->site_mgr.peer_has_no_avstate_offline) { + if (!ts->trx->bts->site_mgr->peer_has_no_avstate_offline) { nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_DEPENDENCY); } else { /* Moreover, in nanoBTS we need to check here for tx diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index cc02c71..3be8593 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -424,7 +424,7 @@ osmo_timer_del(&trx->bts->cbch_timer); } - gsm_bts_mo_reset(trx->bts); + gsm_bts_sm_mo_reset(trx->bts->site_mgr); abis_nm_clear_queue(trx->bts); break; @@ -529,7 +529,7 @@ /* ACC ramping is initialized from vty/config */ /* Initialize the BTS state */ - gsm_bts_mo_reset(bts); + gsm_bts_sm_mo_reset(bts->site_mgr); return 0; } diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index 541fc84..329bab0 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -46,6 +46,7 @@ #include #include #include +#include static int pcu_sock_send(struct gsm_bts *bts, struct msgb *msg); uint32_t trx_get_hlayer1(struct gsm_bts_trx *trx); @@ -115,13 +116,17 @@ struct gsm_pcu_if *pcu_prim; struct gsm_pcu_if_info_ind *info_ind; struct gprs_rlc_cfg *rlcc; - struct gsm_bts_gprs_nsvc *nsvc; + struct gsm_bts_sm *bts_sm; + struct gsm_gprs_nsvc *nsvc; struct gsm_bts_trx *trx; struct gsm_bts_trx_ts *ts; int i, tn; OSMO_ASSERT(bts); OSMO_ASSERT(bts->network); + OSMO_ASSERT(bts->site_mgr); + + bts_sm = bts->site_mgr; LOGP(DPCU, LOGL_INFO, "Sending info for BTS %d\n",bts->nr); @@ -147,8 +152,8 @@ info_ind->rac = bts->gprs.rac; /* NSE */ - info_ind->nsei = bts->gprs.nse.nsei; - memcpy(info_ind->nse_timer, bts->gprs.nse.timer, 7); + info_ind->nsei = bts_sm->gprs.nse.nsei; + memcpy(info_ind->nse_timer, bts_sm->gprs.nse.timer, 7); memcpy(info_ind->cell_timer, bts->gprs.cell.timer, 11); /* cell attributes */ @@ -202,7 +207,7 @@ /* NSVC */ for (i = 0; i < ARRAY_SIZE(info_ind->nsvci); i++) { - nsvc = &bts->gprs.nsvc[i]; + nsvc = &bts->site_mgr->gprs.nsvc[i]; info_ind->nsvci[i] = nsvc->nsvci; info_ind->local_port[i] = nsvc->local_port; diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 65fd8fa..dfc68c5 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -50,6 +50,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/bts_siemens_bs11.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ @@ -130,6 +131,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index d7d53b7..681e35a 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -29,6 +29,7 @@ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ diff --git a/tests/acc/Makefile.am b/tests/acc/Makefile.am index b1315e3..1536365 100644 --- a/tests/acc/Makefile.am +++ b/tests/acc/Makefile.am @@ -28,6 +28,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ diff --git a/tests/acc/acc_test.c b/tests/acc/acc_test.c index 81b9e8d..73757c7 100644 --- a/tests/acc/acc_test.c +++ b/tests/acc/acc_test.c @@ -44,7 +44,8 @@ #define bts_init(net) _bts_init(net, __func__) static inline struct gsm_bts *_bts_init(struct gsm_network *net, const char *msg) { - struct gsm_bts *bts = gsm_bts_alloc(net, 0); + struct gsm_bts_sm *bts_sm = gsm_bts_sm_alloc(net, 0); + struct gsm_bts *bts = bts_sm->bts[0]; if (!bts) { fprintf(stderr, "BTS allocation failure in %s()\n", msg); exit(1); @@ -66,7 +67,7 @@ if (osmo_timer_pending(&bts->acc_ramp.step_timer)) osmo_timer_del(&bts->acc_ramp.step_timer); /* no need to llist_del(&bts->list), we never registered the bts there. */ - talloc_free(bts); + talloc_free(bts->site_mgr); fprintf(stderr, "BTS deallocated OK in %s()\n", msg); } diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index f040cbc..02842eb 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -39,6 +39,7 @@ $(top_builddir)/src/osmo-bsc/osmo_bsc_filter.o \ $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index de38747..c04a5ae 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -29,6 +29,7 @@ $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ $(top_builddir)/src/osmo-bsc/bts.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 8ee29f7..c23b262 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -123,7 +123,8 @@ #define bts_init(net) _bts_init(net, __func__) static inline struct gsm_bts *_bts_init(struct gsm_network *net, const char *msg) { - struct gsm_bts *bts = gsm_bts_alloc(net, 0); + struct gsm_bts_sm *bts_sm = gsm_bts_sm_alloc(net, 0); + struct gsm_bts *bts = bts_sm->bts[0]; if (!bts) { printf("BTS allocation failure in %s()\n", msg); exit(1); @@ -143,7 +144,7 @@ if (osmo_timer_pending(&bts->acc_mgr.rotate_timer)) osmo_timer_del(&bts->acc_mgr.rotate_timer); /* no need to llist_del(&bts->list), we never registered the bts there. */ - talloc_free(bts); + talloc_free(bts->site_mgr); printf("BTS deallocated OK in %s()\n", msg); } diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 42bb937..02fcdc1 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -58,6 +58,7 @@ $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ $(top_builddir)/src/osmo-bsc/bsc_vty.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index 3dd7f2f..29097b8 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -27,6 +27,7 @@ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts.o \ + $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(top_builddir)/src/osmo-bsc/nm_common_fsm.o \ diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index da220c1..c36abc6 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -243,7 +243,7 @@ }; /* Parameters needed to test nanobts_attr_nse_get() */ - bts->gprs.nse.nsei = 101; + bts->site_mgr->gprs.nse.nsei = 101; uint8_t attr_nse_expected[] = { 0x9d, 0x00, 0x02, 0x00, 0x65, 0xa0, 0x00, 0x07, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x03, 0x0a, 0xa1, 0x00, 0x0b, 0x03, 0x03, 0x03, @@ -266,9 +266,9 @@ /* Parameters needed to test nanobts_attr_nscv_get() */ struct osmo_sockaddr_str addr; osmo_sockaddr_str_from_str(&addr, "10.9.1.101", 23000); - osmo_sockaddr_str_to_sockaddr(&addr, &bts->gprs.nsvc[0].remote.u.sas); - bts->gprs.nsvc[0].nsvci = 0x65; - bts->gprs.nsvc[0].local_port = 0x5a3c; + osmo_sockaddr_str_to_sockaddr(&addr, &bts->site_mgr->gprs.nsvc[0].remote.u.sas); + bts->site_mgr->gprs.nsvc[0].nsvci = 0x65; + bts->site_mgr->gprs.nsvc[0].local_port = 0x5a3c; uint8_t attr_nscv_expected[] = { 0x9f, 0x00, 0x02, 0x00, 0x65, 0xa2, 0x00, 0x08, 0x59, 0xd8, 0x0a, 0x09, 0x01, 0x65, 0x5a, 0x3c @@ -291,9 +291,9 @@ /* NSVC IPv6 test */ struct osmo_sockaddr_str addr6; osmo_sockaddr_str_from_str(&addr6, "fd00:5678:9012:3456:7890:1234:5678:9012", 23010); - osmo_sockaddr_str_to_sockaddr(&addr6, &bts->gprs.nsvc[0].remote.u.sas); - bts->gprs.nsvc[0].nsvci = 0x65; - bts->gprs.nsvc[0].local_port = 0x5a3c; + osmo_sockaddr_str_to_sockaddr(&addr6, &bts->site_mgr->gprs.nsvc[0].remote.u.sas); + bts->site_mgr->gprs.nsvc[0].nsvci = 0x65; + bts->site_mgr->gprs.nsvc[0].local_port = 0x5a3c; uint8_t attr_nscv6_expected[] = /* |- oml attr |-16bit length */ { 0x9f, 0x00, 0x02, 0x00, 0x65, 0xfd, 0x00, 0x16, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06461b7784fa2a78de37383406e35beae85fbad8 Gerrit-Change-Number: 21423 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Fri Dec 4 18:33:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:33:29 +0000 Subject: Change in osmo-bsc[master]: nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21497 ) Change subject: nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts ...................................................................... nm_bts_sm_fsm: Fix peer_has_no_avstate_offline not applied for nanobts The condition was set in st_op_disabled_notinstalled_on_enter(): """ site_mgr->peer_has_no_avstate_offline = (bts->type == GSM_BTS_TYPE_NANOBTS); """ However, at startup of the FSM the oneneter func of the default initial state is not called. In any case, if called it would be too early since the type is not known yet (because its parsed later on at the VTY with the "type" command, that's after the "bts X" node is called and the bts_sm is allocated. So we need to make sure to always enable it, also for nanobts. Change-Id: Ic6049a44ae3fca1b8e968fe800c268f579e7cad4 --- M src/osmo-bsc/nm_bts_sm_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) 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/nm_bts_sm_fsm.c b/src/osmo-bsc/nm_bts_sm_fsm.c index e5b5a3c..815eea6 100644 --- a/src/osmo-bsc/nm_bts_sm_fsm.c +++ b/src/osmo-bsc/nm_bts_sm_fsm.c @@ -78,8 +78,8 @@ "have your .cfg with 'type nanobts'. Otherwise, you probably " "are using an old osmo-bts; automatically adjusting OML " "behavior to be backward-compatible.\n"); - site_mgr->peer_has_no_avstate_offline = true; } + site_mgr->peer_has_no_avstate_offline = true; nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_ENABLED); return; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic6049a44ae3fca1b8e968fe800c268f579e7cad4 Gerrit-Change-Number: 21497 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 Fri Dec 4 18:33:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:33:30 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSE FSM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21461 ) Change subject: Introduce NM GPRS NSE FSM ...................................................................... Introduce NM GPRS NSE FSM Related: OS#4870 Change-Id: I91a5f40324d5373eac885032295690cec97214a6 --- M include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h M include/osmocom/bsc/nm_common_fsm.h M include/osmocom/bsc/signal.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nse_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 19 files changed, 516 insertions(+), 21 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h b/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h index bc7860b..22a8c34 100644 --- a/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h +++ b/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h @@ -24,8 +24,12 @@ #include #include +struct gsm_bts_sm; +struct gsm_bts; +struct gsm_bts_trx; + struct msgb *nanobts_attr_bts_get(struct gsm_bts *bts); -struct msgb *nanobts_attr_nse_get(struct gsm_bts *bts); +struct msgb *nanobts_attr_nse_get(struct gsm_bts_sm *bts_sm); struct msgb *nanobts_attr_cell_get(struct gsm_bts *bts); struct msgb *nanobts_attr_nscv_get(struct gsm_bts *bts); struct msgb *nanobts_attr_radio_get(struct gsm_bts *bts, diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h index 00031fb..b8b821f 100644 --- a/include/osmocom/bsc/nm_common_fsm.h +++ b/include/osmocom/bsc/nm_common_fsm.h @@ -82,3 +82,12 @@ NM_CHAN_ST_OP_ENABLED, }; extern struct osmo_fsm nm_chan_fsm; + +/* GPRS NSE */ +enum nm_gprs_op_nse_states { + NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED, + NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY, + NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE, + NM_GPRS_NSE_ST_OP_ENABLED, +}; +extern struct osmo_fsm nm_gprs_nse_fsm; diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h index 088d4f2..4933703 100644 --- a/include/osmocom/bsc/signal.h +++ b/include/osmocom/bsc/signal.h @@ -65,6 +65,7 @@ S_NM_NACK, /* GSM 12.21 various NM_MT_*_NACK happened */ S_NM_IPACC_NACK, /* GSM 12.21 nanoBTS extensions NM_MT_IPACC_*_*_NACK happened */ S_NM_IPACC_ACK, /* GSM 12.21 nanoBTS extensions NM_MT_IPACC_*_*_ACK happened */ + S_NM_IPACC_SET_ATTR_ACK,/* GSM 12.21 nanoBTS extensions NM_MT_IPACC_SET_ATTR_ACK happened */ S_NM_IPACC_RESTART_ACK, /* nanoBTS has send a restart ack */ S_NM_IPACC_RESTART_NACK,/* nanoBTS has send a restart ack */ S_NM_TEST_REP, /* GSM 12.21 Test Report */ diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index c489e0a..e226206 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -60,6 +60,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ $(NULL) @@ -82,6 +83,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ $(NULL) diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 89f869d..b1b2cc6 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -81,6 +81,7 @@ nm_bb_transc_fsm.c \ nm_bts_sm_fsm.c \ nm_bts_fsm.c \ + nm_gprs_nse_fsm.c \ nm_channel_fsm.c \ nm_rcarrier_fsm.c \ gsm_08_08.c \ diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 657948f..d837779 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -2922,6 +2922,9 @@ signal.msg_type = foh->msg_type; osmo_signal_dispatch(SS_NM, S_NM_IPACC_ACK, &signal); break; + case NM_MT_IPACC_SET_ATTR_ACK: + osmo_signal_dispatch(SS_NM, S_NM_IPACC_SET_ATTR_ACK, msg); + break; default: break; } diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 73d6318..7d0a2c0 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -46,6 +46,7 @@ #include #include #include +#include #include static int bts_model_nanobts_start(struct gsm_network *net); @@ -134,6 +135,7 @@ struct gsm_bts_bb_trx *bb_transc; struct gsm_bts_trx_ts *ts; struct gsm_gprs_nsvc *nsvc; + struct gsm_gprs_nse *nse; struct msgb *msgb; @@ -148,6 +150,7 @@ obj_class != NM_OC_BASEB_TRANSC && obj_class != NM_OC_RADIO_CARRIER && obj_class != NM_OC_CHANNEL && + obj_class != NM_OC_GPRS_NSE && evt != S_NM_STATECHG_OPER) return 0; @@ -174,21 +177,8 @@ osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_NSE: - bts_sm = container_of(obj, struct gsm_bts_sm, gprs.nse); - bts = bts_sm->bts[0]; - if (bts->gprs.mode == BTS_GPRS_NONE) - break; - if (new_state->availability == NM_AVSTATE_DEPENDENCY) { - msgb = nanobts_attr_nse_get(bts); - if (!msgb) - break; - abis_nm_ipaccess_set_attr(bts, obj_class, bts->bts_nr, - 0xff, 0xff, msgb->data, - msgb->len); - msgb_free(msgb); - abis_nm_opstart(bts, obj_class, bts->bts_nr, - 0xff, 0xff); - } + nse = obj; + osmo_fsm_inst_dispatch(nse->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_CELL: bts = container_of(obj, struct gsm_bts, gprs.cell); @@ -204,8 +194,6 @@ msgb_free(msgb); abis_nm_chg_adm_state(bts, obj_class, bts->bts_nr, 0, 0xff, NM_STATE_UNLOCKED); - abis_nm_chg_adm_state(bts, NM_OC_GPRS_NSE, bts->bts_nr, - 0xff, 0xff, NM_STATE_UNLOCKED); abis_nm_opstart(bts, obj_class, bts->bts_nr, 0, 0xff); } @@ -279,6 +267,9 @@ return -EINVAL; osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_SW_ACT_REP, NULL); break; + case NM_OC_GPRS_NSE: + osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_SW_ACT_REP, NULL); + break; } return 0; } @@ -325,6 +316,9 @@ case NM_OC_CHANNEL: nm_rx_opstart_ack_chan(oml_msg); break; + case NM_OC_GPRS_NSE: + osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OPSTART_ACK, NULL); + break; default: break; } @@ -360,6 +354,9 @@ return; osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_OPSTART_NACK, NULL); break; + case NM_OC_GPRS_NSE: + osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OPSTART_NACK, NULL); + break; default: break; } @@ -405,6 +402,29 @@ osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_SET_ATTR_ACK, NULL); } +static void nm_rx_ipacc_set_attr_ack(struct msgb *oml_msg) +{ + struct e1inp_sign_link *sign_link = oml_msg->dst; + struct gsm_bts *bts = sign_link->trx->bts; + struct abis_om_hdr *oh = msgb_l2(oml_msg); + uint8_t idstrlen = oh->data[0]; + struct abis_om_fom_hdr *foh; + void *obj; + struct gsm_gprs_nse *nse; + + foh = (struct abis_om_fom_hdr *) (oh->data + 1 + idstrlen); + obj = gsm_objclass2obj(bts, foh->obj_class, &foh->obj_inst); + + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + nse = obj; + osmo_fsm_inst_dispatch(nse->mo.fi, NM_EV_SET_ATTR_ACK, NULL); + break; + default: + LOGPFOH(DNM, LOGL_ERROR, foh, "IPACC Set Attr Ack received on incorrect object class %d!\n", foh->obj_class); + } +} + /* Callback function to be called every time we receive a signal from NM */ static int bts_ipa_nm_sig_cb(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) @@ -433,6 +453,9 @@ case S_NM_SET_CHAN_ATTR_ACK: nm_rx_set_chan_attr_ack(signal_data); return 0; + case S_NM_IPACC_SET_ATTR_ACK: + nm_rx_ipacc_set_attr_ack(signal_data); + return 0; default: break; } @@ -524,6 +547,7 @@ } osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OML_DOWN, NULL); + osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OML_DOWN, NULL); osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OML_DOWN, NULL); gsm_bts_all_ts_dispatch(bts, TS_EV_OML_DOWN, NULL); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index 5ad0f47..e23a688 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -101,11 +101,11 @@ return msgb; } -struct msgb *nanobts_attr_nse_get(struct gsm_bts *bts) +struct msgb *nanobts_attr_nse_get(struct gsm_bts_sm *bts_sm) { struct msgb *msgb; uint8_t buf[256]; - struct gsm_bts_sm *bts_sm = bts->site_mgr; + struct gsm_bts *bts = gsm_bts_sm_get_bts(bts_sm); msgb = msgb_alloc(1024, "nanobts_attr_bts"); if (!msgb) return NULL; diff --git a/src/osmo-bsc/bts_sm.c b/src/osmo-bsc/bts_sm.c index a016124..296a21d 100644 --- a/src/osmo-bsc/bts_sm.c +++ b/src/osmo-bsc/bts_sm.c @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -29,6 +30,11 @@ static int gsm_bts_sm_talloc_destructor(struct gsm_bts_sm *bts_sm) { + if (bts_sm->gprs.nse.mo.fi) { + osmo_fsm_inst_free(bts_sm->gprs.nse.mo.fi); + bts_sm->gprs.nse.mo.fi = NULL; + } + if (bts_sm->mo.fi) { osmo_fsm_inst_free(bts_sm->mo.fi); bts_sm->mo.fi = NULL; @@ -58,6 +64,14 @@ gsm_mo_init(&bts_sm->mo, bts, NM_OC_SITE_MANAGER, 0xff, 0xff, 0xff); + + bts_sm->gprs.nse.mo.fi = osmo_fsm_inst_alloc(&nm_gprs_nse_fsm, bts_sm, &bts_sm->gprs.nse, + LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts_sm->gprs.nse.mo.fi, "nse%d", bts_num); + gsm_mo_init(&bts_sm->gprs.nse.mo, bts, NM_OC_GPRS_NSE, bts->nr, 0xff, 0xff); + memcpy(&bts_sm->gprs.nse.timer, bts_nse_timer_default, + sizeof(bts_sm->gprs.nse.timer)); + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { bts_sm->gprs.nsvc[i].bts = bts; bts_sm->gprs.nsvc[i].id = i; diff --git a/src/osmo-bsc/nm_gprs_nse_fsm.c b/src/osmo-bsc/nm_gprs_nse_fsm.c new file mode 100644 index 0000000..497b43c --- /dev/null +++ b/src/osmo-bsc/nm_gprs_nse_fsm.c @@ -0,0 +1,371 @@ +/* NM GPRS NSE FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +#define nm_gprs_nse_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +////////////////////////// +// FSM STATE ACTIONS +////////////////////////// + +static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + + nse->mo.set_attr_sent = false; + nse->mo.set_attr_ack_received = false; + nse->mo.adm_unlock_sent = false; + nse->mo.opstart_sent = false; +} + +static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SW_ACT_REP: + break; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_DEPENDENCY: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void configure_loop(struct gsm_gprs_nse *nse, struct gsm_nm_state *state, bool allow_opstart) { + struct msgb *msgb; + struct gsm_bts_sm *bts_sm = container_of(nse, struct gsm_bts_sm, gprs.nse); + struct gsm_bts *bts = gsm_bts_sm_get_bts(bts_sm); + + if (!nse->mo.set_attr_sent && !nse->mo.set_attr_ack_received) { + nse->mo.set_attr_sent = true; + msgb = nanobts_attr_nse_get(bts_sm); + abis_nm_ipaccess_set_attr(bts, NM_OC_GPRS_NSE, bts->bts_nr, + 0xff, 0xff, msgb->data, + msgb->len); + msgb_free(msgb); + } + + /* Attributes must be set before unlocking */ + if (state->administrative != NM_STATE_UNLOCKED && nse->mo.set_attr_ack_received && + !nse->mo.adm_unlock_sent) { + nse->mo.adm_unlock_sent = true; + abis_nm_chg_adm_state(bts, NM_OC_GPRS_NSE, + bts->bts_nr, 0xff, 0xff, + NM_STATE_UNLOCKED); + } + + if (allow_opstart && state->administrative == NM_STATE_UNLOCKED && + nse->mo.set_attr_ack_received) { + if (!nse->mo.opstart_sent) { + nse->mo.opstart_sent = true; + abis_nm_opstart(bts, NM_OC_GPRS_NSE, bts->bts_nr, 0xff, 0xff); + } + } +} + +static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct gsm_bts_sm *bts_sm = container_of(nse, struct gsm_bts_sm, gprs.nse); + + /* nanoBTS is broken, doesn't follow TS 12.21. Opstart MUST be sent + during Dependency, so we simply move to OFFLINE state here to avoid + duplicating code */ + if (bts_sm->peer_has_no_avstate_offline) { + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE); + return; + } + configure_loop(nse, &nse->mo.nm_state, false); +} + +static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + nse->mo.set_attr_ack_received = true; + nse->mo.set_attr_sent = false; + configure_loop(nse, &nse->mo.nm_state, false); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE); + return; + case NM_AVSTATE_DEPENDENCY: + configure_loop(nse, new_state, false); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + + /* Warning: In here we may be acessing an state older than new_state + from prev (syncrhonous) FSM state */ + configure_loop(nse, &nse->mo.nm_state, true); +} + +static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct gsm_bts_sm *bts_sm = container_of(nse, struct gsm_bts_sm, gprs.nse); + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + nse->mo.set_attr_ack_received = true; + nse->mo.set_attr_sent = false; + configure_loop(nse, &nse->mo.nm_state, true); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + /* There's no point in moving back to Dependency, since it's broken + and it acts actually as if it was in Offline state */ + if (!bts_sm->peer_has_no_avstate_offline) { + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY); + } else { + /* Moreover, in nanoBTS we need to check here for tx + Opstart since we may have gone Unlocked state + in this event, which means Opstart may be txed here. */ + configure_loop(nse, new_state, true); + } + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + configure_loop(nse, new_state, true); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + + /* Reset state, we don't need it in this state and it will need to be + reused as soon as we move back to Disabled */ + nse->mo.opstart_sent = false; + nse->mo.adm_unlock_sent = false; + nse->mo.set_attr_ack_received = false; + nse->mo.set_attr_sent = false; +} + +static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) + return; + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct gsm_bts_sm *bts_sm = container_of(nse, struct gsm_bts_sm, gprs.nse); + struct gsm_bts *bts = gsm_bts_sm_get_bts(bts_sm); + + switch (event) { + case NM_EV_OPSTART_ACK: + case NM_EV_OPSTART_NACK: + /* TODO: if on state OFFLINE and rx NACK, try again? */ + nse->mo.opstart_sent = false; + break; + case NM_EV_FORCE_LOCK: + nse->mo.force_rf_lock = (bool)(intptr_t)data; + abis_nm_chg_adm_state(bts, NM_OC_GPRS_NSE, + bts->bts_nr, 0xff, 0xff, + nse->mo.force_rf_lock ? NM_STATE_LOCKED : NM_STATE_UNLOCKED); + break; + case NM_EV_OML_DOWN: + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + break; + default: + OSMO_ASSERT(0); + } +} + +static struct osmo_fsm_state nm_gprs_nse_fsm_states[] = { + [NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED] = { + .in_event_mask = + X(NM_EV_SW_ACT_REP) | + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_NSE_ST_OP_ENABLED), + .name = "DISABLED_NOTINSTALLED", + .onenter = st_op_disabled_notinstalled_on_enter, + .action = st_op_disabled_notinstalled, + }, + [NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_NSE_ST_OP_ENABLED), + .name = "DISABLED_DEPENDENCY", + .onenter = st_op_disabled_dependency_on_enter, + .action = st_op_disabled_dependency, + }, + [NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSE_ST_OP_ENABLED), + .name = "DISABLED_OFFLINE", + .onenter = st_op_disabled_offline_on_enter, + .action = st_op_disabled_offline, + }, + [NM_GPRS_NSE_ST_OP_ENABLED] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE), + .name = "ENABLED", + .onenter = st_op_enabled_on_enter, + .action = st_op_enabled, + }, +}; + +struct osmo_fsm nm_gprs_nse_fsm = { + .name = "NM_GPRS_NSE_OP", + .states = nm_gprs_nse_fsm_states, + .num_states = ARRAY_SIZE(nm_gprs_nse_fsm_states), + .allstate_event_mask = + X(NM_EV_OPSTART_ACK) | + X(NM_EV_OPSTART_NACK) | + X(NM_EV_FORCE_LOCK) | + X(NM_EV_OML_DOWN), + .allstate_action = st_op_allstate, + .event_names = nm_fsm_event_names, + .log_subsys = DNM, +}; + +static __attribute__((constructor)) void nm_gprs_nse_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nm_gprs_nse_fsm) == 0); +} diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index dfc68c5..5755258 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -62,6 +62,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ @@ -140,6 +141,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index 681e35a..daaca66 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -38,6 +38,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/acc/Makefile.am b/tests/acc/Makefile.am index 1536365..44e5107 100644 --- a/tests/acc/Makefile.am +++ b/tests/acc/Makefile.am @@ -38,6 +38,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/acc/acc_test.ok b/tests/acc/acc_test.ok index 069ad74..9a099f9 100644 --- a/tests/acc/acc_test.ok +++ b/tests/acc/acc_test.ok @@ -12,6 +12,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_no_ramp() do_allowed_len_adm_loop(1) (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fe (active_len=9, ramp_len=10, adm_len=9, perm_len=10, rotation=on) @@ -117,6 +118,7 @@ *** Barring zero ACCs *** (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -144,6 +146,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_manual_ramp() do_allowed_len_ramp_loop(1) (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fe (active_len=9, ramp_len=9, adm_len=10, perm_len=10, rotation=on) @@ -379,6 +382,7 @@ pcu_info_update(): t2=0x03 t3=0xff, allowed: (bts=0) ACC: New ACC allowed subset 0x24c (active_len=4, ramp_len=4, adm_len=4, perm_len=4, rotation=off) pcu_info_update(): t2=0x01 t3=0xb3, allowed: 2 3 6 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -406,6 +410,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -472,6 +477,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x001 -> 0x002 (active_len=1, ramp_len=10, adm_len=1, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xfd, allowed: 1 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -499,6 +505,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x200 (active_len=1, ramp_len=10, adm_len=1, perm_len=10, rotation=on) pcu_info_update(): t2=0x01 t3=0xff, allowed: 9 @@ -562,6 +569,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x100 -> 0x200 (active_len=1, ramp_len=10, adm_len=1, perm_len=10, rotation=on) pcu_info_update(): t2=0x01 t3=0xff, allowed: 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -589,6 +597,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -655,6 +664,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x101 -> 0x003 (active_len=2, ramp_len=10, adm_len=2, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xfc, allowed: 0 1 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -682,6 +692,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x300 (active_len=2, ramp_len=10, adm_len=2, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0xff, allowed: 8 9 @@ -745,6 +756,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x180 -> 0x300 (active_len=2, ramp_len=10, adm_len=2, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0xff, allowed: 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -772,6 +784,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -838,6 +851,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x181 -> 0x103 (active_len=3, ramp_len=10, adm_len=3, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0xfc, allowed: 0 1 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -865,6 +879,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x380 (active_len=3, ramp_len=10, adm_len=3, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x7f, allowed: 7 8 9 @@ -928,6 +943,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1c0 -> 0x380 (active_len=3, ramp_len=10, adm_len=3, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x7f, allowed: 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -955,6 +971,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1021,6 +1038,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1c1 -> 0x183 (active_len=4, ramp_len=10, adm_len=4, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x7c, allowed: 0 1 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1048,6 +1066,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3c0 (active_len=4, ramp_len=10, adm_len=4, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x3f, allowed: 6 7 8 9 @@ -1111,6 +1130,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1e0 -> 0x3c0 (active_len=4, ramp_len=10, adm_len=4, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x3f, allowed: 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1138,6 +1158,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1204,6 +1225,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1e1 -> 0x1c3 (active_len=5, ramp_len=10, adm_len=5, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x3c, allowed: 0 1 6 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1231,6 +1253,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3e0 (active_len=5, ramp_len=10, adm_len=5, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x1f, allowed: 5 6 7 8 9 @@ -1294,6 +1317,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f0 -> 0x3e0 (active_len=5, ramp_len=10, adm_len=5, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x1f, allowed: 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1321,6 +1345,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1387,6 +1412,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f1 -> 0x1e3 (active_len=6, ramp_len=10, adm_len=6, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x1c, allowed: 0 1 5 6 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1414,6 +1440,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3f0 (active_len=6, ramp_len=10, adm_len=6, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x0f, allowed: 4 5 6 7 8 9 @@ -1477,6 +1504,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f8 -> 0x3f0 (active_len=6, ramp_len=10, adm_len=6, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x0f, allowed: 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1504,6 +1532,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1570,6 +1599,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f9 -> 0x1f3 (active_len=7, ramp_len=10, adm_len=7, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x0c, allowed: 0 1 4 5 6 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1597,6 +1627,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3f8 (active_len=7, ramp_len=10, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 @@ -1660,6 +1691,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1fc -> 0x3f8 (active_len=7, ramp_len=10, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1687,6 +1719,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1753,6 +1786,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1fd -> 0x1fb (active_len=8, ramp_len=10, adm_len=8, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x04, allowed: 0 1 3 4 5 6 7 8 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1780,6 +1814,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fc (active_len=8, ramp_len=10, adm_len=8, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x03, allowed: 2 3 4 5 6 7 8 9 @@ -1843,6 +1878,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1fe -> 0x3fc (active_len=8, ramp_len=10, adm_len=8, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x03, allowed: 2 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1870,6 +1906,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fe (active_len=9, ramp_len=10, adm_len=9, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x01, allowed: 1 2 3 4 5 6 7 8 9 @@ -1933,6 +1970,7 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1ff -> 0x3fe (active_len=9, ramp_len=10, adm_len=9, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x01, allowed: 1 2 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1960,6 +1998,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x000 (active_len=0, ramp_len=0, adm_len=10, perm_len=10, rotation=off) pcu_info_update(): t2=0x03 t3=0xff, allowed: @@ -1992,6 +2031,7 @@ sys={450.000000}: select() (bts=0) ACC: update ACC allowed active subset 0x1ff -> 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2019,6 +2059,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp2() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3f8 (active_len=7, ramp_len=10, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 @@ -2033,6 +2074,7 @@ (bts=0) ACC: update ACC allowed active subset 0x03f -> 0x07f (active_len=7, ramp_len=7, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x03 t3=0x80, allowed: 0 1 2 3 4 5 6 sys={15.000000}: select() +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2060,6 +2102,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp3() *** Barring some ACCs *** (bts=0) ACC: New ACC allowed subset 0x15a (active_len=5, ramp_len=10, adm_len=10, perm_len=5, rotation=off) @@ -2090,6 +2133,7 @@ (bts=0) ACC: update ACC allowed active subset 0x15a -> 0x15a (active_len=5, ramp_len=9, adm_len=10, perm_len=5, rotation=off) sys={45.000000}: select() (bts=0) ACC: update ACC allowed active subset 0x15a -> 0x15a (active_len=5, ramp_len=10, adm_len=10, perm_len=5, rotation=off) +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2117,6 +2161,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_up_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2203,6 +2248,7 @@ sys={2750.000000}: select() sys={3000.000000}: select() sys={3250.000000}: select() +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2230,6 +2276,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_up_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2316,6 +2363,7 @@ sys={2750.000000}: select() sys={3000.000000}: select() sys={3250.000000}: select() +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2343,6 +2391,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_up_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2429,6 +2478,7 @@ sys={2750.000000}: select() sys={3000.000000}: select() sys={3250.000000}: select() +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2456,6 +2506,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2572,6 +2623,7 @@ sys={7000.000000}: select(47): chan_load_avg=75 sys={7250.000000}: select(48): chan_load_avg=90 sys={7500.000000}: select(49): chan_load_avg=100 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2599,6 +2651,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2739,6 +2792,7 @@ sys={4200.000000}: select(49): chan_load_avg=25 (bts=0) ACC: rotate ACC allowed active subset 0x003 -> 0x006 (active_len=2, ramp_len=2, adm_len=10, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xf9, allowed: 1 2 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2766,6 +2820,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2916,6 +2971,7 @@ sys={4200.000000}: select(49): chan_load_avg=90 (bts=0) ACC: rotate ACC allowed active subset 0x01c -> 0x038 (active_len=3, ramp_len=3, adm_len=10, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xc7, allowed: 3 4 5 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2943,6 +2999,7 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) +NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2999,6 +3056,7 @@ sys={12000.000000}: select(47): chan_load_avg=65 sys={12250.000000}: select(48): chan_load_avg=70 sys={12500.000000}: select(49): chan_load_avg=75 +NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index 02842eb..770b73b 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -52,6 +52,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index c04a5ae..7fb62db 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -41,6 +41,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 02fcdc1..1a75ea0 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -86,6 +86,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_ctrl.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_lcls.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index 29097b8..8bd2ba9 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -35,6 +35,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index c36abc6..6e85138 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -125,7 +125,7 @@ printf("Testing nanobts_attr_nse_get()...\n"); - msgb = nanobts_attr_nse_get(bts); + msgb = nanobts_attr_nse_get(bts->site_mgr); printf("result= %s\n", osmo_hexdump_nospc(msgb->data, msgb->len)); printf("expected=%s\n", osmo_hexdump_nospc(expected, msgb->len)); OSMO_ASSERT(memcmp(msgb->data, expected, msgb->len) == 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91a5f40324d5373eac885032295690cec97214a6 Gerrit-Change-Number: 21461 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Dec 4 18:33:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:33:30 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS CELL FSM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21463 ) Change subject: Introduce NM GPRS CELL FSM ...................................................................... Introduce NM GPRS CELL FSM Related: OS#4870 Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 --- M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c A src/osmo-bsc/nm_gprs_cell_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 14 files changed, 481 insertions(+), 23 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h index b8b821f..a18da3a 100644 --- a/include/osmocom/bsc/nm_common_fsm.h +++ b/include/osmocom/bsc/nm_common_fsm.h @@ -91,3 +91,12 @@ NM_GPRS_NSE_ST_OP_ENABLED, }; extern struct osmo_fsm nm_gprs_nse_fsm; + +/* GPRS Cell */ +enum nm_gprs_op_cell_states { + NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED, + NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY, + NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE, + NM_GPRS_CELL_ST_OP_ENABLED, +}; +extern struct osmo_fsm nm_gprs_cell_fsm; diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index e226206..eadb30e 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -60,6 +60,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ @@ -83,6 +84,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index b1b2cc6..79fc164 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -81,6 +81,7 @@ nm_bb_transc_fsm.c \ nm_bts_sm_fsm.c \ nm_bts_fsm.c \ + nm_gprs_cell_fsm.c \ nm_gprs_nse_fsm.c \ nm_channel_fsm.c \ nm_rcarrier_fsm.c \ diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 2c6b0f1..0c7fde9 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -149,6 +149,12 @@ static int gsm_bts_talloc_destructor(struct gsm_bts *bts) { bts->site_mgr->bts[0] = NULL; + + if (bts->gprs.cell.mo.fi) { + osmo_fsm_inst_free(bts->gprs.cell.mo.fi); + bts->gprs.cell.mo.fi = NULL; + } + if (bts->mo.fi) { osmo_fsm_inst_free(bts->mo.fi); bts->mo.fi = NULL; @@ -185,15 +191,17 @@ osmo_fsm_inst_update_id_f(bts->mo.fi, "bts%d", bts->nr); gsm_mo_init(&bts->mo, bts, NM_OC_BTS, bts->nr, 0xff, 0xff); - memcpy(&bts->gprs.cell.timer, bts_cell_timer_default, - sizeof(bts->gprs.cell.timer)); - gsm_mo_init(&bts->gprs.cell.mo, bts, NM_OC_GPRS_CELL, - bts->nr, 0xff, 0xff); - memcpy(&bts->gprs.cell.rlc_cfg, &rlc_cfg_default, - sizeof(bts->gprs.cell.rlc_cfg)); - /* 3GPP TS 08.18, chapter 5.4.1: 0 is reserved for signalling */ bts->gprs.cell.bvci = 2; + memcpy(&bts->gprs.cell.timer, bts_cell_timer_default, + sizeof(bts->gprs.cell.timer)); + memcpy(&bts->gprs.cell.rlc_cfg, &rlc_cfg_default, + sizeof(bts->gprs.cell.rlc_cfg)); + bts->gprs.cell.mo.fi = osmo_fsm_inst_alloc(&nm_gprs_cell_fsm, bts, + &bts->gprs.cell, LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts->gprs.cell.mo.fi, "gprs-cell%d", bts->nr); + gsm_mo_init(&bts->gprs.cell.mo, bts, NM_OC_GPRS_CELL, + bts->nr, 0xff, 0xff); /* init statistics */ bts->bts_ctrs = rate_ctr_group_alloc(bts, &bts_ctrg_desc, bts->nr); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 7d0a2c0..91c76f1 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -136,6 +136,7 @@ struct gsm_bts_trx_ts *ts; struct gsm_gprs_nsvc *nsvc; struct gsm_gprs_nse *nse; + struct gsm_gprs_cell *cell; struct msgb *msgb; @@ -151,6 +152,7 @@ obj_class != NM_OC_RADIO_CARRIER && obj_class != NM_OC_CHANNEL && obj_class != NM_OC_GPRS_NSE && + obj_class != NM_OC_GPRS_CELL && evt != S_NM_STATECHG_OPER) return 0; @@ -181,22 +183,8 @@ osmo_fsm_inst_dispatch(nse->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_CELL: - bts = container_of(obj, struct gsm_bts, gprs.cell); - if (bts->gprs.mode == BTS_GPRS_NONE) - break; - if (new_state->availability == NM_AVSTATE_DEPENDENCY) { - msgb = nanobts_attr_cell_get(bts); - if (!msgb) - break; - abis_nm_ipaccess_set_attr(bts, obj_class, bts->bts_nr, - 0, 0xff, msgb->data, - msgb->len); - msgb_free(msgb); - abis_nm_chg_adm_state(bts, obj_class, bts->bts_nr, - 0, 0xff, NM_STATE_UNLOCKED); - abis_nm_opstart(bts, obj_class, bts->bts_nr, - 0, 0xff); - } + cell = obj; + osmo_fsm_inst_dispatch(cell->mo.fi, NM_EV_STATE_CHG_REP, nsd); break; case NM_OC_GPRS_NSVC: nsvc = obj; @@ -270,6 +258,9 @@ case NM_OC_GPRS_NSE: osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_SW_ACT_REP, NULL); break; + case NM_OC_GPRS_CELL: + osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_SW_ACT_REP, NULL); + break; } return 0; } @@ -319,6 +310,9 @@ case NM_OC_GPRS_NSE: osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OPSTART_ACK, NULL); break; + case NM_OC_GPRS_CELL: + osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_OPSTART_ACK, NULL); + break; default: break; } @@ -357,6 +351,9 @@ case NM_OC_GPRS_NSE: osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OPSTART_NACK, NULL); break; + case NM_OC_GPRS_CELL: + osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_OPSTART_NACK, NULL); + break; default: break; } @@ -411,6 +408,7 @@ struct abis_om_fom_hdr *foh; void *obj; struct gsm_gprs_nse *nse; + struct gsm_gprs_cell *cell; foh = (struct abis_om_fom_hdr *) (oh->data + 1 + idstrlen); obj = gsm_objclass2obj(bts, foh->obj_class, &foh->obj_inst); @@ -420,6 +418,10 @@ nse = obj; osmo_fsm_inst_dispatch(nse->mo.fi, NM_EV_SET_ATTR_ACK, NULL); break; + case NM_OC_GPRS_CELL: + cell = obj; + osmo_fsm_inst_dispatch(cell->mo.fi, NM_EV_SET_ATTR_ACK, NULL); + break; default: LOGPFOH(DNM, LOGL_ERROR, foh, "IPACC Set Attr Ack received on incorrect object class %d!\n", foh->obj_class); } @@ -549,6 +551,7 @@ osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OML_DOWN, NULL); osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OML_DOWN, NULL); osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OML_DOWN, NULL); + osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_OML_DOWN, NULL); gsm_bts_all_ts_dispatch(bts, TS_EV_OML_DOWN, NULL); bts->ip_access.flags = 0; diff --git a/src/osmo-bsc/nm_gprs_cell_fsm.c b/src/osmo-bsc/nm_gprs_cell_fsm.c new file mode 100644 index 0000000..aac4ca3 --- /dev/null +++ b/src/osmo-bsc/nm_gprs_cell_fsm.c @@ -0,0 +1,369 @@ +/* NM GPRS Cell FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +#define nm_gprs_cell_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +////////////////////////// +// FSM STATE ACTIONS +////////////////////////// + +static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + + cell->mo.set_attr_sent = false; + cell->mo.set_attr_ack_received = false; + cell->mo.adm_unlock_sent = false; + cell->mo.opstart_sent = false; +} + +static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SW_ACT_REP: + break; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_DEPENDENCY: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void configure_loop(struct gsm_gprs_cell *cell, struct gsm_nm_state *state, bool allow_opstart) { + struct msgb *msgb; + struct gsm_bts *bts = container_of(cell, struct gsm_bts, gprs.cell); + + if (bts->gprs.mode == BTS_GPRS_NONE) + return; + + if (!cell->mo.set_attr_sent && !cell->mo.set_attr_ack_received) { + cell->mo.set_attr_sent = true; + msgb = nanobts_attr_cell_get(bts); + OSMO_ASSERT(msgb); + abis_nm_ipaccess_set_attr(bts, NM_OC_GPRS_CELL, bts->bts_nr, + 0, 0xff, msgb->data, msgb->len); + msgb_free(msgb); + } + + if (state->administrative != NM_STATE_UNLOCKED && !cell->mo.adm_unlock_sent) { + cell->mo.adm_unlock_sent = true; + abis_nm_chg_adm_state(bts, NM_OC_GPRS_CELL, + bts->bts_nr, 0, 0xff, + NM_STATE_UNLOCKED); + } + + if (allow_opstart && state->administrative == NM_STATE_UNLOCKED && + cell->mo.set_attr_ack_received) { + if (!cell->mo.opstart_sent) { + cell->mo.opstart_sent = true; + abis_nm_opstart(bts, NM_OC_GPRS_CELL, bts->bts_nr, 0, 0xff); + } + } +} + +static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + struct gsm_bts *bts = container_of(cell, struct gsm_bts, gprs.cell); + + /* nanoBTS is broken, doesn't follow TS 12.21. Opstart MUST be sent + during Dependency, so we simply move to OFFLINE state here to avoid + duplicating code */ + if (bts->site_mgr->peer_has_no_avstate_offline) { + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE); + return; + } + configure_loop(cell, &cell->mo.nm_state, false); +} + +static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + cell->mo.set_attr_ack_received = true; + cell->mo.set_attr_sent = false; + configure_loop(cell, &cell->mo.nm_state, false); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE); + return; + case NM_AVSTATE_DEPENDENCY: + configure_loop(cell, new_state, false); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + + /* Warning: In here we may be acessing an state older than new_state + from prev (syncrhonous) FSM state */ + configure_loop(cell, &cell->mo.nm_state, true); +} + +static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + struct gsm_bts *bts = container_of(cell, struct gsm_bts, gprs.cell); + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + cell->mo.set_attr_ack_received = true; + cell->mo.set_attr_sent = false; + configure_loop(cell, &cell->mo.nm_state, true); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + /* There's no point in moving back to Dependency, since it's broken + and it acts actually as if it was in Offline state */ + if (!bts->site_mgr->peer_has_no_avstate_offline) { + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY); + } else { + /* Moreover, in nanoBTS we need to check here for tx + Opstart since we may have gone Unlocked state + in this event, which means Opstart may be txed here. */ + configure_loop(cell, new_state, true); + } + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + configure_loop(cell, new_state, true); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + + /* Reset state, we don't need it in this state and it will need to be + reused as soon as we move back to Disabled */ + cell->mo.opstart_sent = false; + cell->mo.adm_unlock_sent = false; + cell->mo.set_attr_ack_received = false; + cell->mo.set_attr_sent = false; +} + +static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) + return; + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_cell *cell = (struct gsm_gprs_cell *)fi->priv; + struct gsm_bts *bts = container_of(cell, struct gsm_bts, gprs.cell); + + switch (event) { + case NM_EV_OPSTART_ACK: + case NM_EV_OPSTART_NACK: + /* TODO: if on state OFFLINE and rx NACK, try again? */ + cell->mo.opstart_sent = false; + break; + case NM_EV_FORCE_LOCK: + cell->mo.force_rf_lock = (bool)(intptr_t)data; + abis_nm_chg_adm_state(bts, NM_OC_GPRS_CELL, + bts->bts_nr, 0, 0xff, + cell->mo.force_rf_lock ? NM_STATE_LOCKED : NM_STATE_UNLOCKED); + break; + case NM_EV_OML_DOWN: + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); + break; + default: + OSMO_ASSERT(0); + } +} + +static struct osmo_fsm_state nm_gprs_cell_fsm_states[] = { + [NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED] = { + .in_event_mask = + X(NM_EV_SW_ACT_REP) | + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_CELL_ST_OP_ENABLED), + .name = "DISABLED_NOTINSTALLED", + .onenter = st_op_disabled_notinstalled_on_enter, + .action = st_op_disabled_notinstalled, + }, + [NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_CELL_ST_OP_ENABLED), + .name = "DISABLED_DEPENDENCY", + .onenter = st_op_disabled_dependency_on_enter, + .action = st_op_disabled_dependency, + }, + [NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_CELL_ST_OP_ENABLED), + .name = "DISABLED_OFFLINE", + .onenter = st_op_disabled_offline_on_enter, + .action = st_op_disabled_offline, + }, + [NM_GPRS_CELL_ST_OP_ENABLED] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_CELL_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_CELL_ST_OP_DISABLED_OFFLINE), + .name = "ENABLED", + .onenter = st_op_enabled_on_enter, + .action = st_op_enabled, + }, +}; + +struct osmo_fsm nm_gprs_cell_fsm = { + .name = "NM_GPRS_CELL_OP", + .states = nm_gprs_cell_fsm_states, + .num_states = ARRAY_SIZE(nm_gprs_cell_fsm_states), + .allstate_event_mask = + X(NM_EV_OPSTART_ACK) | + X(NM_EV_OPSTART_NACK) | + X(NM_EV_FORCE_LOCK) | + X(NM_EV_OML_DOWN), + .allstate_action = st_op_allstate, + .event_names = nm_fsm_event_names, + .log_subsys = DNM, +}; + +static __attribute__((constructor)) void nm_gprs_cell_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nm_gprs_cell_fsm) == 0); +} diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 5755258..03722ab 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -62,6 +62,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ @@ -141,6 +142,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index daaca66..88477b7 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -38,6 +38,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/acc/Makefile.am b/tests/acc/Makefile.am index 44e5107..9ddb93d 100644 --- a/tests/acc/Makefile.am +++ b/tests/acc/Makefile.am @@ -38,6 +38,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/acc/acc_test.ok b/tests/acc/acc_test.ok index 9a099f9..aebd2af 100644 --- a/tests/acc/acc_test.ok +++ b/tests/acc/acc_test.ok @@ -1,6 +1,7 @@ ===test_acc_mgr_no_ramp=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -120,6 +121,7 @@ pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -135,6 +137,7 @@ ===test_acc_mgr_manual_ramp=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -384,6 +387,7 @@ pcu_info_update(): t2=0x01 t3=0xb3, allowed: 2 3 6 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -399,6 +403,7 @@ ===test_acc_mgr_rotate(true, 1)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -479,6 +484,7 @@ pcu_info_update(): t2=0x03 t3=0xfd, allowed: 1 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -494,6 +500,7 @@ ===test_acc_mgr_rotate(false, 1)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -571,6 +578,7 @@ pcu_info_update(): t2=0x01 t3=0xff, allowed: 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -586,6 +594,7 @@ ===test_acc_mgr_rotate(true, 2)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -666,6 +675,7 @@ pcu_info_update(): t2=0x03 t3=0xfc, allowed: 0 1 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -681,6 +691,7 @@ ===test_acc_mgr_rotate(false, 2)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -758,6 +769,7 @@ pcu_info_update(): t2=0x00 t3=0xff, allowed: 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -773,6 +785,7 @@ ===test_acc_mgr_rotate(true, 3)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -853,6 +866,7 @@ pcu_info_update(): t2=0x02 t3=0xfc, allowed: 0 1 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -868,6 +882,7 @@ ===test_acc_mgr_rotate(false, 3)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -945,6 +960,7 @@ pcu_info_update(): t2=0x00 t3=0x7f, allowed: 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -960,6 +976,7 @@ ===test_acc_mgr_rotate(true, 4)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1040,6 +1057,7 @@ pcu_info_update(): t2=0x02 t3=0x7c, allowed: 0 1 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1055,6 +1073,7 @@ ===test_acc_mgr_rotate(false, 4)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1132,6 +1151,7 @@ pcu_info_update(): t2=0x00 t3=0x3f, allowed: 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1147,6 +1167,7 @@ ===test_acc_mgr_rotate(true, 5)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1227,6 +1248,7 @@ pcu_info_update(): t2=0x02 t3=0x3c, allowed: 0 1 6 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1242,6 +1264,7 @@ ===test_acc_mgr_rotate(false, 5)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1319,6 +1342,7 @@ pcu_info_update(): t2=0x00 t3=0x1f, allowed: 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1334,6 +1358,7 @@ ===test_acc_mgr_rotate(true, 6)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1414,6 +1439,7 @@ pcu_info_update(): t2=0x02 t3=0x1c, allowed: 0 1 5 6 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1429,6 +1455,7 @@ ===test_acc_mgr_rotate(false, 6)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1506,6 +1533,7 @@ pcu_info_update(): t2=0x00 t3=0x0f, allowed: 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1521,6 +1549,7 @@ ===test_acc_mgr_rotate(true, 7)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1601,6 +1630,7 @@ pcu_info_update(): t2=0x02 t3=0x0c, allowed: 0 1 4 5 6 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1616,6 +1646,7 @@ ===test_acc_mgr_rotate(false, 7)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1693,6 +1724,7 @@ pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1708,6 +1740,7 @@ ===test_acc_mgr_rotate(true, 8)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1788,6 +1821,7 @@ pcu_info_update(): t2=0x02 t3=0x04, allowed: 0 1 3 4 5 6 7 8 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1803,6 +1837,7 @@ ===test_acc_mgr_rotate(false, 8)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1880,6 +1915,7 @@ pcu_info_update(): t2=0x00 t3=0x03, allowed: 2 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1895,6 +1931,7 @@ ===test_acc_mgr_rotate(false, 9)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -1972,6 +2009,7 @@ pcu_info_update(): t2=0x00 t3=0x01, allowed: 1 2 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -1987,6 +2025,7 @@ ===test_acc_ramp=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2033,6 +2072,7 @@ pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2048,6 +2088,7 @@ ===test_acc_ramp2=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2076,6 +2117,7 @@ sys={15.000000}: select() NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2091,6 +2133,7 @@ ===test_acc_ramp3=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2135,6 +2178,7 @@ (bts=0) ACC: update ACC allowed active subset 0x15a -> 0x15a (active_len=5, ramp_len=10, adm_len=10, perm_len=5, rotation=off) NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2150,6 +2194,7 @@ ===test_acc_ramp_up_rotate(0, 100, 100)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2250,6 +2295,7 @@ sys={3250.000000}: select() NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2265,6 +2311,7 @@ ===test_acc_ramp_up_rotate(0, 20, 50)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2365,6 +2412,7 @@ sys={3250.000000}: select() NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2380,6 +2428,7 @@ ===test_acc_ramp_up_rotate(70, 80, 90)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2480,6 +2529,7 @@ sys={3250.000000}: select() NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2495,6 +2545,7 @@ ===test_acc_ramp_updown_rotate(80, 90, 0, 100, 15)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2625,6 +2676,7 @@ sys={7500.000000}: select(49): chan_load_avg=100 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2640,6 +2692,7 @@ ===test_acc_ramp_updown_rotate(30, 50, 10, 100, 15)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2794,6 +2847,7 @@ pcu_info_update(): t2=0x03 t3=0xf9, allowed: 1 2 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2809,6 +2863,7 @@ ===test_acc_ramp_updown_rotate(50, 49, 0, 100, 10)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -2973,6 +3028,7 @@ pcu_info_update(): t2=0x03 t3=0xc7, allowed: 3 4 5 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated @@ -2988,6 +3044,7 @@ ===test_acc_ramp_updown_rotate(30, 80, 30, 80, 5)=== NM_BTS_SM_OP{DISABLED_NOTINSTALLED}: Allocated NM_BTS_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_CELL_OP{DISABLED_NOTINSTALLED}: Allocated NM_RCARRIER_OP{DISABLED_NOTINSTALLED}: Allocated NM_BB_TRANSC_OP{DISABLED_NOTINSTALLED}: Allocated NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated @@ -3058,6 +3115,7 @@ sys={12500.000000}: select(49): chan_load_avg=75 NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_OP(bts0){DISABLED_NOTINSTALLED}: Deallocated NM_BB_TRANSC_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated NM_RCARRIER_OP(bts0-trx0){DISABLED_NOTINSTALLED}: Deallocated diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index 770b73b..18b82b6 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -52,6 +52,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index 7fb62db..6bf73af 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -41,6 +41,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 1a75ea0..444c097 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -86,6 +86,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_ctrl.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index 8bd2ba9..1e5712e 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -35,6 +35,7 @@ $(top_builddir)/src/osmo-bsc/nm_bts_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_bb_transc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I074f4496aa153b5f84e6ce85f413754efe64d831 Gerrit-Change-Number: 21463 Gerrit-PatchSet: 4 Gerrit-Owner: pespin 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 Dec 4 18:33:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:33:31 +0000 Subject: Change in osmo-bsc[master]: Introduce NM GPRS NSVC FSM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21452 ) Change subject: Introduce NM GPRS NSVC FSM ...................................................................... Introduce NM GPRS NSVC FSM Related: OS#4870 Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 --- M include/osmocom/bsc/bts_sm.h M include/osmocom/bsc/nm_common_fsm.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_sm.c A src/osmo-bsc/nm_gprs_nsvc_fsm.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/acc/acc_test.ok M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 16 files changed, 557 insertions(+), 41 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/bsc/bts_sm.h b/include/osmocom/bsc/bts_sm.h index 37ace77..7ed7aba 100644 --- a/include/osmocom/bsc/bts_sm.h +++ b/include/osmocom/bsc/bts_sm.h @@ -70,3 +70,10 @@ struct gsm_bts_sm *gsm_bts_sm_alloc(struct gsm_network *net, uint8_t bts_num); void gsm_bts_sm_mo_reset(struct gsm_bts_sm *bts_sm); + +static inline struct gsm_gprs_nsvc *gsm_bts_sm_nsvc_num(struct gsm_bts_sm *bts_sm, uint8_t nsvc_num) +{ + if (nsvc_num >= ARRAY_SIZE(bts_sm->gprs.nsvc)) + return NULL; + return &bts_sm->gprs.nsvc[nsvc_num]; +} diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h index a18da3a..7ad3df6 100644 --- a/include/osmocom/bsc/nm_common_fsm.h +++ b/include/osmocom/bsc/nm_common_fsm.h @@ -100,3 +100,12 @@ NM_GPRS_CELL_ST_OP_ENABLED, }; extern struct osmo_fsm nm_gprs_cell_fsm; + +/* GPRS NSVC */ +enum nm_gprs_op_nsvc_fsm_states { + NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED, + NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY, + NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE, + NM_GPRS_NSVC_ST_OP_ENABLED, +}; +extern struct osmo_fsm nm_gprs_nsvc_fsm; diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index eadb30e..e282c6f 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -62,6 +62,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ $(NULL) @@ -86,6 +87,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(OSMO_LIBS) \ $(NULL) diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 79fc164..92ef7c3 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -83,6 +83,7 @@ nm_bts_fsm.c \ nm_gprs_cell_fsm.c \ nm_gprs_nse_fsm.c \ + nm_gprs_nsvc_fsm.c \ nm_channel_fsm.c \ nm_rcarrier_fsm.c \ gsm_08_08.c \ diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index d837779..b64b4dc 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -49,6 +49,7 @@ #include #include #include +#include #include #define OM_ALLOC_SIZE 1024 diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 91c76f1..6d8f91f 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -127,7 +127,6 @@ { uint8_t obj_class = nsd->obj_class; void *obj = nsd->obj; - struct gsm_nm_state *new_state = nsd->new_state; struct gsm_bts_sm *bts_sm; struct gsm_bts *bts; @@ -138,24 +137,9 @@ struct gsm_gprs_nse *nse; struct gsm_gprs_cell *cell; - struct msgb *msgb; - if (!is_ipaccess_bts(nsd->bts)) return 0; - /* This event-driven BTS setup is currently only required on nanoBTS */ - - /* S_NM_STATECHG_ADM is called after we call chg_adm_state() and would create - * endless loop */ - if (obj_class != NM_OC_BTS && - obj_class != NM_OC_BASEB_TRANSC && - obj_class != NM_OC_RADIO_CARRIER && - obj_class != NM_OC_CHANNEL && - obj_class != NM_OC_GPRS_NSE && - obj_class != NM_OC_GPRS_CELL && - evt != S_NM_STATECHG_OPER) - return 0; - switch (obj_class) { case NM_OC_SITE_MANAGER: bts_sm = obj; @@ -188,33 +172,11 @@ break; case NM_OC_GPRS_NSVC: nsvc = obj; - bts = nsvc->bts; - if (bts->gprs.mode == BTS_GPRS_NONE) - break; /* We skip NSVC1 since we only use NSVC0 */ if (nsvc->id == 1) break; - if (!osmo_bts_has_feature(&bts->features, BTS_FEAT_IPV6_NSVC) && - nsvc->remote.u.sa.sa_family == AF_INET6) { - LOGP(DLINP, LOGL_ERROR, "BTS %d does not support IPv6 but an IPv6 address was configured!\n", bts->nr); - break; - } - - if ((new_state->availability == NM_AVSTATE_OFF_LINE) || - (new_state->availability == NM_AVSTATE_DEPENDENCY)) { - msgb = nanobts_attr_nscv_get(bts); - if (!msgb) - break; - abis_nm_ipaccess_set_attr(bts, obj_class, bts->bts_nr, - nsvc->id, 0xff, - msgb->data, msgb->len); - msgb_free(msgb); - abis_nm_chg_adm_state(bts, obj_class, bts->bts_nr, - nsvc->id, 0xff, - NM_STATE_UNLOCKED); - abis_nm_opstart(bts, obj_class, bts->bts_nr, - nsvc->id, 0xff); - } + osmo_fsm_inst_dispatch(nsvc->mo.fi, NM_EV_STATE_CHG_REP, nsd); + break; default: break; } @@ -228,6 +190,7 @@ struct e1inp_sign_link *sign_link = mb->dst; struct gsm_bts *bts = sign_link->trx->bts; struct gsm_bts_trx *trx; + struct gsm_gprs_nsvc *nsvc; struct gsm_bts_trx_ts *ts; if (!is_ipaccess_bts(bts)) @@ -261,6 +224,11 @@ case NM_OC_GPRS_CELL: osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_SW_ACT_REP, NULL); break; + case NM_OC_GPRS_NSVC: + if (!(nsvc = gsm_bts_sm_nsvc_num(bts->site_mgr, foh->obj_inst.trx_nr))) + return -EINVAL; + osmo_fsm_inst_dispatch(nsvc->mo.fi, NM_EV_SW_ACT_REP, NULL); + break; } return 0; } @@ -286,6 +254,7 @@ struct e1inp_sign_link *sign_link = oml_msg->dst; struct gsm_bts *bts = sign_link->trx->bts; struct gsm_bts_trx *trx; + struct gsm_gprs_nsvc *nsvc; switch (foh->obj_class) { case NM_OC_SITE_MANAGER: @@ -313,6 +282,11 @@ case NM_OC_GPRS_CELL: osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_OPSTART_ACK, NULL); break; + case NM_OC_GPRS_NSVC: + if (!(nsvc = gsm_bts_sm_nsvc_num(bts->site_mgr, foh->obj_inst.trx_nr))) + return; + osmo_fsm_inst_dispatch(nsvc->mo.fi, NM_EV_OPSTART_ACK, NULL); + break; default: break; } @@ -325,6 +299,7 @@ struct gsm_bts *bts = sign_link->trx->bts; struct gsm_bts_trx *trx; struct gsm_bts_trx_ts *ts; + struct gsm_gprs_nsvc *nsvc; switch (foh->obj_class) { case NM_OC_SITE_MANAGER: @@ -354,6 +329,11 @@ case NM_OC_GPRS_CELL: osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_OPSTART_NACK, NULL); break; + case NM_OC_GPRS_NSVC: + if (!(nsvc = gsm_bts_sm_nsvc_num(bts->site_mgr, foh->obj_inst.trx_nr))) + return; + osmo_fsm_inst_dispatch(nsvc->mo.fi, NM_EV_OPSTART_NACK, NULL); + break; default: break; } @@ -409,6 +389,7 @@ void *obj; struct gsm_gprs_nse *nse; struct gsm_gprs_cell *cell; + struct gsm_gprs_nsvc *nsvc; foh = (struct abis_om_fom_hdr *) (oh->data + 1 + idstrlen); obj = gsm_objclass2obj(bts, foh->obj_class, &foh->obj_inst); @@ -422,6 +403,11 @@ cell = obj; osmo_fsm_inst_dispatch(cell->mo.fi, NM_EV_SET_ATTR_ACK, NULL); break; + case NM_OC_GPRS_NSVC: + if (!(nsvc = gsm_bts_sm_nsvc_num(bts->site_mgr, foh->obj_inst.trx_nr))) + return; + osmo_fsm_inst_dispatch(nsvc->mo.fi, NM_EV_SET_ATTR_ACK, NULL); + break; default: LOGPFOH(DNM, LOGL_ERROR, foh, "IPACC Set Attr Ack received on incorrect object class %d!\n", foh->obj_class); } @@ -524,6 +510,7 @@ struct gsm_bts_trx *trx; struct gsm_bts_trx_ts *ts ; uint8_t tn; + uint8_t i; /* First of all, remove deferred drop if enabled */ osmo_timer_del(&bts->oml_drop_link_timer); @@ -550,6 +537,9 @@ osmo_fsm_inst_dispatch(bts->site_mgr->mo.fi, NM_EV_OML_DOWN, NULL); osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nse.mo.fi, NM_EV_OML_DOWN, NULL); + for (i = 0; i < ARRAY_SIZE(bts->site_mgr->gprs.nsvc); i++) + osmo_fsm_inst_dispatch(bts->site_mgr->gprs.nsvc[i].mo.fi, NM_EV_OML_DOWN, NULL); + osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OML_DOWN, NULL); osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, NM_EV_OML_DOWN, NULL); gsm_bts_all_ts_dispatch(bts, TS_EV_OML_DOWN, NULL); diff --git a/src/osmo-bsc/bts_sm.c b/src/osmo-bsc/bts_sm.c index 296a21d..ca572f1 100644 --- a/src/osmo-bsc/bts_sm.c +++ b/src/osmo-bsc/bts_sm.c @@ -30,6 +30,13 @@ static int gsm_bts_sm_talloc_destructor(struct gsm_bts_sm *bts_sm) { + int i; + for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { + if (bts_sm->gprs.nsvc[i].mo.fi) { + osmo_fsm_inst_free(bts_sm->gprs.nsvc[i].mo.fi); + bts_sm->gprs.nsvc[i].mo.fi = NULL; + } + } if (bts_sm->gprs.nse.mo.fi) { osmo_fsm_inst_free(bts_sm->gprs.nse.mo.fi); bts_sm->gprs.nse.mo.fi = NULL; @@ -75,8 +82,14 @@ for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { bts_sm->gprs.nsvc[i].bts = bts; bts_sm->gprs.nsvc[i].id = i; + bts_sm->gprs.nsvc[i].mo.fi = osmo_fsm_inst_alloc( + &nm_gprs_nsvc_fsm, bts_sm, + &bts_sm->gprs.nsvc[i], + LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts_sm->gprs.nsvc[i].mo.fi, + "nsvc%d", i); gsm_mo_init(&bts_sm->gprs.nsvc[i].mo, bts, NM_OC_GPRS_NSVC, - bts->nr, i, 0xff); + bts->nr, i, 0xff); } memcpy(&bts_sm->gprs.nse.timer, bts_nse_timer_default, sizeof(bts_sm->gprs.nse.timer)); diff --git a/src/osmo-bsc/nm_gprs_nsvc_fsm.c b/src/osmo-bsc/nm_gprs_nsvc_fsm.c new file mode 100644 index 0000000..d28dfd3 --- /dev/null +++ b/src/osmo-bsc/nm_gprs_nsvc_fsm.c @@ -0,0 +1,369 @@ +/* NM GPRS NSVC FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Alexander Couzens + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +#define nm_gprs_nsvc_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +////////////////////////// +// FSM STATE ACTIONS +////////////////////////// + +static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nsvc *nsvc = (struct gsm_gprs_nsvc *)fi->priv; + + nsvc->mo.set_attr_sent = false; + nsvc->mo.set_attr_sent = false; + nsvc->mo.set_attr_ack_received = false; + nsvc->mo.adm_unlock_sent = false; + nsvc->mo.opstart_sent = false; +} + +static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SW_ACT_REP: + break; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_DEPENDENCY: + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void configure_loop(struct gsm_gprs_nsvc *nsvc, struct gsm_nm_state *state, bool allow_opstart) { + struct msgb *msgb; + + if (nsvc->bts->gprs.mode == BTS_GPRS_NONE) + return; + + if (!nsvc->mo.set_attr_sent && !nsvc->mo.set_attr_ack_received) { + if (!osmo_bts_has_feature(&nsvc->bts->features, BTS_FEAT_IPV6_NSVC) && + nsvc->remote.u.sa.sa_family == AF_INET6) { + LOGPFSML(nsvc->mo.fi, LOGL_ERROR, + "BTS%d does not support IPv6 NSVC but an IPv6 address was configured!\n", + nsvc->bts->nr); + return; + } + nsvc->mo.set_attr_sent = true; + msgb = nanobts_attr_nscv_get(nsvc->bts); + OSMO_ASSERT(msgb); + abis_nm_ipaccess_set_attr(nsvc->bts, NM_OC_GPRS_NSVC, nsvc->bts->bts_nr, + nsvc->id, 0xff, msgb->data, msgb->len); + msgb_free(msgb); + } + + if (nsvc->mo.set_attr_ack_received && state->administrative != NM_STATE_UNLOCKED && + !nsvc->mo.adm_unlock_sent) { + nsvc->mo.adm_unlock_sent = true; + abis_nm_chg_adm_state(nsvc->bts, NM_OC_GPRS_NSVC, + nsvc->bts->bts_nr, nsvc->id, 0xff, + NM_STATE_UNLOCKED); + } + + if (allow_opstart && state->administrative == NM_STATE_UNLOCKED && + nsvc->mo.set_attr_ack_received) { + if (!nsvc->mo.opstart_sent) { + nsvc->mo.opstart_sent = true; + abis_nm_opstart(nsvc->bts, NM_OC_GPRS_NSVC, + nsvc->bts->bts_nr, nsvc->id, 0xff); + } + } +} + +static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nsvc *nsvc = (struct gsm_gprs_nsvc *)fi->priv; + + /* nanoBTS is broken, doesn't follow TS 12.21. Opstart MUST be sent + during Dependency, so we simply move to OFFLINE state here to avoid + duplicating code */ + if (nsvc->bts->site_mgr->peer_has_no_avstate_offline) { + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE); + return; + } + configure_loop(nsvc, &nsvc->mo.nm_state, false); +} + +static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nsvc *nsvc = (struct gsm_gprs_nsvc *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + nsvc->mo.set_attr_ack_received = true; + nsvc->mo.set_attr_sent = false; + configure_loop(nsvc, &nsvc->mo.nm_state, false); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + /* should not happen... */ + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE); + return; + case NM_AVSTATE_DEPENDENCY: + configure_loop(nsvc, new_state, false); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nsvc *nsvc = (struct gsm_gprs_nsvc *)fi->priv; + + /* Warning: In here we may be acessing an state older than new_state + from prev (syncrhonous) FSM state */ + configure_loop(nsvc, &nsvc->mo.nm_state, true); +} + +static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nsvc *nsvc = (struct gsm_gprs_nsvc *)fi->priv; + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_SET_ATTR_ACK: + nsvc->mo.set_attr_ack_received = true; + nsvc->mo.set_attr_sent = false; + configure_loop(nsvc, &nsvc->mo.nm_state, true); + return; + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) { + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_ENABLED); + return; + } + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + /* There's no point in moving back to Dependency, since it's broken + and it acts actually as if it was in Offline state */ + if (!nsvc->bts->site_mgr->peer_has_no_avstate_offline) { + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY); + } else { + /* Moreover, in nanoBTS we need to check here for tx + Opstart since we may have gone Unlocked state + in this event, which means Opstart may be txed here. */ + configure_loop(nsvc, new_state, true); + } + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + configure_loop(nsvc, new_state, true); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nsvc *nsvc = (struct gsm_gprs_nsvc *)fi->priv; + + /* Reset state, we don't need it in this state and it will need to be + reused as soon as we move back to Disabled */ + nsvc->mo.opstart_sent = false; + nsvc->mo.adm_unlock_sent = false; + nsvc->mo.set_attr_sent = false; + nsvc->mo.set_attr_ack_received = false; +} + +static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_nm_state *new_state; + + switch (event) { + case NM_EV_STATE_CHG_REP: + nsd = (struct nm_statechg_signal_data *)data; + new_state = nsd->new_state; + if (new_state->operational == NM_OPSTATE_ENABLED) + return; + switch (new_state->availability) { /* operational = DISABLED */ + case NM_AVSTATE_NOT_INSTALLED: + case NM_AVSTATE_POWER_OFF: + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED); + return; + case NM_AVSTATE_DEPENDENCY: + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY); + return; + case NM_AVSTATE_OFF_LINE: + case NM_AVSTATE_OK: + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE); + return; + default: + return; + } + default: + OSMO_ASSERT(0); + } +} + +static void st_op_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nsvc *nsvc = (struct gsm_gprs_nsvc *)fi->priv; + + switch (event) { + case NM_EV_OPSTART_ACK: + case NM_EV_OPSTART_NACK: + /* TODO: if on state OFFLINE and rx NACK, try again? */ + nsvc->mo.opstart_sent = false; + break; + case NM_EV_OML_DOWN: + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED); + break; + default: + OSMO_ASSERT(0); + } +} + +static struct osmo_fsm_state nm_gprs_nsvc_fsm_states[] = { + [NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED] = { + .in_event_mask = + X(NM_EV_SW_ACT_REP) | + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_NSVC_ST_OP_ENABLED), + .name = "DISABLED_NOTINSTALLED", + .onenter = st_op_disabled_notinstalled_on_enter, + .action = st_op_disabled_notinstalled, + }, + [NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE) | + X(NM_GPRS_NSVC_ST_OP_ENABLED), + .name = "DISABLED_DEPENDENCY", + .onenter = st_op_disabled_dependency_on_enter, + .action = st_op_disabled_dependency, + }, + [NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_SET_ATTR_ACK), + .out_state_mask = + X(NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSVC_ST_OP_ENABLED), + .name = "DISABLED_OFFLINE", + .onenter = st_op_disabled_offline_on_enter, + .action = st_op_disabled_offline, + }, + [NM_GPRS_NSVC_ST_OP_ENABLED] = { + .in_event_mask = + X(NM_EV_STATE_CHG_REP), + .out_state_mask = + X(NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE), + .name = "ENABLED", + .onenter = st_op_enabled_on_enter, + .action = st_op_enabled, + }, +}; + +struct osmo_fsm nm_gprs_nsvc_fsm = { + .name = "NM_GPRS_NSVC_OP", + .states = nm_gprs_nsvc_fsm_states, + .num_states = ARRAY_SIZE(nm_gprs_nsvc_fsm_states), + .allstate_event_mask = + X(NM_EV_OPSTART_ACK) | + X(NM_EV_OPSTART_NACK) | + X(NM_EV_OML_DOWN), + .allstate_action = st_op_allstate, + .event_names = nm_fsm_event_names, + .log_subsys = DNM, +}; + +static __attribute__((constructor)) void nm_gprs_nsvc_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nm_gprs_nsvc_fsm) == 0); +} diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 03722ab..c180390 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -64,6 +64,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ @@ -144,6 +145,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index 88477b7..cb327fb 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -40,6 +40,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/acc/Makefile.am b/tests/acc/Makefile.am index 9ddb93d..9351545 100644 --- a/tests/acc/Makefile.am +++ b/tests/acc/Makefile.am @@ -40,6 +40,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/acc/acc_test.ok b/tests/acc/acc_test.ok index aebd2af..84117a9 100644 --- a/tests/acc/acc_test.ok +++ b/tests/acc/acc_test.ok @@ -14,6 +14,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_no_ramp() do_allowed_len_adm_loop(1) (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fe (active_len=9, ramp_len=10, adm_len=9, perm_len=10, rotation=on) @@ -119,6 +121,8 @@ *** Barring zero ACCs *** (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -150,6 +154,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_manual_ramp() do_allowed_len_ramp_loop(1) (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fe (active_len=9, ramp_len=9, adm_len=10, perm_len=10, rotation=on) @@ -385,6 +391,8 @@ pcu_info_update(): t2=0x03 t3=0xff, allowed: (bts=0) ACC: New ACC allowed subset 0x24c (active_len=4, ramp_len=4, adm_len=4, perm_len=4, rotation=off) pcu_info_update(): t2=0x01 t3=0xb3, allowed: 2 3 6 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -416,6 +424,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -482,6 +492,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x001 -> 0x002 (active_len=1, ramp_len=10, adm_len=1, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xfd, allowed: 1 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -513,6 +525,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x200 (active_len=1, ramp_len=10, adm_len=1, perm_len=10, rotation=on) pcu_info_update(): t2=0x01 t3=0xff, allowed: 9 @@ -576,6 +590,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x100 -> 0x200 (active_len=1, ramp_len=10, adm_len=1, perm_len=10, rotation=on) pcu_info_update(): t2=0x01 t3=0xff, allowed: 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -607,6 +623,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -673,6 +691,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x101 -> 0x003 (active_len=2, ramp_len=10, adm_len=2, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xfc, allowed: 0 1 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -704,6 +724,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x300 (active_len=2, ramp_len=10, adm_len=2, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0xff, allowed: 8 9 @@ -767,6 +789,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x180 -> 0x300 (active_len=2, ramp_len=10, adm_len=2, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0xff, allowed: 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -798,6 +822,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -864,6 +890,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x181 -> 0x103 (active_len=3, ramp_len=10, adm_len=3, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0xfc, allowed: 0 1 8 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -895,6 +923,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x380 (active_len=3, ramp_len=10, adm_len=3, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x7f, allowed: 7 8 9 @@ -958,6 +988,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1c0 -> 0x380 (active_len=3, ramp_len=10, adm_len=3, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x7f, allowed: 7 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -989,6 +1021,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1055,6 +1089,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1c1 -> 0x183 (active_len=4, ramp_len=10, adm_len=4, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x7c, allowed: 0 1 7 8 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1086,6 +1122,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3c0 (active_len=4, ramp_len=10, adm_len=4, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x3f, allowed: 6 7 8 9 @@ -1149,6 +1187,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1e0 -> 0x3c0 (active_len=4, ramp_len=10, adm_len=4, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x3f, allowed: 6 7 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1180,6 +1220,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1246,6 +1288,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1e1 -> 0x1c3 (active_len=5, ramp_len=10, adm_len=5, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x3c, allowed: 0 1 6 7 8 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1277,6 +1321,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3e0 (active_len=5, ramp_len=10, adm_len=5, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x1f, allowed: 5 6 7 8 9 @@ -1340,6 +1386,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f0 -> 0x3e0 (active_len=5, ramp_len=10, adm_len=5, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x1f, allowed: 5 6 7 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1371,6 +1419,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1437,6 +1487,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f1 -> 0x1e3 (active_len=6, ramp_len=10, adm_len=6, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x1c, allowed: 0 1 5 6 7 8 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1468,6 +1520,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3f0 (active_len=6, ramp_len=10, adm_len=6, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x0f, allowed: 4 5 6 7 8 9 @@ -1531,6 +1585,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f8 -> 0x3f0 (active_len=6, ramp_len=10, adm_len=6, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x0f, allowed: 4 5 6 7 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1562,6 +1618,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1628,6 +1686,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1f9 -> 0x1f3 (active_len=7, ramp_len=10, adm_len=7, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x0c, allowed: 0 1 4 5 6 7 8 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1659,6 +1719,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3f8 (active_len=7, ramp_len=10, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 @@ -1722,6 +1784,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1fc -> 0x3f8 (active_len=7, ramp_len=10, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1753,6 +1817,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -1819,6 +1885,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1fd -> 0x1fb (active_len=8, ramp_len=10, adm_len=8, perm_len=9, rotation=on) pcu_info_update(): t2=0x02 t3=0x04, allowed: 0 1 3 4 5 6 7 8 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1850,6 +1918,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fc (active_len=8, ramp_len=10, adm_len=8, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x03, allowed: 2 3 4 5 6 7 8 9 @@ -1913,6 +1983,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1fe -> 0x3fc (active_len=8, ramp_len=10, adm_len=8, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x03, allowed: 2 3 4 5 6 7 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -1944,6 +2016,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_mgr_rotate() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3fe (active_len=9, ramp_len=10, adm_len=9, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x01, allowed: 1 2 3 4 5 6 7 8 9 @@ -2007,6 +2081,8 @@ sys={40.000000}: select() (bts=0) ACC: rotate ACC allowed active subset 0x1ff -> 0x3fe (active_len=9, ramp_len=10, adm_len=9, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x01, allowed: 1 2 3 4 5 6 7 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -2038,6 +2114,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x000 (active_len=0, ramp_len=0, adm_len=10, perm_len=10, rotation=off) pcu_info_update(): t2=0x03 t3=0xff, allowed: @@ -2070,6 +2148,8 @@ sys={450.000000}: select() (bts=0) ACC: update ACC allowed active subset 0x1ff -> 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) pcu_info_update(): t2=0x00 t3=0x00, allowed: 0 1 2 3 4 5 6 7 8 9 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -2101,6 +2181,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp2() (bts=0) ACC: update ACC allowed active subset 0x3ff -> 0x3f8 (active_len=7, ramp_len=10, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x00 t3=0x07, allowed: 3 4 5 6 7 8 9 @@ -2115,6 +2197,8 @@ (bts=0) ACC: update ACC allowed active subset 0x03f -> 0x07f (active_len=7, ramp_len=7, adm_len=7, perm_len=10, rotation=on) pcu_info_update(): t2=0x03 t3=0x80, allowed: 0 1 2 3 4 5 6 sys={15.000000}: select() +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -2146,6 +2230,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp3() *** Barring some ACCs *** (bts=0) ACC: New ACC allowed subset 0x15a (active_len=5, ramp_len=10, adm_len=10, perm_len=5, rotation=off) @@ -2176,6 +2262,8 @@ (bts=0) ACC: update ACC allowed active subset 0x15a -> 0x15a (active_len=5, ramp_len=9, adm_len=10, perm_len=5, rotation=off) sys={45.000000}: select() (bts=0) ACC: update ACC allowed active subset 0x15a -> 0x15a (active_len=5, ramp_len=10, adm_len=10, perm_len=5, rotation=off) +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -2207,6 +2295,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_up_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2293,6 +2383,8 @@ sys={2750.000000}: select() sys={3000.000000}: select() sys={3250.000000}: select() +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -2324,6 +2416,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_up_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2410,6 +2504,8 @@ sys={2750.000000}: select() sys={3000.000000}: select() sys={3250.000000}: select() +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -2441,6 +2537,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_up_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2527,6 +2625,8 @@ sys={2750.000000}: select() sys={3000.000000}: select() sys={3250.000000}: select() +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -2558,6 +2658,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2674,6 +2776,8 @@ sys={7000.000000}: select(47): chan_load_avg=75 sys={7250.000000}: select(48): chan_load_avg=90 sys={7500.000000}: select(49): chan_load_avg=100 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -2705,6 +2809,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -2845,6 +2951,8 @@ sys={4200.000000}: select(49): chan_load_avg=25 (bts=0) ACC: rotate ACC allowed active subset 0x003 -> 0x006 (active_len=2, ramp_len=2, adm_len=10, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xf9, allowed: 1 2 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -2876,6 +2984,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -3026,6 +3136,8 @@ sys={4200.000000}: select(49): chan_load_avg=90 (bts=0) ACC: rotate ACC allowed active subset 0x01c -> 0x038 (active_len=3, ramp_len=3, adm_len=10, perm_len=9, rotation=on) pcu_info_update(): t2=0x03 t3=0xc7, allowed: 3 4 5 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated @@ -3057,6 +3169,8 @@ NM_CHAN_OP{DISABLED_NOTINSTALLED}: Allocated (bts=0) ACC: New ACC allowed subset 0x3ff (active_len=10, ramp_len=10, adm_len=10, perm_len=10, rotation=off) NM_GPRS_NSE_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated +NM_GPRS_NSVC_OP{DISABLED_NOTINSTALLED}: Allocated BTS allocation OK in test_acc_ramp_updown_rotate() *** Barring one ACC *** (bts=0) ACC: New ACC allowed subset 0x1ff (active_len=9, ramp_len=10, adm_len=10, perm_len=9, rotation=off) @@ -3113,6 +3227,8 @@ sys={12000.000000}: select(47): chan_load_avg=65 sys={12250.000000}: select(48): chan_load_avg=70 sys={12500.000000}: select(49): chan_load_avg=75 +NM_GPRS_NSVC_OP(nsvc0){DISABLED_NOTINSTALLED}: Deallocated +NM_GPRS_NSVC_OP(nsvc1){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_NSE_OP(nse0){DISABLED_NOTINSTALLED}: Deallocated NM_BTS_SM_OP(bts_sm){DISABLED_NOTINSTALLED}: Deallocated NM_GPRS_CELL_OP(gprs-cell0){DISABLED_NOTINSTALLED}: Deallocated diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index 18b82b6..b6ba421 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -54,6 +54,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index 6bf73af..6e2ba6c 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -43,6 +43,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 444c097..5139595 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -88,6 +88,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_ctrl.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_lcls.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index 1e5712e..f2afa2b 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -37,6 +37,7 @@ $(top_builddir)/src/osmo-bsc/nm_channel_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_cell_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_gprs_nse_fsm.o \ + $(top_builddir)/src/osmo-bsc/nm_gprs_nsvc_fsm.o \ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I381472532c2622a8dba7c81ae00ea873c2e58ae1 Gerrit-Change-Number: 21452 Gerrit-PatchSet: 7 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 Dec 4 18:33:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:33:32 +0000 Subject: Change in osmo-bsc[master]: abis_nm: Simplify param passing to abis_nm_rx_get_attr_resp() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21501 ) Change subject: abis_nm: Simplify param passing to abis_nm_rx_get_attr_resp() ...................................................................... abis_nm: Simplify param passing to abis_nm_rx_get_attr_resp() There's no real need to retrieve the trx before passing it to the function, we can do that in the function itself and hence also simplify the function itself. Related: OS#4870 Change-Id: I7181510c5021ff2712c09ebc6ec8b13fdd8e8dc2 --- M src/osmo-bsc/abis_nm.c 1 file changed, 7 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index b64b4dc..9db49b7 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -669,15 +669,19 @@ } /* Handle 3GPP TS 52.021 ?8.11.3 Get Attribute Response */ -static int abis_nm_rx_get_attr_resp(struct msgb *mb, const struct gsm_bts_trx *trx) +static int abis_nm_rx_get_attr_resp(struct msgb *mb) { struct abis_om_hdr *oh = msgb_l2(mb); struct abis_om_fom_hdr *foh = msgb_l3(mb); struct e1inp_sign_link *sign_link = mb->dst; - struct gsm_bts *bts = trx ? trx->bts : sign_link->trx->bts; + struct gsm_bts *bts = sign_link->trx->bts; + const struct gsm_bts_trx *trx; struct tlv_parsed tp; int rc; + trx = foh->obj_class == NM_OC_BASEB_TRANSC ? + gsm_bts_trx_num(bts, foh->obj_inst.trx_nr) : NULL; + DEBUGPFOH(DNM, foh, "Get Attributes Response\n"); abis_nm_tlv_parse(&tp, bts, foh->data, oh->length-sizeof(*foh)); @@ -995,7 +999,7 @@ abis_nm_rx_set_bts_attr_ack(mb); break; case NM_MT_GET_ATTR_RESP: - ret = abis_nm_rx_get_attr_resp(mb, gsm_bts_trx_num(bts, (foh)->obj_inst.trx_nr)); + ret = abis_nm_rx_get_attr_resp(mb); break; case NM_MT_ESTABLISH_TEI_ACK: case NM_MT_CONN_TERR_SIGN_ACK: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7181510c5021ff2712c09ebc6ec8b13fdd8e8dc2 Gerrit-Change-Number: 21501 Gerrit-PatchSet: 2 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 Fri Dec 4 18:33:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:33:32 +0000 Subject: Change in osmo-bsc[master]: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21502 ) Change subject: Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs ...................................................................... Handle BTS/BBTRANSC Get Attributes (Ack) in NM FSMs Before this patch, Get Attributes was sent quicklyafter the OML link became up, even if the BTS/BB_TRANSC objects were still powered off, which is wrong since attributes should only be available after the objects transition out of the Power off state. Furthermore, information about get attr response already received will be required in future patches to delay NSVC setting. Related: OS#4870 Change-Id: I8ec39c7e1f956ffce9aecd58a5590c43200ba086 --- M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/nm_common_fsm.h M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/nm_bb_transc_fsm.c M src/osmo-bsc/nm_bts_fsm.c M src/osmo-bsc/nm_common_fsm.c M src/osmo-bsc/osmo_bsc_main.c 7 files changed, 97 insertions(+), 24 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index d8f8be2..6904266 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -399,6 +399,8 @@ struct osmo_fsm_inst *fi; bool opstart_sent; bool adm_unlock_sent; + bool get_attr_sent; + bool get_attr_rep_received; bool set_attr_sent; bool set_attr_ack_received; bool force_rf_lock; diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h index 7ad3df6..bceefbe 100644 --- a/include/osmocom/bsc/nm_common_fsm.h +++ b/include/osmocom/bsc/nm_common_fsm.h @@ -30,6 +30,7 @@ enum nm_fsm_events { NM_EV_SW_ACT_REP, NM_EV_STATE_CHG_REP, + NM_EV_GET_ATTR_REP, NM_EV_SET_ATTR_ACK, NM_EV_OPSTART_ACK, NM_EV_OPSTART_NACK, diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 6d8f91f..c84d750 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -339,6 +339,27 @@ } } +static void nm_rx_get_attr_rep(struct msgb *oml_msg) +{ + struct abis_om_fom_hdr *foh = msgb_l3(oml_msg); + struct e1inp_sign_link *sign_link = oml_msg->dst; + struct gsm_bts *bts = sign_link->trx->bts; + struct gsm_bts_trx *trx; + + switch (foh->obj_class) { + case NM_OC_BTS: + osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_GET_ATTR_REP, NULL); + break; + case NM_OC_BASEB_TRANSC: + if (!(trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr))) + return; + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_GET_ATTR_REP, NULL); + break; + default: + LOGPFOH(DNM, LOGL_ERROR, foh, "Get Attributes Response received on incorrect object class %d!\n", foh->obj_class); + } +} + static void nm_rx_set_bts_attr_ack(struct msgb *oml_msg) { struct abis_om_fom_hdr *foh = msgb_l3(oml_msg); @@ -432,6 +453,9 @@ case S_NM_OPSTART_NACK: nm_rx_opstart_nack(signal_data); return 0; + case S_NM_GET_ATTR_REP: + nm_rx_get_attr_rep(signal_data); + return 0; case S_NM_SET_BTS_ATTR_ACK: nm_rx_set_bts_attr_ack(signal_data); return 0; diff --git a/src/osmo-bsc/nm_bb_transc_fsm.c b/src/osmo-bsc/nm_bb_transc_fsm.c index e7132e8..31e5f34 100644 --- a/src/osmo-bsc/nm_bb_transc_fsm.c +++ b/src/osmo-bsc/nm_bb_transc_fsm.c @@ -48,6 +48,8 @@ { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; + bb_transc->mo.get_attr_sent = false; + bb_transc->mo.get_attr_rep_received = false; bb_transc->mo.adm_unlock_sent = false; bb_transc->mo.opstart_sent = false; } @@ -87,7 +89,20 @@ static void configure_loop(struct gsm_bts_bb_trx *bb_transc, struct gsm_nm_state *state, bool allow_opstart) { struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); - if (state->administrative != NM_STATE_UNLOCKED && !bb_transc->mo.adm_unlock_sent) { + + /* Request TRX-level attributes */ + if (!bb_transc->mo.get_attr_sent && !bb_transc->mo.get_attr_rep_received) { + bb_transc->mo.get_attr_sent = true; + /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ + const uint8_t trx_attr[] = { NM_ATT_MANUF_STATE, NM_ATT_SW_CONFIG, }; + /* we should not request more attributes than we're ready to handle */ + OSMO_ASSERT(sizeof(trx_attr) < MAX_BTS_ATTR); + abis_nm_get_attr(trx->bts, NM_OC_BASEB_TRANSC, 0, trx->nr, 0xff, + trx_attr, sizeof(trx_attr)); + } + + if (bb_transc->mo.get_attr_rep_received && + state->administrative != NM_STATE_UNLOCKED && !bb_transc->mo.adm_unlock_sent) { bb_transc->mo.adm_unlock_sent = true; /* Note: nanoBTS sometimes fails NACKing the BaseBand Transceiver Unlock command while in Dependency, specially @@ -105,7 +120,7 @@ /* TRX software is active, tell it to initiate RSL Link */ abis_nm_ipaccess_rsl_connect(trx, trx->bts->ip_access.rsl_ip, 3003, trx->rsl_tei); - } + } } static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -127,6 +142,11 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_GET_ATTR_REP: + bb_transc->mo.get_attr_rep_received = true; + bb_transc->mo.get_attr_sent = false; + configure_loop(bb_transc, &bb_transc->mo.nm_state, false); + return; case NM_EV_STATE_CHG_REP: nsd = (struct nm_statechg_signal_data *)data; new_state = nsd->new_state; @@ -172,6 +192,11 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_GET_ATTR_REP: + bb_transc->mo.get_attr_rep_received = true; + bb_transc->mo.get_attr_sent = false; + configure_loop(bb_transc, &bb_transc->mo.nm_state, true); + return; case NM_EV_STATE_CHG_REP: nsd = (struct nm_statechg_signal_data *)data; new_state = nsd->new_state; @@ -214,6 +239,8 @@ /* Reset state, we don't need it in this state and it will need to be reused as soon as we move back to Disabled */ + bb_transc->mo.get_attr_sent = false; + bb_transc->mo.get_attr_rep_received = false; bb_transc->mo.opstart_sent = false; bb_transc->mo.adm_unlock_sent = false; } @@ -282,7 +309,8 @@ }, [NM_BB_TRANSC_ST_OP_DISABLED_DEPENDENCY] = { .in_event_mask = - X(NM_EV_STATE_CHG_REP), + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_GET_ATTR_REP), .out_state_mask = X(NM_BB_TRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BB_TRANSC_ST_OP_DISABLED_OFFLINE) | @@ -293,7 +321,8 @@ }, [NM_BB_TRANSC_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = - X(NM_EV_STATE_CHG_REP), + X(NM_EV_STATE_CHG_REP) | + X(NM_EV_GET_ATTR_REP), .out_state_mask = X(NM_BB_TRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BB_TRANSC_ST_OP_DISABLED_DEPENDENCY) | diff --git a/src/osmo-bsc/nm_bts_fsm.c b/src/osmo-bsc/nm_bts_fsm.c index 6c577bd..731b578 100644 --- a/src/osmo-bsc/nm_bts_fsm.c +++ b/src/osmo-bsc/nm_bts_fsm.c @@ -48,6 +48,8 @@ { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + bts->mo.get_attr_sent = false; + bts->mo.get_attr_rep_received = false; bts->mo.set_attr_sent = false; bts->mo.set_attr_ack_received = false; bts->mo.adm_unlock_sent = false; @@ -89,14 +91,27 @@ static void configure_loop(struct gsm_bts *bts, struct gsm_nm_state *state, bool allow_opstart) { struct msgb *msgb; - if (!bts->mo.set_attr_sent && !bts->mo.set_attr_ack_received) { + /* Request generic BTS-level attributes */ + if (!bts->mo.get_attr_sent && !bts->mo.get_attr_rep_received) { + bts->mo.get_attr_sent = true; + /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ + const uint8_t bts_attr[] = { NM_ATT_MANUF_ID, NM_ATT_SW_CONFIG, }; + /* we should not request more attributes than we're ready to handle */ + OSMO_ASSERT(sizeof(bts_attr) < MAX_BTS_ATTR); + abis_nm_get_attr(bts, NM_OC_BTS, 0, 0xff, 0xff, + bts_attr, sizeof(bts_attr)); + } + + if (bts->mo.get_attr_rep_received && + !bts->mo.set_attr_sent && !bts->mo.set_attr_ack_received) { bts->mo.set_attr_sent = true; msgb = nanobts_attr_bts_get(bts); abis_nm_set_bts_attr(bts, msgb->data, msgb->len); msgb_free(msgb); } - if (state->administrative != NM_STATE_UNLOCKED && !bts->mo.adm_unlock_sent) { + if (bts->mo.set_attr_ack_received && + state->administrative != NM_STATE_UNLOCKED && !bts->mo.adm_unlock_sent) { bts->mo.adm_unlock_sent = true; abis_nm_chg_adm_state(bts, NM_OC_BTS, bts->bts_nr, 0xff, 0xff, @@ -105,11 +120,11 @@ if (allow_opstart && state->administrative == NM_STATE_UNLOCKED && bts->mo.set_attr_ack_received) { - if (!bts->mo.opstart_sent) { - bts->mo.opstart_sent = true; - abis_nm_opstart(bts, NM_OC_BTS, bts->bts_nr, 0xff, 0xff); - } - } + if (!bts->mo.opstart_sent) { + bts->mo.opstart_sent = true; + abis_nm_opstart(bts, NM_OC_BTS, bts->bts_nr, 0xff, 0xff); + } + } } static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -133,6 +148,11 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_GET_ATTR_REP: + bts->mo.get_attr_rep_received = true; + bts->mo.get_attr_sent = false; + configure_loop(bts, &bts->mo.nm_state, false); + return; case NM_EV_SET_ATTR_ACK: bts->mo.set_attr_ack_received = true; bts->mo.set_attr_sent = false; @@ -182,6 +202,11 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_GET_ATTR_REP: + bts->mo.get_attr_rep_received = true; + bts->mo.get_attr_sent = false; + configure_loop(bts, &bts->mo.nm_state, true); + return; case NM_EV_SET_ATTR_ACK: bts->mo.set_attr_ack_received = true; bts->mo.set_attr_sent = false; @@ -231,6 +256,8 @@ reused as soon as we move back to Disabled */ bts->mo.opstart_sent = false; bts->mo.adm_unlock_sent = false; + bts->mo.get_attr_sent = false; + bts->mo.get_attr_rep_received = false; bts->mo.set_attr_sent = false; bts->mo.set_attr_ack_received = false; } @@ -300,6 +327,7 @@ [NM_BTS_ST_OP_DISABLED_DEPENDENCY] = { .in_event_mask = X(NM_EV_STATE_CHG_REP) | + X(NM_EV_GET_ATTR_REP) | X(NM_EV_SET_ATTR_ACK), .out_state_mask = X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED) | @@ -312,6 +340,7 @@ [NM_BTS_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = X(NM_EV_STATE_CHG_REP) | + X(NM_EV_GET_ATTR_REP) | X(NM_EV_SET_ATTR_ACK), .out_state_mask = X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED) | diff --git a/src/osmo-bsc/nm_common_fsm.c b/src/osmo-bsc/nm_common_fsm.c index 42c01e0..2a529db 100644 --- a/src/osmo-bsc/nm_common_fsm.c +++ b/src/osmo-bsc/nm_common_fsm.c @@ -25,6 +25,7 @@ const struct value_string nm_fsm_event_names[] = { { NM_EV_SW_ACT_REP, "SW_ACT_REP" }, { NM_EV_STATE_CHG_REP, "STATE_CHG_REP" }, + { NM_EV_GET_ATTR_REP, "GET_ATTR_REP" }, { NM_EV_SET_ATTR_ACK, "SET_ATTR_ACK" }, { NM_EV_OPSTART_ACK, "OPSTART_ACK" }, { NM_EV_OPSTART_NACK, "OPSTART_NACK" }, diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 3be8593..ca00ba0 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -371,13 +371,6 @@ { struct input_signal_data *isd = signal_data; struct gsm_bts_trx *trx = isd->trx; - /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ - const uint8_t bts_attr[] = { NM_ATT_MANUF_ID, NM_ATT_SW_CONFIG, }; - const uint8_t trx_attr[] = { NM_ATT_MANUF_STATE, NM_ATT_SW_CONFIG, }; - - /* we should not request more attributes than we're ready to handle */ - OSMO_ASSERT(sizeof(bts_attr) < MAX_BTS_ATTR); - OSMO_ASSERT(sizeof(trx_attr) < MAX_BTS_ATTR); if (subsys != SS_L_INPUT) return -EINVAL; @@ -395,14 +388,8 @@ set bts->si_common.cell_alloc */ generate_cell_chan_list(ca, trx->bts); - /* Request generic BTS-level attributes */ - abis_nm_get_attr(trx->bts, NM_OC_BTS, 0xFF, 0xFF, 0xFF, bts_attr, sizeof(bts_attr)); - llist_for_each_entry(cur_trx, &trx->bts->trx_list, list) { int i; - /* Request TRX-level attributes */ - abis_nm_get_attr(cur_trx->bts, NM_OC_BASEB_TRANSC, 0, cur_trx->nr, 0xFF, - trx_attr, sizeof(trx_attr)); for (i = 0; i < ARRAY_SIZE(cur_trx->ts); i++) generate_ma_for_ts(&cur_trx->ts[i]); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8ec39c7e1f956ffce9aecd58a5590c43200ba086 Gerrit-Change-Number: 21502 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Dec 4 18:33:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:33:32 +0000 Subject: Change in osmo-bsc[master]: Fix typo in function nanobts_attr_nsvc_get In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21538 ) Change subject: Fix typo in function nanobts_attr_nsvc_get ...................................................................... Fix typo in function nanobts_attr_nsvc_get Change-Id: I50235ba7b045ab7fba2112e61191d2756a67dfdc --- M include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/nm_gprs_nsvc_fsm.c M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/nanobts_omlattr/nanobts_omlattr_test.ok 5 files changed, 13 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h b/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h index 22a8c34..687f16a 100644 --- a/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h +++ b/include/osmocom/bsc/bts_ipaccess_nanobts_omlattr.h @@ -31,6 +31,6 @@ struct msgb *nanobts_attr_bts_get(struct gsm_bts *bts); struct msgb *nanobts_attr_nse_get(struct gsm_bts_sm *bts_sm); struct msgb *nanobts_attr_cell_get(struct gsm_bts *bts); -struct msgb *nanobts_attr_nscv_get(struct gsm_bts *bts); +struct msgb *nanobts_attr_nsvc_get(struct gsm_bts *bts); struct msgb *nanobts_attr_radio_get(struct gsm_bts *bts, struct gsm_bts_trx *trx); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index e23a688..885f4cc 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -199,7 +199,7 @@ return msgb; } -struct msgb *nanobts_attr_nscv_get(struct gsm_bts *bts) +struct msgb *nanobts_attr_nsvc_get(struct gsm_bts *bts) { struct msgb *msgb; uint8_t buf[256]; diff --git a/src/osmo-bsc/nm_gprs_nsvc_fsm.c b/src/osmo-bsc/nm_gprs_nsvc_fsm.c index d28dfd3..ffc5659 100644 --- a/src/osmo-bsc/nm_gprs_nsvc_fsm.c +++ b/src/osmo-bsc/nm_gprs_nsvc_fsm.c @@ -103,7 +103,7 @@ return; } nsvc->mo.set_attr_sent = true; - msgb = nanobts_attr_nscv_get(nsvc->bts); + msgb = nanobts_attr_nsvc_get(nsvc->bts); OSMO_ASSERT(msgb); abis_nm_ipaccess_set_attr(nsvc->bts, NM_OC_GPRS_NSVC, nsvc->bts->bts_nr, nsvc->id, 0xff, msgb->data, msgb->len); diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index 6e85138..73ba869 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -151,13 +151,13 @@ printf("\n"); } -static void test_nanobts_attr_nscv_get(struct gsm_bts *bts, uint8_t *expected) +static void test_nanobts_attr_nsvc_get(struct gsm_bts *bts, uint8_t *expected) { struct msgb *msgb; - printf("Testing nanobts_attr_nscv_get()...\n"); + printf("Testing nanobts_attr_nsvc_get()...\n"); - msgb = nanobts_attr_nscv_get(bts); + msgb = nanobts_attr_nsvc_get(bts); printf("result= %s\n", osmo_hexdump_nospc(msgb->data, msgb->len)); printf("expected=%s\n", osmo_hexdump_nospc(expected, msgb->len)); OSMO_ASSERT(memcmp(msgb->data, expected, msgb->len) == 0); @@ -173,7 +173,7 @@ { struct msgb *msgb; - printf("Testing nanobts_attr_nscv_get()...\n"); + printf("Testing nanobts_attr_nsvc_get()...\n"); msgb = nanobts_attr_radio_get(bts, trx); printf("result= %s\n", osmo_hexdump_nospc(msgb->data, msgb->len)); @@ -263,7 +263,7 @@ 0xfa, 0x00, 0xfa, 0x02 }; - /* Parameters needed to test nanobts_attr_nscv_get() */ + /* Parameters needed to test nanobts_attr_nsvc_get() */ struct osmo_sockaddr_str addr; osmo_sockaddr_str_from_str(&addr, "10.9.1.101", 23000); osmo_sockaddr_str_to_sockaddr(&addr, &bts->site_mgr->gprs.nsvc[0].remote.u.sas); @@ -285,7 +285,7 @@ test_nanobts_attr_bts_get(bts, attr_bts_expected); test_nanobts_attr_nse_get(bts, attr_nse_expected); test_nanobts_attr_cell_get(bts, attr_cell_expected); - test_nanobts_attr_nscv_get(bts, attr_nscv_expected); + test_nanobts_attr_nsvc_get(bts, attr_nscv_expected); test_nanobts_attr_radio_get(bts, trx, attr_radio_expected); /* NSVC IPv6 test */ @@ -303,7 +303,7 @@ 0xfd, 0x00, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12, }; - test_nanobts_attr_nscv_get(bts, attr_nscv6_expected); + test_nanobts_attr_nsvc_get(bts, attr_nscv6_expected); printf("Done\n"); diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.ok b/tests/nanobts_omlattr/nanobts_omlattr_test.ok index abdb95e..2f3ff77 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.ok +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.ok @@ -13,17 +13,17 @@ expected=9a0001009c000205039e00020002a30009140505a0050a04080fa800020f00a9000500fa00fa02 ok. -Testing nanobts_attr_nscv_get()... +Testing nanobts_attr_nsvc_get()... result= 9f00020065a2000859d80a0901655a3c expected=9f00020065a2000859d80a0901655a3c ok. -Testing nanobts_attr_nscv_get()... +Testing nanobts_attr_nsvc_get()... result= 2d0b0500020362 expected=2d0b0500020362 ok. -Testing nanobts_attr_nscv_get()... +Testing nanobts_attr_nsvc_get()... result= 9f00020065fd001629005a3c59e2fd005678901234567890123456789012 expected=9f00020065fd001629005a3c59e2fd005678901234567890123456789012 ok. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I50235ba7b045ab7fba2112e61191d2756a67dfdc Gerrit-Change-Number: 21538 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 Dec 4 18:34:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 18:34:14 +0000 Subject: Change in osmo-gsm-tester[master]: cfg templates: log level and source basename last, log no category-hex In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 ) Change subject: cfg templates: log level and source basename last, log no category-hex ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 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: I2755beffd18d6779367c04e4aaaed119d66eb3be Gerrit-Change-Number: 21503 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:34: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 Dec 4 18:40:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:40:08 +0000 Subject: Change in osmo-gsm-tester[master]: osmo_ctrl.py: add RateCounters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21522 ) Change subject: osmo_ctrl.py: add RateCounters ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21522 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: Id799b3bb81eb9c04d13c26ff611e40363920300e Gerrit-Change-Number: 21522 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 04 Dec 2020 18:40: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 Dec 4 18:41:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:41:38 +0000 Subject: Change in osmo-gsm-tester[master]: osmo_ctrl.py: add RateCounters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21522 ) Change subject: osmo_ctrl.py: add RateCounters ...................................................................... Patch Set 2: FYI, we have KPIs APIs to be added to the junit output. See test.py set_kpis, and some 4g tests using it. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21522 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: Id799b3bb81eb9c04d13c26ff611e40363920300e Gerrit-Change-Number: 21522 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18: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 Fri Dec 4 18:54:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:54:56 +0000 Subject: Change in osmo-gsm-tester[master]: add handover_2G suite, with handover.py test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 ) Change subject: add handover_2G suite, with handover.py test ...................................................................... Patch Set 2: (4 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/src/osmo_gsm_tester/testenv.py File src/osmo_gsm_tester/testenv.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/src/osmo_gsm_tester/testenv.py at 34 PS2, Line 34: test = None This looks like a separate commit. BTW, my intention was to probably drop test global object, so I'd rather remove it from setup() and use tenv.test() from the test. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/handover-suites.conf File sysmocom/handover-suites.conf: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/handover-suites.conf at 1 PS2, Line 1: - handover_2G:nanobts+bts1-oc2g Why not adding it to the defaults-suites.conf instead/too? https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py File sysmocom/suites/handover_2G/handover.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py at 91 PS2, Line 91: with bsc.ctrl() as bsc_ctrl: so basically you keep the object until the end of the test. So IIUC there's no win in having "with" used here and you get everything indented instead. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py at 118 PS2, Line 118: wait_no_raise(counters.changed, timeout=20) try: wait() except: pass BTW why don't you let the exception do its stuff directly and exit the test? I don't really see the the point for all this. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 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: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 Gerrit-Change-Number: 21523 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:54: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 Dec 4 18:55:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:55:26 +0000 Subject: Change in osmo-gsm-tester[master]: run handover_2G in default-suites.conf In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21524 ) Change subject: run handover_2G in default-suites.conf ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21524 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: Ic6bb013cc2c395211eeb86fe7a3d3f42671793c7 Gerrit-Change-Number: 21524 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:55: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 Dec 4 18:57:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 18:57:35 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21534/1/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/21534/1/src/gsm/tlv_parser.c at 641 PS1, Line 641: } else { > but the pdef->msgt_names is optional, by intention. [?] Ah sorry mislooked you do this when the pointer is NULL, indeed it makes sense this way. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 18:57:35 +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 Fri Dec 4 19:02:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 19:02:51 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21544 ) Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21544/1/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/21544/1/src/gb/gprs_bssgp_util.c at 209 PS1, Line 209: static const uint8_t crt_bss_pfc_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }; feeling like I'm looking at wireshark code ;) It may make sense to have macros to ease naming, so that for each line here you pass simply BSSGP_PDUT_DL_UNITDATA to it, and below in osmo_pdef_bssgp you simply pass eg BSSGP_PDUT_DL_UNITDATA, "UL-UNITDATA" But now the work is already done so not sure if worth it. https://gerrit.osmocom.org/c/libosmocore/+/21544/1/src/gb/gprs_bssgp_util.c at 239 PS1, Line 239: [BSSGP_PDUT_DL_UNITDATA] = MSG_DEF("DL-UNITDAT", dl_ud_ies), missing A in data. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 19:02:51 +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 Dec 4 19:05:49 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 19:05:49 +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: daniel has posted comments on 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 ...................................................................... Patch Set 4: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21476/4/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21476/4/src/gbproxy/gb_proxy.c at 1005 PS4, Line 1005: if (llist_empty(&nse->bts_peers)) { > looks like it may make sense to have this inside gbproxy_peer_free? I assume llist_del nse->bts_peer [?] I'm not quite sure what your comment refers to exactly. gbproxy_peer_free() is called on other occasions as well when we don't want to sent a RESET_ACK But thanks to this I just noticed that we only want to have this code path on BLOCK_ACK -- 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: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 04 Dec 2020 19:05: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 Fri Dec 4 19:06:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 19:06:56 +0000 Subject: Change in osmo-gsm-tester[master]: cfg templates: log level and source basename last, log no category-hex In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 ) Change subject: cfg templates: log level and source basename last, log no category-hex ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 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: I2755beffd18d6779367c04e4aaaed119d66eb3be Gerrit-Change-Number: 21503 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 19:06: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 Dec 4 19:10:53 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 19:10:53 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: Catch up with config changes References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21545 ) Change subject: ttcn3-gbproxy-test-fr: Catch up with config changes ...................................................................... ttcn3-gbproxy-test-fr: Catch up with config changes Change-Id: I80de01c96185c60fe2de7a8ffa9daed2669658e1 Related: SYS#5226 Depends: I698a932b3dc78c776e9350283109463bcdc40e6b (osmo-ttcn3-hacks) --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 1 file changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/45/21545/1 diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 7e57c0c..1713afb 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -37,7 +37,11 @@ encapsulation udp local-ip 172.18.25.10 encapsulation udp local-port 23000 encapsulation framerelay-gre enabled 0 - nse 1 nsvci 1 frnet hdlcnet1 dlci 16 - nse 1 nsvci 2 frnet hdlcnet2 dlci 17 - nse 1 nsvci 3 frnet hdlcnet3 dlci 18 - nse 1 nsvci 4 frnet hdlcnet4 dlci 19 + 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 hdlcnet1 dlci 20 + nse 2002 nsvci 6 frnet hdlcnet2 dlci 21 + nse 2003 nsvci 7 frnet hdlcnet3 dlci 22 + nse 2003 nsvci 8 frnet hdlcnet4 dlci 23 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I80de01c96185c60fe2de7a8ffa9daed2669658e1 Gerrit-Change-Number: 21545 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 Dec 4 19:14:13 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 19:14:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Improve NSEI/... numbering and improve paging test coverage 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-ttcn3-hacks/+/21420 to look at the new patch set (#6). Change subject: gbproxy: Improve NSEI/... numbering and improve paging test coverage ...................................................................... gbproxy: Improve NSEI/... numbering and improve paging test coverage With this setup we can and do now test: * Paging a LAI on BVC0 is sent once per matching NSE * Paging a LAI on BVC0 is sent to multiple different matching NSE * Paging a RA ID on BVC0 is sent once per matching NSE * Paging a RA ID on BVC0 is sent to multiple different matching NSE Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Related: SYS#5226 --- M gbproxy/GBProxy_Tests.fr.cfg M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.fr.cfg 3 files changed, 147 insertions(+), 48 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/20/21420/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 Gerrit-PatchSet: 6 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 Dec 4 19:14:14 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 4 Dec 2020 19:14:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21546 ) Change subject: gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master ...................................................................... gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master Change-Id: Ie1ab32ee40ff68ef3243439280244ba7668cf1dc --- M gbproxy/osmo-gbproxy.fr.cfg 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/21546/1 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index dd73b71..efec418 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -8,11 +8,11 @@ no login ! ns - !nse 101 nsvci 101 - nse 101 nsvci 101 remote-role sgsn - nse 101 nsvci 101 encapsulation udp - nse 101 nsvci 101 remote-ip 127.0.0.1 - nse 101 nsvci 101 remote-port 7777 + 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 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie1ab32ee40ff68ef3243439280244ba7668cf1dc Gerrit-Change-Number: 21546 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 Dec 4 19:16:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 19:16:02 +0000 Subject: Change in osmo-gsm-tester[master]: enb: Set cipher and integrity algos via scenario file In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533 ) Change subject: enb: Set cipher and integrity algos via scenario file ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl File src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl at 227 PS1, Line 227: cipher_algo_pref: [${(', '.join(list(dict.fromkeys(enb.cipher_algo)))).replace('EEA', '')}], why are EEA and EIA being dropped? If they are not supported, we should not silence it, it means resources.conf/scenarios are wrong. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533/1/sysmocom/defaults.conf File sysmocom/defaults.conf: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533/1/sysmocom/defaults.conf at 133 PS1, Line 133: cipher_algo_list: If not all ENS supports all these then clearly you don't want to have the 3 of them here. Rather put the shared ones here, and if srsenb supports more, then put it below under "srsneb:" defaults. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533 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: Id1fbf31c71967d67de11a23d52d32e44c0925061 Gerrit-Change-Number: 21533 Gerrit-PatchSet: 1 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 19:16: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 Fri Dec 4 19:16:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 19:16:20 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: Catch up with config changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21545 ) Change subject: ttcn3-gbproxy-test-fr: Catch up with config changes ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I80de01c96185c60fe2de7a8ffa9daed2669658e1 Gerrit-Change-Number: 21545 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 19:16: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 Dec 4 19:16:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 19:16:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Improve NSEI/... numbering and improve paging test coverage In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 ) Change subject: gbproxy: Improve NSEI/... numbering and improve paging test coverage ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 Gerrit-PatchSet: 6 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 19:16: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 Dec 4 19:17:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 19:17:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21546 ) Change subject: gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie1ab32ee40ff68ef3243439280244ba7668cf1dc Gerrit-Change-Number: 21546 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 19: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 Fri Dec 4 19:40:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 4 Dec 2020 19:40:31 +0000 Subject: Change in osmo-gsm-tester[master]: enb: Set cipher and integrity algos via scenario file In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533 ) Change subject: enb: Set cipher and integrity algos via scenario file ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533/1/src/osmo_gsm_tester/core/schema.py File src/osmo_gsm_tester/core/schema.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533/1/src/osmo_gsm_tester/core/schema.py at 109 PS1, Line 109: if val in ('a5_0', 'a5_1', 'a5_2', 'a5_3', 'a5_4', 'a5_5', 'a5_6', 'a5_7', 'EEA0', 'EEA1', 'EEA2'): You should rather split this list into 2: 2g_ciper and 4g_cipher, since it makes no sense to validate against both at the same time. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21533 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: Id1fbf31c71967d67de11a23d52d32e44c0925061 Gerrit-Change-Number: 21533 Gerrit-PatchSet: 1 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 19:40:31 +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 Dec 4 20:48:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 20:48:05 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP 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/+/21544 to look at the new patch set (#2). Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... bssgp: Add osmo_tlv_prot_def for BSSGP Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 --- M include/osmocom/gprs/gprs_bssgp.h M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 3 files changed, 283 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/21544/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Dec 4 20:48:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 20:48:07 +0000 Subject: Change in libosmocore[master]: Add hlist and hashtable from Linux kernel References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21547 ) Change subject: Add hlist and hashtable from Linux kernel ...................................................................... Add hlist and hashtable from Linux kernel For more than a decade we've used the linuxlist.h for double-linked lists. Let's also add the hlist (double-linked lists with single pointer sized head, and the hashtable that builds on top of it. This reflects the versions included in Linux 5.8 with some modifications to make them build in userspace (remove RCU versions, adjust for userspace include files and types, convert to doxygen). Change-Id: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 --- M include/Makefile.am A include/osmocom/core/hash.h A include/osmocom/core/hashtable.h M include/osmocom/core/linuxlist.h 4 files changed, 485 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/21547/1 diff --git a/include/Makefile.am b/include/Makefile.am index 71171a4..760df5c 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -27,6 +27,8 @@ osmocom/core/fsm.h \ osmocom/core/gsmtap.h \ osmocom/core/gsmtap_util.h \ + osmocom/core/hash.h \ + osmocom/core/hashtable.h \ osmocom/core/isdnhdlc.h \ osmocom/core/linuxlist.h \ osmocom/core/linuxrbtree.h \ diff --git a/include/osmocom/core/hash.h b/include/osmocom/core/hash.h new file mode 100644 index 0000000..296c737 --- /dev/null +++ b/include/osmocom/core/hash.h @@ -0,0 +1,95 @@ +#pragma once +/* Fast hashing routine for ints, longs and pointers. + (C) 2002 Nadia Yvette Chambers, IBM */ + +#include + +/* + * The "GOLDEN_RATIO_PRIME" is used in ifs/btrfs/brtfs_inode.h and + * fs/inode.c. It's not actually prime any more (the previous primes + * were actively bad for hashing), but the name remains. + */ +#if BITS_PER_LONG == 32 +#define GOLDEN_RATIO_PRIME GOLDEN_RATIO_32 +#define hash_long(val, bits) hash_32(val, bits) +#elif BITS_PER_LONG == 64 +#define hash_long(val, bits) hash_64(val, bits) +#define GOLDEN_RATIO_PRIME GOLDEN_RATIO_64 +#else +#error Wordsize not 32 or 64 +#endif + +/* + * This hash multiplies the input by a large odd number and takes the + * high bits. Since multiplication propagates changes to the most + * significant end only, it is essential that the high bits of the + * product be used for the hash value. + * + * Chuck Lever verified the effectiveness of this technique: + * http://www.citi.umich.edu/techreports/reports/citi-tr-00-1.pdf + * + * Although a random odd number will do, it turns out that the golden + * ratio phi = (sqrt(5)-1)/2, or its negative, has particularly nice + * properties. (See Knuth vol 3, section 6.4, exercise 9.) + * + * These are the negative, (1 - phi) = phi**2 = (3 - sqrt(5))/2, + * which is very slightly easier to multiply by and makes no + * difference to the hash distribution. + */ +#define GOLDEN_RATIO_32 0x61C88647 +#define GOLDEN_RATIO_64 0x61C8864680B583EBull + +/* + * The _generic versions exist only so lib/test_hash.c can compare + * the arch-optimized versions with the generic. + * + * Note that if you change these, any that aren't updated + * to match need to have their HAVE_ARCH_* define values updated so the + * self-test will not false-positive. + */ +#ifndef HAVE_ARCH__HASH_32 +#define __hash_32 __hash_32_generic +#endif +static inline uint32_t __hash_32_generic(uint32_t val) +{ + return val * GOLDEN_RATIO_32; +} + +#ifndef HAVE_ARCH_HASH_32 +#define hash_32 hash_32_generic +#endif +static inline uint32_t hash_32_generic(uint32_t val, unsigned int bits) +{ + /* High bits are more random, so use them. */ + return __hash_32(val) >> (32 - bits); +} + +#ifndef HAVE_ARCH_HASH_64 +#define hash_64 hash_64_generic +#endif +static __always_inline uint32_t hash_64_generic(u64 val, unsigned int bits) +{ +#if BITS_PER_LONG == 64 + /* 64x64-bit multiply is efficient on all 64-bit processors */ + return val * GOLDEN_RATIO_64 >> (64 - bits); +#else + /* Hash 64 bits using only 32x32-bit multiply. */ + return hash_32((uint32_t)val ^ __hash_32(val >> 32), bits); +#endif +} + +static inline uint32_t hash_ptr(const void *ptr, unsigned int bits) +{ + return hash_long((unsigned long)ptr, bits); +} + +/* This really should be called fold32_ptr; it does no hashing to speak of. */ +static inline uint32_t hash32_ptr(const void *ptr) +{ + unsigned long val = (unsigned long)ptr; + +#if BITS_PER_LONG == 64 + val ^= (val >> 32); +#endif + return (uint32_t)val; +} diff --git a/include/osmocom/core/hashtable.h b/include/osmocom/core/hashtable.h new file mode 100644 index 0000000..acaf6b9 --- /dev/null +++ b/include/osmocom/core/hashtable.h @@ -0,0 +1,141 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Statically sized hash table implementation + * (C) 2012 Sasha Levin + */ + +#pragma once + +#include +#include + +#define DEFINE_HASHTABLE(name, bits) \ + struct hlist_head name[1 << (bits)] = \ + { [0 ... ((1 << (bits)) - 1)] = HLIST_HEAD_INIT } + +#define DECLARE_HASHTABLE(name, bits) \ + struct hlist_head name[1 << (bits)] + +#define HASH_SIZE(name) (ARRAY_SIZE(name)) +#define HASH_BITS(name) ilog2(HASH_SIZE(name)) + +/* Use hash_32 when possible to allow for fast 32bit hashing in 64bit kernels. */ +#define hash_min(val, bits) \ + (sizeof(val) <= 4 ? hash_32(val, bits) : hash_long(val, bits)) + +static inline void __hash_init(struct hlist_head *ht, unsigned int sz) +{ + unsigned int i; + + for (i = 0; i < sz; i++) + INIT_HLIST_HEAD(&ht[i]); +} + +/** + * hash_init - initialize a hash table + * @hashtable: hashtable to be initialized + * + * Calculates the size of the hashtable from the given parameter, otherwise + * same as hash_init_size. + * + * This has to be a macro since HASH_BITS() will not work on pointers since + * it calculates the size during preprocessing. + */ +#define hash_init(hashtable) __hash_init(hashtable, HASH_SIZE(hashtable)) + +/** + * hash_add - add an object to a hashtable + * @hashtable: hashtable to add to + * @node: the &struct hlist_node of the object to be added + * @key: the key of the object to be added + */ +#define hash_add(hashtable, node, key) \ + hlist_add_head(node, &hashtable[hash_min(key, HASH_BITS(hashtable))]) + +/** + * hash_hashed - check whether an object is in any hashtable + * @node: the &struct hlist_node of the object to be checked + */ +static inline bool hash_hashed(struct hlist_node *node) +{ + return !hlist_unhashed(node); +} + +static inline bool __hash_empty(struct hlist_head *ht, unsigned int sz) +{ + unsigned int i; + + for (i = 0; i < sz; i++) + if (!hlist_empty(&ht[i])) + return false; + + return true; +} + +/** + * hash_empty - check whether a hashtable is empty + * @hashtable: hashtable to check + * + * This has to be a macro since HASH_BITS() will not work on pointers since + * it calculates the size during preprocessing. + */ +#define hash_empty(hashtable) __hash_empty(hashtable, HASH_SIZE(hashtable)) + +/** + * hash_del - remove an object from a hashtable + * @node: &struct hlist_node of the object to remove + */ +static inline void hash_del(struct hlist_node *node) +{ + hlist_del_init(node); +} + +/** + * hash_for_each - iterate over a hashtable + * @name: hashtable to iterate + * @bkt: integer to use as bucket loop cursor + * @obj: the type * to use as a loop cursor for each entry + * @member: the name of the hlist_node within the struct + */ +#define hash_for_each(name, bkt, obj, member) \ + for ((bkt) = 0, obj = NULL; obj == NULL && (bkt) < HASH_SIZE(name);\ + (bkt)++)\ + hlist_for_each_entry(obj, &name[bkt], member) + +/** + * hash_for_each_safe - iterate over a hashtable safe against removal of + * hash entry + * @name: hashtable to iterate + * @bkt: integer to use as bucket loop cursor + * @tmp: a &struct hlist_node used for temporary storage + * @obj: the type * to use as a loop cursor for each entry + * @member: the name of the hlist_node within the struct + */ +#define hash_for_each_safe(name, bkt, tmp, obj, member) \ + for ((bkt) = 0, obj = NULL; obj == NULL && (bkt) < HASH_SIZE(name);\ + (bkt)++)\ + hlist_for_each_entry_safe(obj, tmp, &name[bkt], member) + +/** + * hash_for_each_possible - iterate over all possible objects hashing to the + * same bucket + * @name: hashtable to iterate + * @obj: the type * to use as a loop cursor for each entry + * @member: the name of the hlist_node within the struct + * @key: the key of the objects to iterate over + */ +#define hash_for_each_possible(name, obj, member, key) \ + hlist_for_each_entry(obj, &name[hash_min(key, HASH_BITS(name))], member) + +/** + * hash_for_each_possible_safe - iterate over all possible objects hashing to the + * same bucket safe against removals + * @name: hashtable to iterate + * @obj: the type * to use as a loop cursor for each entry + * @tmp: a &struct hlist_node used for temporary storage + * @member: the name of the hlist_node within the struct + * @key: the key of the objects to iterate over + */ +#define hash_for_each_possible_safe(name, obj, tmp, member, key) \ + hlist_for_each_entry_safe(obj, tmp,\ + &name[hash_min(key, HASH_BITS(name))], member) diff --git a/include/osmocom/core/linuxlist.h b/include/osmocom/core/linuxlist.h index 867605e..2c3a0a4 100644 --- a/include/osmocom/core/linuxlist.h +++ b/include/osmocom/core/linuxlist.h @@ -16,6 +16,7 @@ * \file linuxlist.h */ #include +#include #ifndef inline #define inline __inline__ @@ -393,6 +394,252 @@ return i; } + + +/*! Double linked lists with a single pointer list head. + * Mostly useful for hash tables where the two pointer list head is + * too wasteful. + * You lose the ability to access the tail in O(1). + */ + +struct hlist_head { + struct hlist_node *first; +}; + +struct hlist_node { + struct hlist_node *next, **pprev; +}; + +#define HLIST_HEAD_INIT { .first = NULL } +#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL } +#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL) +static inline void INIT_HLIST_NODE(struct hlist_node *h) +{ + h->next = NULL; + h->pprev = NULL; +} + +#define READ_ONCE(x) x +#define WRITE_ONCE(a, b) a = b + +/*! Has node been removed from list and reinitialized?. + * \param[in] h: Node to be checked + * \return 1 if node is unhashed; 0 if not + * + * Not that not all removal functions will leave a node in unhashed + * state. For example, hlist_nulls_del_init_rcu() does leave the + * node in unhashed state, but hlist_nulls_del() does not. + */ +static inline int hlist_unhashed(const struct hlist_node *h) +{ + return !h->pprev; +} + +/*! Version of hlist_unhashed for lockless use. + * \param[in] n Node to be checked + * \return 1 if node is unhashed; 0 if not + * + * This variant of hlist_unhashed() must be used in lockless contexts + * to avoid potential load-tearing. The READ_ONCE() is paired with the + * various WRITE_ONCE() in hlist helpers that are defined below. + */ +static inline int hlist_unhashed_lockless(const struct hlist_node *h) +{ + return !READ_ONCE(h->pprev); +} + +/*!Is the specified hlist_head structure an empty hlist?. + * \param[in] h Structure to check. + * \return 1 if hlist is empty; 0 if not + */ +static inline int hlist_empty(const struct hlist_head *h) +{ + return !READ_ONCE(h->first); +} + +static inline void __hlist_del(struct hlist_node *n) +{ + struct hlist_node *next = n->next; + struct hlist_node **pprev = n->pprev; + + WRITE_ONCE(*pprev, next); + if (next) + WRITE_ONCE(next->pprev, pprev); +} + +/*! Delete the specified hlist_node from its list. + * \param[in] n: Node to delete. + * + * Note that this function leaves the node in hashed state. Use + * hlist_del_init() or similar instead to unhash @n. + */ +static inline void hlist_del(struct hlist_node *n) +{ + __hlist_del(n); + n->next = LLIST_POISON1; + n->pprev = LLIST_POISON2; +} + +/*! Delete the specified hlist_node from its list and initialize. + * \param[in] n Node to delete. + * + * Note that this function leaves the node in unhashed state. + */ +static inline void hlist_del_init(struct hlist_node *n) +{ + if (!hlist_unhashed(n)) { + __hlist_del(n); + INIT_HLIST_NODE(n); + } +} + +/*! add a new entry at the beginning of the hlist. + * \param[in] n new entry to be added + * \param[in] h hlist head to add it after + * + * Insert a new entry after the specified head. + * This is good for implementing stacks. + */ +static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h) +{ + struct hlist_node *first = h->first; + WRITE_ONCE(n->next, first); + if (first) + WRITE_ONCE(first->pprev, &n->next); + WRITE_ONCE(h->first, n); + WRITE_ONCE(n->pprev, &h->first); +} + +/*! add a new entry before the one specified. + * @n: new entry to be added + * @next: hlist node to add it before, which must be non-NULL + */ +static inline void hlist_add_before(struct hlist_node *n, + struct hlist_node *next) +{ + WRITE_ONCE(n->pprev, next->pprev); + WRITE_ONCE(n->next, next); + WRITE_ONCE(next->pprev, &n->next); + WRITE_ONCE(*(n->pprev), n); +} + +/*! add a new entry after the one specified + * \param[in] n new entry to be added + * \param[in] prev hlist node to add it after, which must be non-NULL + */ +static inline void hlist_add_behind(struct hlist_node *n, + struct hlist_node *prev) +{ + WRITE_ONCE(n->next, prev->next); + WRITE_ONCE(prev->next, n); + WRITE_ONCE(n->pprev, &prev->next); + + if (n->next) + WRITE_ONCE(n->next->pprev, &n->next); +} + +/*! create a fake hlist consisting of a single headless node. + * \param[in] n Node to make a fake list out of + * + * This makes @n appear to be its own predecessor on a headless hlist. + * The point of this is to allow things like hlist_del() to work correctly + * in cases where there is no list. + */ +static inline void hlist_add_fake(struct hlist_node *n) +{ + n->pprev = &n->next; +} + +/*! Is this node a fake hlist?. + * \param[in] h Node to check for being a self-referential fake hlist. + */ +static inline bool hlist_fake(struct hlist_node *h) +{ + return h->pprev == &h->next; +} + +/*!is node the only element of the specified hlist?. + * \param[in] n Node to check for singularity. + * \param[in] h Header for potentially singular list. + * + * Check whether the node is the only node of the head without + * accessing head, thus avoiding unnecessary cache misses. + */ +static inline bool +hlist_is_singular_node(struct hlist_node *n, struct hlist_head *h) +{ + return !n->next && n->pprev == &h->first; +} + +/*! Move an hlist. + * \param[in] old hlist_head for old list. + * \param[in] new hlist_head for new list. + * + * Move a list from one list head to another. Fixup the pprev + * reference of the first entry if it exists. + */ +static inline void hlist_move_list(struct hlist_head *old, + struct hlist_head *new) +{ + new->first = old->first; + if (new->first) + new->first->pprev = &new->first; + old->first = NULL; +} + +#define hlist_entry(ptr, type, member) container_of(ptr,type,member) + +#define hlist_for_each(pos, head) \ + for (pos = (head)->first; pos ; pos = pos->next) + +#define hlist_for_each_safe(pos, n, head) \ + for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \ + pos = n) + +#define hlist_entry_safe(ptr, type, member) \ + ({ typeof(ptr) ____ptr = (ptr); \ + ____ptr ? hlist_entry(____ptr, type, member) : NULL; \ + }) + +/*! iterate over list of given type. + * \param[out] pos the type * to use as a loop cursor. + * \param[in] head the head for your list. + * \param[in] member the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry(pos, head, member) \ + for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\ + pos; \ + pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) + +/*! iterate over a hlist continuing after current point. + * \param[out] pos the type * to use as a loop cursor. + * \param[in] member the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry_continue(pos, member) \ + for (pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member);\ + pos; \ + pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) + +/*! iterate over a hlist continuing from current point. + * \param[out] pos the type * to use as a loop cursor. + * \param[in] member the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry_from(pos, member) \ + for (; pos; \ + pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) + +/*! hlist_for_each_entry_safe - iterate over list of given type safe against removal of list entry. + * \param[out] pos the type * to use as a loop cursor. + * \param[out] n a &struct hlist_node to use as temporary storage + * \param[in] head the head for your list. + * \param[in] member the name of the hlist_node within the struct + */ +#define hlist_for_each_entry_safe(pos, n, head, member) \ + for (pos = hlist_entry_safe((head)->first, typeof(*pos), member);\ + pos && ({ n = pos->member.next; 1; }); \ + pos = hlist_entry_safe(n, typeof(*pos), member)) + + /*! * @} */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Gerrit-Change-Number: 21547 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 Dec 4 20:52:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 20:52:45 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21544 ) Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21544/1/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/21544/1/src/gb/gprs_bssgp_util.c at 209 PS1, Line 209: static const uint8_t crt_bss_pfc_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }; > feeling like I'm looking at wireshark code ;) [?] I'm not sure I understand your suggestion. Feel free to try it with another of our many protocol definitions as an example? https://gerrit.osmocom.org/c/libosmocore/+/21544/1/src/gb/gprs_bssgp_util.c at 239 PS1, Line 239: [BSSGP_PDUT_DL_UNITDATA] = MSG_DEF("DL-UNITDAT", dl_ud_ies), > missing A in data. Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 04 Dec 2020 20:52: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 gerrit-no-reply at lists.osmocom.org Fri Dec 4 20:55:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 20:55:49 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols 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/+/21534 to look at the new patch set (#4). Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols This extends our existing TLV parser with the ability to * validate that mandatory IEs of a given message are present * validate that all present IEs are of required minimum length Introducing this generic layer will help us to reduce open-coded imperative verification across virtually all the protocols we implement, as well as add validation to those protocols where we don't properly perform related input validation yet. Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 --- M include/osmocom/gsm/tlv.h M src/gsm/libosmogsm.map M src/gsm/tlv_parser.c 3 files changed, 150 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/21534/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 4 Gerrit-Owner: laforge 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 Dec 4 20:55:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 4 Dec 2020 20:55:49 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP 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/+/21544 to look at the new patch set (#3). Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... bssgp: Add osmo_tlv_prot_def for BSSGP Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 --- M include/osmocom/gprs/gprs_bssgp.h M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 3 files changed, 282 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/21544/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Dec 5 01:43:35 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 05 Dec 2020 01:43:35 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fcae5d320a34_1bee2aad75dd45f81942b2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Testing/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb25:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 5 02:29:36 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 05 Dec 2020 02:29:36 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fcaf09e25d20_1bee2aad75dd45f8203613@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: [ 296s] [COMPILING apps/dfu/main.c] [ 296s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 296s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 296s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 296s] Memory region Used Size Region Size %age Used [ 296s] rom: 16580 B 16 KB 101.20% [ 296s] 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 [ 296s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 296s] /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' [ 296s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 296s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 296s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 296s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 296s] collect2: error: ld returned 1 exit status [ 296s] % [ 296s] make[2]: *** [Makefile:234: flash] Error 1 [ 296s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 296s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 296s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 296s] dh_auto_build: error: make -j1 returned exit code 2 [ 296s] make: *** [debian/rules:16: build] Error 25 [ 296s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 296s] ### VM INTERACTION START ### [ 299s] [ 275.897749] sysrq: Power Off [ 299s] [ 275.901744] reboot: Power down [ 299s] ### VM INTERACTION END ### [ 300s] [ 300s] lamb01 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Dec 5 02:29:23 UTC 2020. [ 300s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 5 02:32:27 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 05 Dec 2020 02:32:27 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fcaf150a18bd_1bee2aad75dd45f820418e@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: [ 169s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 169s] [COMPILING libboard/qmod/source/card_pres.c] [ 169s] [COMPILING libboard/qmod/source/wwan_led.c] [ 169s] [COMPILING libboard/qmod/source/i2c.c] [ 169s] [COMPILING libboard/qmod/source/board_qmod.c] [ 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] [ 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] [ 163.317947] sysrq: Power Off [ 174s] [ 163.358100] reboot: Power down [ 174s] ### VM INTERACTION END ### [ 174s] [ 174s] lamb19 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Dec 5 02:32:01 UTC 2020. [ 174s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From jenkins at lists.osmocom.org Sat Dec 5 09:07:39 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 5 Dec 2020 09:07:39 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master?= =?UTF-8?Q?-osmo-ccid-firmware_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,a4=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#403?= In-Reply-To: <1906603874.822.1607072971629@jenkins.osmocom.org> References: <1906603874.822.1607072971629@jenkins.osmocom.org> Message-ID: <438568691.887.1607159259650@jenkins.osmocom.org> See Changes: ------------------------------------------ [...truncated 84.76 KB...] checking whether arm-none-eabi-gcc is Clang... no checking whether pthreads work with -pthread... no checking whether pthreads work with -pthreads... no checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... no checking whether pthreads work with -Kthread... no checking whether pthreads work with -pthread... no checking whether pthreads work with -pthreads... no checking whether pthreads work with -mthreads... no checking for the pthreads library -lpthread... no checking whether pthreads work with --thread-safe... no checking whether pthreads work with -mt... no checking for pthread-config... no checking for library containing clock_gettime... no checking for doxygen... /usr/bin/doxygen checking whether SYS_getrandom is declared... no checking if arm-none-eabi-gcc supports -fvisibility=hidden... yes checking for localtime_r... no checking whether struct tm has tm_gmtoff member... no checking whether to workaround TLS bug in old gcc on ARM platforms... -mtls-dialect=gnu2 configure: WARNING: Applying workaround for TLS bug on ARM platform for GCC < 7.3.0 (-mtls-dialect=gnu2). On some toolchain versions, ld may crash. In that case you must build with CFLAGS='-O0' and run ./configure with --disable-detect-tls-gcc-arm-bug checking for TALLOC... yes checking for PCSC... yes checking for LIBGNUTLS... yes checking for LIBMNL... yes checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/site-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/site-packages checking for osmo_verify_transcript_vty.py... yes checking whether to enable VTY/CTRL tests... yes checking whether to enable ARM NEON instructions support... no checking whether to build with code coverage support... no checking whether arm-none-eabi-gcc has __builtin_cpu_supports built-in... no configure: WARNING: Runtime SIMD detection will be disabled CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -mthumb -Os -mlong-calls -g3 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -I /home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM -Wno-error=format -mtls-dialect=gnu2 -DBUILDING_LIBOSMOCORE -Wall" CPPFLAGS="-D__thread='' -DBUILDING_LIBOSMOCORE -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmocore.pc config.status: creating libosmocodec.pc config.status: creating libosmocoding.pc config.status: creating libosmovty.pc config.status: creating libosmogsm.pc config.status: creating libosmogb.pc config.status: creating libosmoctrl.pc config.status: creating libosmosim.pc config.status: creating libosmousb.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/vty/Makefile config.status: creating src/codec/Makefile config.status: creating src/coding/Makefile config.status: creating src/sim/Makefile config.status: creating src/usb/Makefile config.status: creating src/gsm/Makefile config.status: creating src/gb/Makefile config.status: creating src/ctrl/Makefile config.status: creating src/pseudotalloc/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating utils/Makefile config.status: creating Doxyfile.core config.status: creating Doxyfile.gsm config.status: creating Doxyfile.vty config.status: creating Doxyfile.codec config.status: creating Doxyfile.coding config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating contrib/libosmocore.spec config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.4.0.248-e3b20 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/libosmocore' Making install in include make[2]: Entering directory '/build/deps/libosmocore/include' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'tch_axs_sid_update' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory '/build/deps/libosmocore/include' GEN osmocom/core/bit32gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc32gen.h make[4]: Entering directory '/build/deps/libosmocore/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/install/stow/libosmocore/include' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/core' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/exec.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/mnl.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h '/build/install/stow/libosmocore/include/osmocom/core' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/cbsp.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/bsslap.h osmocom/gsm/bssmap_le.h osmocom/gsm/gad.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm0808_lcs.h osmocom/gsm/gsm29205.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm23236.h osmocom/gsm/gsm29118.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_arfcn_range_encode.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm48_rest_octets.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/gsup_sms.h osmocom/gsm/i460_mux.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h '/build/install/stow/libosmocore/include/osmocom/gsm' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/coding' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h osmocom/coding/gsm0503_amr_dtx.h '/build/install/stow/libosmocore/include/osmocom/coding' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/core' /usr/bin/install -c -m 644 osmocom/core/signal.h osmocom/core/socket.h osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/tdef.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/sockaddr_str.h osmocom/core/use_count.h '/build/install/stow/libosmocore/include/osmocom/core' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm/protocol' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_23_032.h osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_23_041.h osmocom/gsm/protocol/gsm_29_118.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/gsm_48_049.h osmocom/gsm/protocol/gsm_48_071.h osmocom/gsm/protocol/gsm_49_031.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h '/build/install/stow/libosmocore/include/osmocom/gsm/protocol' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/sim' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h '/build/install/stow/libosmocore/include/osmocom/sim' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gprs' /usr/bin/install -c -m 644 osmocom/gprs/frame_relay.h osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_ns2.h osmocom/gprs/gprs_rlc.h '/build/install/stow/libosmocore/include/osmocom/gprs' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/crypt' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h '/build/install/stow/libosmocore/include/osmocom/crypt' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm' /usr/bin/install -c -m 644 osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/oap_client.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h '/build/install/stow/libosmocore/include/osmocom/gsm' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/ctrl' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h '/build/install/stow/libosmocore/include/osmocom/ctrl' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gprs/protocol' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h '/build/install/stow/libosmocore/include/osmocom/gprs/protocol' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/codec' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h '/build/install/stow/libosmocore/include/osmocom/codec' make[4]: Leaving directory '/build/deps/libosmocore/include' make[3]: Leaving directory '/build/deps/libosmocore/include' make[2]: Leaving directory '/build/deps/libosmocore/include' Making install in src make[2]: Entering directory '/build/deps/libosmocore/src' GEN crc8gen.c GEN crc16gen.c GEN crc32gen.c GEN crc64gen.c make install-am make[3]: Entering directory '/build/deps/libosmocore/src' CC context.lo CC timer.lo CC timer_gettimeofday.lo CC select.lo CC signal.lo CC timer_clockgettime.lo CC msgb.lo CC bits.lo CC bitvec.lo CC bitcomp.lo CC counter.lo CC fsm.lo CC write_queue.lo CC utils.lo CC socket.lo CC logging.lo CC logging_syslog.lo CC rate_ctr.lo CC logging_gsmtap.lo CC gsmtap_util.lo logging.c:119:9: note: #pragma message: logging multithread support disabled in embedded build #pragma message ("logging multithread support disabled in embedded build") ^ CC crc16.lo CC panic.lo CC backtrace.lo CC conv.lo CC application.lo CC rbtree.lo CC strrb.lo CC loggingrb.lo CC crc8gen.lo CC crc16gen.lo CC crc32gen.lo CC crc64gen.lo CC macaddr.lo CC stat_item.lo CC stats.lo CC stats_statsd.lo CC prim.lo CC conv_acc.lo CC conv_acc_generic.lo CC sercomm.lo CC prbs.lo CC isdnhdlc.lo CC tdef.lo CC sockaddr_str.lo CC use_count.lo CC exec.lo CC mnl.lo In file included from mnl.c:34:0: ../include/osmocom/core/mnl.h:7:27: fatal error: libmnl/libmnl.h: No such file or directory compilation terminated. make[3]: *** [mnl.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... Makefile:624: recipe for target 'mnl.lo' failed make[3]: Leaving directory '/build/deps/libosmocore/src' Makefile:728: recipe for target 'install' failed make[2]: *** [install] Error 2 make[2]: Leaving directory '/build/deps/libosmocore/src' Makefile:705: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmocore' make[1]: *** [install-recursive] Error 1 Makefile:1004: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sat Dec 5 10:40:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:40:33 +0000 Subject: Change in libosmocore[master]: Add hlist and hashtable from Linux kernel In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21547 ) Change subject: Add hlist and hashtable from Linux kernel ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Gerrit-Change-Number: 21547 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 05 Dec 2020 10:40: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 Sat Dec 5 10:51:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:51:33 +0000 Subject: Change in libosmocore[master]: Add hlist and hashtable from Linux kernel In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21547 ) Change subject: Add hlist and hashtable from Linux kernel ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Gerrit-Change-Number: 21547 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 05 Dec 2020 10:51: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 Sat Dec 5 10:51:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:51:36 +0000 Subject: Change in libosmocore[master]: Add hlist and hashtable from Linux kernel In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21547 ) Change subject: Add hlist and hashtable from Linux kernel ...................................................................... Add hlist and hashtable from Linux kernel For more than a decade we've used the linuxlist.h for double-linked lists. Let's also add the hlist (double-linked lists with single pointer sized head, and the hashtable that builds on top of it. This reflects the versions included in Linux 5.8 with some modifications to make them build in userspace (remove RCU versions, adjust for userspace include files and types, convert to doxygen). Change-Id: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 --- M include/Makefile.am A include/osmocom/core/hash.h A include/osmocom/core/hashtable.h M include/osmocom/core/linuxlist.h A include/osmocom/core/log2.h 5 files changed, 617 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/Makefile.am b/include/Makefile.am index 71171a4..f13ae76 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -27,9 +27,12 @@ osmocom/core/fsm.h \ osmocom/core/gsmtap.h \ osmocom/core/gsmtap_util.h \ + osmocom/core/hash.h \ + osmocom/core/hashtable.h \ osmocom/core/isdnhdlc.h \ osmocom/core/linuxlist.h \ osmocom/core/linuxrbtree.h \ + osmocom/core/log2.h \ osmocom/core/logging.h \ osmocom/core/loggingrb.h \ osmocom/core/mnl.h \ diff --git a/include/osmocom/core/hash.h b/include/osmocom/core/hash.h new file mode 100644 index 0000000..b45c036 --- /dev/null +++ b/include/osmocom/core/hash.h @@ -0,0 +1,101 @@ +#pragma once +#include +/* Fast hashing routine for ints, longs and pointers. + (C) 2002 Nadia Yvette Chambers, IBM */ + +#include +#if ULONG_MAX == 4294967295 +#define BITS_PER_LONG 32 +#else +#define BITS_PER_LONG 64 +#endif + +/* + * The "GOLDEN_RATIO_PRIME" is used in ifs/btrfs/brtfs_inode.h and + * fs/inode.c. It's not actually prime any more (the previous primes + * were actively bad for hashing), but the name remains. + */ +#if BITS_PER_LONG == 32 +#define GOLDEN_RATIO_PRIME GOLDEN_RATIO_32 +#define hash_long(val, bits) hash_32(val, bits) +#elif BITS_PER_LONG == 64 +#define hash_long(val, bits) hash_64(val, bits) +#define GOLDEN_RATIO_PRIME GOLDEN_RATIO_64 +#else +#error Wordsize not 32 or 64 +#endif + +/* + * This hash multiplies the input by a large odd number and takes the + * high bits. Since multiplication propagates changes to the most + * significant end only, it is essential that the high bits of the + * product be used for the hash value. + * + * Chuck Lever verified the effectiveness of this technique: + * http://www.citi.umich.edu/techreports/reports/citi-tr-00-1.pdf + * + * Although a random odd number will do, it turns out that the golden + * ratio phi = (sqrt(5)-1)/2, or its negative, has particularly nice + * properties. (See Knuth vol 3, section 6.4, exercise 9.) + * + * These are the negative, (1 - phi) = phi**2 = (3 - sqrt(5))/2, + * which is very slightly easier to multiply by and makes no + * difference to the hash distribution. + */ +#define GOLDEN_RATIO_32 0x61C88647 +#define GOLDEN_RATIO_64 0x61C8864680B583EBull + +/* + * The _generic versions exist only so lib/test_hash.c can compare + * the arch-optimized versions with the generic. + * + * Note that if you change these, any that aren't updated + * to match need to have their HAVE_ARCH_* define values updated so the + * self-test will not false-positive. + */ +#ifndef HAVE_ARCH__HASH_32 +#define __hash_32 __hash_32_generic +#endif +static inline uint32_t __hash_32_generic(uint32_t val) +{ + return val * GOLDEN_RATIO_32; +} + +#ifndef HAVE_ARCH_HASH_32 +#define hash_32 hash_32_generic +#endif +static inline uint32_t hash_32_generic(uint32_t val, unsigned int bits) +{ + /* High bits are more random, so use them. */ + return __hash_32(val) >> (32 - bits); +} + +#ifndef HAVE_ARCH_HASH_64 +#define hash_64 hash_64_generic +#endif +static __always_inline uint32_t hash_64_generic(uint64_t val, unsigned int bits) +{ +#if BITS_PER_LONG == 64 + /* 64x64-bit multiply is efficient on all 64-bit processors */ + return val * GOLDEN_RATIO_64 >> (64 - bits); +#else + /* Hash 64 bits using only 32x32-bit multiply. */ + return hash_32((uint32_t)val ^ __hash_32(val >> 32), bits); +#endif +} + +static inline uint32_t hash_ptr(const void *ptr, unsigned int bits) +{ + return hash_long((unsigned long)ptr, bits); +} + +/* This really should be called fold32_ptr; it does no hashing to speak of. */ +static inline uint32_t hash32_ptr(const void *ptr) +{ + unsigned long val = (unsigned long)ptr; + +#if BITS_PER_LONG == 64 + val ^= (val >> 32); +#endif + return (uint32_t)val; +} diff --git a/include/osmocom/core/hashtable.h b/include/osmocom/core/hashtable.h new file mode 100644 index 0000000..acaf6b9 --- /dev/null +++ b/include/osmocom/core/hashtable.h @@ -0,0 +1,141 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Statically sized hash table implementation + * (C) 2012 Sasha Levin + */ + +#pragma once + +#include +#include + +#define DEFINE_HASHTABLE(name, bits) \ + struct hlist_head name[1 << (bits)] = \ + { [0 ... ((1 << (bits)) - 1)] = HLIST_HEAD_INIT } + +#define DECLARE_HASHTABLE(name, bits) \ + struct hlist_head name[1 << (bits)] + +#define HASH_SIZE(name) (ARRAY_SIZE(name)) +#define HASH_BITS(name) ilog2(HASH_SIZE(name)) + +/* Use hash_32 when possible to allow for fast 32bit hashing in 64bit kernels. */ +#define hash_min(val, bits) \ + (sizeof(val) <= 4 ? hash_32(val, bits) : hash_long(val, bits)) + +static inline void __hash_init(struct hlist_head *ht, unsigned int sz) +{ + unsigned int i; + + for (i = 0; i < sz; i++) + INIT_HLIST_HEAD(&ht[i]); +} + +/** + * hash_init - initialize a hash table + * @hashtable: hashtable to be initialized + * + * Calculates the size of the hashtable from the given parameter, otherwise + * same as hash_init_size. + * + * This has to be a macro since HASH_BITS() will not work on pointers since + * it calculates the size during preprocessing. + */ +#define hash_init(hashtable) __hash_init(hashtable, HASH_SIZE(hashtable)) + +/** + * hash_add - add an object to a hashtable + * @hashtable: hashtable to add to + * @node: the &struct hlist_node of the object to be added + * @key: the key of the object to be added + */ +#define hash_add(hashtable, node, key) \ + hlist_add_head(node, &hashtable[hash_min(key, HASH_BITS(hashtable))]) + +/** + * hash_hashed - check whether an object is in any hashtable + * @node: the &struct hlist_node of the object to be checked + */ +static inline bool hash_hashed(struct hlist_node *node) +{ + return !hlist_unhashed(node); +} + +static inline bool __hash_empty(struct hlist_head *ht, unsigned int sz) +{ + unsigned int i; + + for (i = 0; i < sz; i++) + if (!hlist_empty(&ht[i])) + return false; + + return true; +} + +/** + * hash_empty - check whether a hashtable is empty + * @hashtable: hashtable to check + * + * This has to be a macro since HASH_BITS() will not work on pointers since + * it calculates the size during preprocessing. + */ +#define hash_empty(hashtable) __hash_empty(hashtable, HASH_SIZE(hashtable)) + +/** + * hash_del - remove an object from a hashtable + * @node: &struct hlist_node of the object to remove + */ +static inline void hash_del(struct hlist_node *node) +{ + hlist_del_init(node); +} + +/** + * hash_for_each - iterate over a hashtable + * @name: hashtable to iterate + * @bkt: integer to use as bucket loop cursor + * @obj: the type * to use as a loop cursor for each entry + * @member: the name of the hlist_node within the struct + */ +#define hash_for_each(name, bkt, obj, member) \ + for ((bkt) = 0, obj = NULL; obj == NULL && (bkt) < HASH_SIZE(name);\ + (bkt)++)\ + hlist_for_each_entry(obj, &name[bkt], member) + +/** + * hash_for_each_safe - iterate over a hashtable safe against removal of + * hash entry + * @name: hashtable to iterate + * @bkt: integer to use as bucket loop cursor + * @tmp: a &struct hlist_node used for temporary storage + * @obj: the type * to use as a loop cursor for each entry + * @member: the name of the hlist_node within the struct + */ +#define hash_for_each_safe(name, bkt, tmp, obj, member) \ + for ((bkt) = 0, obj = NULL; obj == NULL && (bkt) < HASH_SIZE(name);\ + (bkt)++)\ + hlist_for_each_entry_safe(obj, tmp, &name[bkt], member) + +/** + * hash_for_each_possible - iterate over all possible objects hashing to the + * same bucket + * @name: hashtable to iterate + * @obj: the type * to use as a loop cursor for each entry + * @member: the name of the hlist_node within the struct + * @key: the key of the objects to iterate over + */ +#define hash_for_each_possible(name, obj, member, key) \ + hlist_for_each_entry(obj, &name[hash_min(key, HASH_BITS(name))], member) + +/** + * hash_for_each_possible_safe - iterate over all possible objects hashing to the + * same bucket safe against removals + * @name: hashtable to iterate + * @obj: the type * to use as a loop cursor for each entry + * @tmp: a &struct hlist_node used for temporary storage + * @member: the name of the hlist_node within the struct + * @key: the key of the objects to iterate over + */ +#define hash_for_each_possible_safe(name, obj, tmp, member, key) \ + hlist_for_each_entry_safe(obj, tmp,\ + &name[hash_min(key, HASH_BITS(name))], member) diff --git a/include/osmocom/core/linuxlist.h b/include/osmocom/core/linuxlist.h index 867605e..2c3a0a4 100644 --- a/include/osmocom/core/linuxlist.h +++ b/include/osmocom/core/linuxlist.h @@ -16,6 +16,7 @@ * \file linuxlist.h */ #include +#include #ifndef inline #define inline __inline__ @@ -393,6 +394,252 @@ return i; } + + +/*! Double linked lists with a single pointer list head. + * Mostly useful for hash tables where the two pointer list head is + * too wasteful. + * You lose the ability to access the tail in O(1). + */ + +struct hlist_head { + struct hlist_node *first; +}; + +struct hlist_node { + struct hlist_node *next, **pprev; +}; + +#define HLIST_HEAD_INIT { .first = NULL } +#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL } +#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL) +static inline void INIT_HLIST_NODE(struct hlist_node *h) +{ + h->next = NULL; + h->pprev = NULL; +} + +#define READ_ONCE(x) x +#define WRITE_ONCE(a, b) a = b + +/*! Has node been removed from list and reinitialized?. + * \param[in] h: Node to be checked + * \return 1 if node is unhashed; 0 if not + * + * Not that not all removal functions will leave a node in unhashed + * state. For example, hlist_nulls_del_init_rcu() does leave the + * node in unhashed state, but hlist_nulls_del() does not. + */ +static inline int hlist_unhashed(const struct hlist_node *h) +{ + return !h->pprev; +} + +/*! Version of hlist_unhashed for lockless use. + * \param[in] n Node to be checked + * \return 1 if node is unhashed; 0 if not + * + * This variant of hlist_unhashed() must be used in lockless contexts + * to avoid potential load-tearing. The READ_ONCE() is paired with the + * various WRITE_ONCE() in hlist helpers that are defined below. + */ +static inline int hlist_unhashed_lockless(const struct hlist_node *h) +{ + return !READ_ONCE(h->pprev); +} + +/*!Is the specified hlist_head structure an empty hlist?. + * \param[in] h Structure to check. + * \return 1 if hlist is empty; 0 if not + */ +static inline int hlist_empty(const struct hlist_head *h) +{ + return !READ_ONCE(h->first); +} + +static inline void __hlist_del(struct hlist_node *n) +{ + struct hlist_node *next = n->next; + struct hlist_node **pprev = n->pprev; + + WRITE_ONCE(*pprev, next); + if (next) + WRITE_ONCE(next->pprev, pprev); +} + +/*! Delete the specified hlist_node from its list. + * \param[in] n: Node to delete. + * + * Note that this function leaves the node in hashed state. Use + * hlist_del_init() or similar instead to unhash @n. + */ +static inline void hlist_del(struct hlist_node *n) +{ + __hlist_del(n); + n->next = LLIST_POISON1; + n->pprev = LLIST_POISON2; +} + +/*! Delete the specified hlist_node from its list and initialize. + * \param[in] n Node to delete. + * + * Note that this function leaves the node in unhashed state. + */ +static inline void hlist_del_init(struct hlist_node *n) +{ + if (!hlist_unhashed(n)) { + __hlist_del(n); + INIT_HLIST_NODE(n); + } +} + +/*! add a new entry at the beginning of the hlist. + * \param[in] n new entry to be added + * \param[in] h hlist head to add it after + * + * Insert a new entry after the specified head. + * This is good for implementing stacks. + */ +static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h) +{ + struct hlist_node *first = h->first; + WRITE_ONCE(n->next, first); + if (first) + WRITE_ONCE(first->pprev, &n->next); + WRITE_ONCE(h->first, n); + WRITE_ONCE(n->pprev, &h->first); +} + +/*! add a new entry before the one specified. + * @n: new entry to be added + * @next: hlist node to add it before, which must be non-NULL + */ +static inline void hlist_add_before(struct hlist_node *n, + struct hlist_node *next) +{ + WRITE_ONCE(n->pprev, next->pprev); + WRITE_ONCE(n->next, next); + WRITE_ONCE(next->pprev, &n->next); + WRITE_ONCE(*(n->pprev), n); +} + +/*! add a new entry after the one specified + * \param[in] n new entry to be added + * \param[in] prev hlist node to add it after, which must be non-NULL + */ +static inline void hlist_add_behind(struct hlist_node *n, + struct hlist_node *prev) +{ + WRITE_ONCE(n->next, prev->next); + WRITE_ONCE(prev->next, n); + WRITE_ONCE(n->pprev, &prev->next); + + if (n->next) + WRITE_ONCE(n->next->pprev, &n->next); +} + +/*! create a fake hlist consisting of a single headless node. + * \param[in] n Node to make a fake list out of + * + * This makes @n appear to be its own predecessor on a headless hlist. + * The point of this is to allow things like hlist_del() to work correctly + * in cases where there is no list. + */ +static inline void hlist_add_fake(struct hlist_node *n) +{ + n->pprev = &n->next; +} + +/*! Is this node a fake hlist?. + * \param[in] h Node to check for being a self-referential fake hlist. + */ +static inline bool hlist_fake(struct hlist_node *h) +{ + return h->pprev == &h->next; +} + +/*!is node the only element of the specified hlist?. + * \param[in] n Node to check for singularity. + * \param[in] h Header for potentially singular list. + * + * Check whether the node is the only node of the head without + * accessing head, thus avoiding unnecessary cache misses. + */ +static inline bool +hlist_is_singular_node(struct hlist_node *n, struct hlist_head *h) +{ + return !n->next && n->pprev == &h->first; +} + +/*! Move an hlist. + * \param[in] old hlist_head for old list. + * \param[in] new hlist_head for new list. + * + * Move a list from one list head to another. Fixup the pprev + * reference of the first entry if it exists. + */ +static inline void hlist_move_list(struct hlist_head *old, + struct hlist_head *new) +{ + new->first = old->first; + if (new->first) + new->first->pprev = &new->first; + old->first = NULL; +} + +#define hlist_entry(ptr, type, member) container_of(ptr,type,member) + +#define hlist_for_each(pos, head) \ + for (pos = (head)->first; pos ; pos = pos->next) + +#define hlist_for_each_safe(pos, n, head) \ + for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \ + pos = n) + +#define hlist_entry_safe(ptr, type, member) \ + ({ typeof(ptr) ____ptr = (ptr); \ + ____ptr ? hlist_entry(____ptr, type, member) : NULL; \ + }) + +/*! iterate over list of given type. + * \param[out] pos the type * to use as a loop cursor. + * \param[in] head the head for your list. + * \param[in] member the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry(pos, head, member) \ + for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\ + pos; \ + pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) + +/*! iterate over a hlist continuing after current point. + * \param[out] pos the type * to use as a loop cursor. + * \param[in] member the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry_continue(pos, member) \ + for (pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member);\ + pos; \ + pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) + +/*! iterate over a hlist continuing from current point. + * \param[out] pos the type * to use as a loop cursor. + * \param[in] member the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry_from(pos, member) \ + for (; pos; \ + pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) + +/*! hlist_for_each_entry_safe - iterate over list of given type safe against removal of list entry. + * \param[out] pos the type * to use as a loop cursor. + * \param[out] n a &struct hlist_node to use as temporary storage + * \param[in] head the head for your list. + * \param[in] member the name of the hlist_node within the struct + */ +#define hlist_for_each_entry_safe(pos, n, head, member) \ + for (pos = hlist_entry_safe((head)->first, typeof(*pos), member);\ + pos && ({ n = pos->member.next; 1; }); \ + pos = hlist_entry_safe(n, typeof(*pos), member)) + + /*! * @} */ diff --git a/include/osmocom/core/log2.h b/include/osmocom/core/log2.h new file mode 100644 index 0000000..06b20f8 --- /dev/null +++ b/include/osmocom/core/log2.h @@ -0,0 +1,125 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* Integer base 2 logarithm calculation + * + * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells at redhat.com) + */ + +#pragma once + +/* + * non-constant log of base 2 calculators + * - the arch may override these in asm/bitops.h if they can be implemented + * more efficiently than using fls() and fls64() + * - the arch is not required to handle n==0 if implementing the fallback + */ +#ifndef CONFIG_ARCH_HAS_ILOG2_U32 +static inline __attribute__((const)) +int __ilog2_u32(uint32_t n) +{ + return fls(n) - 1; +} +#endif + +#ifndef CONFIG_ARCH_HAS_ILOG2_U64 +static inline __attribute__((const)) +int __ilog2_u64(uint64_t n) +{ + return fls64(n) - 1; +} +#endif + +/** + * const_ilog2 - log base 2 of 32-bit or a 64-bit constant unsigned value + * @n: parameter + * + * Use this where sparse expects a true constant expression, e.g. for array + * indices. + */ +#define const_ilog2(n) \ +( \ + __builtin_constant_p(n) ? ( \ + (n) < 2 ? 0 : \ + (n) & (1ULL << 63) ? 63 : \ + (n) & (1ULL << 62) ? 62 : \ + (n) & (1ULL << 61) ? 61 : \ + (n) & (1ULL << 60) ? 60 : \ + (n) & (1ULL << 59) ? 59 : \ + (n) & (1ULL << 58) ? 58 : \ + (n) & (1ULL << 57) ? 57 : \ + (n) & (1ULL << 56) ? 56 : \ + (n) & (1ULL << 55) ? 55 : \ + (n) & (1ULL << 54) ? 54 : \ + (n) & (1ULL << 53) ? 53 : \ + (n) & (1ULL << 52) ? 52 : \ + (n) & (1ULL << 51) ? 51 : \ + (n) & (1ULL << 50) ? 50 : \ + (n) & (1ULL << 49) ? 49 : \ + (n) & (1ULL << 48) ? 48 : \ + (n) & (1ULL << 47) ? 47 : \ + (n) & (1ULL << 46) ? 46 : \ + (n) & (1ULL << 45) ? 45 : \ + (n) & (1ULL << 44) ? 44 : \ + (n) & (1ULL << 43) ? 43 : \ + (n) & (1ULL << 42) ? 42 : \ + (n) & (1ULL << 41) ? 41 : \ + (n) & (1ULL << 40) ? 40 : \ + (n) & (1ULL << 39) ? 39 : \ + (n) & (1ULL << 38) ? 38 : \ + (n) & (1ULL << 37) ? 37 : \ + (n) & (1ULL << 36) ? 36 : \ + (n) & (1ULL << 35) ? 35 : \ + (n) & (1ULL << 34) ? 34 : \ + (n) & (1ULL << 33) ? 33 : \ + (n) & (1ULL << 32) ? 32 : \ + (n) & (1ULL << 31) ? 31 : \ + (n) & (1ULL << 30) ? 30 : \ + (n) & (1ULL << 29) ? 29 : \ + (n) & (1ULL << 28) ? 28 : \ + (n) & (1ULL << 27) ? 27 : \ + (n) & (1ULL << 26) ? 26 : \ + (n) & (1ULL << 25) ? 25 : \ + (n) & (1ULL << 24) ? 24 : \ + (n) & (1ULL << 23) ? 23 : \ + (n) & (1ULL << 22) ? 22 : \ + (n) & (1ULL << 21) ? 21 : \ + (n) & (1ULL << 20) ? 20 : \ + (n) & (1ULL << 19) ? 19 : \ + (n) & (1ULL << 18) ? 18 : \ + (n) & (1ULL << 17) ? 17 : \ + (n) & (1ULL << 16) ? 16 : \ + (n) & (1ULL << 15) ? 15 : \ + (n) & (1ULL << 14) ? 14 : \ + (n) & (1ULL << 13) ? 13 : \ + (n) & (1ULL << 12) ? 12 : \ + (n) & (1ULL << 11) ? 11 : \ + (n) & (1ULL << 10) ? 10 : \ + (n) & (1ULL << 9) ? 9 : \ + (n) & (1ULL << 8) ? 8 : \ + (n) & (1ULL << 7) ? 7 : \ + (n) & (1ULL << 6) ? 6 : \ + (n) & (1ULL << 5) ? 5 : \ + (n) & (1ULL << 4) ? 4 : \ + (n) & (1ULL << 3) ? 3 : \ + (n) & (1ULL << 2) ? 2 : \ + 1) : \ + -1) + +/** + * ilog2 - log base 2 of 32-bit or a 64-bit unsigned value + * @n: parameter + * + * constant-capable log of base 2 calculation + * - this can be used to initialise global variables from constant data, hence + * the massive ternary operator construction + * + * selects the appropriately-sized optimised version depending on sizeof(n) + */ +#define ilog2(n) \ +( \ + __builtin_constant_p(n) ? \ + const_ilog2(n) : \ + (sizeof(n) <= 4) ? \ + __ilog2_u32(n) : \ + __ilog2_u64(n) \ + ) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Gerrit-Change-Number: 21547 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 Sat Dec 5 10:52:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:52:05 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs 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/+/21477 to look at the new patch set (#3). Change subject: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs ...................................................................... gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs Change-Id: I198ca70f5e0947735f76d32cd9d3eed159349a94 --- M src/gbproxy/gb_proxy.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/77/21477/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I198ca70f5e0947735f76d32cd9d3eed159349a94 Gerrit-Change-Number: 21477 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Sat Dec 5 10:52:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:52:06 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Rename gbproxy_peer to gbproxy_bvc References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21548 ) Change subject: gb_proxy: Rename gbproxy_peer to gbproxy_bvc ...................................................................... gb_proxy: Rename gbproxy_peer to gbproxy_bvc I cannot really read the code while it contains its historical weird naming. A "peer" used to be a strange amalgamation of NSE + BVC, while in reality we can have any number of BVC on top of each NSE. We recently started to split the peer into a gbproxy_nse_peer + gbproxy_peer. This takes it one step further and renames gbproxy_peer to gbproxy_bvc, as that's really what it is. Change-Id: Iae01067282a6401f6af4cab731202872d2cdb080 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c 7 files changed, 545 insertions(+), 541 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/48/21548/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index b3a9a6c..818ab9d 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -37,7 +37,7 @@ GBPROX_GLOB_CTR_PATCH_PEER_ERR, }; -enum gbproxy_peer_ctr { +enum gbproxy_bvc_ctr { GBPROX_PEER_CTR_BLOCKED, GBPROX_PEER_CTR_UNBLOCKED, GBPROX_PEER_CTR_DROPPED, @@ -102,7 +102,7 @@ struct gprs_ns2_inst *nsi; /* Linked list of all Gb peers (except SGSN) */ - struct llist_head nse_peers; + struct llist_head nses; /* Counter */ struct rate_ctr_group *ctrg; @@ -118,7 +118,7 @@ unsigned int clean_stale_timer_freq; /* If !0, Max age to consider a struct gbproxy_link_info as stale */ int tlli_max_age; - /* If !0, Max len of gbproxy_peer->list (list of struct gbproxy_link_info) */ + /* If !0, Max len of gbproxy_bvc->list (list of struct gbproxy_link_info) */ int tlli_max_len; /* If !0, Max len of gbproxy_link_info->stored_msgs (list of msgb) */ uint32_t stored_msgs_max_len; @@ -147,17 +147,17 @@ }; /* One BVC inside an NSE */ -struct gbproxy_peer { - /* linked to gbproxy_nse.bts_peers */ +struct gbproxy_bvc { + /* linked to gbproxy_nse.bvcs */ struct llist_head list; - /* The peer this BVC belongs to */ + /* The NSE this BVC belongs to */ struct gbproxy_nse *nse; - /* BVCI used for Point-to-Point to this peer */ + /* PTP BVCI of this BVC */ uint16_t bvci; - /* Routing Area that this peer is part of (raw 04.08 encoding) */ + /* Routing Area that this BVC is part of (raw 04.08 encoding) */ uint8_t ra[6]; /* true if this BVC is blocked */ @@ -173,19 +173,19 @@ struct osmo_timer_list clean_stale_timer; }; -/* one peer at NS level that we interact with (BSS/PCU) */ +/* one NS Entity that we interact with (BSS/PCU) */ struct gbproxy_nse { - /* linked to gbproxy_config.nse_peers */ + /* linked to gbproxy_config.nses */ struct llist_head list; /* point back to the config */ struct gbproxy_config *cfg; - /* NSEI of the peer entity */ + /* NSEI of the NSE */ uint16_t nsei; /* List of all BVCs in this NSE */ - struct llist_head bts_peers; + struct llist_head bvcs; }; struct gbproxy_tlli_state { @@ -205,7 +205,7 @@ /* One TLLI (= UE, = Subscriber) served via this proxy */ struct gbproxy_link_info { - /* link to gbproxy_peer.patch_state.logical_links */ + /* link to gbproxy_bvc.patch_state.logical_links */ struct llist_head list; /* TLLI on the BSS/PCU side */ @@ -276,40 +276,40 @@ void gbprox_reset(struct gbproxy_config *cfg); /* TLLI info handling */ -void gbproxy_delete_link_infos(struct gbproxy_peer *peer); +void gbproxy_delete_link_infos(struct gbproxy_bvc *bvc); struct gbproxy_link_info *gbproxy_update_link_state_ul( - struct gbproxy_peer *peer, time_t now, + struct gbproxy_bvc *bvc, time_t now, struct gprs_gb_parse_context *parse_ctx); struct gbproxy_link_info *gbproxy_update_link_state_dl( - struct gbproxy_peer *peer, time_t now, + struct gbproxy_bvc *bvc, time_t now, struct gprs_gb_parse_context *parse_ctx); int gbproxy_update_link_state_after( - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, time_t now, struct gprs_gb_parse_context *parse_ctx); -int gbproxy_remove_stale_link_infos(struct gbproxy_peer *peer, time_t now); -void gbproxy_delete_link_info(struct gbproxy_peer *peer, +int gbproxy_remove_stale_link_infos(struct gbproxy_bvc *bvc, time_t now); +void gbproxy_delete_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info); void gbproxy_link_info_discard_messages(struct gbproxy_link_info *link_info); -void gbproxy_attach_link_info(struct gbproxy_peer *peer, time_t now, +void gbproxy_attach_link_info(struct gbproxy_bvc *bvc, time_t now, struct gbproxy_link_info *link_info); void gbproxy_update_link_info(struct gbproxy_link_info *link_info, const uint8_t *imsi, size_t imsi_len); -void gbproxy_detach_link_info(struct gbproxy_peer *peer, +void gbproxy_detach_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info); -struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_peer *peer); +struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_bvc *bvc); struct gbproxy_link_info *gbproxy_link_info_by_tlli( - struct gbproxy_peer *peer, uint32_t tlli); + struct gbproxy_bvc *bvc, uint32_t tlli); struct gbproxy_link_info *gbproxy_link_info_by_imsi( - struct gbproxy_peer *peer, const uint8_t *imsi, size_t imsi_len); + struct gbproxy_bvc *bvc, const uint8_t *imsi, size_t imsi_len); struct gbproxy_link_info *gbproxy_link_info_by_any_sgsn_tlli( - struct gbproxy_peer *peer, uint32_t tlli); + struct gbproxy_bvc *bvc, uint32_t tlli); struct gbproxy_link_info *gbproxy_link_info_by_sgsn_tlli( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t tlli, uint32_t sgsn_nsei); struct gbproxy_link_info *gbproxy_link_info_by_ptmsi( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t ptmsi); int gbproxy_imsi_matches( @@ -320,9 +320,9 @@ uint32_t other_tlli, struct gbproxy_link_info *link_info, int to_bss); /* needed by gb_proxy_tlli.h */ -uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_peer *peer, uint32_t sgsn_ptmsi); +uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_bvc *bvc, uint32_t sgsn_ptmsi); uint32_t gbproxy_make_sgsn_tlli( - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, uint32_t bss_tlli); void gbproxy_reset_link(struct gbproxy_link_info *link_info); int gbproxy_check_imsi( @@ -331,12 +331,12 @@ /* Message patching */ void gbproxy_patch_bssgp( struct msgb *msg, uint8_t *bssgp, size_t bssgp_len, - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, int *len_change, struct gprs_gb_parse_context *parse_ctx); int gbproxy_patch_llc( struct msgb *msg, uint8_t *llc, size_t llc_len, - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, int *len_change, struct gprs_gb_parse_context *parse_ctx); int gbproxy_set_patch_filter( @@ -344,22 +344,22 @@ void gbproxy_clear_patch_filter(struct gbproxy_match *match); /* Peer handling */ -struct gbproxy_peer *gbproxy_peer_by_bvci( +struct gbproxy_bvc *gbproxy_bvc_by_bvci( struct gbproxy_config *cfg, uint16_t bvci); -struct gbproxy_peer *gbproxy_peer_by_nsei( +struct gbproxy_bvc *gbproxy_bvc_by_nsei( struct gbproxy_config *cfg, uint16_t nsei); -struct gbproxy_peer *gbproxy_peer_by_rai( +struct gbproxy_bvc *gbproxy_bvc_by_rai( struct gbproxy_config *cfg, const uint8_t *ra); -struct gbproxy_peer *gbproxy_peer_by_lai( +struct gbproxy_bvc *gbproxy_bvc_by_lai( struct gbproxy_config *cfg, const uint8_t *la); -struct gbproxy_peer *gbproxy_peer_by_lac( +struct gbproxy_bvc *gbproxy_bvc_by_lac( struct gbproxy_config *cfg, const uint8_t *la); -struct gbproxy_peer *gbproxy_peer_by_bssgp_tlv( +struct gbproxy_bvc *gbproxy_bvc_by_bssgp_tlv( struct gbproxy_config *cfg, struct tlv_parsed *tp); -struct gbproxy_peer *gbproxy_peer_alloc(struct gbproxy_nse *nse, uint16_t bvci); -void gbproxy_peer_free(struct gbproxy_peer *peer); -void gbproxy_peer_move(struct gbproxy_peer *peer, struct gbproxy_nse *nse); -int gbproxy_cleanup_peers(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci); +struct gbproxy_bvc *gbproxy_bvc_alloc(struct gbproxy_nse *nse, uint16_t bvci); +void gbproxy_bvc_free(struct gbproxy_bvc *bvc); +void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse); +int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci); /* NSE handling */ struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index c130466..94944f9 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -77,21 +77,21 @@ .class_id = OSMO_STATS_CLASS_GLOBAL, }; -static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_peer *peer, +static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_bvc *bvc, uint16_t ns_bvci); static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei); static void gbproxy_reset_imsi_acquisition(struct gbproxy_link_info* link_info); -static int check_peer_nsei(struct gbproxy_peer *peer, uint16_t nsei) +static int check_bvc_nsei(struct gbproxy_bvc *bvc, uint16_t nsei) { - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); - if (peer->nse->nsei != nsei) { - LOGPBVC(peer, LOGL_NOTICE, "Peer entry doesn't match current NSEI " + if (bvc->nse->nsei != nsei) { + LOGPBVC(bvc, LOGL_NOTICE, "Peer entry doesn't match current NSEI " "via NSE(%05u/BSS)\n", nsei); - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_INV_NSEI]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_INV_NSEI]); return 0; } @@ -190,16 +190,16 @@ msgb_tlli(msg) = tlli; } -/* update peer according to the BSS message */ +/* update bvc according to the BSS message */ static void gbprox_update_current_raid(uint8_t *raid_enc, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, const char *log_text) { - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; const struct osmo_plmn_id old_plmn = state->local_plmn; struct gprs_ra_id raid; - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (!raid_enc) @@ -225,7 +225,7 @@ } if (osmo_plmn_cmp(&old_plmn, &state->local_plmn)) - LOGPBVC(peer, LOGL_NOTICE, + LOGPBVC(bvc, LOGL_NOTICE, "Patching RAID %sactivated, msg: %s, " "local: %s, core: %s\n", state->local_plmn.mcc || state->local_plmn.mnc ? @@ -235,12 +235,12 @@ osmo_plmn_name2(&cfg->core_plmn)); } -uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_peer *peer, +uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_bvc *bvc, uint32_t sgsn_ptmsi) { uint32_t bss_ptmsi; int max_retries = 23, rc = 0; - if (!peer->nse->cfg->patch_ptmsi) { + if (!bvc->nse->cfg->patch_ptmsi) { bss_ptmsi = sgsn_ptmsi; } else { do { @@ -252,24 +252,24 @@ bss_ptmsi = bss_ptmsi | GSM23003_TMSI_SGSN_MASK; - if (gbproxy_link_info_by_ptmsi(peer, bss_ptmsi)) + if (gbproxy_link_info_by_ptmsi(bvc, bss_ptmsi)) bss_ptmsi = GSM_RESERVED_TMSI; } while (bss_ptmsi == GSM_RESERVED_TMSI && max_retries--); } if (bss_ptmsi == GSM_RESERVED_TMSI) - LOGPBVC(peer, LOGL_ERROR, "Failed to allocate a BSS P-TMSI: %d (%s)\n", rc, strerror(-rc)); + LOGPBVC(bvc, LOGL_ERROR, "Failed to allocate a BSS P-TMSI: %d (%s)\n", rc, strerror(-rc)); return bss_ptmsi; } -uint32_t gbproxy_make_sgsn_tlli(struct gbproxy_peer *peer, +uint32_t gbproxy_make_sgsn_tlli(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, uint32_t bss_tlli) { uint32_t sgsn_tlli; int max_retries = 23, rc = 0; - if (!peer->nse->cfg->patch_ptmsi) { + if (!bvc->nse->cfg->patch_ptmsi) { sgsn_tlli = bss_tlli; } else if (link_info->sgsn_tlli.ptmsi != GSM_RESERVED_TMSI && gprs_tlli_type(bss_tlli) == TLLI_FOREIGN) { @@ -290,13 +290,13 @@ sgsn_tlli = (sgsn_tlli & 0x7fffffff) | 0x78000000; - if (gbproxy_link_info_by_any_sgsn_tlli(peer, sgsn_tlli)) + if (gbproxy_link_info_by_any_sgsn_tlli(bvc, sgsn_tlli)) sgsn_tlli = 0; } while (!sgsn_tlli && max_retries--); } if (!sgsn_tlli) - LOGPBVC(peer, LOGL_ERROR, "Failed to allocate an SGSN TLLI: %d (%s)\n", rc, strerror(-rc)); + LOGPBVC(bvc, LOGL_ERROR, "Failed to allocate an SGSN TLLI: %d (%s)\n", rc, strerror(-rc)); return sgsn_tlli; } @@ -330,15 +330,15 @@ /* Got identity response with IMSI, assuming the request had * been generated by the gbproxy */ -static int gbproxy_flush_stored_messages(struct gbproxy_peer *peer, +static int gbproxy_flush_stored_messages(struct gbproxy_bvc *bvc, time_t now, struct gbproxy_link_info* link_info) { int rc; struct msgb *stored_msg; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); /* Patch and flush stored messages towards the SGSN */ @@ -354,13 +354,13 @@ &tmp_parse_ctx); gbproxy_patch_bssgp(stored_msg, msgb_bssgph(stored_msg), msgb_bssgp_len(stored_msg), - peer, link_info, &len_change, + bvc, link_info, &len_change, &tmp_parse_ctx); - rc = gbproxy_update_link_state_after(peer, link_info, now, + rc = gbproxy_update_link_state_after(bvc, link_info, now, &tmp_parse_ctx); if (rc == 1) { - LOGPBVC_CAT(peer, DLLC, LOGL_NOTICE, "link_info deleted while flushing stored messages\n"); + LOGPBVC_CAT(bvc, DLLC, LOGL_NOTICE, "link_info deleted while flushing stored messages\n"); msgb_free(stored_msg); return -1; } @@ -369,7 +369,7 @@ msgb_bvci(stored_msg), link_info->sgsn_nsei); if (rc < 0) - LOGPBVC_CAT(peer, DLLC, LOGL_ERROR, + LOGPBVC_CAT(bvc, DLLC, LOGL_ERROR, "failed to send stored message " "(%s)\n", tmp_parse_ctx.llc_msg_name ? @@ -380,7 +380,7 @@ return 0; } -static int gbproxy_gsm48_to_peer(struct gbproxy_peer *peer, +static int gbproxy_gsm48_to_bvc(struct gbproxy_bvc *bvc, struct gbproxy_link_info* link_info, uint16_t bvci, struct msgb *msg /* Takes msg ownership */) @@ -397,12 +397,12 @@ gprs_push_bssgp_dl_unitdata(msg, link_info->tlli.current); msg->l3h = msg->data; - rc = gbprox_relay2peer(msg, peer, bvci); + rc = gbprox_relay2peer(msg, bvc, bvci); msgb_free(msg); return rc; } -static void gbproxy_acquire_imsi(struct gbproxy_peer *peer, +static void gbproxy_acquire_imsi(struct gbproxy_bvc *bvc, struct gbproxy_link_info* link_info, uint16_t bvci) { @@ -411,10 +411,10 @@ /* Send IDENT REQ */ idreq_msg = gsm48_msgb_alloc_name("GSM 04.08 ACQ IMSI"); gprs_put_identity_req(idreq_msg, GSM_MI_TYPE_IMSI); - gbproxy_gsm48_to_peer(peer, link_info, bvci, idreq_msg); + gbproxy_gsm48_to_bvc(bvc, link_info, bvci, idreq_msg); } -static void gbproxy_tx_detach_acc(struct gbproxy_peer *peer, +static void gbproxy_tx_detach_acc(struct gbproxy_bvc *bvc, struct gbproxy_link_info* link_info, uint16_t bvci) { @@ -423,20 +423,20 @@ /* Send DETACH ACC */ detacc_msg = gsm48_msgb_alloc_name("GSM 04.08 DET ACC"); gprs_put_mo_detach_acc(detacc_msg); - gbproxy_gsm48_to_peer(peer, link_info, bvci, detacc_msg); + gbproxy_gsm48_to_bvc(bvc, link_info, bvci, detacc_msg); } /* Return != 0 iff msg still needs to be processed */ -static int gbproxy_imsi_acquisition(struct gbproxy_peer *peer, +static int gbproxy_imsi_acquisition(struct gbproxy_bvc *bvc, struct msgb *msg, time_t now, struct gbproxy_link_info* link_info, struct gprs_gb_parse_context *parse_ctx) { struct msgb *stored_msg; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (!link_info) @@ -451,7 +451,7 @@ case GSM48_MT_GMM_RA_UPD_REQ: case GSM48_MT_GMM_ATTACH_REQ: if (gbproxy_restart_imsi_acquisition(link_info)) { - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, " IMSI acquisition was in progress " "when receiving an %s.\n", parse_ctx->llc_msg_name); @@ -460,19 +460,19 @@ case GSM48_MT_GMM_DETACH_REQ: /* Nothing has been sent to the SGSN yet */ if (link_info->imsi_acq_pending) { - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "IMSI acquisition was in progress " "when receiving a DETACH_REQ.\n"); } if (!parse_ctx->invalidate_tlli) { - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "IMSI not yet acquired, " "faking a DETACH_ACC.\n"); - gbproxy_tx_detach_acc(peer, link_info, msgb_bvci(msg)); + gbproxy_tx_detach_acc(bvc, link_info, msgb_bvci(msg)); parse_ctx->invalidate_tlli = 1; } gbproxy_reset_imsi_acquisition(link_info); - gbproxy_update_link_state_after(peer, link_info, now, + gbproxy_update_link_state_after(bvc, link_info, now, parse_ctx); return 0; } @@ -483,13 +483,13 @@ gsm48_hdr_pdisc(parse_ctx->g48_hdr) == GSM48_PDISC_MM_GPRS && gsm48_hdr_msg_type(parse_ctx->g48_hdr) == GSM48_MT_GMM_ID_RESP; - LOGPBVC_CAT(peer, DLLC, LOGL_DEBUG, + LOGPBVC_CAT(bvc, DLLC, LOGL_DEBUG, "IMSI acquisition succeeded, " "flushing stored messages\n"); /* The IMSI is now available. If flushing the messages fails, * then link_info has been deleted and we should return * immediately. */ - if (gbproxy_flush_stored_messages(peer, now, link_info) < 0) + if (gbproxy_flush_stored_messages(bvc, now, link_info) < 0) return 0; gbproxy_reset_imsi_acquisition(link_info); @@ -511,7 +511,7 @@ struct msgb *msgb_drop; msgb_drop = msgb_dequeue_count(&link_info->stored_msgs, &link_info->stored_msgs_len); - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "Dropping stored msgb from list " "(!acq imsi, length %d, max_len exceeded)\n", link_info->stored_msgs_len); @@ -521,7 +521,7 @@ } /* Enqueue unpatched messages */ - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "IMSI acquisition in progress, " "storing message (%s)\n", parse_ctx->llc_msg_name ? parse_ctx->llc_msg_name : "BSSGP"); @@ -531,12 +531,12 @@ &link_info->stored_msgs_len); if (!link_info->imsi_acq_pending) { - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "IMSI is required but not available, " "initiating identification procedure (%s)\n", parse_ctx->llc_msg_name ? parse_ctx->llc_msg_name : "BSSGP"); - gbproxy_acquire_imsi(peer, link_info, msgb_bvci(msg)); + gbproxy_acquire_imsi(bvc, link_info, msgb_bvci(msg)); /* There is no explicit retransmission handling, the * implementation relies on the MS doing proper retransmissions @@ -548,37 +548,37 @@ return 0; } -struct gbproxy_peer *gbproxy_find_peer(struct gbproxy_config *cfg, +struct gbproxy_bvc *gbproxy_find_bvc(struct gbproxy_config *cfg, struct msgb *msg, struct gprs_gb_parse_context *parse_ctx) { - struct gbproxy_peer *peer = NULL; + struct gbproxy_bvc *bvc = NULL; if (msgb_bvci(msg) >= 2) - peer = gbproxy_peer_by_bvci(cfg, msgb_bvci(msg)); + bvc = gbproxy_bvc_by_bvci(cfg, msgb_bvci(msg)); - if (!peer && !parse_ctx->to_bss) - peer = gbproxy_peer_by_nsei(cfg, msgb_nsei(msg)); + if (!bvc && !parse_ctx->to_bss) + bvc = gbproxy_bvc_by_nsei(cfg, msgb_nsei(msg)); - if (!peer) - peer = gbproxy_peer_by_bssgp_tlv(cfg, &parse_ctx->bssgp_tp); + if (!bvc) + bvc = gbproxy_bvc_by_bssgp_tlv(cfg, &parse_ctx->bssgp_tp); - if (!peer) { + if (!bvc) { LOGP(DLLC, LOGL_INFO, - "NSE(%05u/%s) patching: didn't find peer for message, " + "NSE(%05u/%s) patching: didn't find bvc for message, " "PDU %d\n", msgb_nsei(msg), parse_ctx->to_bss ? "BSS" : "SGSN", parse_ctx->pdu_type); /* Increment counter */ rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PATCH_PEER_ERR]); } - return peer; + return bvc; } /* patch BSSGP message */ static int gbprox_process_bssgp_ul(struct gbproxy_config *cfg, struct msgb *msg, - struct gbproxy_peer *peer) + struct gbproxy_bvc *bvc) { struct gprs_gb_parse_context parse_ctx = {0}; int rc; @@ -610,49 +610,49 @@ return 0; } - /* Get peer */ - if (!peer) - peer = gbproxy_find_peer(cfg, msg, &parse_ctx); + /* Get bvc */ + if (!bvc) + bvc = gbproxy_find_bvc(cfg, msg, &parse_ctx); - if (!peer) + if (!bvc) return 0; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - gbprox_update_current_raid(parse_ctx.bssgp_raid_enc, peer, + gbprox_update_current_raid(parse_ctx.bssgp_raid_enc, bvc, parse_ctx.llc_msg_name); gprs_gb_log_parse_context(LOGL_DEBUG, &parse_ctx, "NS_UNITDATA"); - link_info = gbproxy_update_link_state_ul(peer, now, &parse_ctx); + link_info = gbproxy_update_link_state_ul(bvc, now, &parse_ctx); if (parse_ctx.g48_hdr) { switch (parse_ctx.g48_hdr->msg_type) { case GSM48_MT_GMM_ATTACH_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REQS]); break; case GSM48_MT_GMM_DETACH_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_DETACH_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DETACH_REQS]); break; case GSM48_MT_GMM_ATTACH_COMPL: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_COMPLS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_COMPLS]); break; case GSM48_MT_GMM_RA_UPD_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REQS]); break; case GSM48_MT_GMM_RA_UPD_COMPL: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_COMPLS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_COMPLS]); break; case GSM48_MT_GMM_STATUS: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_BSS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_BSS]); break; case GSM48_MT_GSM_ACT_PDP_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REQS]); break; case GSM48_MT_GSM_DEACT_PDP_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_REQS]); break; default: @@ -673,16 +673,16 @@ /* Handle IMSI acquisition */ if (cfg->acquire_imsi) { - rc = gbproxy_imsi_acquisition(peer, msg, now, link_info, + rc = gbproxy_imsi_acquisition(bvc, msg, now, link_info, &parse_ctx); if (rc <= 0) return rc; } gbproxy_patch_bssgp(msg, msgb_bssgph(msg), msgb_bssgp_len(msg), - peer, link_info, &len_change, &parse_ctx); + bvc, link_info, &len_change, &parse_ctx); - gbproxy_update_link_state_after(peer, link_info, now, &parse_ctx); + gbproxy_update_link_state_after(bvc, link_info, now, &parse_ctx); if (sgsn_nsei != cfg->nsip_sgsn_nsei) { /* Send message directly to the selected SGSN */ @@ -697,7 +697,7 @@ /* patch BSSGP message to use core_plmn.mcc/mnc on the SGSN side */ static void gbprox_process_bssgp_dl(struct gbproxy_config *cfg, struct msgb *msg, - struct gbproxy_peer *peer) + struct gbproxy_bvc *bvc) { struct gprs_gb_parse_context parse_ctx = {0}; int rc; @@ -727,11 +727,11 @@ return; } - /* Get peer */ - if (!peer) - peer = gbproxy_find_peer(cfg, msg, &parse_ctx); + /* Get bvc */ + if (!bvc) + bvc = gbproxy_find_bvc(cfg, msg, &parse_ctx); - if (!peer) + if (!bvc) return; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); @@ -740,31 +740,31 @@ if (parse_ctx.g48_hdr) { switch (parse_ctx.g48_hdr->msg_type) { case GSM48_MT_GMM_ATTACH_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_ACKS]); break; case GSM48_MT_GMM_ATTACH_REJ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REJS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REJS]); break; case GSM48_MT_GMM_DETACH_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_DETACH_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DETACH_ACKS]); break; case GSM48_MT_GMM_RA_UPD_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_ACKS]); break; case GSM48_MT_GMM_RA_UPD_REJ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REJS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REJS]); break; case GSM48_MT_GMM_STATUS: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_SGSN]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_SGSN]); break; case GSM48_MT_GSM_ACT_PDP_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_ACKS]); break; case GSM48_MT_GSM_ACT_PDP_REJ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REJS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REJS]); break; case GSM48_MT_GSM_DEACT_PDP_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_ACKS]); break; default: @@ -774,17 +774,17 @@ gprs_gb_log_parse_context(LOGL_DEBUG, &parse_ctx, "NS_UNITDATA"); - link_info = gbproxy_update_link_state_dl(peer, now, &parse_ctx); + link_info = gbproxy_update_link_state_dl(bvc, now, &parse_ctx); gbproxy_patch_bssgp(msg, msgb_bssgph(msg), msgb_bssgp_len(msg), - peer, link_info, &len_change, &parse_ctx); + bvc, link_info, &len_change, &parse_ctx); - gbproxy_update_link_state_after(peer, link_info, now, &parse_ctx); + gbproxy_update_link_state_after(bvc, link_info, now, &parse_ctx); return; } -/* feed a message down the NS-VC associated with the specified peer */ +/* feed a message down the NS-VC associated with the specified bvc */ static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei) { @@ -847,32 +847,32 @@ rc = gprs_ns2_recv_prim(nsi, &nsp.oph); /* FIXME: We need a counter group for gbproxy_nse */ //if (rc < 0) - // rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_TX_ERR]); + // rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_TX_ERR]); return rc; } -/* feed a message down the NS-VC associated with the specified peer */ -static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_peer *peer, +/* feed a message down the NS-VC associated with the specified bvc */ +static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_bvc *bvc, uint16_t ns_bvci) { int rc; - struct gbproxy_nse *nse = peer->nse; + struct gbproxy_nse *nse = bvc->nse; OSMO_ASSERT(nse); rc = gbprox_relay2nse(old_msg, nse, ns_bvci); if (rc < 0) - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_TX_ERR]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_TX_ERR]); return rc; } -static int block_unblock_peer(struct gbproxy_config *cfg, uint16_t ptp_bvci, uint8_t pdu_type) +static int block_unblock_bvc(struct gbproxy_config *cfg, uint16_t ptp_bvci, uint8_t pdu_type) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; - peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); - if (!peer) { + bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); + if (!bvc) { LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", ptp_bvci); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); @@ -881,12 +881,12 @@ switch (pdu_type) { case BSSGP_PDUT_BVC_BLOCK_ACK: - peer->blocked = true; - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_BLOCKED]); + bvc->blocked = true; + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_BLOCKED]); break; case BSSGP_PDUT_BVC_UNBLOCK_ACK: - peer->blocked = false; - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_UNBLOCKED]); + bvc->blocked = false; + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_UNBLOCKED]); break; default: break; @@ -894,22 +894,22 @@ return 0; } -/* Send a message to a peer identified by ptp_bvci but using ns_bvci +/* Send a message to a bvc identified by ptp_bvci but using ns_bvci * in the NS hdr */ static int gbprox_relay2bvci(struct gbproxy_config *cfg, struct msgb *msg, uint16_t ptp_bvci, uint16_t ns_bvci) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; - peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); - if (!peer) { + bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); + if (!bvc) { LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", ptp_bvci); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); return -ENOENT; } - return gbprox_relay2peer(msg, peer, ns_bvci); + return gbprox_relay2peer(msg, bvc, ns_bvci); } int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) @@ -922,14 +922,14 @@ struct msgb *msg, uint16_t nsei, uint16_t ns_bvci) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); uint8_t pdu_type = bgph->pdu_type; int rc; - peer = gbproxy_peer_by_bvci(cfg, ns_bvci); - if (!peer) { - LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find peer " + bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); + if (!bvc) { + LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find bvc " "for PTP message from NSE(%05u/BSS), " "discarding message\n", ns_bvci, nsei); @@ -938,9 +938,9 @@ } /* TODO: Should we discard this message if the check fails */ - check_peer_nsei(peer, nsei); + check_bvc_nsei(bvc, nsei); - rc = gbprox_process_bssgp_ul(cfg, msg, peer); + rc = gbprox_process_bssgp_ul(cfg, msg, bvc); if (!rc) return 0; @@ -965,16 +965,16 @@ struct msgb *msg, uint16_t nsei, uint16_t ns_bvci) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); uint8_t pdu_type = bgph->pdu_type; - peer = gbproxy_peer_by_bvci(cfg, ns_bvci); + bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); /* Send status messages before patching */ - if (!peer) { - LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find peer for " + if (!bvc) { + LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find bvc for " "for message from NSE(%05u/SGSN)\n", ns_bvci, nsei); rate_ctr_inc(&cfg->ctrg-> @@ -983,10 +983,10 @@ &ns_bvci, msg); } - if (peer->blocked) { - LOGPBVC(peer, LOGL_NOTICE, "Dropping PDU for " + if (bvc->blocked) { + LOGPBVC(bvc, LOGL_NOTICE, "Dropping PDU for " "blocked BVC via NSE(%05u/SGSN)\n", nsei); - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); return bssgp_tx_status(BSSGP_CAUSE_BVCI_BLOCKED, &ns_bvci, msg); } @@ -1004,9 +1004,9 @@ } /* Optionally patch the message */ - gbprox_process_bssgp_dl(cfg, msg, peer); + gbprox_process_bssgp_dl(cfg, msg, bvc); - return gbprox_relay2peer(msg, peer, ns_bvci); + return gbprox_relay2peer(msg, bvc, ns_bvci); } /* process a BVC-RESET message from the BSS side */ @@ -1014,7 +1014,7 @@ uint16_t nsei, struct tlv_parsed *tp, int *copy_to_sgsn2) { - struct gbproxy_peer *from_peer = NULL; + struct gbproxy_bvc *from_bvc = NULL; uint16_t bvci; if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { @@ -1029,7 +1029,7 @@ * don't want the SGSN to reset, as the signalling endpoint * is common for all point-to-point BVCs (and thus all BTS) */ - /* Ensure the NSE peer is there and clear all PtP BVCs */ + /* Ensure the NSE bvc is there and clear all PtP BVCs */ struct gbproxy_nse *nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); if (!nse) { LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); @@ -1037,15 +1037,15 @@ return 0; } - gbproxy_cleanup_peers(cfg, nsei, 0); + gbproxy_cleanup_bvcs(cfg, nsei, 0); /* FIXME: only do this if SGSN is alive! */ LOGPNSE(nse, LOGL_INFO, "Tx fake BVC RESET ACK of BVCI=0\n"); bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); return 0; } else { - from_peer = gbproxy_peer_by_bvci(cfg, bvci); - if (!from_peer) { + from_bvc = gbproxy_bvc_by_bvci(cfg, bvci); + if (!from_bvc) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); if (!nse) { LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " @@ -1054,15 +1054,15 @@ return 0; } /* if a PTP-BVC is reset, and we don't know that - * PTP-BVCI yet, we should allocate a new peer */ - from_peer = gbproxy_peer_alloc(nse, bvci); - OSMO_ASSERT(from_peer); - LOGPBVC(from_peer, LOGL_INFO, "Allocated new peer\n"); + * PTP-BVCI yet, we should allocate a new bvc */ + from_bvc = gbproxy_bvc_alloc(nse, bvci); + OSMO_ASSERT(from_bvc); + LOGPBVC(from_bvc, LOGL_INFO, "Allocated new bvc\n"); } /* Could have moved to a different NSE */ - if (!check_peer_nsei(from_peer, nsei)) { - LOGPBVC(from_peer, LOGL_NOTICE, "moving peer to NSE(%05u)\n", nsei); + if (!check_bvc_nsei(from_bvc, nsei)) { + LOGPBVC(from_bvc, LOGL_NOTICE, "moving bvc to NSE(%05u)\n", nsei); struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); if (!nse_new) { @@ -1072,8 +1072,8 @@ return 0; } - /* Move peer to different NSE */ - gbproxy_peer_move(from_peer, nse_new); + /* Move bvc to different NSE */ + gbproxy_bvc_move(from_bvc, nse_new); } if (TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { @@ -1082,9 +1082,9 @@ * PDU, this means we can extend our local * state information about this particular cell * */ - memcpy(from_peer->ra, TLVP_VAL(tp, BSSGP_IE_CELL_ID), sizeof(from_peer->ra)); - gsm48_parse_ra(&raid, from_peer->ra); - LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", osmo_rai_name(&raid)); + memcpy(from_bvc->ra, TLVP_VAL(tp, BSSGP_IE_CELL_ID), sizeof(from_bvc->ra)); + gsm48_parse_ra(&raid, from_bvc->ra); + LOGPBVC(from_bvc, LOGL_INFO, "Cell ID %s\n", osmo_rai_name(&raid)); } if (cfg->route_to_sgsn2) *copy_to_sgsn2 = 1; @@ -1102,7 +1102,7 @@ struct tlv_parsed tp; uint8_t pdu_type = bgph->pdu_type; int data_len = msgb_bssgp_len(msg) - sizeof(*bgph); - struct gbproxy_peer *from_peer = NULL; + struct gbproxy_bvc *from_bvc = NULL; struct gprs_ra_id raid; int copy_to_sgsn2 = 0; int rc; @@ -1128,19 +1128,19 @@ case BSSGP_PDUT_SUSPEND: case BSSGP_PDUT_RESUME: /* We implement RAI snooping during SUSPEND/RESUME, since it - * establishes a relationsip between BVCI/peer and the routeing + * establishes a relationsip between BVCI/bvc and the routeing * area identification. The snooped information is then used * for routing the {SUSPEND,RESUME}_[N]ACK back to the correct * BSSGP */ if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) goto err_mand_ie; - from_peer = gbproxy_peer_by_nsei(cfg, nsei); - if (!from_peer) - goto err_no_peer; - memcpy(from_peer->ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), - sizeof(from_peer->ra)); - gsm48_parse_ra(&raid, from_peer->ra); - LOGPBVC(from_peer, LOGL_INFO, "BSSGP SUSPEND/RESUME " + from_bvc = gbproxy_bvc_by_nsei(cfg, nsei); + if (!from_bvc) + goto err_no_bvc; + memcpy(from_bvc->ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), + sizeof(from_bvc->ra)); + gsm48_parse_ra(&raid, from_bvc->ra); + LOGPBVC(from_bvc, LOGL_INFO, "BSSGP SUSPEND/RESUME " "RAI snooping: RAI %s\n", osmo_rai_name(&raid)); /* FIXME: This only supports one BSS per RA */ @@ -1155,7 +1155,7 @@ /* Normally, we can simply pass on all signalling messages from BSS to * SGSN */ - rc = gbprox_process_bssgp_ul(cfg, msg, from_peer); + rc = gbprox_process_bssgp_ul(cfg, msg, from_bvc); if (!rc) return 0; @@ -1163,8 +1163,8 @@ gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn2_nsei); return gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn_nsei); -err_no_peer: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) cannot find peer based on NSEI\n", +err_no_bvc: + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) cannot find bvc based on NSEI\n", nsei); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_NSEI]); return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); @@ -1180,7 +1180,7 @@ uint32_t nsei, uint16_t ns_bvci) { struct gbproxy_nse *nse; - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; @@ -1191,21 +1191,21 @@ if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; - peer = gbproxy_peer_by_bvci(cfg, bvci); - if (!peer) { + bvc = gbproxy_bvc_by_bvci(cfg, bvci); + if (!bvc) { LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP PAGING: " "unable to route: BVCI=%05u unknown\n", nsei, bvci); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } - LOGPBVC(peer, LOGL_INFO, "routing by BVCI\n"); - return gbprox_relay2peer(msg, peer, ns_bvci); + LOGPBVC(bvc, LOGL_INFO, "routing by BVCI\n"); + return gbprox_relay2peer(msg, bvc, ns_bvci); } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; - /* iterate over all peers and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { + /* iterate over all bvcs and dispatch the paging to each matching one */ + llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; @@ -1216,10 +1216,10 @@ } } else if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { errctr = GBPROX_GLOB_CTR_INV_LAI; - /* iterate over all peers and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { + /* iterate over all bvcs and dispatch the paging to each matching one */ + llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; @@ -1229,9 +1229,9 @@ } } } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { - /* iterate over all peers and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { - llist_for_each_entry(peer, &nse->bts_peers, list) { + /* iterate over all bvcs and dispatch the paging to each matching one */ + llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; @@ -1261,7 +1261,7 @@ uint32_t nsei, uint16_t ns_bvci) { struct gbproxy_nse *nse; - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; uint16_t ptp_bvci; if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { @@ -1274,9 +1274,9 @@ if (ptp_bvci >= 2) { /* A reset for a PTP BVC was received, forward it to its - * respective peer */ - peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); - if (!peer) { + * respective bvc */ + bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); + if (!bvc) { LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BVCI=%05u: Cannot find BSS\n", nsei, ptp_bvci); rate_ctr_inc(&cfg->ctrg-> @@ -1284,16 +1284,16 @@ return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &ptp_bvci, orig_msg); } - return gbprox_relay2peer(msg, peer, ns_bvci); + return gbprox_relay2peer(msg, bvc, ns_bvci); } /* A reset for the Signalling entity has been received * from the SGSN. As the signalling BVCI is shared * among all the BSS's that we multiplex, it needs to * be relayed */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { - llist_for_each_entry(peer, &nse->bts_peers, list) - gbprox_relay2peer(msg, peer, ns_bvci); + llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) + gbprox_relay2peer(msg, bvc, ns_bvci); } return 0; @@ -1310,7 +1310,7 @@ uint8_t pdu_type = bgph->pdu_type; int data_len; struct gbproxy_nse *nse; - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; uint16_t bvci; struct msgb *msg; int rc = 0; @@ -1397,10 +1397,10 @@ /* RAI IE is mandatory */ if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) goto err_mand_ie; - peer = gbproxy_peer_by_rai(cfg, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA)); - if (!peer) - goto err_no_peer; - rc = gbprox_relay2peer(msg, peer, ns_bvci); + bvc = gbproxy_bvc_by_rai(cfg, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA)); + if (!bvc) + goto err_no_bvc; + rc = gbprox_relay2peer(msg, bvc, ns_bvci); break; case BSSGP_PDUT_BVC_BLOCK_ACK: case BSSGP_PDUT_BVC_UNBLOCK_ACK: @@ -1416,7 +1416,7 @@ ctr[GBPROX_GLOB_CTR_INV_BVCI]); } else { /* Mark BVC as (un)blocked */ - block_unblock_peer(cfg, bvci, pdu_type); + block_unblock_bvc(cfg, bvci, pdu_type); } rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); break; @@ -1424,8 +1424,8 @@ case BSSGP_PDUT_OVERLOAD: LOGP(DGPRS, LOGL_DEBUG, "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); - /* broadcast to all BSS-side peers */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { + /* broadcast to all BSS-side bvcs */ + llist_for_each_entry(nse, &cfg->nses, list) { gbprox_relay2nse(msg, nse, 0); } break; @@ -1448,8 +1448,8 @@ ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); msgb_free(msg); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, orig_msg); -err_no_peer: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) cannot find peer based on RAI\n", +err_no_bvc: + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) cannot find bvc based on RAI\n", nsei); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_RAI]); msgb_free(msg); @@ -1519,10 +1519,10 @@ void gprs_ns_prim_status_cb(struct gbproxy_config *cfg, struct osmo_gprs_ns2_prim *nsp) { - /* TODO: bss nsei available/unavailable bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, nsvc->nsei, peer->bvci, 0); + /* TODO: bss nsei available/unavailable bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, nsvc->nsei, bvc->bvci, 0); * TODO: sgsn nsei available/unavailable */ - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; switch (nsp->u.status.cause) { case NS_AFF_CAUSE_SNS_FAILURE: @@ -1549,18 +1549,18 @@ } else { /* bss became unavailable * TODO: Block all BVC belonging to that NSE */ - peer = gbproxy_peer_by_nsei(cfg, nsp->nsei); - if (!peer) { + bvc = gbproxy_bvc_by_nsei(cfg, nsp->nsei); + if (!bvc) { /* TODO: use primitive name + status cause name */ - LOGP(DGPRS, LOGL_NOTICE, "Received ns2 primitive %d for unknown peer NSEI=%u\n", + LOGP(DGPRS, LOGL_NOTICE, "Received ns2 primitive %d for unknown bvc NSEI=%u\n", nsp->u.status.cause, nsp->nsei); break; } - if (!peer->blocked) + if (!bvc->blocked) break; bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, cfg->nsip_sgsn_nsei, - peer->bvci, 0); + bvc->bvci, 0); } LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); break; @@ -1620,10 +1620,10 @@ { struct gbproxy_nse *nse, *ntmp; - llist_for_each_entry_safe(nse, ntmp, &cfg->nse_peers, list) { - struct gbproxy_peer *peer, *tmp; - llist_for_each_entry_safe(peer, tmp, &nse->bts_peers, list) - gbproxy_peer_free(peer); + llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) { + struct gbproxy_bvc *bvc, *tmp; + llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) + gbproxy_bvc_free(bvc); gbproxy_nse_free(nse); } @@ -1636,7 +1636,7 @@ { struct timespec tp; - INIT_LLIST_HEAD(&cfg->nse_peers); + INIT_LLIST_HEAD(&cfg->nses); 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_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index 482bca0..097a29e 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -69,7 +69,7 @@ gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); /* NS-VCs for BSS peers */ - llist_for_each_entry(nse_peer, &cfg->nse_peers, list) { + llist_for_each_entry(nse_peer, &cfg->nses, list) { nse = gprs_ns2_nse_by_nsei(nsi, nse_peer->nsei); if (nse) gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); @@ -87,17 +87,17 @@ cmd->reply = talloc_strdup(cmd, ""); - llist_for_each_entry(nse_peer, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse_peer->bts_peers, list) { + llist_for_each_entry(nse_peer, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse_peer->bvcs, list) { struct gprs_ra_id raid; - gsm48_parse_ra(&raid, peer->ra); + gsm48_parse_ra(&raid, bvc->ra); cmd->reply = talloc_asprintf_append(cmd->reply, "%u,%u,%u,%u,%u,%u,%s\n", - nse_peer->nsei, peer->bvci, + nse_peer->nsei, bvc->bvci, raid.mcc, raid.mnc, raid.lac, raid.rac, - peer->blocked ? "BLOCKED" : "UNBLOCKED"); + bvc->blocked ? "BLOCKED" : "UNBLOCKED"); } } @@ -112,8 +112,8 @@ struct gbproxy_nse *nse_peer; uint32_t count = 0; - llist_for_each_entry(nse_peer, &cfg->nse_peers, list) - count += llist_count(&nse_peer->bts_peers); + llist_for_each_entry(nse_peer, &cfg->nses, list) + count += llist_count(&nse_peer->bvcs); cmd->reply = talloc_strdup(cmd, ""); cmd->reply = talloc_asprintf_append(cmd->reply, "%u", count); diff --git a/src/gbproxy/gb_proxy_patch.c b/src/gbproxy/gb_proxy_patch.c index 5915722..e78d31b 100644 --- a/src/gbproxy/gb_proxy_patch.c +++ b/src/gbproxy/gb_proxy_patch.c @@ -33,20 +33,20 @@ extern void *tall_sgsn_ctx; /* patch RA identifier in place */ -static void gbproxy_patch_raid(struct gsm48_ra_id *raid_enc, struct gbproxy_peer *peer, +static void gbproxy_patch_raid(struct gsm48_ra_id *raid_enc, struct gbproxy_bvc *bvc, int to_bss, const char *log_text) { - OSMO_ASSERT(peer); - struct gbproxy_patch_state *state = &peer->patch_state; + OSMO_ASSERT(bvc); + struct gbproxy_patch_state *state = &bvc->patch_state; struct osmo_plmn_id old_plmn; struct gprs_ra_id raid; - enum gbproxy_peer_ctr counter = + enum gbproxy_bvc_ctr counter = to_bss ? GBPROX_PEER_CTR_RAID_PATCHED_SGSN : GBPROX_PEER_CTR_RAID_PATCHED_BSS; - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (!state->local_plmn.mcc || !state->local_plmn.mnc) @@ -80,7 +80,7 @@ } } - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %s to %s: " "%s-%d-%d -> %s\n", log_text, @@ -89,12 +89,12 @@ osmo_rai_name(&raid)); gsm48_encode_ra(raid_enc, &raid); - rate_ctr_inc(&peer->ctrg->ctr[counter]); + rate_ctr_inc(&bvc->ctrg->ctr[counter]); } static void gbproxy_patch_apn_ie(struct msgb *msg, uint8_t *apn_ie, size_t apn_ie_len, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, size_t *new_apn_ie_len, const char *log_text) { struct apn_ie_hdr { @@ -105,9 +105,9 @@ size_t apn_len = hdr->apn_len; uint8_t *apn = hdr->apn; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); OSMO_ASSERT(apn_ie_len == apn_len + sizeof(struct apn_ie_hdr)); @@ -116,7 +116,7 @@ if (cfg->core_apn_size == 0) { char str1[110]; /* Remove the IE */ - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %s to SGSN: Removing APN '%s'\n", log_text, osmo_apn_to_str(str1, apn, apn_len)); @@ -130,7 +130,7 @@ OSMO_ASSERT(cfg->core_apn_size <= 100); - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %s to SGSN: " "Replacing APN '%s' -> '%s'\n", log_text, @@ -144,21 +144,21 @@ hdr->apn_len = cfg->core_apn_size; } - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_APN_PATCHED]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_APN_PATCHED]); } static int gbproxy_patch_tlli(uint8_t *tlli_enc, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t new_tlli, int to_bss, const char *log_text) { uint32_t tlli_be; uint32_t tlli; - enum gbproxy_peer_ctr counter = + enum gbproxy_bvc_ctr counter = to_bss ? GBPROX_PEER_CTR_TLLI_PATCHED_SGSN : GBPROX_PEER_CTR_TLLI_PATCHED_BSS; - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); memcpy(&tlli_be, tlli_enc, sizeof(tlli_be)); tlli = ntohl(tlli_be); @@ -166,7 +166,7 @@ if (tlli == new_tlli) return 0; - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %ss: " "Replacing %08x -> %08x\n", log_text, tlli, new_tlli); @@ -174,23 +174,23 @@ tlli_be = htonl(new_tlli); memcpy(tlli_enc, &tlli_be, sizeof(tlli_be)); - rate_ctr_inc(&peer->ctrg->ctr[counter]); + rate_ctr_inc(&bvc->ctrg->ctr[counter]); return 1; } static int gbproxy_patch_ptmsi(uint8_t *ptmsi_enc, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t new_ptmsi, int to_bss, const char *log_text) { uint32_t ptmsi_be; uint32_t ptmsi; - enum gbproxy_peer_ctr counter = + enum gbproxy_bvc_ctr counter = to_bss ? GBPROX_PEER_CTR_PTMSI_PATCHED_SGSN : GBPROX_PEER_CTR_PTMSI_PATCHED_BSS; - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); memcpy(&ptmsi_be, ptmsi_enc, sizeof(ptmsi_be)); ptmsi = ntohl(ptmsi_be); @@ -198,7 +198,7 @@ if (ptmsi == new_ptmsi) return 0; - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %ss: " "Replacing %08x -> %08x\n", log_text, ptmsi, new_ptmsi); @@ -206,22 +206,22 @@ ptmsi_be = htonl(new_ptmsi); memcpy(ptmsi_enc, &ptmsi_be, sizeof(ptmsi_be)); - rate_ctr_inc(&peer->ctrg->ctr[counter]); + rate_ctr_inc(&bvc->ctrg->ctr[counter]); return 1; } int gbproxy_patch_llc(struct msgb *msg, uint8_t *llc, size_t llc_len, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, int *len_change, struct gprs_gb_parse_context *parse_ctx) { struct gprs_llc_hdr_parsed *ghp = &parse_ctx->llc_hdr_parsed; int have_patched = 0; int fcs; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (parse_ctx->ptmsi_enc && link_info && @@ -233,7 +233,7 @@ ptmsi = link_info->sgsn_tlli.ptmsi; if (ptmsi != GSM_RESERVED_TMSI) { - if (gbproxy_patch_ptmsi(parse_ctx->ptmsi_enc, peer, + if (gbproxy_patch_ptmsi(parse_ctx->ptmsi_enc, bvc, ptmsi, parse_ctx->to_bss, "P-TMSI")) have_patched = 1; } else { @@ -249,20 +249,20 @@ ptmsi = link_info->sgsn_tlli.ptmsi; OSMO_ASSERT(ptmsi); - if (gbproxy_patch_ptmsi(parse_ctx->new_ptmsi_enc, peer, + if (gbproxy_patch_ptmsi(parse_ctx->new_ptmsi_enc, bvc, ptmsi, parse_ctx->to_bss, "new P-TMSI")) have_patched = 1; } if (parse_ctx->raid_enc) { - gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->raid_enc, peer, parse_ctx->to_bss, + gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->raid_enc, bvc, parse_ctx->to_bss, parse_ctx->llc_msg_name); have_patched = 1; } if (parse_ctx->old_raid_enc && !parse_ctx->old_raid_is_foreign) { /* TODO: Patch to invalid if P-TMSI unknown. */ - gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->old_raid_enc, peer, parse_ctx->to_bss, + gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->old_raid_enc, bvc, parse_ctx->to_bss, parse_ctx->llc_msg_name); have_patched = 1; } @@ -275,7 +275,7 @@ size_t new_len; gbproxy_patch_apn_ie(msg, parse_ctx->apn_ie, parse_ctx->apn_ie_len, - peer, &new_len, parse_ctx->llc_msg_name); + bvc, &new_len, parse_ctx->llc_msg_name); *len_change += (int)new_len - (int)parse_ctx->apn_ie_len; have_patched = 1; @@ -287,7 +287,7 @@ /* Fix FCS */ fcs = gprs_llc_fcs(llc, ghp->crc_length); - LOGPBVC_CAT(peer, DLLC, LOGL_DEBUG, "Updated LLC message, CRC: %06x -> %06x\n", + LOGPBVC_CAT(bvc, DLLC, LOGL_DEBUG, "Updated LLC message, CRC: %06x -> %06x\n", ghp->fcs, fcs); llc[llc_len - 3] = fcs & 0xff; @@ -300,18 +300,18 @@ /* patch BSSGP message to use core_plmn.mcc/mnc on the SGSN side */ void gbproxy_patch_bssgp(struct msgb *msg, uint8_t *bssgp, size_t bssgp_len, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, int *len_change, struct gprs_gb_parse_context *parse_ctx) { const char *err_info = NULL; int err_ctr = -1; - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (parse_ctx->bssgp_raid_enc) - gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->bssgp_raid_enc, peer, + gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->bssgp_raid_enc, bvc, parse_ctx->to_bss, "BSSGP"); if (parse_ctx->need_decryption && @@ -342,7 +342,7 @@ link_info, parse_ctx->to_bss); if (tlli) { - gbproxy_patch_tlli(parse_ctx->tlli_enc, peer, tlli, + gbproxy_patch_tlli(parse_ctx->tlli_enc, bvc, tlli, parse_ctx->to_bss, "TLLI"); parse_ctx->tlli = tlli; } else { @@ -362,7 +362,7 @@ if (ptmsi != GSM_RESERVED_TMSI) gbproxy_patch_ptmsi( - parse_ctx->bssgp_ptmsi_enc, peer, + parse_ctx->bssgp_ptmsi_enc, bvc, ptmsi, parse_ctx->to_bss, "BSSGP P-TMSI"); } @@ -371,7 +371,7 @@ size_t llc_len = parse_ctx->llc_len; int llc_len_change = 0; - gbproxy_patch_llc(msg, llc, llc_len, peer, link_info, + gbproxy_patch_llc(msg, llc, llc_len, bvc, link_info, &llc_len_change, parse_ctx); /* Note that the APN might have been resized here, but no * pointer int the parse_ctx will refer to an adress after the @@ -406,8 +406,8 @@ patch_error: OSMO_ASSERT(err_ctr >= 0); - rate_ctr_inc(&peer->ctrg->ctr[err_ctr]); - LOGPBVC(peer, LOGL_ERROR, + rate_ctr_inc(&bvc->ctrg->ctr[err_ctr]); + LOGPBVC(bvc, LOGL_ERROR, "NSE(%05u/%s) failed to patch BSSGP message as requested: %s.\n", msgb_nsei(msg), parse_ctx->to_bss ? "SGSN" : "BSS", err_info); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 79ea8e3..a5b93ee 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -35,7 +35,7 @@ extern void *tall_sgsn_ctx; -static const struct rate_ctr_desc peer_ctr_description[] = { +static const struct rate_ctr_desc bvc_ctr_description[] = { { "blocked", "BVC Block " }, { "unblocked", "BVC Unblock " }, { "dropped", "BVC blocked, dropped packet " }, @@ -71,98 +71,98 @@ { "tlli-cache", "TLLI cache size " }, }; -osmo_static_assert(ARRAY_SIZE(peer_ctr_description) == GBPROX_PEER_CTR_LAST, everything_described); +osmo_static_assert(ARRAY_SIZE(bvc_ctr_description) == GBPROX_PEER_CTR_LAST, everything_described); -static const struct rate_ctr_group_desc peer_ctrg_desc = { +static const struct rate_ctr_group_desc bvc_ctrg_desc = { .group_name_prefix = "gbproxy:peer", .group_description = "GBProxy Peer Statistics", - .num_ctr = ARRAY_SIZE(peer_ctr_description), - .ctr_desc = peer_ctr_description, + .num_ctr = ARRAY_SIZE(bvc_ctr_description), + .ctr_desc = bvc_ctr_description, .class_id = OSMO_STATS_CLASS_PEER, }; -/* Find the gbproxy_peer by its BVCI. There can only be one match */ -struct gbproxy_peer *gbproxy_peer_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) +/* Find the gbproxy_bvc by its BVCI. There can only be one match */ +struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (peer->bvci == bvci) - return peer; + llist_for_each_entry(nse, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (bvc->bvci == bvci) + return bvc; } } return NULL; } -/* Find the gbproxy_peer by its NSEI */ -/* FIXME: Only returns the first peer, but we could have multiple on this nsei */ -struct gbproxy_peer *gbproxy_peer_by_nsei(struct gbproxy_config *cfg, +/* Find the gbproxy_bvc by its NSEI */ +/* FIXME: Only returns the first bvc, but we could have multiple on this nsei */ +struct gbproxy_bvc *gbproxy_bvc_by_nsei(struct gbproxy_config *cfg, uint16_t nsei) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - if (nse->nsei == nsei && !llist_empty(&nse->bts_peers)) - return llist_first_entry(&nse->bts_peers, struct gbproxy_peer, list); + llist_for_each_entry(nse, &cfg->nses, list) { + if (nse->nsei == nsei && !llist_empty(&nse->bvcs)) + return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); } return NULL; } -/* look-up a peer by its Routeing Area Identification (RAI) */ -/* FIXME: this doesn't make sense, as RA can span multiple peers! */ -struct gbproxy_peer *gbproxy_peer_by_rai(struct gbproxy_config *cfg, +/* look-up a bvc by its Routeing Area Identification (RAI) */ +/* FIXME: this doesn't make sense, as RA can span multiple bvcs! */ +struct gbproxy_bvc *gbproxy_bvc_by_rai(struct gbproxy_config *cfg, const uint8_t *ra) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra, ra, 6)) - return peer; + llist_for_each_entry(nse, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra, ra, 6)) + return bvc; } } return NULL; } -/* look-up a peer by its Location Area Identification (LAI) */ -/* FIXME: this doesn't make sense, as LA can span multiple peers! */ -struct gbproxy_peer *gbproxy_peer_by_lai(struct gbproxy_config *cfg, +/* look-up a bvc by its Location Area Identification (LAI) */ +/* FIXME: this doesn't make sense, as LA can span multiple bvcs! */ +struct gbproxy_bvc *gbproxy_bvc_by_lai(struct gbproxy_config *cfg, const uint8_t *la) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra, la, 5)) - return peer; + llist_for_each_entry(nse, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra, la, 5)) + return bvc; } } return NULL; } -/* look-up a peer by its Location Area Code (LAC) */ -/* FIXME: this doesn't make sense, as LAC can span multiple peers! */ -struct gbproxy_peer *gbproxy_peer_by_lac(struct gbproxy_config *cfg, +/* look-up a bvc by its Location Area Code (LAC) */ +/* FIXME: this doesn't make sense, as LAC can span multiple bvcs! */ +struct gbproxy_bvc *gbproxy_bvc_by_lac(struct gbproxy_config *cfg, const uint8_t *la) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra + 3, la + 3, 2)) - return peer; + llist_for_each_entry(nse, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra + 3, la + 3, 2)) + return bvc; } } return NULL; } -struct gbproxy_peer *gbproxy_peer_by_bssgp_tlv(struct gbproxy_config *cfg, +struct gbproxy_bvc *gbproxy_bvc_by_bssgp_tlv(struct gbproxy_config *cfg, struct tlv_parsed *tp) { if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { @@ -170,22 +170,22 @@ bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); if (bvci >= 2) - return gbproxy_peer_by_bvci(cfg, bvci); + return gbproxy_bvc_by_bvci(cfg, bvci); } - /* FIXME: this doesn't make sense, as RA can span multiple peers! */ + /* FIXME: this doesn't make sense, as RA can span multiple bvcs! */ if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { uint8_t *rai = (uint8_t *)TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA); /* Only compare LAC part, since MCC/MNC are possibly patched. * Since the LAC of different BSS must be different when * MCC/MNC are patched, collisions shouldn't happen. */ - return gbproxy_peer_by_lac(cfg, rai); + return gbproxy_bvc_by_lac(cfg, rai); } - /* FIXME: this doesn't make sense, as LA can span multiple peers! */ + /* FIXME: this doesn't make sense, as LA can span multiple bvcs! */ if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { uint8_t *lai = (uint8_t *)TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA); - return gbproxy_peer_by_lac(cfg, lai); + return gbproxy_bvc_by_lac(cfg, lai); } return NULL; @@ -195,88 +195,92 @@ { time_t now; struct timespec ts = {0,}; - struct gbproxy_peer *peer = (struct gbproxy_peer *) data; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + struct gbproxy_bvc *bvc = (struct gbproxy_bvc *) data; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - gbproxy_remove_stale_link_infos(peer, now); + gbproxy_remove_stale_link_infos(bvc, now); if (cfg->clean_stale_timer_freq != 0) - osmo_timer_schedule(&peer->clean_stale_timer, + osmo_timer_schedule(&bvc->clean_stale_timer, cfg->clean_stale_timer_freq, 0); } -struct gbproxy_peer *gbproxy_peer_alloc(struct gbproxy_nse *nse, uint16_t bvci) +struct gbproxy_bvc *gbproxy_bvc_alloc(struct gbproxy_nse *nse, uint16_t bvci) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; OSMO_ASSERT(nse); struct gbproxy_config *cfg = nse->cfg; OSMO_ASSERT(cfg); - peer = talloc_zero(tall_sgsn_ctx, struct gbproxy_peer); - if (!peer) + bvc = talloc_zero(tall_sgsn_ctx, struct gbproxy_bvc); + if (!bvc) return NULL; - peer->bvci = bvci; - peer->ctrg = rate_ctr_group_alloc(peer, &peer_ctrg_desc, bvci); - if (!peer->ctrg) { - talloc_free(peer); + bvc->bvci = bvci; + bvc->ctrg = rate_ctr_group_alloc(bvc, &bvc_ctrg_desc, bvci); + if (!bvc->ctrg) { + talloc_free(bvc); return NULL; } - peer->nse = nse; + bvc->nse = nse; - llist_add(&peer->list, &nse->bts_peers); + llist_add(&bvc->list, &nse->bvcs); - INIT_LLIST_HEAD(&peer->patch_state.logical_links); + INIT_LLIST_HEAD(&bvc->patch_state.logical_links); - osmo_timer_setup(&peer->clean_stale_timer, clean_stale_timer_cb, peer); + osmo_timer_setup(&bvc->clean_stale_timer, clean_stale_timer_cb, bvc); if (cfg->clean_stale_timer_freq != 0) - osmo_timer_schedule(&peer->clean_stale_timer, + osmo_timer_schedule(&bvc->clean_stale_timer, cfg->clean_stale_timer_freq, 0); - return peer; + return bvc; } -void gbproxy_peer_free(struct gbproxy_peer *peer) +void gbproxy_bvc_free(struct gbproxy_bvc *bvc) { - if (!peer) + if (!bvc) return; - llist_del(&peer->list); - osmo_timer_del(&peer->clean_stale_timer); - gbproxy_delete_link_infos(peer); + llist_del(&bvc->list); + osmo_timer_del(&bvc->clean_stale_timer); + gbproxy_delete_link_infos(bvc); - rate_ctr_group_free(peer->ctrg); - peer->ctrg = NULL; + rate_ctr_group_free(bvc->ctrg); + bvc->ctrg = NULL; - talloc_free(peer); + talloc_free(bvc); } -void gbproxy_peer_move(struct gbproxy_peer *peer, struct gbproxy_nse *nse) +void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse) { - llist_del(&peer->list); - llist_add(&peer->list, &nse->bts_peers); - peer->nse = nse; + llist_del(&bvc->list); + llist_add(&bvc->list, &nse->bvcs); + bvc->nse = nse; } -int gbproxy_cleanup_peers(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) +/*! remove bvcs (BVCs) on NSE specified by NSEI. + * \param[in] cfg proxy in which we operate + * \param[in] nsei NS entity in which we should clean up + * \param[in] bvci if 0: remove all BVCs; if != 0: BVCI of the single BVC to clean up */ +int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) { int counter = 0; struct gbproxy_nse *nse, *ntmp; OSMO_ASSERT(cfg); - llist_for_each_entry_safe(nse, ntmp, &cfg->nse_peers, list) { - struct gbproxy_peer *peer, *tmp; + llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) { + struct gbproxy_bvc *bvc, *tmp; if (nse->nsei != nsei) continue; - llist_for_each_entry_safe(peer, tmp, &nse->bts_peers, list) { - if (bvci && peer->bvci != bvci) + llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) { + if (bvci && bvc->bvci != bvci) continue; - gbproxy_peer_free(peer); + gbproxy_bvc_free(bvc); counter += 1; } } @@ -296,23 +300,23 @@ nse->nsei = nsei; nse->cfg = cfg; - llist_add(&nse->list, &cfg->nse_peers); + llist_add(&nse->list, &cfg->nses); - INIT_LLIST_HEAD(&nse->bts_peers); + INIT_LLIST_HEAD(&nse->bvcs); return nse; } void gbproxy_nse_free(struct gbproxy_nse *nse) { - struct gbproxy_peer *peer, *tmp; + struct gbproxy_bvc *bvc, *tmp; if (!nse) return; llist_del(&nse->list); - llist_for_each_entry_safe(peer, tmp, &nse->bts_peers, list) - gbproxy_peer_free(peer); + llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) + gbproxy_bvc_free(bvc); talloc_free(nse); } @@ -322,7 +326,7 @@ struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - llist_for_each_entry(nse, &cfg->nse_peers, list) { + llist_for_each_entry(nse, &cfg->nses, list) { if (nse->nsei == nsei) return nse; } @@ -340,4 +344,4 @@ nse = gbproxy_nse_alloc(cfg, nsei); return nse; -} \ No newline at end of file +} diff --git a/src/gbproxy/gb_proxy_tlli.c b/src/gbproxy/gb_proxy_tlli.c index b84d1ea..0ea3a93 100644 --- a/src/gbproxy/gb_proxy_tlli.c +++ b/src/gbproxy/gb_proxy_tlli.c @@ -32,11 +32,11 @@ #include #include -struct gbproxy_link_info *gbproxy_link_info_by_tlli(struct gbproxy_peer *peer, +struct gbproxy_link_info *gbproxy_link_info_by_tlli(struct gbproxy_bvc *bvc, uint32_t tlli) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (!tlli) return NULL; @@ -50,11 +50,11 @@ } struct gbproxy_link_info *gbproxy_link_info_by_ptmsi( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t ptmsi) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (ptmsi == GSM_RESERVED_TMSI) return NULL; @@ -67,11 +67,11 @@ } struct gbproxy_link_info *gbproxy_link_info_by_any_sgsn_tlli( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t tlli) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (!tlli) return NULL; @@ -86,11 +86,11 @@ } struct gbproxy_link_info *gbproxy_link_info_by_sgsn_tlli( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t tlli, uint32_t sgsn_nsei) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (!tlli) return NULL; @@ -105,12 +105,12 @@ } struct gbproxy_link_info *gbproxy_link_info_by_imsi( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, const uint8_t *imsi, size_t imsi_len) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (!gprs_is_mi_imsi(imsi, imsi_len)) return NULL; @@ -137,10 +137,10 @@ } } -void gbproxy_delete_link_info(struct gbproxy_peer *peer, +void gbproxy_delete_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info) { - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; gbproxy_link_info_discard_messages(link_info); @@ -148,44 +148,44 @@ talloc_free(link_info); state->logical_link_count -= 1; - peer->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = + bvc->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = state->logical_link_count; } -void gbproxy_delete_link_infos(struct gbproxy_peer *peer) +void gbproxy_delete_link_infos(struct gbproxy_bvc *bvc) { struct gbproxy_link_info *link_info, *nxt; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; llist_for_each_entry_safe(link_info, nxt, &state->logical_links, list) - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); OSMO_ASSERT(state->logical_link_count == 0); OSMO_ASSERT(llist_empty(&state->logical_links)); } -void gbproxy_attach_link_info(struct gbproxy_peer *peer, time_t now, +void gbproxy_attach_link_info(struct gbproxy_bvc *bvc, time_t now, struct gbproxy_link_info *link_info) { - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; link_info->timestamp = now; llist_add(&link_info->list, &state->logical_links); state->logical_link_count += 1; - peer->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = + bvc->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = state->logical_link_count; } -int gbproxy_remove_stale_link_infos(struct gbproxy_peer *peer, time_t now) +int gbproxy_remove_stale_link_infos(struct gbproxy_bvc *bvc, time_t now) { - OSMO_ASSERT(peer); - struct gbproxy_patch_state *state = &peer->patch_state; + OSMO_ASSERT(bvc); + struct gbproxy_patch_state *state = &bvc->patch_state; int exceeded_max_len = 0; int deleted_count = 0; int check_for_age; - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (cfg->tlli_max_len > 0) @@ -200,12 +200,12 @@ link_info = llist_entry(state->logical_links.prev, struct gbproxy_link_info, list); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list " "(stale, length %d, max_len exceeded)\n", link_info->tlli.current, state->logical_link_count); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); deleted_count += 1; } @@ -222,23 +222,23 @@ continue; } - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list " "(stale, age %d, max_age exceeded)\n", link_info->tlli.current, (int)age); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); deleted_count += 1; } return deleted_count; } -struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_peer *peer) +struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_bvc *bvc) { struct gbproxy_link_info *link_info; - link_info = talloc_zero(peer, struct gbproxy_link_info); + link_info = talloc_zero(bvc, struct gbproxy_link_info); link_info->tlli.ptmsi = GSM_RESERVED_TMSI; link_info->sgsn_tlli.ptmsi = GSM_RESERVED_TMSI; @@ -250,16 +250,16 @@ } void gbproxy_detach_link_info( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info) { - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; llist_del(&link_info->list); OSMO_ASSERT(state->logical_link_count > 0); state->logical_link_count -= 1; - peer->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = + bvc->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = state->logical_link_count; } @@ -277,13 +277,13 @@ } void gbproxy_reassign_tlli(struct gbproxy_tlli_state *tlli_state, - struct gbproxy_peer *peer, uint32_t new_tlli) + struct gbproxy_bvc *bvc, uint32_t new_tlli) { - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); if (new_tlli == tlli_state->current) return; - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "The TLLI has been reassigned from %08x to %08x\n", tlli_state->current, new_tlli); @@ -345,26 +345,26 @@ tlli_state->assigned = 0; } -static void gbproxy_touch_link_info(struct gbproxy_peer *peer, +static void gbproxy_touch_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, time_t now) { - gbproxy_detach_link_info(peer, link_info); - gbproxy_attach_link_info(peer, now, link_info); + gbproxy_detach_link_info(bvc, link_info); + gbproxy_attach_link_info(bvc, now, link_info); } -static int gbproxy_unregister_link_info(struct gbproxy_peer *peer, +static int gbproxy_unregister_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info) { - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); if (!link_info) return 1; if (link_info->tlli.ptmsi == GSM_RESERVED_TMSI && !link_info->imsi_len) { - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list (P-TMSI or IMSI are not set)\n", link_info->tlli.current); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); return 1; } @@ -394,32 +394,32 @@ return link_info != NULL && link_info->is_matching[match_id]; } -static void gbproxy_assign_imsi(struct gbproxy_peer *peer, +static void gbproxy_assign_imsi(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, struct gprs_gb_parse_context *parse_ctx) { int imsi_matches; struct gbproxy_link_info *other_link_info; enum gbproxy_match_id match_id; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); /* Make sure that there is a second entry with the same IMSI */ other_link_info = gbproxy_link_info_by_imsi( - peer, parse_ctx->imsi, parse_ctx->imsi_len); + bvc, parse_ctx->imsi, parse_ctx->imsi_len); if (other_link_info && other_link_info != link_info) { struct osmo_mobile_identity mi; if (osmo_mobile_identity_decode(&mi, parse_ctx->imsi, parse_ctx->imsi_len, false) || mi.type != GSM_MI_TYPE_IMSI) { - LOGPBVC(peer, LOGL_ERROR, "Failed to decode Mobile Identity\n"); + LOGPBVC(bvc, LOGL_ERROR, "Failed to decode Mobile Identity\n"); } else { - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list (IMSI %s re-used)\n", other_link_info->tlli.current, mi.imsi); - gbproxy_delete_link_info(peer, other_link_info); + gbproxy_delete_link_info(bvc, other_link_info); } } @@ -456,11 +456,11 @@ } static void gbproxy_remove_matching_link_infos( - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info) + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info) { - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); struct gbproxy_link_info *info, *nxt; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; /* Make sure that there is no second entry with the same P-TMSI or TLLI */ llist_for_each_entry_safe(info, nxt, &state->logical_links, list) { @@ -472,22 +472,22 @@ !gbproxy_tlli_match(&link_info->sgsn_tlli, &info->sgsn_tlli))) continue; - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list (P-TMSI/TLLI re-used)\n", info->tlli.current); - gbproxy_delete_link_info(peer, info); + gbproxy_delete_link_info(bvc, info); } } static struct gbproxy_link_info *gbproxy_get_link_info_ul( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, int *tlli_is_valid, struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info = NULL; if (parse_ctx->tlli_enc) { - link_info = gbproxy_link_info_by_tlli(peer, parse_ctx->tlli); + link_info = gbproxy_link_info_by_tlli(bvc, parse_ctx->tlli); if (link_info) { *tlli_is_valid = 1; @@ -499,13 +499,13 @@ if (!link_info && parse_ctx->imsi) { link_info = gbproxy_link_info_by_imsi( - peer, parse_ctx->imsi, parse_ctx->imsi_len); + bvc, parse_ctx->imsi, parse_ctx->imsi_len); } if (!link_info && parse_ctx->ptmsi_enc && !parse_ctx->old_raid_is_foreign) { uint32_t bss_ptmsi; gprs_parse_tmsi(parse_ctx->ptmsi_enc, &bss_ptmsi); - link_info = gbproxy_link_info_by_ptmsi(peer, bss_ptmsi); + link_info = gbproxy_link_info_by_ptmsi(bvc, bss_ptmsi); } if (!link_info) @@ -517,27 +517,27 @@ } struct gbproxy_link_info *gbproxy_update_link_state_ul( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, time_t now, struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info; int tlli_is_valid; - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); - link_info = gbproxy_get_link_info_ul(peer, &tlli_is_valid, parse_ctx); + link_info = gbproxy_get_link_info_ul(bvc, &tlli_is_valid, parse_ctx); if (parse_ctx->tlli_enc && parse_ctx->llc) { uint32_t sgsn_tlli; if (!link_info) { - LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list\n", + LOGPBVC(bvc, LOGL_INFO, "Adding TLLI %08x to list\n", parse_ctx->tlli); - link_info = gbproxy_link_info_alloc(peer); - gbproxy_attach_link_info(peer, now, link_info); + link_info = gbproxy_link_info_alloc(bvc); + gbproxy_attach_link_info(bvc, now, link_info); /* Setup TLLIs */ - sgsn_tlli = gbproxy_make_sgsn_tlli(peer, link_info, + sgsn_tlli = gbproxy_make_sgsn_tlli(bvc, link_info, parse_ctx->tlli); link_info->sgsn_tlli.current = sgsn_tlli; link_info->tlli.current = parse_ctx->tlli; @@ -546,34 +546,34 @@ link_info->tlli.current = parse_ctx->tlli; link_info->tlli.assigned = 0; link_info->sgsn_tlli.current = - gbproxy_make_sgsn_tlli(peer, link_info, + gbproxy_make_sgsn_tlli(bvc, link_info, parse_ctx->tlli); link_info->sgsn_tlli.assigned = 0; - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } else { sgsn_tlli = gbproxy_map_tlli(parse_ctx->tlli, link_info, 0); if (!sgsn_tlli) - sgsn_tlli = gbproxy_make_sgsn_tlli(peer, link_info, + sgsn_tlli = gbproxy_make_sgsn_tlli(bvc, link_info, parse_ctx->tlli); gbproxy_validate_tlli(&link_info->tlli, parse_ctx->tlli, 0); gbproxy_validate_tlli(&link_info->sgsn_tlli, sgsn_tlli, 0); - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } } else if (link_info) { - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } if (parse_ctx->imsi && link_info && link_info->imsi_len == 0) - gbproxy_assign_imsi(peer, link_info, parse_ctx); + gbproxy_assign_imsi(bvc, link_info, parse_ctx); return link_info; } static struct gbproxy_link_info *gbproxy_get_link_info_dl( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info = NULL; @@ -581,14 +581,14 @@ /* Which key to use depends on its availability only, if that fails, do * not retry it with another key (e.g. IMSI). */ if (parse_ctx->tlli_enc) - link_info = gbproxy_link_info_by_sgsn_tlli(peer, parse_ctx->tlli, + link_info = gbproxy_link_info_by_sgsn_tlli(bvc, parse_ctx->tlli, parse_ctx->peer_nsei); /* TODO: Get link_info by (SGSN) P-TMSI if that is available (see * GSM 08.18, 7.2) instead of using the IMSI as key. */ else if (parse_ctx->imsi) link_info = gbproxy_link_info_by_imsi( - peer, parse_ctx->imsi, parse_ctx->imsi_len); + bvc, parse_ctx->imsi, parse_ctx->imsi_len); if (link_info) link_info->is_deregistered = false; @@ -597,17 +597,17 @@ } struct gbproxy_link_info *gbproxy_update_link_state_dl( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, time_t now, struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info = NULL; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); - link_info = gbproxy_get_link_info_dl(peer, parse_ctx); + link_info = gbproxy_get_link_info_dl(bvc, parse_ctx); if (parse_ctx->tlli_enc && parse_ctx->new_ptmsi_enc && link_info) { /* A new P-TMSI has been signalled in the message, @@ -620,9 +620,9 @@ new_bss_ptmsi = link_info->tlli.ptmsi; if (new_bss_ptmsi == GSM_RESERVED_TMSI) - new_bss_ptmsi = gbproxy_make_bss_ptmsi(peer, new_sgsn_ptmsi); + new_bss_ptmsi = gbproxy_make_bss_ptmsi(bvc, new_sgsn_ptmsi); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Got new PTMSI %08x from SGSN, using %08x for BSS\n", new_sgsn_ptmsi, new_bss_ptmsi); /* Setup PTMSIs */ @@ -636,25 +636,25 @@ uint32_t new_ptmsi; gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Adding TLLI %08x to list (SGSN, new P-TMSI is %08x)\n", parse_ctx->tlli, new_ptmsi); - link_info = gbproxy_link_info_alloc(peer); + link_info = gbproxy_link_info_alloc(bvc); link_info->sgsn_tlli.current = parse_ctx->tlli; link_info->tlli.current = parse_ctx->tlli; link_info->sgsn_tlli.ptmsi = new_ptmsi; link_info->tlli.ptmsi = new_ptmsi; - gbproxy_attach_link_info(peer, now, link_info); + gbproxy_attach_link_info(bvc, now, link_info); } else if (parse_ctx->tlli_enc && parse_ctx->llc && !link_info && !cfg->patch_ptmsi) { /* Unknown SGSN TLLI, create a new link_info */ uint32_t new_ptmsi; - link_info = gbproxy_link_info_alloc(peer); - LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list (SGSN)\n", + link_info = gbproxy_link_info_alloc(bvc); + LOGPBVC(bvc, LOGL_INFO, "Adding TLLI %08x to list (SGSN)\n", parse_ctx->tlli); - gbproxy_attach_link_info(peer, now, link_info); + gbproxy_attach_link_info(bvc, now, link_info); /* Setup TLLIs */ link_info->sgsn_tlli.current = parse_ctx->tlli; @@ -665,7 +665,7 @@ /* A new P-TMSI has been signalled in the message */ gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Assigning new P-TMSI %08x\n", new_ptmsi); /* Setup P-TMSIs */ link_info->sgsn_tlli.ptmsi = new_ptmsi; @@ -675,27 +675,27 @@ link_info, 1); gbproxy_validate_tlli(&link_info->sgsn_tlli, parse_ctx->tlli, 1); gbproxy_validate_tlli(&link_info->tlli, bss_tlli, 1); - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } else if (link_info) { - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } if (parse_ctx->imsi && link_info && link_info->imsi_len == 0) - gbproxy_assign_imsi(peer, link_info, parse_ctx); + gbproxy_assign_imsi(bvc, link_info, parse_ctx); return link_info; } int gbproxy_update_link_state_after( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, time_t now, struct gprs_gb_parse_context *parse_ctx) { int rc = 0; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (parse_ctx->invalidate_tlli && link_info) { @@ -706,13 +706,13 @@ (cfg->keep_link_infos == GBPROX_KEEP_IDENTIFIED && link_info->imsi_len > 0); if (keep_info) { - LOGPBVC(peer, LOGL_INFO, "Unregistering TLLI %08x\n", + LOGPBVC(bvc, LOGL_INFO, "Unregistering TLLI %08x\n", link_info->tlli.current); - rc = gbproxy_unregister_link_info(peer, link_info); + rc = gbproxy_unregister_link_info(bvc, link_info); } else { - LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list\n", + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list\n", link_info->tlli.current); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); rc = 1; } } else if (parse_ctx->to_bss && parse_ctx->tlli_enc && @@ -727,18 +727,18 @@ new_sgsn_tlli = gprs_tmsi2tlli(new_sgsn_ptmsi, TLLI_LOCAL); if (new_bss_ptmsi != GSM_RESERVED_TMSI) new_bss_tlli = gprs_tmsi2tlli(new_bss_ptmsi, TLLI_LOCAL); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Assigning new TLLI %08x to SGSN, %08x to BSS\n", new_sgsn_tlli, new_bss_tlli); gbproxy_reassign_tlli(&link_info->sgsn_tlli, - peer, new_sgsn_tlli); + bvc, new_sgsn_tlli); gbproxy_reassign_tlli(&link_info->tlli, - peer, new_bss_tlli); - gbproxy_remove_matching_link_infos(peer, link_info); + bvc, new_bss_tlli); + gbproxy_remove_matching_link_infos(bvc, link_info); } - gbproxy_remove_stale_link_infos(peer, now); + gbproxy_remove_stale_link_infos(bvc, now); return rc; } diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index bf1c4e0..3ef8ccc 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -68,14 +68,14 @@ {0, NULL} }; -static void gbprox_vty_print_peer(struct vty *vty, struct gbproxy_peer *peer) +static void gbprox_vty_print_bvc(struct vty *vty, struct gbproxy_bvc *bvc) { struct gprs_ra_id raid; - gsm48_parse_ra(&raid, peer->ra); + gsm48_parse_ra(&raid, bvc->ra); vty_out(vty, "NSEI %5u, PTP-BVCI %5u, " - "RAI %s", peer->nse->nsei, peer->bvci, osmo_rai_name(&raid)); - if (peer->blocked) + "RAI %s", bvc->nse->nsei, bvc->bvci, osmo_rai_name(&raid)); + if (bvc->blocked) vty_out(vty, " [BVC-BLOCKED]"); vty_out(vty, "%s", VTY_NEWLINE); @@ -426,12 +426,12 @@ /* Re-schedule running timers soon in case prev frequency was really big and new frequency is desired to be lower. After initial run, periodic - time is used. Use random() to avoid firing timers for all peers at + time is used. Use random() to avoid firing timers for all bvcs at the same time */ - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) - osmo_timer_schedule(&peer->clean_stale_timer, + llist_for_each_entry(nse, &g_cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) + osmo_timer_schedule(&bvc->clean_stale_timer, random() % 5, random() % 1000000); } @@ -447,10 +447,10 @@ struct gbproxy_nse *nse; g_cfg->clean_stale_timer_freq = 0; - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) - osmo_timer_del(&peer->clean_stale_timer); + llist_for_each_entry(nse, &g_cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) + osmo_timer_del(&bvc->clean_stale_timer); } return CMD_SUCCESS; @@ -584,13 +584,13 @@ if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - gbprox_vty_print_peer(vty, peer); + llist_for_each_entry(nse, &g_cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + gbprox_vty_print_bvc(vty, bvc); if (show_stats) - vty_out_rate_ctr_group(vty, " ", peer->ctrg); + vty_out_rate_ctr_group(vty, " ", bvc->ctrg); } } return CMD_SUCCESS; @@ -606,13 +606,13 @@ osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { + llist_for_each_entry(nse, &g_cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; - gbprox_vty_print_peer(vty, peer); + gbprox_vty_print_bvc(vty, bvc); llist_for_each_entry(link_info, &state->logical_links, list) { time_t age = now - link_info->timestamp; @@ -652,16 +652,16 @@ DEFUN(delete_gb_bvci, delete_gb_bvci_cmd, "delete-gbproxy-peer <0-65534> bvci <2-65534>", - "Delete a GBProxy peer by NSEI and optionally BVCI\n" + "Delete a GBProxy bvc by NSEI and optionally BVCI\n" "NSEI number\n" - "Only delete peer with a matching BVCI\n" + "Only delete bvc with a matching BVCI\n" "BVCI number\n") { const uint16_t nsei = atoi(argv[0]); const uint16_t bvci = atoi(argv[1]); int counter; - counter = gbproxy_cleanup_peers(g_cfg, nsei, bvci); + counter = gbproxy_cleanup_bvcs(g_cfg, nsei, bvci); if (counter == 0) { vty_out(vty, "BVC not found%s", VTY_NEWLINE); @@ -673,7 +673,7 @@ DEFUN(delete_gb_nsei, delete_gb_nsei_cmd, "delete-gbproxy-peer <0-65534> (only-bvc|only-nsvc|all) [dry-run]", - "Delete a GBProxy peer by NSEI and optionally BVCI\n" + "Delete a GBProxy bvc by NSEI and optionally BVCI\n" "NSEI number\n" "Only delete BSSGP connections (BVC)\n" "Only delete dynamic NS connections (NS-VC)\n" @@ -698,18 +698,18 @@ if (delete_bvc) { if (!dry_run) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei); - counter = gbproxy_cleanup_peers(g_cfg, nsei, 0); + counter = gbproxy_cleanup_bvcs(g_cfg, nsei, 0); gbproxy_nse_free(nse); } else { struct gbproxy_nse *nse; - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; counter = 0; - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { + llist_for_each_entry(nse, &g_cfg->nses, list) { if (nse->nsei != nsei) continue; - llist_for_each_entry(peer, &nse->bts_peers, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) { vty_out(vty, "BVC: "); - gbprox_vty_print_peer(vty, peer); + gbprox_vty_print_bvc(vty, bvc); counter += 1; } } @@ -754,7 +754,7 @@ enum {MATCH_TLLI = 't', MATCH_IMSI = 'i', MATCH_SGSN = 's'} match; uint32_t ident = 0; const char *imsi = NULL; - struct gbproxy_peer *peer = 0; + struct gbproxy_bvc *bvc = 0; struct gbproxy_link_info *link_info, *nxt; struct gbproxy_patch_state *state; int found = 0; @@ -767,14 +767,14 @@ case MATCH_SGSN: ident = strtoll(argv[2], NULL, 0); break; }; - peer = gbproxy_peer_by_nsei(g_cfg, nsei); - if (!peer) { - vty_out(vty, "Didn't find peer with NSEI %d%s", + bvc = gbproxy_bvc_by_nsei(g_cfg, nsei); + if (!bvc) { + vty_out(vty, "Didn't find bvc with NSEI %d%s", nsei, VTY_NEWLINE); return CMD_WARNING; } - state = &peer->patch_state; + state = &bvc->patch_state; llist_for_each_entry_safe(link_info, nxt, &state->logical_links, list) { struct osmo_mobile_identity mi; @@ -801,7 +801,7 @@ vty_out(vty, "Deleting link with TLLI %08x%s", link_info->tlli.current, VTY_NEWLINE); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); found += 1; } @@ -821,7 +821,7 @@ { const uint16_t nsei = atoi(argv[0]); enum {MATCH_STALE = 's', MATCH_DEREGISTERED = 'd'} match; - struct gbproxy_peer *peer = 0; + struct gbproxy_bvc *bvc = 0; struct gbproxy_link_info *link_info, *nxt; struct gbproxy_patch_state *state; time_t now; @@ -831,20 +831,20 @@ match = argv[1][0]; - peer = gbproxy_peer_by_nsei(g_cfg, nsei); - if (!peer) { - vty_out(vty, "Didn't find peer with NSEI %d%s", + bvc = gbproxy_bvc_by_nsei(g_cfg, nsei); + if (!bvc) { + vty_out(vty, "Didn't find bvc with NSEI %d%s", nsei, VTY_NEWLINE); return CMD_WARNING; } - state = &peer->patch_state; + state = &bvc->patch_state; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; if (match == MATCH_STALE) { - found = gbproxy_remove_stale_link_infos(peer, now); + found = gbproxy_remove_stale_link_infos(bvc, now); if (found) vty_out(vty, "Deleted %d stale logical link%s%s", found, found == 1 ? "" : "s", VTY_NEWLINE); @@ -854,7 +854,7 @@ if (!link_info->is_deregistered) continue; - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); found += 1; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iae01067282a6401f6af4cab731202872d2cdb080 Gerrit-Change-Number: 21548 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 Dec 5 10:52:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:52:06 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21549 ) Change subject: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses ...................................................................... gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses We will soon also have a list of sgsn-side NSEs, and we need to differentiate those. Change-Id: If5accec0c70c01b88927ea07beba6f6488bd9d5a Related: OS#4472 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 5 files changed, 26 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/49/21549/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 818ab9d..27b47cf 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -101,8 +101,8 @@ /* NS instance of libosmogb */ struct gprs_ns2_inst *nsi; - /* Linked list of all Gb peers (except SGSN) */ - struct llist_head nses; + /* Linked list of all BSS side Gb peers */ + struct llist_head bss_nses; /* Counter */ struct rate_ctr_group *ctrg; @@ -175,7 +175,7 @@ /* one NS Entity that we interact with (BSS/PCU) */ struct gbproxy_nse { - /* linked to gbproxy_config.nses */ + /* linked to gbproxy_config.bss_nses */ struct llist_head list; /* point back to the config */ diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 94944f9..4c34941 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1203,7 +1203,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); @@ -1217,7 +1217,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { errctr = GBPROX_GLOB_CTR_INV_LAI; /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); @@ -1230,7 +1230,7 @@ } } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); @@ -1291,7 +1291,7 @@ * from the SGSN. As the signalling BVCI is shared * among all the BSS's that we multiplex, it needs to * be relayed */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { llist_for_each_entry(bvc, &nse->bvcs, list) gbprox_relay2peer(msg, bvc, ns_bvci); } @@ -1425,7 +1425,7 @@ LOGP(DGPRS, LOGL_DEBUG, "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); /* broadcast to all BSS-side bvcs */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { gbprox_relay2nse(msg, nse, 0); } break; @@ -1620,7 +1620,7 @@ { struct gbproxy_nse *nse, *ntmp; - llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) { + llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc, *tmp; llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) gbproxy_bvc_free(bvc); @@ -1636,7 +1636,7 @@ { struct timespec tp; - INIT_LLIST_HEAD(&cfg->nses); + INIT_LLIST_HEAD(&cfg->bss_nses); 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_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index 097a29e..c3cfddf 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -69,7 +69,7 @@ gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); /* NS-VCs for BSS peers */ - llist_for_each_entry(nse_peer, &cfg->nses, list) { + llist_for_each_entry(nse_peer, &cfg->bss_nses, list) { nse = gprs_ns2_nse_by_nsei(nsi, nse_peer->nsei); if (nse) gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); @@ -87,7 +87,7 @@ cmd->reply = talloc_strdup(cmd, ""); - llist_for_each_entry(nse_peer, &cfg->nses, list) { + llist_for_each_entry(nse_peer, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse_peer->bvcs, list) { struct gprs_ra_id raid; @@ -112,7 +112,7 @@ struct gbproxy_nse *nse_peer; uint32_t count = 0; - llist_for_each_entry(nse_peer, &cfg->nses, list) + llist_for_each_entry(nse_peer, &cfg->bss_nses, list) count += llist_count(&nse_peer->bvcs); cmd->reply = talloc_strdup(cmd, ""); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index a5b93ee..c48a78f 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -87,7 +87,7 @@ { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (bvc->bvci == bvci) @@ -103,7 +103,7 @@ uint16_t nsei) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { if (nse->nsei == nsei && !llist_empty(&nse->bvcs)) return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); } @@ -117,7 +117,7 @@ { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, ra, 6)) @@ -135,7 +135,7 @@ { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, la, 5)) @@ -152,7 +152,7 @@ { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra + 3, la + 3, 2)) @@ -272,7 +272,7 @@ struct gbproxy_nse *nse, *ntmp; OSMO_ASSERT(cfg); - llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) { + llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc, *tmp; if (nse->nsei != nsei) continue; @@ -300,7 +300,7 @@ nse->nsei = nsei; nse->cfg = cfg; - llist_add(&nse->list, &cfg->nses); + llist_add(&nse->list, &cfg->bss_nses); INIT_LLIST_HEAD(&nse->bvcs); @@ -326,7 +326,7 @@ struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { if (nse->nsei == nsei) return nse; } diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 3ef8ccc..e79297d 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -428,7 +428,7 @@ and new frequency is desired to be lower. After initial run, periodic time is used. Use random() to avoid firing timers for all bvcs at the same time */ - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) osmo_timer_schedule(&bvc->clean_stale_timer, @@ -447,7 +447,7 @@ struct gbproxy_nse *nse; g_cfg->clean_stale_timer_freq = 0; - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) osmo_timer_del(&bvc->clean_stale_timer); @@ -584,7 +584,7 @@ if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { gbprox_vty_print_bvc(vty, bvc); @@ -606,7 +606,7 @@ osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { struct gbproxy_link_info *link_info; @@ -704,7 +704,7 @@ struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; counter = 0; - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { if (nse->nsei != nsei) continue; llist_for_each_entry(bvc, &nse->bvcs, list) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5accec0c70c01b88927ea07beba6f6488bd9d5a Gerrit-Change-Number: 21549 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 Dec 5 10:52:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:52:06 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: convert bss_nses from llist_head to hashtable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21550 ) Change subject: gbproxy: convert bss_nses from llist_head to hashtable ...................................................................... gbproxy: convert bss_nses from llist_head to hashtable For the common lookup-by-nsei, this should reduce the computational complexity significantly. Depends: libosmocore.git I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Change-Id: Idbb6a362332bb6e3ce22102e7409ae80d0980f44 --- M TODO-RELEASE M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 6 files changed, 54 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/50/21550/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 6b29a87..1e409b5 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -1,2 +1,3 @@ #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 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 27b47cf..b0ab83d 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -102,7 +103,7 @@ struct gprs_ns2_inst *nsi; /* Linked list of all BSS side Gb peers */ - struct llist_head bss_nses; + DECLARE_HASHTABLE(bss_nses, 8); /* Counter */ struct rate_ctr_group *ctrg; @@ -176,7 +177,7 @@ /* one NS Entity that we interact with (BSS/PCU) */ struct gbproxy_nse { /* linked to gbproxy_config.bss_nses */ - struct llist_head list; + struct hlist_node list; /* point back to the config */ struct gbproxy_config *cfg; diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 4c34941..c37b21a 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -1183,6 +1184,7 @@ struct gbproxy_bvc *bvc; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; + int i; /* FIXME: Handle paging logic to only page each matching NSE */ @@ -1203,7 +1205,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); @@ -1217,7 +1219,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { errctr = GBPROX_GLOB_CTR_INV_LAI; /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); @@ -1230,7 +1232,7 @@ } } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); @@ -1263,6 +1265,7 @@ struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; uint16_t ptp_bvci; + int i; if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { rate_ctr_inc(&cfg->ctrg-> @@ -1291,7 +1294,7 @@ * from the SGSN. As the signalling BVCI is shared * among all the BSS's that we multiplex, it needs to * be relayed */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { llist_for_each_entry(bvc, &nse->bvcs, list) gbprox_relay2peer(msg, bvc, ns_bvci); } @@ -1315,6 +1318,7 @@ struct msgb *msg; int rc = 0; int cause; + int i; if (ns_bvci != 0 && ns_bvci != 1) { LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BVCI=%05u is not " @@ -1425,7 +1429,7 @@ LOGP(DGPRS, LOGL_DEBUG, "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); /* broadcast to all BSS-side bvcs */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { gbprox_relay2nse(msg, nse, 0); } break; @@ -1618,9 +1622,11 @@ void gbprox_reset(struct gbproxy_config *cfg) { - struct gbproxy_nse *nse, *ntmp; + struct gbproxy_nse *nse; + struct hlist_node *ntmp; + int i; - llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) { + hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { struct gbproxy_bvc *bvc, *tmp; llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) gbproxy_bvc_free(bvc); @@ -1636,7 +1642,7 @@ { struct timespec tp; - INIT_LLIST_HEAD(&cfg->bss_nses); + hash_init(cfg->bss_nses); 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_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index c3cfddf..8290412 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -56,6 +56,7 @@ struct gprs_ns2_inst *nsi = cfg->nsi; struct gprs_ns2_nse *nse; struct gbproxy_nse *nse_peer; + int i; cmd->reply = talloc_strdup(cmd, ""); @@ -69,7 +70,7 @@ gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); /* NS-VCs for BSS peers */ - llist_for_each_entry(nse_peer, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse_peer, list) { nse = gprs_ns2_nse_by_nsei(nsi, nse_peer->nsei); if (nse) gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); @@ -84,10 +85,11 @@ { struct gbproxy_config *cfg = data; struct gbproxy_nse *nse_peer; + int i; cmd->reply = talloc_strdup(cmd, ""); - llist_for_each_entry(nse_peer, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse_peer, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse_peer->bvcs, list) { struct gprs_ra_id raid; @@ -111,8 +113,9 @@ struct gbproxy_config *cfg = data; struct gbproxy_nse *nse_peer; uint32_t count = 0; + int i; - llist_for_each_entry(nse_peer, &cfg->bss_nses, list) + hash_for_each(cfg->bss_nses, i, nse_peer, list) count += llist_count(&nse_peer->bvcs); cmd->reply = talloc_strdup(cmd, ""); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index c48a78f..00bff20 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -86,8 +86,9 @@ struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) { struct gbproxy_nse *nse; + int i; - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (bvc->bvci == bvci) @@ -102,11 +103,11 @@ struct gbproxy_bvc *gbproxy_bvc_by_nsei(struct gbproxy_config *cfg, uint16_t nsei) { - struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->bss_nses, list) { - if (nse->nsei == nsei && !llist_empty(&nse->bvcs)) - return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); - } + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); + + if (nse && !llist_empty(&nse->bvcs)) + return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); + return NULL; } @@ -116,8 +117,9 @@ const uint8_t *ra) { struct gbproxy_nse *nse; + int i; - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, ra, 6)) @@ -134,8 +136,9 @@ const uint8_t *la) { struct gbproxy_nse *nse; + int i; - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, la, 5)) @@ -151,8 +154,9 @@ const uint8_t *la) { struct gbproxy_nse *nse; + int i; - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra + 3, la + 3, 2)) @@ -268,11 +272,12 @@ * \param[in] bvci if 0: remove all BVCs; if != 0: BVCI of the single BVC to clean up */ int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) { - int counter = 0; - struct gbproxy_nse *nse, *ntmp; + int i, counter = 0; + struct gbproxy_nse *nse; + struct hlist_node *ntmp; OSMO_ASSERT(cfg); - llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) { + hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { struct gbproxy_bvc *bvc, *tmp; if (nse->nsei != nsei) continue; @@ -300,7 +305,7 @@ nse->nsei = nsei; nse->cfg = cfg; - llist_add(&nse->list, &cfg->bss_nses); + hash_add(cfg->bss_nses, &nse->list, nsei); INIT_LLIST_HEAD(&nse->bvcs); @@ -313,7 +318,7 @@ if (!nse) return; - llist_del(&nse->list); + hash_del(&nse->list); llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) gbproxy_bvc_free(bvc); @@ -326,7 +331,7 @@ struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each_possible(cfg->bss_nses, nse, list, nsei) { if (nse->nsei == nsei) return nse; } diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index e79297d..da8afdc 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -422,13 +422,14 @@ "Frequency at which the periodic timer is fired (in seconds)\n") { struct gbproxy_nse *nse; + int i; g_cfg->clean_stale_timer_freq = (unsigned int) atoi(argv[0]); /* Re-schedule running timers soon in case prev frequency was really big and new frequency is desired to be lower. After initial run, periodic time is used. Use random() to avoid firing timers for all bvcs at the same time */ - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) osmo_timer_schedule(&bvc->clean_stale_timer, @@ -445,9 +446,10 @@ { struct gbproxy_nse *nse; + int i; g_cfg->clean_stale_timer_freq = 0; - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) osmo_timer_del(&bvc->clean_stale_timer); @@ -580,11 +582,12 @@ { struct gbproxy_nse *nse; int show_stats = argc >= 1; + int i; if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { gbprox_vty_print_bvc(vty, bvc); @@ -602,11 +605,12 @@ struct gbproxy_nse *nse; time_t now; struct timespec ts = {0,}; + int i; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { struct gbproxy_link_info *link_info; @@ -703,8 +707,9 @@ } else { struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; + int i; counter = 0; - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { if (nse->nsei != nsei) continue; llist_for_each_entry(bvc, &nse->bvcs, list) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idbb6a362332bb6e3ce22102e7409ae80d0980f44 Gerrit-Change-Number: 21550 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 Dec 5 10:52:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:52:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: convert nse->bvcs from llist_head to hashtable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21551 ) Change subject: gbproxy: convert nse->bvcs from llist_head to hashtable ...................................................................... gbproxy: convert nse->bvcs from llist_head to hashtable For the common lookup-by-bvci, this should reduce the computational complexity significantly. Depends: libosmocore.git I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Change-Id: Ic8e9279fd61a3c514fc3203429f36a468f0e81d3 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 5 files changed, 58 insertions(+), 44 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/51/21551/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index b0ab83d..95a3331 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -150,7 +150,7 @@ /* One BVC inside an NSE */ struct gbproxy_bvc { /* linked to gbproxy_nse.bvcs */ - struct llist_head list; + struct hlist_node list; /* The NSE this BVC belongs to */ struct gbproxy_nse *nse; @@ -186,7 +186,7 @@ uint16_t nsei; /* List of all BVCs in this NSE */ - struct llist_head bvcs; + DECLARE_HASHTABLE(bvcs, 10); }; struct gbproxy_tlli_state { diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index c37b21a..ef2273d 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1184,7 +1184,7 @@ struct gbproxy_bvc *bvc; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; - int i; + int i, j; /* FIXME: Handle paging logic to only page each matching NSE */ @@ -1206,7 +1206,7 @@ errctr = GBPROX_GLOB_CTR_INV_RAI; /* iterate over all bvcs and dispatch the paging to each matching one */ hash_for_each(cfg->bss_nses, i, nse, list) { - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); @@ -1220,7 +1220,7 @@ errctr = GBPROX_GLOB_CTR_INV_LAI; /* iterate over all bvcs and dispatch the paging to each matching one */ hash_for_each(cfg->bss_nses, i, nse, list) { - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); @@ -1233,7 +1233,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* iterate over all bvcs and dispatch the paging to each matching one */ hash_for_each(cfg->bss_nses, i, nse, list) { - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; @@ -1265,7 +1265,7 @@ struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; uint16_t ptp_bvci; - int i; + int i, j; if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { rate_ctr_inc(&cfg->ctrg-> @@ -1295,7 +1295,7 @@ * among all the BSS's that we multiplex, it needs to * be relayed */ hash_for_each(cfg->bss_nses, i, nse, list) { - llist_for_each_entry(bvc, &nse->bvcs, list) + hash_for_each(nse->bvcs, j, bvc, list) gbprox_relay2peer(msg, bvc, ns_bvci); } @@ -1627,8 +1627,9 @@ int i; hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { - struct gbproxy_bvc *bvc, *tmp; - llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) + struct gbproxy_bvc *bvc; + struct hlist_node *tmp; + hash_for_each_safe(nse->bvcs, i, tmp, bvc, list) gbproxy_bvc_free(bvc); gbproxy_nse_free(nse); diff --git a/src/gbproxy/gb_proxy_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index 8290412..157695d 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -85,13 +85,13 @@ { struct gbproxy_config *cfg = data; struct gbproxy_nse *nse_peer; - int i; + int i, j; cmd->reply = talloc_strdup(cmd, ""); hash_for_each(cfg->bss_nses, i, nse_peer, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse_peer->bvcs, list) { + hash_for_each(nse_peer->bvcs, j, bvc, list) { struct gprs_ra_id raid; gsm48_parse_ra(&raid, bvc->ra); @@ -112,11 +112,14 @@ { struct gbproxy_config *cfg = data; struct gbproxy_nse *nse_peer; + struct gbproxy_bvc *bvc; uint32_t count = 0; - int i; + int i, j; - hash_for_each(cfg->bss_nses, i, nse_peer, list) - count += llist_count(&nse_peer->bvcs); + hash_for_each(cfg->bss_nses, i, nse_peer, list) { + hash_for_each(nse_peer->bvcs, j, bvc, list) + count++; + } cmd->reply = talloc_strdup(cmd, ""); cmd->reply = talloc_asprintf_append(cmd->reply, "%u", count); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 00bff20..f5a4376 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -90,7 +90,7 @@ hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each_possible(nse->bvcs, bvc, list, bvci) { if (bvc->bvci == bvci) return bvc; } @@ -104,9 +104,15 @@ uint16_t nsei) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); + struct gbproxy_bvc *bvc; + int i; - if (nse && !llist_empty(&nse->bvcs)) - return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); + if (!nse || hash_empty(nse->bvcs)) + return NULL; + + /* return the first entry we find */ + hash_for_each(nse->bvcs, i, bvc, list) + return bvc; return NULL; } @@ -117,11 +123,11 @@ const uint8_t *ra) { struct gbproxy_nse *nse; - int i; + int i, j; hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, ra, 6)) return bvc; } @@ -136,11 +142,11 @@ const uint8_t *la) { struct gbproxy_nse *nse; - int i; + int i, j; hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, la, 5)) return bvc; } @@ -154,11 +160,11 @@ const uint8_t *la) { struct gbproxy_nse *nse; - int i; + int i, j; hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra + 3, la + 3, 2)) return bvc; } @@ -232,7 +238,7 @@ } bvc->nse = nse; - llist_add(&bvc->list, &nse->bvcs); + hash_add(nse->bvcs, &bvc->list, bvc->bvci); INIT_LLIST_HEAD(&bvc->patch_state.logical_links); @@ -249,7 +255,7 @@ if (!bvc) return; - llist_del(&bvc->list); + hash_del(&bvc->list); osmo_timer_del(&bvc->clean_stale_timer); gbproxy_delete_link_infos(bvc); @@ -261,8 +267,8 @@ void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse) { - llist_del(&bvc->list); - llist_add(&bvc->list, &nse->bvcs); + hash_del(&bvc->list); + hash_add(nse->bvcs, &bvc->list, bvc->bvci); bvc->nse = nse; } @@ -272,16 +278,17 @@ * \param[in] bvci if 0: remove all BVCs; if != 0: BVCI of the single BVC to clean up */ int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) { - int i, counter = 0; + int i, j, counter = 0; struct gbproxy_nse *nse; struct hlist_node *ntmp; OSMO_ASSERT(cfg); hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { - struct gbproxy_bvc *bvc, *tmp; + struct gbproxy_bvc *bvc; + struct hlist_node *btmp; if (nse->nsei != nsei) continue; - llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) { + hash_for_each_safe(nse->bvcs, j, btmp, bvc, list) { if (bvci && bvc->bvci != bvci) continue; @@ -307,20 +314,23 @@ hash_add(cfg->bss_nses, &nse->list, nsei); - INIT_LLIST_HEAD(&nse->bvcs); + hash_init(nse->bvcs); return nse; } void gbproxy_nse_free(struct gbproxy_nse *nse) { - struct gbproxy_bvc *bvc, *tmp; + struct gbproxy_bvc *bvc; + struct hlist_node *tmp; + int i; + if (!nse) return; hash_del(&nse->list); - llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) + hash_for_each_safe(nse->bvcs, i, tmp, bvc, list) gbproxy_bvc_free(bvc); talloc_free(nse); diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index da8afdc..47ac9b9 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -422,7 +422,7 @@ "Frequency at which the periodic timer is fired (in seconds)\n") { struct gbproxy_nse *nse; - int i; + int i, j; g_cfg->clean_stale_timer_freq = (unsigned int) atoi(argv[0]); /* Re-schedule running timers soon in case prev frequency was really big @@ -431,7 +431,7 @@ the same time */ hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) + hash_for_each(nse->bvcs, j, bvc, list) osmo_timer_schedule(&bvc->clean_stale_timer, random() % 5, random() % 1000000); } @@ -446,12 +446,12 @@ { struct gbproxy_nse *nse; - int i; + int i, j; g_cfg->clean_stale_timer_freq = 0; hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) + hash_for_each(nse->bvcs, j, bvc, list) osmo_timer_del(&bvc->clean_stale_timer); } @@ -582,14 +582,14 @@ { struct gbproxy_nse *nse; int show_stats = argc >= 1; - int i; + int i, j; if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { gbprox_vty_print_bvc(vty, bvc); if (show_stats) @@ -605,14 +605,14 @@ struct gbproxy_nse *nse; time_t now; struct timespec ts = {0,}; - int i; + int i, j; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { struct gbproxy_link_info *link_info; struct gbproxy_patch_state *state = &bvc->patch_state; @@ -707,12 +707,12 @@ } else { struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; - int i; + int i, j; counter = 0; hash_for_each(g_cfg->bss_nses, i, nse, list) { if (nse->nsei != nsei) continue; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { vty_out(vty, "BVC: "); gbprox_vty_print_bvc(vty, bvc); counter += 1; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ic8e9279fd61a3c514fc3203429f36a468f0e81d3 Gerrit-Change-Number: 21551 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 Dec 5 10:52:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:52:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove patching, TLLI-tracking and SGSN2 support References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21552 ) Change subject: gbproxy: Remove patching, TLLI-tracking and SGSN2 support ...................................................................... gbproxy: Remove patching, TLLI-tracking and SGSN2 support Those features were introduced a long time ago for one specific use case at one specific user, and they are not needed anymore. They complicate the code base significantly and are hard to maintain with all the upcoming modifications regarding SGSN pool supoprt. Change-Id: Id9cc2e1c63486491ac5bb68876088a615075fde6 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/Makefile.am M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c D src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_peer.c D src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c 8 files changed, 4 insertions(+), 2,900 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/52/21552/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 95a3331..8fe845c 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -35,7 +35,6 @@ GBPROX_GLOB_CTR_RESTART_RESET_SGSN, GBPROX_GLOB_CTR_TX_ERR_SGSN, GBPROX_GLOB_CTR_OTHER_ERR, - GBPROX_GLOB_CTR_PATCH_PEER_ERR, }; enum gbproxy_bvc_ctr { @@ -44,56 +43,9 @@ GBPROX_PEER_CTR_DROPPED, GBPROX_PEER_CTR_INV_NSEI, GBPROX_PEER_CTR_TX_ERR, - GBPROX_PEER_CTR_RAID_PATCHED_BSS, - GBPROX_PEER_CTR_RAID_PATCHED_SGSN, - GBPROX_PEER_CTR_APN_PATCHED, - GBPROX_PEER_CTR_TLLI_PATCHED_BSS, - GBPROX_PEER_CTR_TLLI_PATCHED_SGSN, - GBPROX_PEER_CTR_PTMSI_PATCHED_BSS, - GBPROX_PEER_CTR_PTMSI_PATCHED_SGSN, - GBPROX_PEER_CTR_PATCH_CRYPT_ERR, - GBPROX_PEER_CTR_PATCH_ERR, - GBPROX_PEER_CTR_ATTACH_REQS, - GBPROX_PEER_CTR_ATTACH_REJS, - GBPROX_PEER_CTR_ATTACH_ACKS, - GBPROX_PEER_CTR_ATTACH_COMPLS, - GBPROX_PEER_CTR_RA_UPD_REQS, - GBPROX_PEER_CTR_RA_UPD_REJS, - GBPROX_PEER_CTR_RA_UPD_ACKS, - GBPROX_PEER_CTR_RA_UPD_COMPLS, - GBPROX_PEER_CTR_GMM_STATUS_BSS, - GBPROX_PEER_CTR_GMM_STATUS_SGSN, - GBPROX_PEER_CTR_DETACH_REQS, - GBPROX_PEER_CTR_DETACH_ACKS, - GBPROX_PEER_CTR_PDP_ACT_REQS, - GBPROX_PEER_CTR_PDP_ACT_REJS, - GBPROX_PEER_CTR_PDP_ACT_ACKS, - GBPROX_PEER_CTR_PDP_DEACT_REQS, - GBPROX_PEER_CTR_PDP_DEACT_ACKS, - GBPROX_PEER_CTR_TLLI_UNKNOWN, - GBPROX_PEER_CTR_TLLI_CACHE_SIZE, GBPROX_PEER_CTR_LAST, }; -enum gbproxy_keep_mode { - GBPROX_KEEP_NEVER, /* don't ever keep TLLI/IMSI state of de-registered subscribers */ - GBPROX_KEEP_REATTACH, /* keep if re-attach has been requested by SGSN */ - GBPROX_KEEP_IDENTIFIED, /* keep if we had resolved an IMSI */ - GBPROX_KEEP_ALWAYS, /* always keep */ -}; - -enum gbproxy_match_id { - GBPROX_MATCH_PATCHING, /* match rule on whether or not we should patch */ - GBPROX_MATCH_ROUTING, /* match rule on whether or not we should route (2-SGSN) */ - GBPROX_MATCH_LAST -}; - -struct gbproxy_match { - bool enable; /* is this match enabled? */ - char *re_str; /* regular expression (for IMSI) in string format */ - regex_t re_comp; /* compiled regular expression (for IMSI) */ -}; - /* global gb-proxy configuration */ struct gbproxy_config { /* parsed from config file */ @@ -107,44 +59,6 @@ /* Counter */ struct rate_ctr_group *ctrg; - - /* MCC/MNC to be patched into RA-ID on the way from BSS to SGSN? */ - struct osmo_plmn_id core_plmn; - - /* APN to be patched into PDP CTX ACT REQ on the way from BSS to SGSN */ - uint8_t* core_apn; - size_t core_apn_size; - - /* Frequency (sec) at which timer to clean stale links is fired (0 disabled) */ - unsigned int clean_stale_timer_freq; - /* If !0, Max age to consider a struct gbproxy_link_info as stale */ - int tlli_max_age; - /* If !0, Max len of gbproxy_bvc->list (list of struct gbproxy_link_info) */ - int tlli_max_len; - /* If !0, Max len of gbproxy_link_info->stored_msgs (list of msgb) */ - uint32_t stored_msgs_max_len; - - /* Should the P-TMSI be patched on the fly (required for 2-SGSN config) */ - bool patch_ptmsi; - /* Should the IMSI be acquired by the proxy (required for 2-SGSN config) */ - bool acquire_imsi; - /* Should we route subscribers to two different SGSNs? */ - bool route_to_sgsn2; - /* NSEI of the second SGSN */ - uint16_t nsip_sgsn2_nsei; - /* should we keep a cache of per-subscriber state even after de-registration? */ - enum gbproxy_keep_mode keep_link_infos; - - /* IMSI checking/matching for 2-SGSN routing and patching */ - struct gbproxy_match matches[GBPROX_MATCH_LAST]; -}; - -struct gbproxy_patch_state { - struct osmo_plmn_id local_plmn; - - /* List of TLLIs for which patching is enabled */ - struct llist_head logical_links; - int logical_link_count; }; /* One BVC inside an NSE */ @@ -166,12 +80,6 @@ /* Counter */ struct rate_ctr_group *ctrg; - - /* State related to on-the-fly patching of certain messages */ - struct gbproxy_patch_state patch_state; - - /* Fired periodically to clean up stale links from list */ - struct osmo_timer_list clean_stale_timer; }; /* one NS Entity that we interact with (BSS/PCU) */ @@ -189,58 +97,6 @@ DECLARE_HASHTABLE(bvcs, 10); }; -struct gbproxy_tlli_state { - /* currently active TLLI */ - uint32_t current; - /* newly-assigned TLLI (e.g. during P-TMSI allocation procedure) */ - uint32_t assigned; - /* has the BSS side validated (confirmed) the new TLLI? */ - bool bss_validated; - /* has the SGSN side validated (confirmed) the new TLLI? */ - bool net_validated; - /* NOTE: once both are validated, we set current = assigned and assigned = 0 */ - - /* The P-TMSI for this subscriber */ - uint32_t ptmsi; -}; - -/* One TLLI (= UE, = Subscriber) served via this proxy */ -struct gbproxy_link_info { - /* link to gbproxy_bvc.patch_state.logical_links */ - struct llist_head list; - - /* TLLI on the BSS/PCU side */ - struct gbproxy_tlli_state tlli; - /* TLLI on the SGSN side (can be different in case of P-TMSI patching) */ - struct gbproxy_tlli_state sgsn_tlli; - /* NSEI of the SGSN serving this link */ - uint32_t sgsn_nsei; - - /* timestamp when we last had any contact with this UE */ - time_t timestamp; - - /* IMSI of the subscriber (if/once known) */ - uint8_t *imsi; - size_t imsi_len; - - /* is the IMSI acquisition still pending? */ - bool imsi_acq_pending; - - /* queue of stored UL messages (until IMSI acquisition completes and we can - * determine which of the SGSNs we should route this to */ - struct llist_head stored_msgs; - uint32_t stored_msgs_len; - - /* generated N(U) we use (required due to IMSI acquisition */ - unsigned vu_gen_tx_bss; - - /* is this subscriber deregistered (TLLI invalidated)? */ - bool is_deregistered; - - /* does this link match either the (2-SGSN) routing or the patching rule? */ - bool is_matching[GBPROX_MATCH_LAST]; -}; - /* Convenience logging macros for NSE/BVC */ #define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ LOGP(SUBSYS, LEVEL, "NSE(%05u/BSS) " FMT, (NSE)->nsei, ## ARGS) @@ -276,74 +132,6 @@ void gbprox_reset(struct gbproxy_config *cfg); -/* TLLI info handling */ -void gbproxy_delete_link_infos(struct gbproxy_bvc *bvc); -struct gbproxy_link_info *gbproxy_update_link_state_ul( - struct gbproxy_bvc *bvc, time_t now, - struct gprs_gb_parse_context *parse_ctx); -struct gbproxy_link_info *gbproxy_update_link_state_dl( - struct gbproxy_bvc *bvc, time_t now, - struct gprs_gb_parse_context *parse_ctx); -int gbproxy_update_link_state_after( - struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, - time_t now, struct gprs_gb_parse_context *parse_ctx); -int gbproxy_remove_stale_link_infos(struct gbproxy_bvc *bvc, time_t now); -void gbproxy_delete_link_info(struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info); -void gbproxy_link_info_discard_messages(struct gbproxy_link_info *link_info); - -void gbproxy_attach_link_info(struct gbproxy_bvc *bvc, time_t now, - struct gbproxy_link_info *link_info); -void gbproxy_update_link_info(struct gbproxy_link_info *link_info, - const uint8_t *imsi, size_t imsi_len); -void gbproxy_detach_link_info(struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info); -struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_bvc *bvc); - -struct gbproxy_link_info *gbproxy_link_info_by_tlli( - struct gbproxy_bvc *bvc, uint32_t tlli); -struct gbproxy_link_info *gbproxy_link_info_by_imsi( - struct gbproxy_bvc *bvc, const uint8_t *imsi, size_t imsi_len); -struct gbproxy_link_info *gbproxy_link_info_by_any_sgsn_tlli( - struct gbproxy_bvc *bvc, uint32_t tlli); -struct gbproxy_link_info *gbproxy_link_info_by_sgsn_tlli( - struct gbproxy_bvc *bvc, - uint32_t tlli, uint32_t sgsn_nsei); -struct gbproxy_link_info *gbproxy_link_info_by_ptmsi( - struct gbproxy_bvc *bvc, - uint32_t ptmsi); - -int gbproxy_imsi_matches( - struct gbproxy_config *cfg, - enum gbproxy_match_id match_id, - struct gbproxy_link_info *link_info); -uint32_t gbproxy_map_tlli( - uint32_t other_tlli, struct gbproxy_link_info *link_info, int to_bss); - -/* needed by gb_proxy_tlli.h */ -uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_bvc *bvc, uint32_t sgsn_ptmsi); -uint32_t gbproxy_make_sgsn_tlli( - struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, - uint32_t bss_tlli); -void gbproxy_reset_link(struct gbproxy_link_info *link_info); -int gbproxy_check_imsi( - struct gbproxy_match *match, const uint8_t *imsi, size_t imsi_len); - -/* Message patching */ -void gbproxy_patch_bssgp( - struct msgb *msg, uint8_t *bssgp, size_t bssgp_len, - struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, - int *len_change, struct gprs_gb_parse_context *parse_ctx); - -int gbproxy_patch_llc( - struct msgb *msg, uint8_t *llc, size_t llc_len, - struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, - int *len_change, struct gprs_gb_parse_context *parse_ctx); - -int gbproxy_set_patch_filter( - struct gbproxy_match *match, const char *filter, const char **err_msg); -void gbproxy_clear_patch_filter(struct gbproxy_match *match); - /* Peer handling */ struct gbproxy_bvc *gbproxy_bvc_by_bvci( struct gbproxy_config *cfg, uint16_t bvci); diff --git a/src/gbproxy/Makefile.am b/src/gbproxy/Makefile.am index 6876f68..f8a8773 100644 --- a/src/gbproxy/Makefile.am +++ b/src/gbproxy/Makefile.am @@ -27,8 +27,6 @@ gb_proxy_main.c \ gb_proxy_vty.c \ gb_proxy_ctrl.c \ - gb_proxy_patch.c \ - gb_proxy_tlli.c \ gb_proxy_peer.c \ $(NULL) osmo_gbproxy_LDADD = \ diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index ef2273d..1cf7471 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -82,7 +82,6 @@ uint16_t ns_bvci); static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei); -static void gbproxy_reset_imsi_acquisition(struct gbproxy_link_info* link_info); static int check_bvc_nsei(struct gbproxy_bvc *bvc, uint16_t nsei) { @@ -106,449 +105,6 @@ msgb_pull(msg, strip_len); } -/* Transmit Chapter 9.2.10 Identity Request */ -static void gprs_put_identity_req(struct msgb *msg, uint8_t id_type) -{ - struct gsm48_hdr *gh; - - id_type &= GSM_MI_TYPE_MASK; - - gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); - gh->proto_discr = GSM48_PDISC_MM_GPRS; - gh->msg_type = GSM48_MT_GMM_ID_REQ; - gh->data[0] = id_type; -} - -/* Transmit Chapter 9.4.6.2 Detach Accept (mobile originated detach) */ -static void gprs_put_mo_detach_acc(struct msgb *msg) -{ - struct gsm48_hdr *gh; - - gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); - gh->proto_discr = GSM48_PDISC_MM_GPRS; - gh->msg_type = GSM48_MT_GMM_DETACH_ACK; - gh->data[0] = 0; /* no force to standby */ -} - -static void gprs_push_llc_ui(struct msgb *msg, - int is_uplink, unsigned sapi, unsigned nu) -{ - const uint8_t e_bit = 0; - const uint8_t pm_bit = 1; - const uint8_t cr_bit = is_uplink ? 0 : 1; - uint8_t *llc; - uint8_t *fcs_field; - uint32_t fcs; - - nu &= 0x01ff; /* 9 Bit */ - - llc = msgb_push(msg, 3); - llc[0] = (cr_bit << 6) | (sapi & 0x0f); - llc[1] = 0xc0 | (nu >> 6); /* UI frame */ - llc[2] = (nu << 2) | ((e_bit & 1) << 1) | (pm_bit & 1); - - fcs = gprs_llc_fcs(llc, msgb_length(msg)); - fcs_field = msgb_put(msg, 3); - fcs_field[0] = (uint8_t)(fcs >> 0); - fcs_field[1] = (uint8_t)(fcs >> 8); - fcs_field[2] = (uint8_t)(fcs >> 16); -} - -static void gprs_push_bssgp_dl_unitdata(struct msgb *msg, - uint32_t tlli) -{ - struct bssgp_ud_hdr *budh; - uint8_t *llc = msgb_data(msg); - size_t llc_size = msgb_length(msg); - const size_t llc_ie_hdr_size = 3; - const uint8_t qos_profile[] = {0x00, 0x50, 0x20}; /* hard-coded */ - const uint8_t lifetime[] = {0x02, 0x58}; /* 6s hard-coded */ - - const size_t bssgp_overhead = sizeof(*budh) + - TVLV_GROSS_LEN(sizeof(lifetime)) + llc_ie_hdr_size; - uint8_t *ie; - uint32_t tlli_be = htonl(tlli); - - budh = (struct bssgp_ud_hdr *)msgb_push(msg, bssgp_overhead); - - budh->pdu_type = BSSGP_PDUT_DL_UNITDATA; - memcpy(&budh->tlli, &tlli_be, sizeof(budh->tlli)); - memcpy(&budh->qos_profile, qos_profile, sizeof(budh->qos_profile)); - - ie = budh->data; - tvlv_put(ie, BSSGP_IE_PDU_LIFETIME, sizeof(lifetime), lifetime); - ie += TVLV_GROSS_LEN(sizeof(lifetime)); - - /* Note: Add alignment before the LLC IE if inserting other IE */ - - *(ie++) = BSSGP_IE_LLC_PDU; - *(ie++) = llc_size / 256; - *(ie++) = llc_size % 256; - - OSMO_ASSERT(ie == llc); - - msgb_bssgph(msg) = (uint8_t *)budh; - msgb_tlli(msg) = tlli; -} - -/* update bvc according to the BSS message */ -static void gbprox_update_current_raid(uint8_t *raid_enc, - struct gbproxy_bvc *bvc, - const char *log_text) -{ - struct gbproxy_patch_state *state = &bvc->patch_state; - const struct osmo_plmn_id old_plmn = state->local_plmn; - struct gprs_ra_id raid; - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - if (!raid_enc) - return; - - gsm48_parse_ra(&raid, raid_enc); - - /* save source side MCC/MNC */ - if (!cfg->core_plmn.mcc || raid.mcc == cfg->core_plmn.mcc) { - state->local_plmn.mcc = 0; - } else { - state->local_plmn.mcc = raid.mcc; - } - - if (!cfg->core_plmn.mnc - || !osmo_mnc_cmp(raid.mnc, raid.mnc_3_digits, - cfg->core_plmn.mnc, cfg->core_plmn.mnc_3_digits)) { - state->local_plmn.mnc = 0; - state->local_plmn.mnc_3_digits = false; - } else { - state->local_plmn.mnc = raid.mnc; - state->local_plmn.mnc_3_digits = raid.mnc_3_digits; - } - - if (osmo_plmn_cmp(&old_plmn, &state->local_plmn)) - LOGPBVC(bvc, LOGL_NOTICE, - "Patching RAID %sactivated, msg: %s, " - "local: %s, core: %s\n", - state->local_plmn.mcc || state->local_plmn.mnc ? - "" : "de", - log_text, - osmo_plmn_name(&state->local_plmn), - osmo_plmn_name2(&cfg->core_plmn)); -} - -uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_bvc *bvc, - uint32_t sgsn_ptmsi) -{ - uint32_t bss_ptmsi; - int max_retries = 23, rc = 0; - if (!bvc->nse->cfg->patch_ptmsi) { - bss_ptmsi = sgsn_ptmsi; - } else { - do { - rc = osmo_get_rand_id((uint8_t *) &bss_ptmsi, sizeof(bss_ptmsi)); - if (rc < 0) { - bss_ptmsi = GSM_RESERVED_TMSI; - break; - } - - bss_ptmsi = bss_ptmsi | GSM23003_TMSI_SGSN_MASK; - - if (gbproxy_link_info_by_ptmsi(bvc, bss_ptmsi)) - bss_ptmsi = GSM_RESERVED_TMSI; - } while (bss_ptmsi == GSM_RESERVED_TMSI && max_retries--); - } - - if (bss_ptmsi == GSM_RESERVED_TMSI) - LOGPBVC(bvc, LOGL_ERROR, "Failed to allocate a BSS P-TMSI: %d (%s)\n", rc, strerror(-rc)); - - return bss_ptmsi; -} - -uint32_t gbproxy_make_sgsn_tlli(struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info, - uint32_t bss_tlli) -{ - uint32_t sgsn_tlli; - int max_retries = 23, rc = 0; - if (!bvc->nse->cfg->patch_ptmsi) { - sgsn_tlli = bss_tlli; - } else if (link_info->sgsn_tlli.ptmsi != GSM_RESERVED_TMSI && - gprs_tlli_type(bss_tlli) == TLLI_FOREIGN) { - sgsn_tlli = gprs_tmsi2tlli(link_info->sgsn_tlli.ptmsi, - TLLI_FOREIGN); - } else if (link_info->sgsn_tlli.ptmsi != GSM_RESERVED_TMSI && - gprs_tlli_type(bss_tlli) == TLLI_LOCAL) { - sgsn_tlli = gprs_tmsi2tlli(link_info->sgsn_tlli.ptmsi, - TLLI_LOCAL); - } else { - do { - /* create random TLLI, 0b01111xxx... */ - rc = osmo_get_rand_id((uint8_t *) &sgsn_tlli, sizeof(sgsn_tlli)); - if (rc < 0) { - sgsn_tlli = 0; - break; - } - - sgsn_tlli = (sgsn_tlli & 0x7fffffff) | 0x78000000; - - if (gbproxy_link_info_by_any_sgsn_tlli(bvc, sgsn_tlli)) - sgsn_tlli = 0; - } while (!sgsn_tlli && max_retries--); - } - - if (!sgsn_tlli) - LOGPBVC(bvc, LOGL_ERROR, "Failed to allocate an SGSN TLLI: %d (%s)\n", rc, strerror(-rc)); - - return sgsn_tlli; -} - -void gbproxy_reset_link(struct gbproxy_link_info *link_info) -{ - gbproxy_reset_imsi_acquisition(link_info); -} - -/* Returns != 0 iff IMSI acquisition was in progress */ -static int gbproxy_restart_imsi_acquisition(struct gbproxy_link_info* link_info) -{ - int in_progress = 0; - if (!link_info) - return 0; - - if (link_info->imsi_acq_pending) - in_progress = 1; - - gbproxy_link_info_discard_messages(link_info); - link_info->imsi_acq_pending = false; - - return in_progress; -} - -static void gbproxy_reset_imsi_acquisition(struct gbproxy_link_info* link_info) -{ - gbproxy_restart_imsi_acquisition(link_info); - link_info->vu_gen_tx_bss = GBPROXY_INIT_VU_GEN_TX; -} - -/* Got identity response with IMSI, assuming the request had - * been generated by the gbproxy */ -static int gbproxy_flush_stored_messages(struct gbproxy_bvc *bvc, - time_t now, - struct gbproxy_link_info* link_info) -{ - int rc; - struct msgb *stored_msg; - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - /* Patch and flush stored messages towards the SGSN */ - while ((stored_msg = msgb_dequeue_count(&link_info->stored_msgs, - &link_info->stored_msgs_len))) { - struct gprs_gb_parse_context tmp_parse_ctx = {0}; - tmp_parse_ctx.to_bss = 0; - tmp_parse_ctx.peer_nsei = msgb_nsei(stored_msg); - int len_change = 0; - - gprs_gb_parse_bssgp(msgb_bssgph(stored_msg), - msgb_bssgp_len(stored_msg), - &tmp_parse_ctx); - gbproxy_patch_bssgp(stored_msg, msgb_bssgph(stored_msg), - msgb_bssgp_len(stored_msg), - bvc, link_info, &len_change, - &tmp_parse_ctx); - - rc = gbproxy_update_link_state_after(bvc, link_info, now, - &tmp_parse_ctx); - if (rc == 1) { - LOGPBVC_CAT(bvc, DLLC, LOGL_NOTICE, "link_info deleted while flushing stored messages\n"); - msgb_free(stored_msg); - return -1; - } - - rc = gbprox_relay2sgsn(cfg, stored_msg, - msgb_bvci(stored_msg), link_info->sgsn_nsei); - - if (rc < 0) - LOGPBVC_CAT(bvc, DLLC, LOGL_ERROR, - "failed to send stored message " - "(%s)\n", - tmp_parse_ctx.llc_msg_name ? - tmp_parse_ctx.llc_msg_name : "BSSGP"); - msgb_free(stored_msg); - } - - return 0; -} - -static int gbproxy_gsm48_to_bvc(struct gbproxy_bvc *bvc, - struct gbproxy_link_info* link_info, - uint16_t bvci, - struct msgb *msg /* Takes msg ownership */) -{ - int rc; - - /* Workaround to avoid N(U) collisions and to enable a restart - * of the IMSI acquisition procedure. This will work unless the - * SGSN has an initial V(UT) within [256-32, 256+n_retries] - * (see GSM 04.64, 8.4.2). */ - gprs_push_llc_ui(msg, 0, GPRS_SAPI_GMM, link_info->vu_gen_tx_bss); - link_info->vu_gen_tx_bss = (link_info->vu_gen_tx_bss + 1) % 512; - - gprs_push_bssgp_dl_unitdata(msg, link_info->tlli.current); - msg->l3h = msg->data; - - rc = gbprox_relay2peer(msg, bvc, bvci); - msgb_free(msg); - return rc; -} - -static void gbproxy_acquire_imsi(struct gbproxy_bvc *bvc, - struct gbproxy_link_info* link_info, - uint16_t bvci) -{ - struct msgb *idreq_msg; - - /* Send IDENT REQ */ - idreq_msg = gsm48_msgb_alloc_name("GSM 04.08 ACQ IMSI"); - gprs_put_identity_req(idreq_msg, GSM_MI_TYPE_IMSI); - gbproxy_gsm48_to_bvc(bvc, link_info, bvci, idreq_msg); -} - -static void gbproxy_tx_detach_acc(struct gbproxy_bvc *bvc, - struct gbproxy_link_info* link_info, - uint16_t bvci) -{ - struct msgb *detacc_msg; - - /* Send DETACH ACC */ - detacc_msg = gsm48_msgb_alloc_name("GSM 04.08 DET ACC"); - gprs_put_mo_detach_acc(detacc_msg); - gbproxy_gsm48_to_bvc(bvc, link_info, bvci, detacc_msg); -} - -/* Return != 0 iff msg still needs to be processed */ -static int gbproxy_imsi_acquisition(struct gbproxy_bvc *bvc, - struct msgb *msg, - time_t now, - struct gbproxy_link_info* link_info, - struct gprs_gb_parse_context *parse_ctx) -{ - struct msgb *stored_msg; - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - if (!link_info) - return 1; - - if (!link_info->imsi_acq_pending && link_info->imsi_len > 0) - return 1; - - if (parse_ctx->g48_hdr) - switch (parse_ctx->g48_hdr->msg_type) - { - case GSM48_MT_GMM_RA_UPD_REQ: - case GSM48_MT_GMM_ATTACH_REQ: - if (gbproxy_restart_imsi_acquisition(link_info)) { - LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, - " IMSI acquisition was in progress " - "when receiving an %s.\n", - parse_ctx->llc_msg_name); - } - break; - case GSM48_MT_GMM_DETACH_REQ: - /* Nothing has been sent to the SGSN yet */ - if (link_info->imsi_acq_pending) { - LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, - "IMSI acquisition was in progress " - "when receiving a DETACH_REQ.\n"); - } - if (!parse_ctx->invalidate_tlli) { - LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, - "IMSI not yet acquired, " - "faking a DETACH_ACC.\n"); - gbproxy_tx_detach_acc(bvc, link_info, msgb_bvci(msg)); - parse_ctx->invalidate_tlli = 1; - } - gbproxy_reset_imsi_acquisition(link_info); - gbproxy_update_link_state_after(bvc, link_info, now, - parse_ctx); - return 0; - } - - if (link_info->imsi_acq_pending && link_info->imsi_len > 0) { - int is_ident_resp = - parse_ctx->g48_hdr && - gsm48_hdr_pdisc(parse_ctx->g48_hdr) == GSM48_PDISC_MM_GPRS && - gsm48_hdr_msg_type(parse_ctx->g48_hdr) == GSM48_MT_GMM_ID_RESP; - - LOGPBVC_CAT(bvc, DLLC, LOGL_DEBUG, - "IMSI acquisition succeeded, " - "flushing stored messages\n"); - /* The IMSI is now available. If flushing the messages fails, - * then link_info has been deleted and we should return - * immediately. */ - if (gbproxy_flush_stored_messages(bvc, now, link_info) < 0) - return 0; - - gbproxy_reset_imsi_acquisition(link_info); - - /* This message is most probably the response to the ident - * request sent by gbproxy_acquire_imsi(). Don't forward it to - * the SGSN. */ - return !is_ident_resp; - } - - /* The message cannot be processed since the IMSI is still missing */ - - /* If queue is getting too large, drop oldest msgb before adding new one */ - if (cfg->stored_msgs_max_len > 0) { - int exceeded_max_len = link_info->stored_msgs_len - + 1 - cfg->stored_msgs_max_len; - - for (; exceeded_max_len > 0; exceeded_max_len--) { - struct msgb *msgb_drop; - msgb_drop = msgb_dequeue_count(&link_info->stored_msgs, - &link_info->stored_msgs_len); - LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, - "Dropping stored msgb from list " - "(!acq imsi, length %d, max_len exceeded)\n", - link_info->stored_msgs_len); - - msgb_free(msgb_drop); - } - } - - /* Enqueue unpatched messages */ - LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, - "IMSI acquisition in progress, " - "storing message (%s)\n", - parse_ctx->llc_msg_name ? parse_ctx->llc_msg_name : "BSSGP"); - - stored_msg = bssgp_msgb_copy(msg, "process_bssgp_ul"); - msgb_enqueue_count(&link_info->stored_msgs, stored_msg, - &link_info->stored_msgs_len); - - if (!link_info->imsi_acq_pending) { - LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, - "IMSI is required but not available, " - "initiating identification procedure (%s)\n", - parse_ctx->llc_msg_name ? parse_ctx->llc_msg_name : "BSSGP"); - - gbproxy_acquire_imsi(bvc, link_info, msgb_bvci(msg)); - - /* There is no explicit retransmission handling, the - * implementation relies on the MS doing proper retransmissions - * of the triggering message instead */ - - link_info->imsi_acq_pending = true; - } - - return 0; -} - struct gbproxy_bvc *gbproxy_find_bvc(struct gbproxy_config *cfg, struct msgb *msg, struct gprs_gb_parse_context *parse_ctx) @@ -571,220 +127,11 @@ msgb_nsei(msg), parse_ctx->to_bss ? "BSS" : "SGSN", parse_ctx->pdu_type); /* Increment counter */ - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PATCH_PEER_ERR]); + rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_OTHER_ERR]); } return bvc; } -/* patch BSSGP message */ -static int gbprox_process_bssgp_ul(struct gbproxy_config *cfg, - struct msgb *msg, - struct gbproxy_bvc *bvc) -{ - struct gprs_gb_parse_context parse_ctx = {0}; - int rc; - int len_change = 0; - time_t now; - struct timespec ts = {0,}; - struct gbproxy_link_info *link_info = NULL; - uint32_t sgsn_nsei = cfg->nsip_sgsn_nsei; - - if (!cfg->core_plmn.mcc && !cfg->core_plmn.mnc && !cfg->core_apn && - !cfg->acquire_imsi && !cfg->patch_ptmsi && !cfg->route_to_sgsn2) - return 1; - - parse_ctx.to_bss = 0; - parse_ctx.peer_nsei = msgb_nsei(msg); - - /* Parse BSSGP/LLC */ - rc = gprs_gb_parse_bssgp(msgb_bssgph(msg), msgb_bssgp_len(msg), - &parse_ctx); - - if (!rc && !parse_ctx.need_decryption) { - LOGP(DGPRS, LOGL_ERROR, - "NSE(%05u/BSS) patching: failed to parse invalid %s message\n", - msgb_nsei(msg), gprs_gb_message_name(&parse_ctx, "NS_UNITDATA")); - gprs_gb_log_parse_context(LOGL_NOTICE, &parse_ctx, "NS_UNITDATA"); - LOGP(DGPRS, LOGL_NOTICE, - "NSE(%05u/BSS) invalid message was: %s\n", - msgb_nsei(msg), msgb_hexdump(msg)); - return 0; - } - - /* Get bvc */ - if (!bvc) - bvc = gbproxy_find_bvc(cfg, msg, &parse_ctx); - - if (!bvc) - return 0; - - - osmo_clock_gettime(CLOCK_MONOTONIC, &ts); - now = ts.tv_sec; - - gbprox_update_current_raid(parse_ctx.bssgp_raid_enc, bvc, - parse_ctx.llc_msg_name); - - gprs_gb_log_parse_context(LOGL_DEBUG, &parse_ctx, "NS_UNITDATA"); - - link_info = gbproxy_update_link_state_ul(bvc, now, &parse_ctx); - - if (parse_ctx.g48_hdr) { - switch (parse_ctx.g48_hdr->msg_type) { - case GSM48_MT_GMM_ATTACH_REQ: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REQS]); - break; - case GSM48_MT_GMM_DETACH_REQ: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DETACH_REQS]); - break; - case GSM48_MT_GMM_ATTACH_COMPL: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_COMPLS]); - break; - case GSM48_MT_GMM_RA_UPD_REQ: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REQS]); - break; - case GSM48_MT_GMM_RA_UPD_COMPL: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_COMPLS]); - break; - case GSM48_MT_GMM_STATUS: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_BSS]); - break; - case GSM48_MT_GSM_ACT_PDP_REQ: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REQS]); - break; - case GSM48_MT_GSM_DEACT_PDP_REQ: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_REQS]); - break; - - default: - break; - } - } - - if (link_info && cfg->route_to_sgsn2) { - if (cfg->acquire_imsi && link_info->imsi_len == 0) - sgsn_nsei = 0xffff; - else if (gbproxy_imsi_matches(cfg, GBPROX_MATCH_ROUTING, - link_info)) - sgsn_nsei = cfg->nsip_sgsn2_nsei; - } - - if (link_info) - link_info->sgsn_nsei = sgsn_nsei; - - /* Handle IMSI acquisition */ - if (cfg->acquire_imsi) { - rc = gbproxy_imsi_acquisition(bvc, msg, now, link_info, - &parse_ctx); - if (rc <= 0) - return rc; - } - - gbproxy_patch_bssgp(msg, msgb_bssgph(msg), msgb_bssgp_len(msg), - bvc, link_info, &len_change, &parse_ctx); - - gbproxy_update_link_state_after(bvc, link_info, now, &parse_ctx); - - if (sgsn_nsei != cfg->nsip_sgsn_nsei) { - /* Send message directly to the selected SGSN */ - rc = gbprox_relay2sgsn(cfg, msg, msgb_bvci(msg), sgsn_nsei); - /* Don't let the calling code handle the transmission */ - return 0; - } - - return 1; -} - -/* patch BSSGP message to use core_plmn.mcc/mnc on the SGSN side */ -static void gbprox_process_bssgp_dl(struct gbproxy_config *cfg, - struct msgb *msg, - struct gbproxy_bvc *bvc) -{ - struct gprs_gb_parse_context parse_ctx = {0}; - int rc; - int len_change = 0; - time_t now; - struct timespec ts = {0,}; - struct gbproxy_link_info *link_info = NULL; - - if (!cfg->core_plmn.mcc && !cfg->core_plmn.mnc && !cfg->core_apn && - !cfg->acquire_imsi && !cfg->patch_ptmsi && !cfg->route_to_sgsn2) - return; - - parse_ctx.to_bss = 1; - parse_ctx.peer_nsei = msgb_nsei(msg); - - rc = gprs_gb_parse_bssgp(msgb_bssgph(msg), msgb_bssgp_len(msg), - &parse_ctx); - - if (!rc && !parse_ctx.need_decryption) { - LOGP(DGPRS, LOGL_ERROR, - "NSE(%05u/SGSN) patching: failed to parse invalid %s message\n", - msgb_nsei(msg), gprs_gb_message_name(&parse_ctx, "NS_UNITDATA")); - gprs_gb_log_parse_context(LOGL_NOTICE, &parse_ctx, "NS_UNITDATA"); - LOGP(DGPRS, LOGL_NOTICE, - "NSE(%05u/SGSN) invalid message was: %s\n", - msgb_nsei(msg), msgb_hexdump(msg)); - return; - } - - /* Get bvc */ - if (!bvc) - bvc = gbproxy_find_bvc(cfg, msg, &parse_ctx); - - if (!bvc) - return; - - osmo_clock_gettime(CLOCK_MONOTONIC, &ts); - now = ts.tv_sec; - - if (parse_ctx.g48_hdr) { - switch (parse_ctx.g48_hdr->msg_type) { - case GSM48_MT_GMM_ATTACH_ACK: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_ACKS]); - break; - case GSM48_MT_GMM_ATTACH_REJ: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REJS]); - break; - case GSM48_MT_GMM_DETACH_ACK: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DETACH_ACKS]); - break; - case GSM48_MT_GMM_RA_UPD_ACK: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_ACKS]); - break; - case GSM48_MT_GMM_RA_UPD_REJ: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REJS]); - break; - case GSM48_MT_GMM_STATUS: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_SGSN]); - break; - case GSM48_MT_GSM_ACT_PDP_ACK: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_ACKS]); - break; - case GSM48_MT_GSM_ACT_PDP_REJ: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REJS]); - break; - case GSM48_MT_GSM_DEACT_PDP_ACK: - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_ACKS]); - break; - - default: - break; - } - } - - gprs_gb_log_parse_context(LOGL_DEBUG, &parse_ctx, "NS_UNITDATA"); - - link_info = gbproxy_update_link_state_dl(bvc, now, &parse_ctx); - - gbproxy_patch_bssgp(msg, msgb_bssgph(msg), msgb_bssgp_len(msg), - bvc, link_info, &len_change, &parse_ctx); - - gbproxy_update_link_state_after(bvc, link_info, now, &parse_ctx); - - return; -} - /* feed a message down the NS-VC associated with the specified bvc */ static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei) @@ -924,9 +271,6 @@ uint16_t ns_bvci) { struct gbproxy_bvc *bvc; - struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - uint8_t pdu_type = bgph->pdu_type; - int rc; bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); if (!bvc) { @@ -941,23 +285,6 @@ /* TODO: Should we discard this message if the check fails */ check_bvc_nsei(bvc, nsei); - rc = gbprox_process_bssgp_ul(cfg, msg, bvc); - if (!rc) - return 0; - - switch (pdu_type) { - case BSSGP_PDUT_FLOW_CONTROL_BVC: - if (!cfg->route_to_sgsn2) - break; - - /* Send a copy to the secondary SGSN */ - gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn2_nsei); - break; - default: - break; - } - - return gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn_nsei); } @@ -967,8 +294,6 @@ uint16_t ns_bvci) { struct gbproxy_bvc *bvc; - struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - uint8_t pdu_type = bgph->pdu_type; bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); @@ -991,29 +316,12 @@ return bssgp_tx_status(BSSGP_CAUSE_BVCI_BLOCKED, &ns_bvci, msg); } - switch (pdu_type) { - case BSSGP_PDUT_FLOW_CONTROL_BVC_ACK: - case BSSGP_PDUT_BVC_BLOCK_ACK: - case BSSGP_PDUT_BVC_UNBLOCK_ACK: - if (cfg->route_to_sgsn2 && nsei == cfg->nsip_sgsn2_nsei) - /* Hide ACKs from the secondary SGSN, the primary SGSN - * is responsible to send them. */ - return 0; - break; - default: - break; - } - - /* Optionally patch the message */ - gbprox_process_bssgp_dl(cfg, msg, bvc); - return gbprox_relay2peer(msg, bvc, ns_bvci); } /* process a BVC-RESET message from the BSS side */ static int gbprox_rx_bvc_reset_from_bss(struct gbproxy_config *cfg, struct msgb *msg, - uint16_t nsei, struct tlv_parsed *tp, - int *copy_to_sgsn2) + uint16_t nsei, struct tlv_parsed *tp) { struct gbproxy_bvc *from_bvc = NULL; uint16_t bvci; @@ -1087,8 +395,6 @@ gsm48_parse_ra(&raid, from_bvc->ra); LOGPBVC(from_bvc, LOGL_INFO, "Cell ID %s\n", osmo_rai_name(&raid)); } - if (cfg->route_to_sgsn2) - *copy_to_sgsn2 = 1; } /* continue processing / relaying to SGSN[s] */ return 1; @@ -1105,7 +411,6 @@ int data_len = msgb_bssgp_len(msg) - sizeof(*bgph); struct gbproxy_bvc *from_bvc = NULL; struct gprs_ra_id raid; - int copy_to_sgsn2 = 0; int rc; if (ns_bvci != 0 && ns_bvci != 1) { @@ -1147,22 +452,13 @@ /* FIXME: This only supports one BSS per RA */ break; case BSSGP_PDUT_BVC_RESET: - rc = gbprox_rx_bvc_reset_from_bss(cfg, msg, nsei, &tp, ©_to_sgsn2); + rc = gbprox_rx_bvc_reset_from_bss(cfg, msg, nsei, &tp); /* if function retruns 0, we terminate processing here */ if (rc == 0) return 0; break; } - /* Normally, we can simply pass on all signalling messages from BSS to - * SGSN */ - rc = gbprox_process_bssgp_ul(cfg, msg, from_bvc); - if (!rc) - return 0; - - if (copy_to_sgsn2) - gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn2_nsei); - return gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn_nsei); err_no_bvc: LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) cannot find bvc based on NSEI\n", @@ -1337,7 +633,6 @@ } msg = bssgp_msgb_copy(orig_msg, "rx_sig_from_sgsn"); - gbprox_process_bssgp_dl(cfg, msg, NULL); /* Update message info */ bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); data_len = msgb_bssgp_len(orig_msg) - sizeof(*bgph); @@ -1348,8 +643,6 @@ rc = rx_reset_from_sgsn(cfg, msg, orig_msg, &tp, nsei, ns_bvci); break; case BSSGP_PDUT_BVC_RESET_ACK: - if (cfg->route_to_sgsn2 && nsei == cfg->nsip_sgsn2_nsei) - break; /* simple case: BVCI IE is mandatory */ if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) goto err_mand_ie; @@ -1462,8 +755,7 @@ static int gbproxy_is_sgsn_nsei(struct gbproxy_config *cfg, uint16_t nsei) { - return nsei == cfg->nsip_sgsn_nsei || - (cfg->route_to_sgsn2 && nsei == cfg->nsip_sgsn2_nsei); + return nsei == cfg->nsip_sgsn_nsei; } int gbprox_bssgp_send_cb(void *ctx, struct msgb *msg) diff --git a/src/gbproxy/gb_proxy_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index 157695d..21e56dd 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -64,10 +64,6 @@ nse = gprs_ns2_nse_by_nsei(nsi, cfg->nsip_sgsn_nsei); if (nse) gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); - /* NS-VCs for SGSN2 */ - nse = gprs_ns2_nse_by_nsei(nsi, cfg->nsip_sgsn2_nsei); - if (nse) - gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); /* NS-VCs for BSS peers */ hash_for_each(cfg->bss_nses, i, nse_peer, list) { diff --git a/src/gbproxy/gb_proxy_patch.c b/src/gbproxy/gb_proxy_patch.c deleted file mode 100644 index e78d31b..0000000 --- a/src/gbproxy/gb_proxy_patch.c +++ /dev/null @@ -1,482 +0,0 @@ -/* Gb-proxy message patching */ - -/* (C) 2014 by On-Waves - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include - -#include -#include - -#include - -#include -#include -#include - -extern void *tall_sgsn_ctx; - -/* patch RA identifier in place */ -static void gbproxy_patch_raid(struct gsm48_ra_id *raid_enc, struct gbproxy_bvc *bvc, - int to_bss, const char *log_text) -{ - OSMO_ASSERT(bvc); - struct gbproxy_patch_state *state = &bvc->patch_state; - struct osmo_plmn_id old_plmn; - struct gprs_ra_id raid; - enum gbproxy_bvc_ctr counter = - to_bss ? - GBPROX_PEER_CTR_RAID_PATCHED_SGSN : - GBPROX_PEER_CTR_RAID_PATCHED_BSS; - - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - if (!state->local_plmn.mcc || !state->local_plmn.mnc) - return; - - gsm48_parse_ra(&raid, (uint8_t *)raid_enc); - - old_plmn = (struct osmo_plmn_id){ - .mcc = raid.mcc, - .mnc = raid.mnc, - .mnc_3_digits = raid.mnc_3_digits, - }; - - if (!to_bss) { - /* BSS -> SGSN */ - if (state->local_plmn.mcc) - raid.mcc = cfg->core_plmn.mcc; - - if (state->local_plmn.mnc) { - raid.mnc = cfg->core_plmn.mnc; - raid.mnc_3_digits = cfg->core_plmn.mnc_3_digits; - } - } else { - /* SGSN -> BSS */ - if (state->local_plmn.mcc) - raid.mcc = state->local_plmn.mcc; - - if (state->local_plmn.mnc) { - raid.mnc = state->local_plmn.mnc; - raid.mnc_3_digits = state->local_plmn.mnc_3_digits; - } - } - - LOGPBVC(bvc, LOGL_DEBUG, - "Patching %s to %s: " - "%s-%d-%d -> %s\n", - log_text, - to_bss ? "BSS" : "SGSN", - osmo_plmn_name(&old_plmn), raid.lac, raid.rac, - osmo_rai_name(&raid)); - - gsm48_encode_ra(raid_enc, &raid); - rate_ctr_inc(&bvc->ctrg->ctr[counter]); -} - -static void gbproxy_patch_apn_ie(struct msgb *msg, - uint8_t *apn_ie, size_t apn_ie_len, - struct gbproxy_bvc *bvc, - size_t *new_apn_ie_len, const char *log_text) -{ - struct apn_ie_hdr { - uint8_t iei; - uint8_t apn_len; - uint8_t apn[0]; - } *hdr = (void *)apn_ie; - - size_t apn_len = hdr->apn_len; - uint8_t *apn = hdr->apn; - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - OSMO_ASSERT(apn_ie_len == apn_len + sizeof(struct apn_ie_hdr)); - OSMO_ASSERT(apn_ie_len > 2 && apn_ie_len <= 102); - - if (cfg->core_apn_size == 0) { - char str1[110]; - /* Remove the IE */ - LOGPBVC(bvc, LOGL_DEBUG, - "Patching %s to SGSN: Removing APN '%s'\n", - log_text, - osmo_apn_to_str(str1, apn, apn_len)); - - *new_apn_ie_len = 0; - msgb_resize_area(msg, apn_ie, apn_ie_len, 0); - } else { - /* Resize the IE */ - char str1[110]; - char str2[110]; - - OSMO_ASSERT(cfg->core_apn_size <= 100); - - LOGPBVC(bvc, LOGL_DEBUG, - "Patching %s to SGSN: " - "Replacing APN '%s' -> '%s'\n", - log_text, - osmo_apn_to_str(str1, apn, apn_len), - osmo_apn_to_str(str2, cfg->core_apn, - cfg->core_apn_size)); - - *new_apn_ie_len = cfg->core_apn_size + 2; - msgb_resize_area(msg, apn, apn_len, cfg->core_apn_size); - memcpy(apn, cfg->core_apn, cfg->core_apn_size); - hdr->apn_len = cfg->core_apn_size; - } - - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_APN_PATCHED]); -} - -static int gbproxy_patch_tlli(uint8_t *tlli_enc, - struct gbproxy_bvc *bvc, - uint32_t new_tlli, - int to_bss, const char *log_text) -{ - uint32_t tlli_be; - uint32_t tlli; - enum gbproxy_bvc_ctr counter = - to_bss ? - GBPROX_PEER_CTR_TLLI_PATCHED_SGSN : - GBPROX_PEER_CTR_TLLI_PATCHED_BSS; - OSMO_ASSERT(bvc); - - memcpy(&tlli_be, tlli_enc, sizeof(tlli_be)); - tlli = ntohl(tlli_be); - - if (tlli == new_tlli) - return 0; - - LOGPBVC(bvc, LOGL_DEBUG, - "Patching %ss: " - "Replacing %08x -> %08x\n", - log_text, tlli, new_tlli); - - tlli_be = htonl(new_tlli); - memcpy(tlli_enc, &tlli_be, sizeof(tlli_be)); - - rate_ctr_inc(&bvc->ctrg->ctr[counter]); - - return 1; -} - -static int gbproxy_patch_ptmsi(uint8_t *ptmsi_enc, - struct gbproxy_bvc *bvc, - uint32_t new_ptmsi, - int to_bss, const char *log_text) -{ - uint32_t ptmsi_be; - uint32_t ptmsi; - enum gbproxy_bvc_ctr counter = - to_bss ? - GBPROX_PEER_CTR_PTMSI_PATCHED_SGSN : - GBPROX_PEER_CTR_PTMSI_PATCHED_BSS; - OSMO_ASSERT(bvc); - - memcpy(&ptmsi_be, ptmsi_enc, sizeof(ptmsi_be)); - ptmsi = ntohl(ptmsi_be); - - if (ptmsi == new_ptmsi) - return 0; - - LOGPBVC(bvc, LOGL_DEBUG, - "Patching %ss: " - "Replacing %08x -> %08x\n", - log_text, ptmsi, new_ptmsi); - - ptmsi_be = htonl(new_ptmsi); - memcpy(ptmsi_enc, &ptmsi_be, sizeof(ptmsi_be)); - - rate_ctr_inc(&bvc->ctrg->ctr[counter]); - - return 1; -} - -int gbproxy_patch_llc(struct msgb *msg, uint8_t *llc, size_t llc_len, - struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info, int *len_change, - struct gprs_gb_parse_context *parse_ctx) -{ - struct gprs_llc_hdr_parsed *ghp = &parse_ctx->llc_hdr_parsed; - int have_patched = 0; - int fcs; - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - if (parse_ctx->ptmsi_enc && link_info && - !parse_ctx->old_raid_is_foreign && cfg->patch_ptmsi) { - uint32_t ptmsi; - if (parse_ctx->to_bss) - ptmsi = link_info->tlli.ptmsi; - else - ptmsi = link_info->sgsn_tlli.ptmsi; - - if (ptmsi != GSM_RESERVED_TMSI) { - if (gbproxy_patch_ptmsi(parse_ctx->ptmsi_enc, bvc, - ptmsi, parse_ctx->to_bss, "P-TMSI")) - have_patched = 1; - } else { - /* TODO: invalidate old RAI if present (see below) */ - } - } - - if (parse_ctx->new_ptmsi_enc && link_info && cfg->patch_ptmsi) { - uint32_t ptmsi; - if (parse_ctx->to_bss) - ptmsi = link_info->tlli.ptmsi; - else - ptmsi = link_info->sgsn_tlli.ptmsi; - - OSMO_ASSERT(ptmsi); - if (gbproxy_patch_ptmsi(parse_ctx->new_ptmsi_enc, bvc, - ptmsi, parse_ctx->to_bss, "new P-TMSI")) - have_patched = 1; - } - - if (parse_ctx->raid_enc) { - gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->raid_enc, bvc, parse_ctx->to_bss, - parse_ctx->llc_msg_name); - have_patched = 1; - } - - if (parse_ctx->old_raid_enc && !parse_ctx->old_raid_is_foreign) { - /* TODO: Patch to invalid if P-TMSI unknown. */ - gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->old_raid_enc, bvc, parse_ctx->to_bss, - parse_ctx->llc_msg_name); - have_patched = 1; - } - - if (parse_ctx->apn_ie && - cfg->core_apn && - !parse_ctx->to_bss && - gbproxy_imsi_matches(cfg, GBPROX_MATCH_PATCHING, link_info) && - cfg->core_apn) { - size_t new_len; - gbproxy_patch_apn_ie(msg, - parse_ctx->apn_ie, parse_ctx->apn_ie_len, - bvc, &new_len, parse_ctx->llc_msg_name); - *len_change += (int)new_len - (int)parse_ctx->apn_ie_len; - - have_patched = 1; - } - - if (have_patched) { - llc_len += *len_change; - ghp->crc_length += *len_change; - - /* Fix FCS */ - fcs = gprs_llc_fcs(llc, ghp->crc_length); - LOGPBVC_CAT(bvc, DLLC, LOGL_DEBUG, "Updated LLC message, CRC: %06x -> %06x\n", - ghp->fcs, fcs); - - llc[llc_len - 3] = fcs & 0xff; - llc[llc_len - 2] = (fcs >> 8) & 0xff; - llc[llc_len - 1] = (fcs >> 16) & 0xff; - } - - return have_patched; -} - -/* patch BSSGP message to use core_plmn.mcc/mnc on the SGSN side */ -void gbproxy_patch_bssgp(struct msgb *msg, uint8_t *bssgp, size_t bssgp_len, - struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info, int *len_change, - struct gprs_gb_parse_context *parse_ctx) -{ - const char *err_info = NULL; - int err_ctr = -1; - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - if (parse_ctx->bssgp_raid_enc) - gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->bssgp_raid_enc, bvc, - parse_ctx->to_bss, "BSSGP"); - - if (parse_ctx->need_decryption && - (cfg->patch_ptmsi || cfg->core_apn)) { - /* Patching LLC messages has been requested - * explicitly, but the message (including the - * type) is encrypted, so we possibly fail to - * patch the LLC part of the message. */ - err_ctr = GBPROX_PEER_CTR_PATCH_CRYPT_ERR; - err_info = "GMM message is encrypted"; - goto patch_error; - } - - if (!link_info && parse_ctx->tlli_enc && parse_ctx->to_bss) { - /* Happens with unknown (not cached) TLLI coming from - * the SGSN */ - /* TODO: What shall be done with the message in this case? */ - err_ctr = GBPROX_PEER_CTR_TLLI_UNKNOWN; - err_info = "TLLI sent by the SGSN is unknown"; - goto patch_error; - } - - if (!link_info) - return; - - if (parse_ctx->tlli_enc && cfg->patch_ptmsi) { - uint32_t tlli = gbproxy_map_tlli(parse_ctx->tlli, - link_info, parse_ctx->to_bss); - - if (tlli) { - gbproxy_patch_tlli(parse_ctx->tlli_enc, bvc, tlli, - parse_ctx->to_bss, "TLLI"); - parse_ctx->tlli = tlli; - } else { - /* Internal error */ - err_ctr = GBPROX_PEER_CTR_PATCH_ERR; - err_info = "Replacement TLLI is 0"; - goto patch_error; - } - } - - if (parse_ctx->bssgp_ptmsi_enc && cfg->patch_ptmsi) { - uint32_t ptmsi; - if (parse_ctx->to_bss) - ptmsi = link_info->tlli.ptmsi; - else - ptmsi = link_info->sgsn_tlli.ptmsi; - - if (ptmsi != GSM_RESERVED_TMSI) - gbproxy_patch_ptmsi( - parse_ctx->bssgp_ptmsi_enc, bvc, - ptmsi, parse_ctx->to_bss, "BSSGP P-TMSI"); - } - - if (parse_ctx->llc) { - uint8_t *llc = parse_ctx->llc; - size_t llc_len = parse_ctx->llc_len; - int llc_len_change = 0; - - gbproxy_patch_llc(msg, llc, llc_len, bvc, link_info, - &llc_len_change, parse_ctx); - /* Note that the APN might have been resized here, but no - * pointer int the parse_ctx will refer to an adress after the - * APN. So it's possible to patch first and do the TLLI - * handling afterwards. */ - - if (llc_len_change) { - llc_len += llc_len_change; - - /* Fix LLC IE len */ - /* TODO: This is a kludge, but the a pointer to the - * start of the IE is not available here */ - if (llc[-2] == BSSGP_IE_LLC_PDU && llc[-1] & 0x80) { - /* most probably a one byte length */ - if (llc_len > 127) { - err_info = "Cannot increase size"; - err_ctr = GBPROX_PEER_CTR_PATCH_ERR; - goto patch_error; - } - llc[-1] = llc_len | 0x80; - } else { - llc[-2] = (llc_len >> 8) & 0x7f; - llc[-1] = llc_len & 0xff; - } - *len_change += llc_len_change; - } - /* Note that the tp struct might contain invalid pointers here - * if the LLC field has changed its size */ - parse_ctx->llc_len = llc_len; - } - return; - -patch_error: - OSMO_ASSERT(err_ctr >= 0); - rate_ctr_inc(&bvc->ctrg->ctr[err_ctr]); - LOGPBVC(bvc, LOGL_ERROR, - "NSE(%05u/%s) failed to patch BSSGP message as requested: %s.\n", - msgb_nsei(msg), parse_ctx->to_bss ? "SGSN" : "BSS", - err_info); -} - -void gbproxy_clear_patch_filter(struct gbproxy_match *match) -{ - if (match->enable) { - regfree(&match->re_comp); - match->enable = false; - } - talloc_free(match->re_str); - match->re_str = NULL; -} - -int gbproxy_set_patch_filter(struct gbproxy_match *match, const char *filter, - const char **err_msg) -{ - static char err_buf[300]; - int rc; - - gbproxy_clear_patch_filter(match); - - if (!filter) - return 0; - - rc = regcomp(&match->re_comp, filter, - REG_EXTENDED | REG_NOSUB | REG_ICASE); - - if (rc == 0) { - match->enable = true; - match->re_str = talloc_strdup(tall_sgsn_ctx, filter); - return 0; - } - - if (err_msg) { - regerror(rc, &match->re_comp, - err_buf, sizeof(err_buf)); - *err_msg = err_buf; - } - - return -1; -} - -int gbproxy_check_imsi(struct gbproxy_match *match, - const uint8_t *imsi, size_t imsi_len) -{ - int rc; - struct osmo_mobile_identity mi; - - if (!match->enable) - return 1; - - rc = osmo_mobile_identity_decode(&mi, imsi, imsi_len, false); - if (rc || mi.type != GSM_MI_TYPE_IMSI) { - LOGP(DGPRS, LOGL_NOTICE, "Invalid IMSI %s\n", - osmo_hexdump(imsi, imsi_len)); - return -1; - } - - LOGP(DGPRS, LOGL_DEBUG, "Checking IMSI '%s' (%d)\n", mi.imsi, rc); - - rc = regexec(&match->re_comp, mi.imsi, 0, NULL, 0); - if (rc == REG_NOMATCH) { - LOGP(DGPRS, LOGL_INFO, - "IMSI '%s' doesn't match pattern '%s'\n", - mi.imsi, match->re_str); - return 0; - } - - return 1; -} diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index f5a4376..67f6841 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -41,34 +41,6 @@ { "dropped", "BVC blocked, dropped packet " }, { "inv-nsei", "NSEI mismatch " }, { "tx-err", "NS Transmission error " }, - { "raid-mod:bss", "RAID patched (BSS )" }, - { "raid-mod:sgsn", "RAID patched (SGSN)" }, - { "apn-mod:sgsn", "APN patched " }, - { "tlli-mod:bss", "TLLI patched (BSS )" }, - { "tlli-mod:sgsn", "TLLI patched (SGSN)" }, - { "ptmsi-mod:bss", "P-TMSI patched (BSS )" }, - { "ptmsi-mod:sgsn","P-TMSI patched (SGSN)" }, - { "mod-crypt-err", "Patch error: encrypted " }, - { "mod-err", "Patch error: other " }, - { "attach-reqs", "Attach Request count " }, - { "attach-rejs", "Attach Reject count " }, - { "attach-acks", "Attach Accept count " }, - { "attach-cpls", "Attach Completed count " }, - { "ra-upd-reqs", "RoutingArea Update Request count" }, - { "ra-upd-rejs", "RoutingArea Update Reject count " }, - { "ra-upd-acks", "RoutingArea Update Accept count " }, - { "ra-upd-cpls", "RoutingArea Update Compltd count" }, - { "gmm-status", "GMM Status count (BSS)" }, - { "gmm-status", "GMM Status count (SGSN)" }, - { "detach-reqs", "Detach Request count " }, - { "detach-acks", "Detach Accept count " }, - { "pdp-act-reqs", "PDP Activation Request count " }, - { "pdp-act-rejs", "PDP Activation Reject count " }, - { "pdp-act-acks", "PDP Activation Accept count " }, - { "pdp-deact-reqs","PDP Deactivation Request count " }, - { "pdp-deact-acks","PDP Deactivation Accept count " }, - { "tlli-unknown", "TLLI from SGSN unknown " }, - { "tlli-cache", "TLLI cache size " }, }; osmo_static_assert(ARRAY_SIZE(bvc_ctr_description) == GBPROX_PEER_CTR_LAST, everything_described); @@ -201,24 +173,6 @@ return NULL; } -static void clean_stale_timer_cb(void *data) -{ - time_t now; - struct timespec ts = {0,}; - struct gbproxy_bvc *bvc = (struct gbproxy_bvc *) data; - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - osmo_clock_gettime(CLOCK_MONOTONIC, &ts); - now = ts.tv_sec; - gbproxy_remove_stale_link_infos(bvc, now); - if (cfg->clean_stale_timer_freq != 0) - osmo_timer_schedule(&bvc->clean_stale_timer, - cfg->clean_stale_timer_freq, 0); -} - struct gbproxy_bvc *gbproxy_bvc_alloc(struct gbproxy_nse *nse, uint16_t bvci) { struct gbproxy_bvc *bvc; @@ -240,13 +194,6 @@ hash_add(nse->bvcs, &bvc->list, bvc->bvci); - INIT_LLIST_HEAD(&bvc->patch_state.logical_links); - - osmo_timer_setup(&bvc->clean_stale_timer, clean_stale_timer_cb, bvc); - if (cfg->clean_stale_timer_freq != 0) - osmo_timer_schedule(&bvc->clean_stale_timer, - cfg->clean_stale_timer_freq, 0); - return bvc; } @@ -256,8 +203,6 @@ return; hash_del(&bvc->list); - osmo_timer_del(&bvc->clean_stale_timer); - gbproxy_delete_link_infos(bvc); rate_ctr_group_free(bvc->ctrg); bvc->ctrg = NULL; diff --git a/src/gbproxy/gb_proxy_tlli.c b/src/gbproxy/gb_proxy_tlli.c deleted file mode 100644 index 0ea3a93..0000000 --- a/src/gbproxy/gb_proxy_tlli.c +++ /dev/null @@ -1,746 +0,0 @@ -/* Gb-proxy TLLI state handling */ - -/* (C) 2014 by On-Waves - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include - -#include - -#include -#include - -#include - -#include - -#include -#include - -struct gbproxy_link_info *gbproxy_link_info_by_tlli(struct gbproxy_bvc *bvc, - uint32_t tlli) -{ - struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &bvc->patch_state; - - if (!tlli) - return NULL; - - llist_for_each_entry(link_info, &state->logical_links, list) - if (link_info->tlli.current == tlli || - link_info->tlli.assigned == tlli) - return link_info; - - return NULL; -} - -struct gbproxy_link_info *gbproxy_link_info_by_ptmsi( - struct gbproxy_bvc *bvc, - uint32_t ptmsi) -{ - struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &bvc->patch_state; - - if (ptmsi == GSM_RESERVED_TMSI) - return NULL; - - llist_for_each_entry(link_info, &state->logical_links, list) - if (link_info->tlli.ptmsi == ptmsi) - return link_info; - - return NULL; -} - -struct gbproxy_link_info *gbproxy_link_info_by_any_sgsn_tlli( - struct gbproxy_bvc *bvc, - uint32_t tlli) -{ - struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &bvc->patch_state; - - if (!tlli) - return NULL; - - /* Don't care about the NSEI */ - llist_for_each_entry(link_info, &state->logical_links, list) - if (link_info->sgsn_tlli.current == tlli || - link_info->sgsn_tlli.assigned == tlli) - return link_info; - - return NULL; -} - -struct gbproxy_link_info *gbproxy_link_info_by_sgsn_tlli( - struct gbproxy_bvc *bvc, - uint32_t tlli, uint32_t sgsn_nsei) -{ - struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &bvc->patch_state; - - if (!tlli) - return NULL; - - llist_for_each_entry(link_info, &state->logical_links, list) - if ((link_info->sgsn_tlli.current == tlli || - link_info->sgsn_tlli.assigned == tlli) && - link_info->sgsn_nsei == sgsn_nsei) - return link_info; - - return NULL; -} - -struct gbproxy_link_info *gbproxy_link_info_by_imsi( - struct gbproxy_bvc *bvc, - const uint8_t *imsi, - size_t imsi_len) -{ - struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &bvc->patch_state; - - if (!gprs_is_mi_imsi(imsi, imsi_len)) - return NULL; - - llist_for_each_entry(link_info, &state->logical_links, list) { - if (link_info->imsi_len != imsi_len) - continue; - if (memcmp(link_info->imsi, imsi, imsi_len) != 0) - continue; - - return link_info; - } - - return NULL; -} - -void gbproxy_link_info_discard_messages(struct gbproxy_link_info *link_info) -{ - struct msgb *msg, *nxt; - - llist_for_each_entry_safe(msg, nxt, &link_info->stored_msgs, list) { - llist_del(&msg->list); - msgb_free(msg); - } -} - -void gbproxy_delete_link_info(struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info) -{ - struct gbproxy_patch_state *state = &bvc->patch_state; - - gbproxy_link_info_discard_messages(link_info); - - llist_del(&link_info->list); - talloc_free(link_info); - state->logical_link_count -= 1; - - bvc->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = - state->logical_link_count; -} - -void gbproxy_delete_link_infos(struct gbproxy_bvc *bvc) -{ - struct gbproxy_link_info *link_info, *nxt; - struct gbproxy_patch_state *state = &bvc->patch_state; - - llist_for_each_entry_safe(link_info, nxt, &state->logical_links, list) - gbproxy_delete_link_info(bvc, link_info); - - OSMO_ASSERT(state->logical_link_count == 0); - OSMO_ASSERT(llist_empty(&state->logical_links)); -} - -void gbproxy_attach_link_info(struct gbproxy_bvc *bvc, time_t now, - struct gbproxy_link_info *link_info) -{ - struct gbproxy_patch_state *state = &bvc->patch_state; - - link_info->timestamp = now; - llist_add(&link_info->list, &state->logical_links); - state->logical_link_count += 1; - - bvc->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = - state->logical_link_count; -} - -int gbproxy_remove_stale_link_infos(struct gbproxy_bvc *bvc, time_t now) -{ - OSMO_ASSERT(bvc); - struct gbproxy_patch_state *state = &bvc->patch_state; - int exceeded_max_len = 0; - int deleted_count = 0; - int check_for_age; - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - if (cfg->tlli_max_len > 0) - exceeded_max_len = - state->logical_link_count - cfg->tlli_max_len; - - check_for_age = cfg->tlli_max_age > 0; - - for (; exceeded_max_len > 0; exceeded_max_len--) { - struct gbproxy_link_info *link_info; - OSMO_ASSERT(!llist_empty(&state->logical_links)); - link_info = llist_entry(state->logical_links.prev, - struct gbproxy_link_info, - list); - LOGPBVC(bvc, LOGL_INFO, - "Removing TLLI %08x from list " - "(stale, length %d, max_len exceeded)\n", - link_info->tlli.current, state->logical_link_count); - - gbproxy_delete_link_info(bvc, link_info); - deleted_count += 1; - } - - while (check_for_age && !llist_empty(&state->logical_links)) { - time_t age; - struct gbproxy_link_info *link_info; - link_info = llist_entry(state->logical_links.prev, - struct gbproxy_link_info, - list); - age = now - link_info->timestamp; - /* age < 0 only happens after system time jumps, discard entry */ - if (age <= cfg->tlli_max_age && age >= 0) { - check_for_age = 0; - continue; - } - - LOGPBVC(bvc, LOGL_INFO, - "Removing TLLI %08x from list " - "(stale, age %d, max_age exceeded)\n", - link_info->tlli.current, (int)age); - - gbproxy_delete_link_info(bvc, link_info); - deleted_count += 1; - } - - return deleted_count; -} - -struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_bvc *bvc) -{ - struct gbproxy_link_info *link_info; - - link_info = talloc_zero(bvc, struct gbproxy_link_info); - link_info->tlli.ptmsi = GSM_RESERVED_TMSI; - link_info->sgsn_tlli.ptmsi = GSM_RESERVED_TMSI; - - link_info->vu_gen_tx_bss = GBPROXY_INIT_VU_GEN_TX; - - INIT_LLIST_HEAD(&link_info->stored_msgs); - - return link_info; -} - -void gbproxy_detach_link_info( - struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info) -{ - struct gbproxy_patch_state *state = &bvc->patch_state; - - llist_del(&link_info->list); - OSMO_ASSERT(state->logical_link_count > 0); - state->logical_link_count -= 1; - - bvc->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = - state->logical_link_count; -} - -void gbproxy_update_link_info(struct gbproxy_link_info *link_info, - const uint8_t *imsi, size_t imsi_len) -{ - if (!gprs_is_mi_imsi(imsi, imsi_len)) - return; - - link_info->imsi_len = imsi_len; - link_info->imsi = - talloc_realloc_size(link_info, link_info->imsi, imsi_len); - OSMO_ASSERT(link_info->imsi != NULL); - memcpy(link_info->imsi, imsi, imsi_len); -} - -void gbproxy_reassign_tlli(struct gbproxy_tlli_state *tlli_state, - struct gbproxy_bvc *bvc, uint32_t new_tlli) -{ - OSMO_ASSERT(bvc); - if (new_tlli == tlli_state->current) - return; - - LOGPBVC(bvc, LOGL_INFO, - "The TLLI has been reassigned from %08x to %08x\n", - tlli_state->current, new_tlli); - - /* Remember assigned TLLI */ - tlli_state->assigned = new_tlli; - tlli_state->bss_validated = false; - tlli_state->net_validated = false; -} - -uint32_t gbproxy_map_tlli(uint32_t other_tlli, - struct gbproxy_link_info *link_info, int to_bss) -{ - uint32_t tlli = 0; - struct gbproxy_tlli_state *src, *dst; - if (to_bss) { - src = &link_info->sgsn_tlli; - dst = &link_info->tlli; - } else { - src = &link_info->tlli; - dst = &link_info->sgsn_tlli; - } - if (src->current == other_tlli) - tlli = dst->current; - else if (src->assigned == other_tlli) - tlli = dst->assigned; - - return tlli; -} - -static void gbproxy_validate_tlli(struct gbproxy_tlli_state *tlli_state, - uint32_t tlli, int to_bss) -{ - LOGP(DGPRS, LOGL_DEBUG, - "%s({current = %08x, assigned = %08x, net_vld = %d, bss_vld = %d}, %08x)\n", - __func__, tlli_state->current, tlli_state->assigned, - tlli_state->net_validated, tlli_state->bss_validated, tlli); - - if (!tlli_state->assigned || tlli_state->assigned != tlli) - return; - - /* TODO: Is this ok? Check spec */ - if (gprs_tlli_type(tlli) != TLLI_LOCAL) - return; - - /* See GSM 04.08, 4.7.1.5 */ - if (to_bss) - tlli_state->net_validated = true; - else - tlli_state->bss_validated = true; - - if (!tlli_state->bss_validated || !tlli_state->net_validated) - return; - - LOGP(DGPRS, LOGL_INFO, - "The TLLI %08x has been validated (was %08x)\n", - tlli_state->assigned, tlli_state->current); - - tlli_state->current = tlli; - tlli_state->assigned = 0; -} - -static void gbproxy_touch_link_info(struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info, - time_t now) -{ - gbproxy_detach_link_info(bvc, link_info); - gbproxy_attach_link_info(bvc, now, link_info); -} - -static int gbproxy_unregister_link_info(struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info) -{ - OSMO_ASSERT(bvc); - if (!link_info) - return 1; - - if (link_info->tlli.ptmsi == GSM_RESERVED_TMSI && !link_info->imsi_len) { - LOGPBVC(bvc, LOGL_INFO, - "Removing TLLI %08x from list (P-TMSI or IMSI are not set)\n", - link_info->tlli.current); - gbproxy_delete_link_info(bvc, link_info); - return 1; - } - - link_info->tlli.current = 0; - link_info->tlli.assigned = 0; - link_info->sgsn_tlli.current = 0; - link_info->sgsn_tlli.assigned = 0; - - link_info->is_deregistered = true; - - gbproxy_reset_link(link_info); - - return 0; -} - -int gbproxy_imsi_matches(struct gbproxy_config *cfg, - enum gbproxy_match_id match_id, - struct gbproxy_link_info *link_info) -{ - struct gbproxy_match *match; - OSMO_ASSERT(match_id >= 0 && match_id < ARRAY_SIZE(cfg->matches)); - - match = &cfg->matches[match_id]; - if (!match->enable) - return 1; - - return link_info != NULL && link_info->is_matching[match_id]; -} - -static void gbproxy_assign_imsi(struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info, - struct gprs_gb_parse_context *parse_ctx) -{ - int imsi_matches; - struct gbproxy_link_info *other_link_info; - enum gbproxy_match_id match_id; - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - /* Make sure that there is a second entry with the same IMSI */ - other_link_info = gbproxy_link_info_by_imsi( - bvc, parse_ctx->imsi, parse_ctx->imsi_len); - - if (other_link_info && other_link_info != link_info) { - struct osmo_mobile_identity mi; - if (osmo_mobile_identity_decode(&mi, parse_ctx->imsi, parse_ctx->imsi_len, false) - || mi.type != GSM_MI_TYPE_IMSI) { - LOGPBVC(bvc, LOGL_ERROR, "Failed to decode Mobile Identity\n"); - } else { - LOGPBVC(bvc, LOGL_INFO, - "Removing TLLI %08x from list (IMSI %s re-used)\n", - other_link_info->tlli.current, mi.imsi); - gbproxy_delete_link_info(bvc, other_link_info); - } - } - - /* Update the IMSI field */ - gbproxy_update_link_info(link_info, - parse_ctx->imsi, parse_ctx->imsi_len); - - /* Check, whether the IMSI matches */ - OSMO_ASSERT(ARRAY_SIZE(link_info->is_matching) == - ARRAY_SIZE(cfg->matches)); - for (match_id = 0; match_id < ARRAY_SIZE(link_info->is_matching); - ++match_id) { - imsi_matches = gbproxy_check_imsi( - &cfg->matches[match_id], - parse_ctx->imsi, parse_ctx->imsi_len); - if (imsi_matches >= 0) - link_info->is_matching[match_id] = imsi_matches ? true : false; - } -} - -static int gbproxy_tlli_match(const struct gbproxy_tlli_state *a, - const struct gbproxy_tlli_state *b) -{ - if (a->current && a->current == b->current) - return 1; - - if (a->assigned && a->assigned == b->assigned) - return 1; - - if (a->ptmsi != GSM_RESERVED_TMSI && a->ptmsi == b->ptmsi) - return 1; - - return 0; -} - -static void gbproxy_remove_matching_link_infos( - struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info) -{ - OSMO_ASSERT(bvc); - struct gbproxy_link_info *info, *nxt; - struct gbproxy_patch_state *state = &bvc->patch_state; - - /* Make sure that there is no second entry with the same P-TMSI or TLLI */ - llist_for_each_entry_safe(info, nxt, &state->logical_links, list) { - if (info == link_info) - continue; - - if (!gbproxy_tlli_match(&link_info->tlli, &info->tlli) && - (link_info->sgsn_nsei != info->sgsn_nsei || - !gbproxy_tlli_match(&link_info->sgsn_tlli, &info->sgsn_tlli))) - continue; - - LOGPBVC(bvc, LOGL_INFO, - "Removing TLLI %08x from list (P-TMSI/TLLI re-used)\n", - info->tlli.current); - gbproxy_delete_link_info(bvc, info); - } -} - -static struct gbproxy_link_info *gbproxy_get_link_info_ul( - struct gbproxy_bvc *bvc, - int *tlli_is_valid, - struct gprs_gb_parse_context *parse_ctx) -{ - struct gbproxy_link_info *link_info = NULL; - - if (parse_ctx->tlli_enc) { - link_info = gbproxy_link_info_by_tlli(bvc, parse_ctx->tlli); - - if (link_info) { - *tlli_is_valid = 1; - return link_info; - } - } - - *tlli_is_valid = 0; - - if (!link_info && parse_ctx->imsi) { - link_info = gbproxy_link_info_by_imsi( - bvc, parse_ctx->imsi, parse_ctx->imsi_len); - } - - if (!link_info && parse_ctx->ptmsi_enc && !parse_ctx->old_raid_is_foreign) { - uint32_t bss_ptmsi; - gprs_parse_tmsi(parse_ctx->ptmsi_enc, &bss_ptmsi); - link_info = gbproxy_link_info_by_ptmsi(bvc, bss_ptmsi); - } - - if (!link_info) - return NULL; - - link_info->is_deregistered = false; - - return link_info; -} - -struct gbproxy_link_info *gbproxy_update_link_state_ul( - struct gbproxy_bvc *bvc, - time_t now, - struct gprs_gb_parse_context *parse_ctx) -{ - struct gbproxy_link_info *link_info; - int tlli_is_valid; - OSMO_ASSERT(bvc); - - link_info = gbproxy_get_link_info_ul(bvc, &tlli_is_valid, parse_ctx); - - if (parse_ctx->tlli_enc && parse_ctx->llc) { - uint32_t sgsn_tlli; - - if (!link_info) { - LOGPBVC(bvc, LOGL_INFO, "Adding TLLI %08x to list\n", - parse_ctx->tlli); - link_info = gbproxy_link_info_alloc(bvc); - gbproxy_attach_link_info(bvc, now, link_info); - - /* Setup TLLIs */ - sgsn_tlli = gbproxy_make_sgsn_tlli(bvc, link_info, - parse_ctx->tlli); - link_info->sgsn_tlli.current = sgsn_tlli; - link_info->tlli.current = parse_ctx->tlli; - } else if (!tlli_is_valid) { - /* New TLLI (info found by IMSI or P-TMSI) */ - link_info->tlli.current = parse_ctx->tlli; - link_info->tlli.assigned = 0; - link_info->sgsn_tlli.current = - gbproxy_make_sgsn_tlli(bvc, link_info, - parse_ctx->tlli); - link_info->sgsn_tlli.assigned = 0; - gbproxy_touch_link_info(bvc, link_info, now); - } else { - sgsn_tlli = gbproxy_map_tlli(parse_ctx->tlli, link_info, 0); - if (!sgsn_tlli) - sgsn_tlli = gbproxy_make_sgsn_tlli(bvc, link_info, - parse_ctx->tlli); - - gbproxy_validate_tlli(&link_info->tlli, - parse_ctx->tlli, 0); - gbproxy_validate_tlli(&link_info->sgsn_tlli, - sgsn_tlli, 0); - gbproxy_touch_link_info(bvc, link_info, now); - } - } else if (link_info) { - gbproxy_touch_link_info(bvc, link_info, now); - } - - if (parse_ctx->imsi && link_info && link_info->imsi_len == 0) - gbproxy_assign_imsi(bvc, link_info, parse_ctx); - - return link_info; -} - -static struct gbproxy_link_info *gbproxy_get_link_info_dl( - struct gbproxy_bvc *bvc, - struct gprs_gb_parse_context *parse_ctx) -{ - struct gbproxy_link_info *link_info = NULL; - - /* Which key to use depends on its availability only, if that fails, do - * not retry it with another key (e.g. IMSI). */ - if (parse_ctx->tlli_enc) - link_info = gbproxy_link_info_by_sgsn_tlli(bvc, parse_ctx->tlli, - parse_ctx->peer_nsei); - - /* TODO: Get link_info by (SGSN) P-TMSI if that is available (see - * GSM 08.18, 7.2) instead of using the IMSI as key. */ - else if (parse_ctx->imsi) - link_info = gbproxy_link_info_by_imsi( - bvc, parse_ctx->imsi, parse_ctx->imsi_len); - - if (link_info) - link_info->is_deregistered = false; - - return link_info; -} - -struct gbproxy_link_info *gbproxy_update_link_state_dl( - struct gbproxy_bvc *bvc, - time_t now, - struct gprs_gb_parse_context *parse_ctx) -{ - struct gbproxy_link_info *link_info = NULL; - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - link_info = gbproxy_get_link_info_dl(bvc, parse_ctx); - - if (parse_ctx->tlli_enc && parse_ctx->new_ptmsi_enc && link_info) { - /* A new P-TMSI has been signalled in the message, - * register new TLLI */ - uint32_t new_sgsn_ptmsi; - uint32_t new_bss_ptmsi = GSM_RESERVED_TMSI; - gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_sgsn_ptmsi); - - if (link_info->sgsn_tlli.ptmsi == new_sgsn_ptmsi) - new_bss_ptmsi = link_info->tlli.ptmsi; - - if (new_bss_ptmsi == GSM_RESERVED_TMSI) - new_bss_ptmsi = gbproxy_make_bss_ptmsi(bvc, new_sgsn_ptmsi); - - LOGPBVC(bvc, LOGL_INFO, - "Got new PTMSI %08x from SGSN, using %08x for BSS\n", - new_sgsn_ptmsi, new_bss_ptmsi); - /* Setup PTMSIs */ - link_info->sgsn_tlli.ptmsi = new_sgsn_ptmsi; - link_info->tlli.ptmsi = new_bss_ptmsi; - } else if (parse_ctx->tlli_enc && parse_ctx->new_ptmsi_enc && !link_info && - !cfg->patch_ptmsi) { - /* A new P-TMSI has been signalled in the message with an unknown - * TLLI, create a new link_info */ - /* TODO: Add a test case for this branch */ - uint32_t new_ptmsi; - gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - - LOGPBVC(bvc, LOGL_INFO, - "Adding TLLI %08x to list (SGSN, new P-TMSI is %08x)\n", - parse_ctx->tlli, new_ptmsi); - - link_info = gbproxy_link_info_alloc(bvc); - link_info->sgsn_tlli.current = parse_ctx->tlli; - link_info->tlli.current = parse_ctx->tlli; - link_info->sgsn_tlli.ptmsi = new_ptmsi; - link_info->tlli.ptmsi = new_ptmsi; - gbproxy_attach_link_info(bvc, now, link_info); - } else if (parse_ctx->tlli_enc && parse_ctx->llc && !link_info && - !cfg->patch_ptmsi) { - /* Unknown SGSN TLLI, create a new link_info */ - uint32_t new_ptmsi; - link_info = gbproxy_link_info_alloc(bvc); - LOGPBVC(bvc, LOGL_INFO, "Adding TLLI %08x to list (SGSN)\n", - parse_ctx->tlli); - - gbproxy_attach_link_info(bvc, now, link_info); - - /* Setup TLLIs */ - link_info->sgsn_tlli.current = parse_ctx->tlli; - link_info->tlli.current = parse_ctx->tlli; - - if (!parse_ctx->new_ptmsi_enc) - return link_info; - /* A new P-TMSI has been signalled in the message */ - - gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - LOGPBVC(bvc, LOGL_INFO, - "Assigning new P-TMSI %08x\n", new_ptmsi); - /* Setup P-TMSIs */ - link_info->sgsn_tlli.ptmsi = new_ptmsi; - link_info->tlli.ptmsi = new_ptmsi; - } else if (parse_ctx->tlli_enc && parse_ctx->llc && link_info) { - uint32_t bss_tlli = gbproxy_map_tlli(parse_ctx->tlli, - link_info, 1); - gbproxy_validate_tlli(&link_info->sgsn_tlli, parse_ctx->tlli, 1); - gbproxy_validate_tlli(&link_info->tlli, bss_tlli, 1); - gbproxy_touch_link_info(bvc, link_info, now); - } else if (link_info) { - gbproxy_touch_link_info(bvc, link_info, now); - } - - if (parse_ctx->imsi && link_info && link_info->imsi_len == 0) - gbproxy_assign_imsi(bvc, link_info, parse_ctx); - - return link_info; -} - -int gbproxy_update_link_state_after( - struct gbproxy_bvc *bvc, - struct gbproxy_link_info *link_info, - time_t now, - struct gprs_gb_parse_context *parse_ctx) -{ - int rc = 0; - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - struct gbproxy_config *cfg = bvc->nse->cfg; - OSMO_ASSERT(cfg); - - if (parse_ctx->invalidate_tlli && link_info) { - int keep_info = - cfg->keep_link_infos == GBPROX_KEEP_ALWAYS || - (cfg->keep_link_infos == GBPROX_KEEP_REATTACH && - parse_ctx->await_reattach) || - (cfg->keep_link_infos == GBPROX_KEEP_IDENTIFIED && - link_info->imsi_len > 0); - if (keep_info) { - LOGPBVC(bvc, LOGL_INFO, "Unregistering TLLI %08x\n", - link_info->tlli.current); - rc = gbproxy_unregister_link_info(bvc, link_info); - } else { - LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list\n", - link_info->tlli.current); - gbproxy_delete_link_info(bvc, link_info); - rc = 1; - } - } else if (parse_ctx->to_bss && parse_ctx->tlli_enc && - parse_ctx->new_ptmsi_enc && link_info) { - /* A new PTMSI has been signaled in the message, - * register new TLLI */ - uint32_t new_sgsn_ptmsi = link_info->sgsn_tlli.ptmsi; - uint32_t new_bss_ptmsi = link_info->tlli.ptmsi; - uint32_t new_sgsn_tlli; - uint32_t new_bss_tlli = 0; - - new_sgsn_tlli = gprs_tmsi2tlli(new_sgsn_ptmsi, TLLI_LOCAL); - if (new_bss_ptmsi != GSM_RESERVED_TMSI) - new_bss_tlli = gprs_tmsi2tlli(new_bss_ptmsi, TLLI_LOCAL); - LOGPBVC(bvc, LOGL_INFO, - "Assigning new TLLI %08x to SGSN, %08x to BSS\n", - new_sgsn_tlli, new_bss_tlli); - - gbproxy_reassign_tlli(&link_info->sgsn_tlli, - bvc, new_sgsn_tlli); - gbproxy_reassign_tlli(&link_info->tlli, - bvc, new_bss_tlli); - gbproxy_remove_matching_link_infos(bvc, link_info); - } - - gbproxy_remove_stale_link_infos(bvc, now); - - return rc; -} - - diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 47ac9b9..da5710a 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -54,20 +54,6 @@ 1, }; -static const struct value_string keep_modes[] = { - {GBPROX_KEEP_NEVER, "never"}, - {GBPROX_KEEP_REATTACH, "re-attach"}, - {GBPROX_KEEP_IDENTIFIED, "identified"}, - {GBPROX_KEEP_ALWAYS, "always"}, - {0, NULL} -}; - -static const struct value_string match_ids[] = { - {GBPROX_MATCH_PATCHING, "patching"}, - {GBPROX_MATCH_ROUTING, "routing"}, - {0, NULL} -}; - static void gbprox_vty_print_bvc(struct vty *vty, struct gbproxy_bvc *bvc) { struct gprs_ra_id raid; @@ -83,62 +69,11 @@ static int config_write_gbproxy(struct vty *vty) { - enum gbproxy_match_id match_id; - vty_out(vty, "gbproxy%s", VTY_NEWLINE); vty_out(vty, " sgsn nsei %u%s", g_cfg->nsip_sgsn_nsei, VTY_NEWLINE); - if (g_cfg->core_plmn.mcc > 0) - vty_out(vty, " core-mobile-country-code %s%s", - osmo_mcc_name(g_cfg->core_plmn.mcc), VTY_NEWLINE); - if (g_cfg->core_plmn.mnc > 0) - vty_out(vty, " core-mobile-network-code %s%s", - osmo_mnc_name(g_cfg->core_plmn.mnc, g_cfg->core_plmn.mnc_3_digits), VTY_NEWLINE); - - for (match_id = 0; match_id < ARRAY_SIZE(g_cfg->matches); ++match_id) { - struct gbproxy_match *match = &g_cfg->matches[match_id]; - if (match->re_str) - vty_out(vty, " match-imsi %s %s%s", - get_value_string(match_ids, match_id), - match->re_str, VTY_NEWLINE); - } - - if (g_cfg->core_apn != NULL) { - if (g_cfg->core_apn_size > 0) { - char str[500] = {0}; - vty_out(vty, " core-access-point-name %s%s", - osmo_apn_to_str(str, g_cfg->core_apn, - g_cfg->core_apn_size), - VTY_NEWLINE); - } else { - vty_out(vty, " core-access-point-name none%s", - VTY_NEWLINE); - } - } - - if (g_cfg->route_to_sgsn2) - vty_out(vty, " secondary-sgsn nsei %u%s", g_cfg->nsip_sgsn2_nsei, - VTY_NEWLINE); - - if (g_cfg->clean_stale_timer_freq > 0) - vty_out(vty, " link-list clean-stale-timer %u%s", - g_cfg->clean_stale_timer_freq, VTY_NEWLINE); - if (g_cfg->tlli_max_age > 0) - vty_out(vty, " link-list max-age %d%s", - g_cfg->tlli_max_age, VTY_NEWLINE); - if (g_cfg->tlli_max_len > 0) - vty_out(vty, " link-list max-length %d%s", - g_cfg->tlli_max_len, VTY_NEWLINE); - vty_out(vty, " link-list keep-mode %s%s", - get_value_string(keep_modes, g_cfg->keep_link_infos), - VTY_NEWLINE); - if (g_cfg->stored_msgs_max_len > 0) - vty_out(vty, " link stored-msgs-max-length %"PRIu32"%s", - g_cfg->stored_msgs_max_len, VTY_NEWLINE); - - return CMD_SUCCESS; } @@ -160,387 +95,10 @@ { unsigned int nsei = atoi(argv[0]); - if (g_cfg->route_to_sgsn2 && g_cfg->nsip_sgsn2_nsei == nsei) { - vty_out(vty, "SGSN NSEI %d conflicts with secondary SGSN NSEI%s", - nsei, VTY_NEWLINE); - return CMD_WARNING; - } - g_cfg->nsip_sgsn_nsei = nsei; return CMD_SUCCESS; } -#define GBPROXY_CORE_MNC_STR "Use this network code for the core network\n" - -DEFUN(cfg_gbproxy_core_mnc, - cfg_gbproxy_core_mnc_cmd, - "core-mobile-network-code <1-999>", - GBPROXY_CORE_MNC_STR "NCC value\n") -{ - uint16_t mnc; - bool mnc_3_digits; - if (osmo_mnc_from_str(argv[0], &mnc, &mnc_3_digits)) { - vty_out(vty, "%% Invalid MNC: %s%s", argv[0], VTY_NEWLINE); - return CMD_WARNING; - } - g_cfg->core_plmn.mnc = mnc; - g_cfg->core_plmn.mnc_3_digits = mnc_3_digits; - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_no_core_mnc, - cfg_gbproxy_no_core_mnc_cmd, - "no core-mobile-network-code", - NO_STR GBPROXY_CORE_MNC_STR) -{ - g_cfg->core_plmn.mnc = 0; - g_cfg->core_plmn.mnc_3_digits = false; - return CMD_SUCCESS; -} - -#define GBPROXY_CORE_MCC_STR "Use this country code for the core network\n" - -DEFUN(cfg_gbproxy_core_mcc, - cfg_gbproxy_core_mcc_cmd, - "core-mobile-country-code <1-999>", - GBPROXY_CORE_MCC_STR "MCC value\n") -{ - g_cfg->core_plmn.mcc = atoi(argv[0]); - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_no_core_mcc, - cfg_gbproxy_no_core_mcc_cmd, - "no core-mobile-country-code", - NO_STR GBPROXY_CORE_MCC_STR) -{ - g_cfg->core_plmn.mcc = 0; - return CMD_SUCCESS; -} - -#define GBPROXY_MATCH_IMSI_STR "Restrict actions to certain IMSIs\n" - -DEFUN(cfg_gbproxy_match_imsi, - cfg_gbproxy_match_imsi_cmd, - "match-imsi (patching|routing) .REGEXP", - GBPROXY_MATCH_IMSI_STR - "Patch MS related information elements on match only\n" - "Route to the secondary SGSN on match only\n" - "Regular expression for the IMSI match\n") -{ - const char *filter = argv[1]; - const char *err_msg = NULL; - struct gbproxy_match *match; - enum gbproxy_match_id match_id = get_string_value(match_ids, argv[0]); - - OSMO_ASSERT(match_id >= GBPROX_MATCH_PATCHING && - match_id < GBPROX_MATCH_LAST); - match = &g_cfg->matches[match_id]; - - if (gbproxy_set_patch_filter(match, filter, &err_msg) != 0) { - vty_out(vty, "Match expression invalid: %s%s", - err_msg, VTY_NEWLINE); - return CMD_WARNING; - } - - g_cfg->acquire_imsi = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_no_match_imsi, - cfg_gbproxy_no_match_imsi_cmd, - "no match-imsi", - NO_STR GBPROXY_MATCH_IMSI_STR) -{ - enum gbproxy_match_id match_id; - - for (match_id = 0; match_id < ARRAY_SIZE(g_cfg->matches); ++match_id) - gbproxy_clear_patch_filter(&g_cfg->matches[match_id]); - - g_cfg->acquire_imsi = false; - - return CMD_SUCCESS; -} - -#define GBPROXY_CORE_APN_STR "Use this access point name (APN) for the backbone\n" -#define GBPROXY_CORE_APN_ARG_STR "Replace APN by this string\n" "Remove APN\n" - -static int set_core_apn(struct vty *vty, const char *apn) -{ - int apn_len; - - if (!apn) { - talloc_free(g_cfg->core_apn); - g_cfg->core_apn = NULL; - g_cfg->core_apn_size = 0; - return CMD_SUCCESS; - } - - apn_len = strlen(apn); - - if (apn_len >= 100) { - vty_out(vty, "APN string too long (max 99 chars)%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - if (apn_len == 0) { - talloc_free(g_cfg->core_apn); - /* TODO: replace NULL */ - g_cfg->core_apn = talloc_zero_size(NULL, 2); - g_cfg->core_apn_size = 0; - } else { - /* TODO: replace NULL */ - g_cfg->core_apn = - talloc_realloc_size(NULL, g_cfg->core_apn, apn_len + 1); - g_cfg->core_apn_size = - gprs_str_to_apn(g_cfg->core_apn, apn_len + 1, apn); - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_core_apn, - cfg_gbproxy_core_apn_cmd, - "core-access-point-name (APN|none)", - GBPROXY_CORE_APN_STR GBPROXY_CORE_APN_ARG_STR) -{ - if (strcmp(argv[0], "none") == 0) - return set_core_apn(vty, ""); - else - return set_core_apn(vty, argv[0]); -} - -DEFUN(cfg_gbproxy_no_core_apn, - cfg_gbproxy_no_core_apn_cmd, - "no core-access-point-name", - NO_STR GBPROXY_CORE_APN_STR) -{ - return set_core_apn(vty, NULL); -} - -/* TODO: Remove the patch-ptmsi command, since P-TMSI patching is enabled - * automatically when needed. This command is only left for manual testing - * (e.g. doing P-TMSI patching without using a secondary SGSN) - */ -#define GBPROXY_PATCH_PTMSI_STR "Patch P-TMSI/TLLI\n" - -DEFUN(cfg_gbproxy_patch_ptmsi, - cfg_gbproxy_patch_ptmsi_cmd, - "patch-ptmsi", - GBPROXY_PATCH_PTMSI_STR) -{ - g_cfg->patch_ptmsi = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_no_patch_ptmsi, - cfg_gbproxy_no_patch_ptmsi_cmd, - "no patch-ptmsi", - NO_STR GBPROXY_PATCH_PTMSI_STR) -{ - g_cfg->patch_ptmsi = false; - - return CMD_SUCCESS; -} - -/* TODO: Remove the acquire-imsi command, since that feature is enabled - * automatically when IMSI matching is enabled. This command is only left for - * manual testing (e.g. doing IMSI acquisition without IMSI based patching) - */ -#define GBPROXY_ACQUIRE_IMSI_STR "Acquire the IMSI before establishing a LLC connection (Experimental)\n" - -DEFUN(cfg_gbproxy_acquire_imsi, - cfg_gbproxy_acquire_imsi_cmd, - "acquire-imsi", - GBPROXY_ACQUIRE_IMSI_STR) -{ - g_cfg->acquire_imsi = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_no_acquire_imsi, - cfg_gbproxy_no_acquire_imsi_cmd, - "no acquire-imsi", - NO_STR GBPROXY_ACQUIRE_IMSI_STR) -{ - g_cfg->acquire_imsi = false; - - return CMD_SUCCESS; -} - -#define GBPROXY_SECOND_SGSN_STR "Route matching LLC connections to a second SGSN (Experimental)\n" - -DEFUN(cfg_gbproxy_secondary_sgsn, - cfg_gbproxy_secondary_sgsn_cmd, - "secondary-sgsn nsei <0-65534>", - GBPROXY_SECOND_SGSN_STR - "NSEI to be used in the connection with the SGSN\n" - "The NSEI\n") -{ - unsigned int nsei = atoi(argv[0]); - - if (g_cfg->nsip_sgsn_nsei == nsei) { - vty_out(vty, "Secondary SGSN NSEI %d conflicts with primary SGSN NSEI%s", - nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - g_cfg->route_to_sgsn2 = true; - g_cfg->nsip_sgsn2_nsei = nsei; - - g_cfg->patch_ptmsi = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_no_secondary_sgsn, - cfg_gbproxy_no_secondary_sgsn_cmd, - "no secondary-sgsn", - NO_STR GBPROXY_SECOND_SGSN_STR) -{ - g_cfg->route_to_sgsn2 = false; - g_cfg->nsip_sgsn2_nsei = 0xFFFF; - - g_cfg->patch_ptmsi = false; - - return CMD_SUCCESS; -} - -#define GBPROXY_LINK_LIST_STR "Set TLLI list parameters\n" -#define GBPROXY_LINK_STR "Set TLLI parameters\n" - -#define GBPROXY_CLEAN_STALE_TIMER_STR "Periodic timer to clean stale links\n" - -DEFUN(cfg_gbproxy_link_list_clean_stale_timer, - cfg_gbproxy_link_list_clean_stale_timer_cmd, - "link-list clean-stale-timer <1-999999>", - GBPROXY_LINK_LIST_STR GBPROXY_CLEAN_STALE_TIMER_STR - "Frequency at which the periodic timer is fired (in seconds)\n") -{ - struct gbproxy_nse *nse; - int i, j; - g_cfg->clean_stale_timer_freq = (unsigned int) atoi(argv[0]); - - /* Re-schedule running timers soon in case prev frequency was really big - and new frequency is desired to be lower. After initial run, periodic - time is used. Use random() to avoid firing timers for all bvcs at - the same time */ - hash_for_each(g_cfg->bss_nses, i, nse, list) { - struct gbproxy_bvc *bvc; - hash_for_each(nse->bvcs, j, bvc, list) - osmo_timer_schedule(&bvc->clean_stale_timer, - random() % 5, random() % 1000000); - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_link_list_no_clean_stale_timer, - cfg_gbproxy_link_list_no_clean_stale_timer_cmd, - "no link-list clean-stale-timer", - NO_STR GBPROXY_LINK_LIST_STR GBPROXY_CLEAN_STALE_TIMER_STR) - -{ - struct gbproxy_nse *nse; - int i, j; - g_cfg->clean_stale_timer_freq = 0; - - hash_for_each(g_cfg->bss_nses, i, nse, list) { - struct gbproxy_bvc *bvc; - hash_for_each(nse->bvcs, j, bvc, list) - osmo_timer_del(&bvc->clean_stale_timer); - } - - return CMD_SUCCESS; -} - -#define GBPROXY_MAX_AGE_STR "Limit maximum age\n" - -DEFUN(cfg_gbproxy_link_list_max_age, - cfg_gbproxy_link_list_max_age_cmd, - "link-list max-age <1-999999>", - GBPROXY_LINK_LIST_STR GBPROXY_MAX_AGE_STR - "Maximum age in seconds\n") -{ - g_cfg->tlli_max_age = atoi(argv[0]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_link_list_no_max_age, - cfg_gbproxy_link_list_no_max_age_cmd, - "no link-list max-age", - NO_STR GBPROXY_LINK_LIST_STR GBPROXY_MAX_AGE_STR) -{ - g_cfg->tlli_max_age = 0; - - return CMD_SUCCESS; -} - -#define GBPROXY_MAX_LEN_STR "Limit list length\n" - -DEFUN(cfg_gbproxy_link_list_max_len, - cfg_gbproxy_link_list_max_len_cmd, - "link-list max-length <1-99999>", - GBPROXY_LINK_LIST_STR GBPROXY_MAX_LEN_STR - "Maximum number of logical links in the list\n") -{ - g_cfg->tlli_max_len = atoi(argv[0]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_link_list_no_max_len, - cfg_gbproxy_link_list_no_max_len_cmd, - "no link-list max-length", - NO_STR GBPROXY_LINK_LIST_STR GBPROXY_MAX_LEN_STR) -{ - g_cfg->tlli_max_len = 0; - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_link_list_keep_mode, - cfg_gbproxy_link_list_keep_mode_cmd, - "link-list keep-mode (never|re-attach|identified|always)", - GBPROXY_LINK_LIST_STR "How to keep entries for detached logical links\n" - "Discard entry immediately after detachment\n" - "Keep entry if a re-attachment has be requested\n" - "Keep entry if it associated with an IMSI\n" - "Don't discard entries after detachment\n") -{ - int val = get_string_value(keep_modes, argv[0]); - OSMO_ASSERT(val >= GBPROX_KEEP_NEVER && val <= GBPROX_KEEP_ALWAYS); - g_cfg->keep_link_infos = val; - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_link_stored_msgs_max_len, - cfg_gbproxy_link_stored_msgs_max_len_cmd, - "link stored-msgs-max-length <1-99999>", - GBPROXY_LINK_STR GBPROXY_MAX_LEN_STR - "Maximum number of msgb stored in the logical link waiting to acquire its IMSI\n") -{ - g_cfg->stored_msgs_max_len = (uint32_t) atoi(argv[0]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_gbproxy_link_no_stored_msgs_max_len, - cfg_gbproxy_link_no_stored_msgs_max_len_cmd, - "no link stored-msgs-max-length", - NO_STR GBPROXY_LINK_STR GBPROXY_MAX_LEN_STR) -{ - g_cfg->stored_msgs_max_len = 0; - - return CMD_SUCCESS; -} - static void log_set_bvc_filter(struct log_target *target, const uint16_t *bvci) { @@ -603,52 +161,12 @@ SHOW_STR "Display information about the Gb proxy\n" "Show logical links\n") { struct gbproxy_nse *nse; - time_t now; - struct timespec ts = {0,}; int i, j; - osmo_clock_gettime(CLOCK_MONOTONIC, &ts); - now = ts.tv_sec; - hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; hash_for_each(nse->bvcs, j, bvc, list) { - struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &bvc->patch_state; - gbprox_vty_print_bvc(vty, bvc); - - llist_for_each_entry(link_info, &state->logical_links, list) { - time_t age = now - link_info->timestamp; - struct osmo_mobile_identity mi; - const char *imsi_str; - - if (link_info->imsi > 0) { - if (osmo_mobile_identity_decode(&mi, link_info->imsi, link_info->imsi_len, false) - || mi.type != GSM_MI_TYPE_IMSI) - imsi_str = "(invalid)"; - else - imsi_str = mi.imsi; - } else { - imsi_str = "(none)"; - } - vty_out(vty, " TLLI %08x, IMSI %s, AGE %d", - link_info->tlli.current, imsi_str, (int)age); - - if (link_info->stored_msgs_len) - vty_out(vty, ", STORED %"PRIu32"/%"PRIu32, - link_info->stored_msgs_len, - g_cfg->stored_msgs_max_len); - - if (g_cfg->route_to_sgsn2) - vty_out(vty, ", SGSN NSEI %d", - link_info->sgsn_nsei); - - if (link_info->is_deregistered) - vty_out(vty, ", DE-REGISTERED"); - - vty_out(vty, "%s", VTY_NEWLINE); - } } } return CMD_SUCCESS; @@ -744,182 +262,6 @@ return CMD_SUCCESS; } -#define GBPROXY_DELETE_LINK_STR \ - "Delete a GBProxy logical link entry by NSEI and identification\nNSEI number\n" - -DEFUN(delete_gb_link_by_id, delete_gb_link_by_id_cmd, - "delete-gbproxy-link <0-65534> (tlli|imsi|sgsn-nsei) IDENT", - GBPROXY_DELETE_LINK_STR - "Delete entries with a matching TLLI (hex)\n" - "Delete entries with a matching IMSI\n" - "Delete entries with a matching SGSN NSEI\n" - "Identification to match\n") -{ - const uint16_t nsei = atoi(argv[0]); - enum {MATCH_TLLI = 't', MATCH_IMSI = 'i', MATCH_SGSN = 's'} match; - uint32_t ident = 0; - const char *imsi = NULL; - struct gbproxy_bvc *bvc = 0; - struct gbproxy_link_info *link_info, *nxt; - struct gbproxy_patch_state *state; - int found = 0; - - match = argv[1][0]; - - switch (match) { - case MATCH_TLLI: ident = strtoll(argv[2], NULL, 16); break; - case MATCH_IMSI: imsi = argv[2]; break; - case MATCH_SGSN: ident = strtoll(argv[2], NULL, 0); break; - }; - - bvc = gbproxy_bvc_by_nsei(g_cfg, nsei); - if (!bvc) { - vty_out(vty, "Didn't find bvc with NSEI %d%s", - nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - state = &bvc->patch_state; - - llist_for_each_entry_safe(link_info, nxt, &state->logical_links, list) { - struct osmo_mobile_identity mi; - - switch (match) { - case MATCH_TLLI: - if (link_info->tlli.current != ident) - continue; - break; - case MATCH_SGSN: - if (link_info->sgsn_nsei != ident) - continue; - break; - case MATCH_IMSI: - if (!link_info->imsi) - continue; - if (osmo_mobile_identity_decode(&mi, link_info->imsi, link_info->imsi_len, false) - || mi.type != GSM_MI_TYPE_IMSI) - continue; - if (strcmp(mi.imsi, imsi) != 0) - continue; - break; - } - - vty_out(vty, "Deleting link with TLLI %08x%s", link_info->tlli.current, - VTY_NEWLINE); - gbproxy_delete_link_info(bvc, link_info); - found += 1; - } - - if (!found && argc >= 2) { - vty_out(vty, "Didn't find link entry with %s %s%s", - argv[1], argv[2], VTY_NEWLINE); - } - - return CMD_SUCCESS; -} - -DEFUN(delete_gb_link, delete_gb_link_cmd, - "delete-gbproxy-link <0-65534> (stale|de-registered)", - GBPROXY_DELETE_LINK_STR - "Delete stale entries\n" - "Delete de-registered entries\n") -{ - const uint16_t nsei = atoi(argv[0]); - enum {MATCH_STALE = 's', MATCH_DEREGISTERED = 'd'} match; - struct gbproxy_bvc *bvc = 0; - struct gbproxy_link_info *link_info, *nxt; - struct gbproxy_patch_state *state; - time_t now; - struct timespec ts = {0,}; - - int found = 0; - - match = argv[1][0]; - - bvc = gbproxy_bvc_by_nsei(g_cfg, nsei); - if (!bvc) { - vty_out(vty, "Didn't find bvc with NSEI %d%s", - nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - state = &bvc->patch_state; - - osmo_clock_gettime(CLOCK_MONOTONIC, &ts); - now = ts.tv_sec; - - if (match == MATCH_STALE) { - found = gbproxy_remove_stale_link_infos(bvc, now); - if (found) - vty_out(vty, "Deleted %d stale logical link%s%s", - found, found == 1 ? "" : "s", VTY_NEWLINE); - } else { - llist_for_each_entry_safe(link_info, nxt, - &state->logical_links, list) { - if (!link_info->is_deregistered) - continue; - - gbproxy_delete_link_info(bvc, link_info); - found += 1; - } - } - - if (found) - vty_out(vty, "Deleted %d %s logical link%s%s", - found, argv[1], found == 1 ? "" : "s", VTY_NEWLINE); - - return CMD_SUCCESS; -} - -/* - * legacy commands to provide an upgrade path from "broken" releases - * or pre-releases - */ -DEFUN_DEPRECATED(cfg_gbproxy_broken_apn_match, - cfg_gbproxy_broken_apn_match_cmd, - "core-access-point-name none match-imsi .REGEXP", - GBPROXY_CORE_APN_STR GBPROXY_MATCH_IMSI_STR "Remove APN\n" - "Patch MS related information elements on match only\n" - "Route to the secondary SGSN on match only\n" - "Regular expression for the IMSI match\n") -{ - const char *filter = argv[0]; - const char *err_msg = NULL; - struct gbproxy_match *match; - enum gbproxy_match_id match_id = get_string_value(match_ids, "patching"); - - /* apply APN none */ - set_core_apn(vty, ""); - - /* do the matching... with copy and paste */ - OSMO_ASSERT(match_id >= GBPROX_MATCH_PATCHING && - match_id < GBPROX_MATCH_LAST); - match = &g_cfg->matches[match_id]; - - if (gbproxy_set_patch_filter(match, filter, &err_msg) != 0) { - vty_out(vty, "Match expression invalid: %s%s", - err_msg, VTY_NEWLINE); - return CMD_WARNING; - } - - g_cfg->acquire_imsi = true; - - return CMD_SUCCESS; -} - -#define GBPROXY_TLLI_LIST_STR "Set TLLI list parameters\n" -#define GBPROXY_MAX_LEN_STR "Limit list length\n" -DEFUN_DEPRECATED(cfg_gbproxy_depr_tlli_list_max_len, - cfg_gbproxy_depr_tlli_list_max_len_cmd, - "tlli-list max-length <1-99999>", - GBPROXY_TLLI_LIST_STR GBPROXY_MAX_LEN_STR - "Maximum number of TLLIs in the list\n") -{ - g_cfg->tlli_max_len = atoi(argv[0]); - - return CMD_SUCCESS; -} - int gbproxy_vty_init(void) { install_element_ve(&show_gbproxy_cmd); @@ -928,39 +270,10 @@ install_element(ENABLE_NODE, &delete_gb_bvci_cmd); install_element(ENABLE_NODE, &delete_gb_nsei_cmd); - install_element(ENABLE_NODE, &delete_gb_link_by_id_cmd); - install_element(ENABLE_NODE, &delete_gb_link_cmd); install_element(CONFIG_NODE, &cfg_gbproxy_cmd); install_node(&gbproxy_node, config_write_gbproxy); install_element(GBPROXY_NODE, &cfg_nsip_sgsn_nsei_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_core_mcc_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_core_mnc_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_match_imsi_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_core_apn_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_secondary_sgsn_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_patch_ptmsi_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_acquire_imsi_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_link_list_clean_stale_timer_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_link_list_max_age_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_link_list_max_len_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_link_list_keep_mode_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_link_stored_msgs_max_len_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_no_core_mcc_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_no_core_mnc_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_no_match_imsi_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_no_core_apn_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_no_secondary_sgsn_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_no_patch_ptmsi_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_no_acquire_imsi_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_link_list_no_clean_stale_timer_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_link_list_no_max_age_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_link_list_no_max_len_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_link_no_stored_msgs_max_len_cmd); - - /* broken or deprecated to allow an upgrade path */ - install_element(GBPROXY_NODE, &cfg_gbproxy_broken_apn_match_cmd); - install_element(GBPROXY_NODE, &cfg_gbproxy_depr_tlli_list_max_len_cmd); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id9cc2e1c63486491ac5bb68876088a615075fde6 Gerrit-Change-Number: 21552 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 Dec 5 10:52:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 10:52:36 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 ) Change subject: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I198ca70f5e0947735f76d32cd9d3eed159349a94 Gerrit-Change-Number: 21477 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Dec 2020 10:52: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 Dec 5 11:03:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 11:03:09 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 ) Change subject: gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs ...................................................................... gbproxy: Send BVC-STATUS if BSS sends us BVC-RESET without mandatory IEs Change-Id: I198ca70f5e0947735f76d32cd9d3eed159349a94 --- M src/gbproxy/gb_proxy.c 1 file changed, 4 insertions(+), 2 deletions(-) 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 a4ad7af..8b103c8 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1017,8 +1017,10 @@ struct gbproxy_peer *from_peer = NULL; uint16_t bvci; - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) - return 0; + if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); + } bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I198ca70f5e0947735f76d32cd9d3eed159349a94 Gerrit-Change-Number: 21477 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Dec 5 11:03:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 11:03:10 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21492 ) Change subject: gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT ...................................................................... gb_proxy: Use TLVP_PRES_LEN instead of TLVP_PRESENT With TLVP_PRESENT we only check if a tiven TLV/IE is present, but don't verify that it's length matches our expectation. This can lead to out-of-bounds reads, so let's always use TLVP_PRES_LEN. Change-Id: I1519cff0f6b2fe77f9a91eee17e0055d9df1bce6 --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 2 files changed, 17 insertions(+), 17 deletions(-) Approvals: Jenkins Builder: Verified pespin: 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 8b103c8..c130466 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1017,7 +1017,7 @@ struct gbproxy_peer *from_peer = NULL; uint16_t bvci; - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) || !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } @@ -1076,7 +1076,7 @@ gbproxy_peer_move(from_peer, nse_new); } - if (TLVP_PRESENT(tp, BSSGP_IE_CELL_ID)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { struct gprs_ra_id raid; /* We have a Cell Identifier present in this * PDU, this means we can extend our local @@ -1132,7 +1132,7 @@ * area identification. The snooped information is then used * for routing the {SUSPEND,RESUME}_[N]ACK back to the correct * BSSGP */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_ROUTEING_AREA)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) goto err_mand_ie; from_peer = gbproxy_peer_by_nsei(cfg, nsei); if (!from_peer) @@ -1188,7 +1188,7 @@ LOGP(DGPRS, LOGL_INFO, "NSE(%05u/SGSN) BSSGP PAGING\n", nsei); - if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; peer = gbproxy_peer_by_bvci(cfg, bvci); @@ -1200,7 +1200,7 @@ } LOGPBVC(peer, LOGL_INFO, "routing by BVCI\n"); return gbprox_relay2peer(msg, peer, ns_bvci); - } else if (TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA)) { + } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; /* iterate over all peers and dispatch the paging to each matching one */ llist_for_each_entry(nse, &cfg->nse_peers, list) { @@ -1214,7 +1214,7 @@ } } } - } else if (TLVP_PRESENT(tp, BSSGP_IE_LOCATION_AREA)) { + } else if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { errctr = GBPROX_GLOB_CTR_INV_LAI; /* iterate over all peers and dispatch the paging to each matching one */ llist_for_each_entry(nse, &cfg->nse_peers, list) { @@ -1228,7 +1228,7 @@ } } } - } else if (TLVP_PRESENT(tp, BSSGP_IE_BSS_AREA_ID)) { + } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* iterate over all peers and dispatch the paging to each matching one */ llist_for_each_entry(nse, &cfg->nse_peers, list) { llist_for_each_entry(peer, &nse->bts_peers, list) { @@ -1264,7 +1264,7 @@ struct gbproxy_peer *peer; uint16_t ptp_bvci; - if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, @@ -1347,7 +1347,7 @@ if (cfg->route_to_sgsn2 && nsei == cfg->nsip_sgsn2_nsei) break; /* simple case: BVCI IE is mandatory */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); if (bvci == BVCI_SIGNALLING) { @@ -1358,7 +1358,7 @@ break; case BSSGP_PDUT_FLUSH_LL: /* simple case: BVCI IE is mandatory */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); @@ -1372,7 +1372,7 @@ /* Some exception has occurred */ LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP STATUS ", nsei); - if (!TLVP_PRESENT(&tp, BSSGP_IE_CAUSE)) { + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_CAUSE, 1)) { LOGPC(DGPRS, LOGL_NOTICE, "\n"); goto err_mand_ie; } @@ -1380,7 +1380,7 @@ LOGPC(DGPRS, LOGL_NOTICE, "cause=0x%02x(%s) ", *TLVP_VAL(&tp, BSSGP_IE_CAUSE), bssgp_cause_str(cause)); - if (TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) { + if (TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) { bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); LOGPC(DGPRS, LOGL_NOTICE, "BVCI=%05u\n", bvci); @@ -1395,7 +1395,7 @@ case BSSGP_PDUT_RESUME_ACK: case BSSGP_PDUT_RESUME_NACK: /* RAI IE is mandatory */ - if (!TLVP_PRESENT(&tp, BSSGP_IE_ROUTEING_AREA)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) goto err_mand_ie; peer = gbproxy_peer_by_rai(cfg, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA)); if (!peer) @@ -1404,7 +1404,7 @@ break; case BSSGP_PDUT_BVC_BLOCK_ACK: case BSSGP_PDUT_BVC_UNBLOCK_ACK: - if (!TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) + if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); if (bvci == 0) { diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index ea5fe1e..79ea8e3 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -165,7 +165,7 @@ struct gbproxy_peer *gbproxy_peer_by_bssgp_tlv(struct gbproxy_config *cfg, struct tlv_parsed *tp) { - if (TLVP_PRESENT(tp, BSSGP_IE_BVCI)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci; bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); @@ -174,7 +174,7 @@ } /* FIXME: this doesn't make sense, as RA can span multiple peers! */ - if (TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { uint8_t *rai = (uint8_t *)TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA); /* Only compare LAC part, since MCC/MNC are possibly patched. * Since the LAC of different BSS must be different when @@ -183,7 +183,7 @@ } /* FIXME: this doesn't make sense, as LA can span multiple peers! */ - if (TLVP_PRESENT(tp, BSSGP_IE_LOCATION_AREA)) { + if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { uint8_t *lai = (uint8_t *)TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA); return gbproxy_peer_by_lac(cfg, lai); } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1519cff0f6b2fe77f9a91eee17e0055d9df1bce6 Gerrit-Change-Number: 21492 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Dec 5 13:06:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 13:06:38 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Rename gbproxy_peer to gbproxy_bvc 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/+/21548 to look at the new patch set (#2). Change subject: gb_proxy: Rename gbproxy_peer to gbproxy_bvc ...................................................................... gb_proxy: Rename gbproxy_peer to gbproxy_bvc I cannot really read the code while it contains its historical weird naming. A "peer" used to be a strange amalgamation of NSE + BVC, while in reality we can have any number of BVC on top of each NSE. We recently started to split the peer into a gbproxy_nse_peer + gbproxy_peer. This takes it one step further and renames gbproxy_peer to gbproxy_bvc, as that's really what it is. Change-Id: Iae01067282a6401f6af4cab731202872d2cdb080 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/gbproxy_test.c 8 files changed, 596 insertions(+), 592 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/48/21548/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iae01067282a6401f6af4cab731202872d2cdb080 Gerrit-Change-Number: 21548 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 Dec 5 13:06:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 13:06:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_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/osmo-sgsn/+/21549 to look at the new patch set (#2). Change subject: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses ...................................................................... gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses We will soon also have a list of sgsn-side NSEs, and we need to differentiate those. Change-Id: If5accec0c70c01b88927ea07beba6f6488bd9d5a Related: OS#4472 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/gbproxy_test.c 6 files changed, 27 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/49/21549/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5accec0c70c01b88927ea07beba6f6488bd9d5a Gerrit-Change-Number: 21549 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 Dec 5 13:06:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 13:06:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: convert bss_nses from llist_head to hashtable 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/+/21550 to look at the new patch set (#2). Change subject: gbproxy: convert bss_nses from llist_head to hashtable ...................................................................... gbproxy: convert bss_nses from llist_head to hashtable For the common lookup-by-nsei, this should reduce the computational complexity significantly. Depends: libosmocore.git I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Change-Id: Idbb6a362332bb6e3ce22102e7409ae80d0980f44 --- M TODO-RELEASE M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/gbproxy_test.c 7 files changed, 56 insertions(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/50/21550/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idbb6a362332bb6e3ce22102e7409ae80d0980f44 Gerrit-Change-Number: 21550 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 Dec 5 13:06:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 13:06:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: convert nse->bvcs from llist_head to hashtable 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/+/21551 to look at the new patch set (#2). Change subject: gbproxy: convert nse->bvcs from llist_head to hashtable ...................................................................... gbproxy: convert nse->bvcs from llist_head to hashtable For the common lookup-by-bvci, this should reduce the computational complexity significantly. Depends: libosmocore.git I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Change-Id: Ic8e9279fd61a3c514fc3203429f36a468f0e81d3 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/gbproxy_test.c M tests/gbproxy/gbproxy_test.ok 7 files changed, 79 insertions(+), 64 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/51/21551/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ic8e9279fd61a3c514fc3203429f36a468f0e81d3 Gerrit-Change-Number: 21551 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 Dec 5 13:06:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 13:06:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove patching, TLLI-tracking and SGSN2 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-sgsn/+/21552 to look at the new patch set (#2). Change subject: gbproxy: Remove patching, TLLI-tracking and SGSN2 support ...................................................................... gbproxy: Remove patching, TLLI-tracking and SGSN2 support Those features were introduced a long time ago for one specific use case at one specific user, and they are not needed anymore. They complicate the code base significantly and are hard to maintain with all the upcoming modifications regarding SGSN pool supoprt. Change-Id: Id9cc2e1c63486491ac5bb68876088a615075fde6 --- M contrib/osmo-sgsn.spec.in M debian/copyright M debian/osmo-gbproxy.install M include/osmocom/sgsn/gb_proxy.h M osmoappdesc.py M src/gbproxy/Makefile.am M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c D src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_peer.c D src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/Makefile.am M tests/gbproxy/gbproxy_test.c M tests/gbproxy/gbproxy_test.ok 15 files changed, 4 insertions(+), 12,310 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/52/21552/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id9cc2e1c63486491ac5bb68876088a615075fde6 Gerrit-Change-Number: 21552 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 Dec 5 13:59:52 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 5 Dec 2020 13:59:52 +0000 Subject: Change in libosmocore[master]: core/linuxlist: do not use 'new' as a parameter name References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21553 ) Change subject: core/linuxlist: do not use 'new' as a parameter name ...................................................................... core/linuxlist: do not use 'new' as a parameter name 'new' is a reserved keyword in C++, so including this header from a C++ project (like osmo-pcu) breaks compilation. Let's rename it a the same way as it's already done in this file - add '_'. Change-Id: I7f7d9143edca75ce932601386a8766b0a62c0e24 Fixes: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 --- M include/osmocom/core/linuxlist.h 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21553/1 diff --git a/include/osmocom/core/linuxlist.h b/include/osmocom/core/linuxlist.h index 2c3a0a4..4f77325 100644 --- a/include/osmocom/core/linuxlist.h +++ b/include/osmocom/core/linuxlist.h @@ -579,11 +579,11 @@ * reference of the first entry if it exists. */ static inline void hlist_move_list(struct hlist_head *old, - struct hlist_head *new) + struct hlist_head *_new) { new->first = old->first; - if (new->first) - new->first->pprev = &new->first; + if (_new->first) + _new->first->pprev = &_new->first; old->first = NULL; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7f7d9143edca75ce932601386a8766b0a62c0e24 Gerrit-Change-Number: 21553 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 Dec 5 14:01:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 5 Dec 2020 14:01:11 +0000 Subject: Change in libosmocore[master]: core/linuxlist: do not use 'new' as a parameter 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/libosmocore/+/21553 to look at the new patch set (#2). Change subject: core/linuxlist: do not use 'new' as a parameter name ...................................................................... core/linuxlist: do not use 'new' as a parameter name 'new' is a reserved keyword in C++, so including this header from a C++ project (like osmo-pcu) breaks compilation. Let's rename it a the same way as it's already done in this file - add '_'. Change-Id: I7f7d9143edca75ce932601386a8766b0a62c0e24 Fixes: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 --- M include/osmocom/core/linuxlist.h 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21553/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7f7d9143edca75ce932601386a8766b0a62c0e24 Gerrit-Change-Number: 21553 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 Sat Dec 5 14:08:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 5 Dec 2020 14:08:22 +0000 Subject: Change in libosmocore[master]: core/linuxlist: do not use 'new' as a parameter 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/libosmocore/+/21553 to look at the new patch set (#3). Change subject: core/linuxlist: do not use 'new' as a parameter name ...................................................................... core/linuxlist: do not use 'new' as a parameter name 'new' is a reserved keyword in C++, so including this header from a C++ project (like osmo-pcu) breaks compilation. Let's rename it in the same way as it's already done in this file: add '_'. Change-Id: I7f7d9143edca75ce932601386a8766b0a62c0e24 Fixes: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 --- M include/osmocom/core/linuxlist.h 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21553/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7f7d9143edca75ce932601386a8766b0a62c0e24 Gerrit-Change-Number: 21553 Gerrit-PatchSet: 3 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 Sat Dec 5 16:58:19 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 5 Dec 2020 16:58:19 +0000 Subject: Change in osmo-bsc[master]: oml: Delay configuring NSVC until BTS features are negotiated In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21451 ) Change subject: oml: Delay configuring NSVC until BTS features are negotiated ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Dec 2020 16:58: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 Dec 5 17:37:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 5 Dec 2020 17:37:24 +0000 Subject: Change in libosmocore[master]: core/linuxlist: do not use 'new' as a parameter name In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21553 ) Change subject: core/linuxlist: do not use 'new' as a parameter name ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7f7d9143edca75ce932601386a8766b0a62c0e24 Gerrit-Change-Number: 21553 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 05 Dec 2020 17: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 Sat Dec 5 17:37:48 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 5 Dec 2020 17:37:48 +0000 Subject: Change in libosmocore[master]: core/linuxlist: do not use 'new' as a parameter name In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21553 ) Change subject: core/linuxlist: do not use 'new' as a parameter name ...................................................................... core/linuxlist: do not use 'new' as a parameter name 'new' is a reserved keyword in C++, so including this header from a C++ project (like osmo-pcu) breaks compilation. Let's rename it in the same way as it's already done in this file: add '_'. Change-Id: I7f7d9143edca75ce932601386a8766b0a62c0e24 Fixes: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 --- M include/osmocom/core/linuxlist.h 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/linuxlist.h b/include/osmocom/core/linuxlist.h index 2c3a0a4..5ccd462 100644 --- a/include/osmocom/core/linuxlist.h +++ b/include/osmocom/core/linuxlist.h @@ -579,11 +579,11 @@ * reference of the first entry if it exists. */ static inline void hlist_move_list(struct hlist_head *old, - struct hlist_head *new) + struct hlist_head *_new) { - new->first = old->first; - if (new->first) - new->first->pprev = &new->first; + _new->first = old->first; + if (_new->first) + _new->first->pprev = &_new->first; old->first = NULL; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7f7d9143edca75ce932601386a8766b0a62c0e24 Gerrit-Change-Number: 21553 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 Sat Dec 5 18:37:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 5 Dec 2020 18:37:02 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 5: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21534/5/include/osmocom/gsm/tlv.h File include/osmocom/gsm/tlv.h: https://gerrit.osmocom.org/c/libosmocore/+/21534/5/include/osmocom/gsm/tlv.h at 626 PS5, Line 626: * missing '*!' https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c at 661 PS5, Line 661: in out https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c at 664 PS5, Line 664: */ missing \returns https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c at 713 PS5, Line 713: */ missing \returns -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Sat, 05 Dec 2020 18:37: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 Sat Dec 5 18:44:29 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 5 Dec 2020 18:44:29 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c at 661 PS5, Line 661: in > out Nevermind, I see that it's actually 'const'. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Sat, 05 Dec 2020 18:44:29 +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 Sat Dec 5 18:47:41 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 5 Dec 2020 18:47:41 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 5: Code-Review+1 Looks good, just a few Doxygen related comments. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Dec 2020 18:47: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 Sat Dec 5 19:17:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 19:17:05 +0000 Subject: Change in libosmocore[master]: Use explicit type-casting in hlist_del() for C++ compatibility References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21554 ) Change subject: Use explicit type-casting in hlist_del() for C++ compatibility ...................................................................... Use explicit type-casting in hlist_del() for C++ compatibility /usr/local/include/osmocom/core/linuxlist.h:479:12: error: invalid conversion from ?void*? to ?hlist_node*? [-fpermissive] 479 | n->next = LLIST_POISON1; Fixes: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Change-Id: I75b0a5fe097562007c53987d8d41811e9f35798d --- M include/osmocom/core/linuxlist.h 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/54/21554/1 diff --git a/include/osmocom/core/linuxlist.h b/include/osmocom/core/linuxlist.h index 5ccd462..f28f88b 100644 --- a/include/osmocom/core/linuxlist.h +++ b/include/osmocom/core/linuxlist.h @@ -476,8 +476,8 @@ static inline void hlist_del(struct hlist_node *n) { __hlist_del(n); - n->next = LLIST_POISON1; - n->pprev = LLIST_POISON2; + n->next = (struct hlist_node *)LLIST_POISON1; + n->pprev = (struct hlist_node **)LLIST_POISON2; } /*! Delete the specified hlist_node from its list and initialize. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I75b0a5fe097562007c53987d8d41811e9f35798d Gerrit-Change-Number: 21554 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 Dec 5 19:36:08 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 5 Dec 2020 19:36:08 +0000 Subject: Change in osmo-bsc[master]: oml: Delay configuring NSVC until BTS features are negotiated In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21451 ) Change subject: oml: Delay configuring NSVC until BTS features are negotiated ...................................................................... Patch Set 3: Code-Review+2 tested. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Dec 2020 19: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 Dec 5 19:38:44 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 5 Dec 2020 19:38:44 +0000 Subject: Change in osmo-bsc[master]: oml: Delay configuring NSVC until BTS features are negotiated In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21451 ) Change subject: oml: Delay configuring NSVC until BTS features are negotiated ...................................................................... oml: Delay configuring NSVC until BTS features are negotiated This is needed in order to to proper feature support verification for IPv6 when configuring the NSVC. Before this patch, there could be a race condition where NSVC FSM checked for BTS feature BTS_FEAT_IPV6_NSVC before it was negotiated through BTS Get Attributes (Ack). Fixes: OS#4870 Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/nm_common_fsm.h M src/osmo-bsc/nm_bts_fsm.c M src/osmo-bsc/nm_common_fsm.c M src/osmo-bsc/nm_gprs_nsvc_fsm.c 5 files changed, 38 insertions(+), 7 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/bsc/bts.h b/include/osmocom/bsc/bts.h index fd968fa..2b05418 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -585,6 +585,11 @@ /* reset the state of all MO in the BTS */ void gsm_bts_mo_reset(struct gsm_bts *bts); +static inline bool gsm_bts_features_negotiated(struct gsm_bts *bts) +{ + return bts->mo.get_attr_rep_received || bts->mo.nm_state.operational == NM_OPSTATE_ENABLED; +} + /* dependency handling */ void bts_depend_mark(struct gsm_bts *bts, int dep); void bts_depend_clear(struct gsm_bts *bts, int dep); diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h index bceefbe..89ec863 100644 --- a/include/osmocom/bsc/nm_common_fsm.h +++ b/include/osmocom/bsc/nm_common_fsm.h @@ -36,6 +36,7 @@ NM_EV_OPSTART_NACK, NM_EV_OML_DOWN, NM_EV_FORCE_LOCK, /* Only supported by RadioCarrier so far */ + NM_EV_FEATURE_NEGOTIATED, /* Sent by BTS to NSVC MO */ }; extern const struct value_string nm_fsm_event_names[]; diff --git a/src/osmo-bsc/nm_bts_fsm.c b/src/osmo-bsc/nm_bts_fsm.c index 731b578..c951edd 100644 --- a/src/osmo-bsc/nm_bts_fsm.c +++ b/src/osmo-bsc/nm_bts_fsm.c @@ -127,6 +127,21 @@ } } +static void rx_get_attr_rep(struct gsm_bts *bts, bool allow_opstart) +{ + struct gsm_gprs_nsvc *nsvc; + + bts->mo.get_attr_rep_received = true; + bts->mo.get_attr_sent = false; + + /* Announce bts_features are available to related NSVC MOs */ + nsvc = gsm_bts_sm_nsvc_num(bts->site_mgr, 0); /* we only support NSVC0 so far */ + osmo_fsm_inst_dispatch(nsvc->mo.fi, NM_EV_FEATURE_NEGOTIATED, NULL); + + /* Move FSM forward */ + configure_loop(bts, &bts->mo.nm_state, allow_opstart); +} + static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; @@ -149,9 +164,7 @@ switch (event) { case NM_EV_GET_ATTR_REP: - bts->mo.get_attr_rep_received = true; - bts->mo.get_attr_sent = false; - configure_loop(bts, &bts->mo.nm_state, false); + rx_get_attr_rep(bts, false); return; case NM_EV_SET_ATTR_ACK: bts->mo.set_attr_ack_received = true; @@ -203,9 +216,7 @@ switch (event) { case NM_EV_GET_ATTR_REP: - bts->mo.get_attr_rep_received = true; - bts->mo.get_attr_sent = false; - configure_loop(bts, &bts->mo.nm_state, true); + rx_get_attr_rep(bts, true); return; case NM_EV_SET_ATTR_ACK: bts->mo.set_attr_ack_received = true; diff --git a/src/osmo-bsc/nm_common_fsm.c b/src/osmo-bsc/nm_common_fsm.c index 2a529db..2f19ed4 100644 --- a/src/osmo-bsc/nm_common_fsm.c +++ b/src/osmo-bsc/nm_common_fsm.c @@ -31,5 +31,6 @@ { NM_EV_OPSTART_NACK, "OPSTART_NACK" }, { NM_EV_OML_DOWN, "OML_DOWN" }, { NM_EV_FORCE_LOCK, "FORCE_LOCK_CHG" }, + { NM_EV_FEATURE_NEGOTIATED, "FEATURE_NEGOTIATED" }, { 0, NULL } }; diff --git a/src/osmo-bsc/nm_gprs_nsvc_fsm.c b/src/osmo-bsc/nm_gprs_nsvc_fsm.c index ffc5659..2a57ada 100644 --- a/src/osmo-bsc/nm_gprs_nsvc_fsm.c +++ b/src/osmo-bsc/nm_gprs_nsvc_fsm.c @@ -62,6 +62,8 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_FEATURE_NEGOTIATED: + break; case NM_EV_SW_ACT_REP: break; case NM_EV_STATE_CHG_REP: @@ -94,7 +96,9 @@ if (nsvc->bts->gprs.mode == BTS_GPRS_NONE) return; - if (!nsvc->mo.set_attr_sent && !nsvc->mo.set_attr_ack_received) { + /* We need to know BTS features in order to know if we can set IPv6 addresses */ + if (gsm_bts_features_negotiated(nsvc->bts) && !nsvc->mo.set_attr_sent && + !nsvc->mo.set_attr_ack_received) { if (!osmo_bts_has_feature(&nsvc->bts->features, BTS_FEAT_IPV6_NSVC) && nsvc->remote.u.sa.sa_family == AF_INET6) { LOGPFSML(nsvc->mo.fi, LOGL_ERROR, @@ -149,6 +153,9 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_FEATURE_NEGOTIATED: + configure_loop(nsvc, &nsvc->mo.nm_state, false); + return; case NM_EV_SET_ATTR_ACK: nsvc->mo.set_attr_ack_received = true; nsvc->mo.set_attr_sent = false; @@ -198,6 +205,9 @@ struct gsm_nm_state *new_state; switch (event) { + case NM_EV_FEATURE_NEGOTIATED: + configure_loop(nsvc, &nsvc->mo.nm_state, true); + return; case NM_EV_SET_ATTR_ACK: nsvc->mo.set_attr_ack_received = true; nsvc->mo.set_attr_sent = false; @@ -304,6 +314,7 @@ [NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = X(NM_EV_SW_ACT_REP) | + X(NM_EV_FEATURE_NEGOTIATED) | X(NM_EV_STATE_CHG_REP), .out_state_mask = X(NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY) | @@ -316,6 +327,7 @@ [NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY] = { .in_event_mask = X(NM_EV_STATE_CHG_REP) | + X(NM_EV_FEATURE_NEGOTIATED) | X(NM_EV_SET_ATTR_ACK), .out_state_mask = X(NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED) | @@ -328,6 +340,7 @@ [NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = X(NM_EV_STATE_CHG_REP) | + X(NM_EV_FEATURE_NEGOTIATED) | X(NM_EV_SET_ATTR_ACK), .out_state_mask = X(NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED) | -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c207eee0e331995ae04acec014fbd13d4d16280 Gerrit-Change-Number: 21451 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 Sat Dec 5 22:21:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 22:21:21 +0000 Subject: Change in libosmocore[master]: Use explicit type-casting in hlist_del() for C++ compatibility In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21554 ) Change subject: Use explicit type-casting in hlist_del() for C++ compatibility ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I75b0a5fe097562007c53987d8d41811e9f35798d Gerrit-Change-Number: 21554 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 05 Dec 2020 22: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 Sat Dec 5 22:21:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 5 Dec 2020 22:21:25 +0000 Subject: Change in libosmocore[master]: Use explicit type-casting in hlist_del() for C++ compatibility In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21554 ) Change subject: Use explicit type-casting in hlist_del() for C++ compatibility ...................................................................... Use explicit type-casting in hlist_del() for C++ compatibility /usr/local/include/osmocom/core/linuxlist.h:479:12: error: invalid conversion from ?void*? to ?hlist_node*? [-fpermissive] 479 | n->next = LLIST_POISON1; Fixes: I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Change-Id: I75b0a5fe097562007c53987d8d41811e9f35798d --- M include/osmocom/core/linuxlist.h 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/core/linuxlist.h b/include/osmocom/core/linuxlist.h index 5ccd462..f28f88b 100644 --- a/include/osmocom/core/linuxlist.h +++ b/include/osmocom/core/linuxlist.h @@ -476,8 +476,8 @@ static inline void hlist_del(struct hlist_node *n) { __hlist_del(n); - n->next = LLIST_POISON1; - n->pprev = LLIST_POISON2; + n->next = (struct hlist_node *)LLIST_POISON1; + n->pprev = (struct hlist_node **)LLIST_POISON2; } /*! Delete the specified hlist_node from its list and initialize. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I75b0a5fe097562007c53987d8d41811e9f35798d Gerrit-Change-Number: 21554 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 Dec 5 23:55:55 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 5 Dec 2020 23:55:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects 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/+/21484 to look at the new patch set (#3). Change subject: gprs_ns2: introduce NS dialects ...................................................................... gprs_ns2: introduce NS dialects A NS dialect describes how the NS Entity interacts with different virtual circuits. E.g. ipaccess use reset/block on udp and is a dynamic connection. A single NS Entity can only support one dialect. This can be later used to protect a NS Entity against dynamic NS virtual circuits of a different type. It further allows a bind to support multiple dialects at the same time. Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 --- 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 M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 8 files changed, 68 insertions(+), 52 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/84/21484/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 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 Sat Dec 5 23:55:55 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 5 Dec 2020 23:55:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add member name to bind 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/+/21485 to look at the new patch set (#2). Change subject: gprs_ns2: add member name to bind ...................................................................... gprs_ns2: add member name to bind Every bind will have a unique name. Add a name argument to all bind creating functions and require them to be unique. This is an API break but there wasn't yet a release with NS2. Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e --- 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 M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 8 files changed, 75 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/85/21485/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Gerrit-Change-Number: 21485 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus 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 Sat Dec 5 23:55:55 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 5 Dec 2020 23:55:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework gprs_ns2_fr_connect*() 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/+/21486 to look at the new patch set (#2). Change subject: gprs_ns2: rework gprs_ns2_fr_connect*() ...................................................................... gprs_ns2: rework gprs_ns2_fr_connect*() Add gprs_ns2_fr_connect2() and change gprs_ns2_fr_connect() to be similar to gprs_ns2_ip_connect() and gprs_ns2_connect2(). This is an API break but there wasn't yet a release with NS2. Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_vty.c 3 files changed, 44 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/86/21486/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 Gerrit-Change-Number: 21486 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Dec 6 01:53:49 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 06 Dec 2020 01:53:49 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fcc39c451fbb_1bee2aad75dd45f8537138@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: [ 161s] [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: 16580 B 16 KB 101.20% [ 162s] 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 [ 162s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 162s] /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: warning: changing start of section .stack by 4 bytes [ 162s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 162s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 162s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 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] [ 152.567190] sysrq: Power Off [ 165s] [ 152.572706] reboot: Power down [ 165s] ### VM INTERACTION END ### [ 165s] [ 165s] lamb10 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Dec 6 01:53:22 UTC 2020. [ 165s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 6 01:54:26 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 06 Dec 2020 01:54:26 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fcc39e4c856b_1bee2aad75dd45f85375b5@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: [ 185s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 185s] [COMPILING libboard/qmod/source/card_pres.c] [ 185s] [COMPILING libboard/qmod/source/wwan_led.c] [ 185s] [COMPILING libboard/qmod/source/i2c.c] [ 185s] [COMPILING libboard/qmod/source/board_qmod.c] [ 186s] [COMPILING apps/dfu/main.c] [ 186s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 186s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 186s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 186s] Memory region Used Size Region Size %age Used [ 186s] rom: 16588 B 16 KB 101.25% [ 186s] 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' [ 186s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 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] [ 176.609027] sysrq: Power Off [ 189s] [ 176.613241] reboot: Power down [ 190s] ### VM INTERACTION END ### [ 190s] [ 190s] cloud115 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Dec 6 01:53:52 UTC 2020. [ 190s] -- 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 Dec 6 03:39:41 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 6 Dec 2020 03:39:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21555 ) Change subject: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE ...................................................................... gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE The SNS FSM can go into the SIZE state when all NS-VC are failing. This is the case if the network connection to the SGSN got interrupted. Change-Id: I7e7da9451458505c1c2d73836dd916aee7704fda --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/21555/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 31f8a5f..9091c9a 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1169,7 +1169,8 @@ .in_event_mask = S(GPRS_SNS_EV_ADD) | S(GPRS_SNS_EV_DELETE) | S(GPRS_SNS_EV_CHANGE_WEIGHT), - .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_SIZE), .name = "CONFIGURED", .action = ns2_sns_st_configured, .onenter = ns2_sns_st_configured_onenter, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e7da9451458505c1c2d73836dd916aee7704fda Gerrit-Change-Number: 21555 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 Dec 6 03:39:42 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 6 Dec 2020 03:39:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: dynamic calculate the maximum NS-VCs References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21556 ) Change subject: gprs_ns2_sns: dynamic calculate the maximum NS-VCs ...................................................................... gprs_ns2_sns: dynamic calculate the maximum NS-VCs The previous hard-coded value could be not enough if the user configures too many local binds. Allow at least 8 NS-VCs. In case the user configures too many binds (> 2) increase the maximum NS-VCs to allow the SGSN to have 4 redundant connections. Change-Id: Iae859dc504716fd6f705e72db5fc293b4b3298e7 --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/21556/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 9091c9a..efd77a1 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1320,6 +1320,7 @@ gss->num_ip4_local = count; gss->num_max_ip4_remote = 4; + gss->num_max_nsvcs = gss->num_max_ip4_remote + 4; break; case IPv6: /* IPv6 */ @@ -1358,11 +1359,10 @@ } gss->num_ip6_local = count; gss->num_max_ip6_remote = 4; + gss->num_max_nsvcs = gss->num_max_ip6_remote + 4; break; } - gss->num_max_nsvcs = 8; - return osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_START, NULL); err: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iae859dc504716fd6f705e72db5fc293b4b3298e7 Gerrit-Change-Number: 21556 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 Dec 6 03:40:21 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 6 Dec 2020 03:40:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: dynamic calculate the maximum NS-VCs In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21556 ) Change subject: gprs_ns2_sns: dynamic calculate the maximum NS-VCs ...................................................................... Patch Set 1: Code-Review-1 need to be tested with ttcn3. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iae859dc504716fd6f705e72db5fc293b4b3298e7 Gerrit-Change-Number: 21556 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sun, 06 Dec 2020 03:40:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Dec 6 09:07:38 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 6 Dec 2020 09:07:38 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master?= =?UTF-8?Q?-osmo-ccid-firmware_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,a4=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#404?= In-Reply-To: <438568691.887.1607159259650@jenkins.osmocom.org> References: <438568691.887.1607159259650@jenkins.osmocom.org> Message-ID: <1284940416.964.1607245658802@jenkins.osmocom.org> See Changes: ------------------------------------------ [...truncated 84.91 KB...] checking whether arm-none-eabi-gcc is Clang... no checking whether pthreads work with -pthread... no checking whether pthreads work with -pthreads... no checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... no checking whether pthreads work with -Kthread... no checking whether pthreads work with -pthread... no checking whether pthreads work with -pthreads... no checking whether pthreads work with -mthreads... no checking for the pthreads library -lpthread... no checking whether pthreads work with --thread-safe... no checking whether pthreads work with -mt... no checking for pthread-config... no checking for library containing clock_gettime... no checking for doxygen... /usr/bin/doxygen checking whether SYS_getrandom is declared... no checking if arm-none-eabi-gcc supports -fvisibility=hidden... yes checking for localtime_r... no checking whether struct tm has tm_gmtoff member... no checking whether to workaround TLS bug in old gcc on ARM platforms... -mtls-dialect=gnu2 configure: WARNING: Applying workaround for TLS bug on ARM platform for GCC < 7.3.0 (-mtls-dialect=gnu2). On some toolchain versions, ld may crash. In that case you must build with CFLAGS='-O0' and run ./configure with --disable-detect-tls-gcc-arm-bug checking for TALLOC... yes checking for PCSC... yes checking for LIBGNUTLS... yes checking for LIBMNL... yes checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/site-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/site-packages checking for osmo_verify_transcript_vty.py... yes checking whether to enable VTY/CTRL tests... yes checking whether to enable ARM NEON instructions support... no checking whether to build with code coverage support... no checking whether arm-none-eabi-gcc has __builtin_cpu_supports built-in... no configure: WARNING: Runtime SIMD detection will be disabled CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -mthumb -Os -mlong-calls -g3 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -I /home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM -Wno-error=format -mtls-dialect=gnu2 -DBUILDING_LIBOSMOCORE -Wall" CPPFLAGS="-D__thread='' -DBUILDING_LIBOSMOCORE -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmocore.pc config.status: creating libosmocodec.pc config.status: creating libosmocoding.pc config.status: creating libosmovty.pc config.status: creating libosmogsm.pc config.status: creating libosmogb.pc config.status: creating libosmoctrl.pc config.status: creating libosmosim.pc config.status: creating libosmousb.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/vty/Makefile config.status: creating src/codec/Makefile config.status: creating src/coding/Makefile config.status: creating src/sim/Makefile config.status: creating src/usb/Makefile config.status: creating src/gsm/Makefile config.status: creating src/gb/Makefile config.status: creating src/ctrl/Makefile config.status: creating src/pseudotalloc/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating utils/Makefile config.status: creating Doxyfile.core config.status: creating Doxyfile.gsm config.status: creating Doxyfile.vty config.status: creating Doxyfile.codec config.status: creating Doxyfile.coding config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating contrib/libosmocore.spec config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.4.0.251-77530 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/libosmocore' Making install in include make[2]: Entering directory '/build/deps/libosmocore/include' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'tch_axs_sid_update' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory '/build/deps/libosmocore/include' GEN osmocom/core/bit16gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc32gen.h make[4]: Entering directory '/build/deps/libosmocore/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/install/stow/libosmocore/include' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/core' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/exec.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/hash.h osmocom/core/hashtable.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/log2.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/mnl.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h '/build/install/stow/libosmocore/include/osmocom/core' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/cbsp.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/bsslap.h osmocom/gsm/bssmap_le.h osmocom/gsm/gad.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm0808_lcs.h osmocom/gsm/gsm29205.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm23236.h osmocom/gsm/gsm29118.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_arfcn_range_encode.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm48_rest_octets.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/gsup_sms.h osmocom/gsm/i460_mux.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h '/build/install/stow/libosmocore/include/osmocom/gsm' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/coding' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h osmocom/coding/gsm0503_amr_dtx.h '/build/install/stow/libosmocore/include/osmocom/coding' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/core' /usr/bin/install -c -m 644 osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h osmocom/core/signal.h osmocom/core/socket.h osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/tdef.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/sockaddr_str.h osmocom/core/use_count.h '/build/install/stow/libosmocore/include/osmocom/core' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm/protocol' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_23_032.h osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_23_041.h osmocom/gsm/protocol/gsm_29_118.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/gsm_48_049.h osmocom/gsm/protocol/gsm_48_071.h osmocom/gsm/protocol/gsm_49_031.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h '/build/install/stow/libosmocore/include/osmocom/gsm/protocol' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/sim' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h '/build/install/stow/libosmocore/include/osmocom/sim' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gprs' /usr/bin/install -c -m 644 osmocom/gprs/frame_relay.h osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_ns2.h osmocom/gprs/gprs_rlc.h '/build/install/stow/libosmocore/include/osmocom/gprs' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/crypt' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h '/build/install/stow/libosmocore/include/osmocom/crypt' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gsm' /usr/bin/install -c -m 644 osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/oap_client.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h '/build/install/stow/libosmocore/include/osmocom/gsm' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/ctrl' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h '/build/install/stow/libosmocore/include/osmocom/ctrl' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/gprs/protocol' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h '/build/install/stow/libosmocore/include/osmocom/gprs/protocol' /bin/mkdir -p '/build/install/stow/libosmocore/include/osmocom/codec' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h '/build/install/stow/libosmocore/include/osmocom/codec' make[4]: Leaving directory '/build/deps/libosmocore/include' make[3]: Leaving directory '/build/deps/libosmocore/include' make[2]: Leaving directory '/build/deps/libosmocore/include' Making install in src make[2]: Entering directory '/build/deps/libosmocore/src' GEN crc8gen.c GEN crc16gen.c GEN crc32gen.c GEN crc64gen.c make install-am make[3]: Entering directory '/build/deps/libosmocore/src' CC context.lo CC timer.lo CC timer_gettimeofday.lo CC timer_clockgettime.lo CC signal.lo CC select.lo CC msgb.lo CC bits.lo CC bitvec.lo CC bitcomp.lo CC counter.lo CC fsm.lo CC write_queue.lo CC utils.lo CC socket.lo CC logging.lo CC logging_syslog.lo CC logging_gsmtap.lo CC rate_ctr.lo CC gsmtap_util.lo logging.c:119:9: note: #pragma message: logging multithread support disabled in embedded build #pragma message ("logging multithread support disabled in embedded build") ^ CC crc16.lo CC panic.lo CC backtrace.lo CC conv.lo CC application.lo CC rbtree.lo CC strrb.lo CC loggingrb.lo CC crc8gen.lo CC crc16gen.lo CC crc32gen.lo CC crc64gen.lo CC macaddr.lo CC stat_item.lo CC stats.lo CC stats_statsd.lo CC prim.lo CC conv_acc.lo CC conv_acc_generic.lo CC sercomm.lo CC prbs.lo CC isdnhdlc.lo CC tdef.lo CC sockaddr_str.lo CC use_count.lo CC exec.lo CC mnl.lo In file included from mnl.c:34:0: ../include/osmocom/core/mnl.h:7:27: fatal error: libmnl/libmnl.h: No such file or directory compilation terminated. make[3]: *** [mnl.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... Makefile:624: recipe for target 'mnl.lo' failed make[3]: Leaving directory '/build/deps/libosmocore/src' make[2]: *** [install] Error 2 Makefile:728: recipe for target 'install' failed make[2]: Leaving directory '/build/deps/libosmocore/src' make[1]: *** [install-recursive] Error 1 Makefile:705: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmocore' Makefile:1004: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sun Dec 6 09:31:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 09:31:40 +0000 Subject: Change in osmo-ccid-firmware[master]: jenkins.sh: Add --disable-libmnl to libosmocore References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/21557 ) Change subject: jenkins.sh: Add --disable-libmnl to libosmocore ...................................................................... jenkins.sh: Add --disable-libmnl to libosmocore Libosmocore has a new dependency that doesn't make sense in a 'bare iron' embedded environment, so let's disable it. Change-Id: Icfff52601af80d73e61f5c5c3ed89b2d7185ed81 --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/57/21557/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 35625f1..8810730 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -43,6 +43,7 @@ ./configure --enable-static --prefix="$inst/stow/libosmocore" --host=arm-none-eabi \ --enable-embedded --disable-doxygen --disable-shared --disable-pseudotalloc \ --disable-libsctp --disable-libusb --disable-gb --enable-external-tests \ + --disable-libmnl \ CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -mthumb -Os -mlong-calls -g3 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -I /home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM -Wno-error=format" \ CPPFLAGS="-D__thread=''" make $PARALLEL_MAKE install -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/21557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: Icfff52601af80d73e61f5c5c3ed89b2d7185ed81 Gerrit-Change-Number: 21557 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 Dec 6 09:45:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 09:45:39 +0000 Subject: Change in osmo-ccid-firmware[master]: jenkins.sh: Add --disable-libmnl to libosmocore In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/21557 ) Change subject: jenkins.sh: Add --disable-libmnl to libosmocore ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/21557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: Icfff52601af80d73e61f5c5c3ed89b2d7185ed81 Gerrit-Change-Number: 21557 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 06 Dec 2020 09: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 Sun Dec 6 09:45:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 09:45:42 +0000 Subject: Change in osmo-ccid-firmware[master]: jenkins.sh: Add --disable-libmnl to libosmocore In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/21557 ) Change subject: jenkins.sh: Add --disable-libmnl to libosmocore ...................................................................... jenkins.sh: Add --disable-libmnl to libosmocore Libosmocore has a new dependency that doesn't make sense in a 'bare iron' embedded environment, so let's disable it. Change-Id: Icfff52601af80d73e61f5c5c3ed89b2d7185ed81 --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 35625f1..8810730 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -43,6 +43,7 @@ ./configure --enable-static --prefix="$inst/stow/libosmocore" --host=arm-none-eabi \ --enable-embedded --disable-doxygen --disable-shared --disable-pseudotalloc \ --disable-libsctp --disable-libusb --disable-gb --enable-external-tests \ + --disable-libmnl \ CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -mthumb -Os -mlong-calls -g3 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -I /home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM -Wno-error=format" \ CPPFLAGS="-D__thread=''" make $PARALLEL_MAKE install -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/21557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: Icfff52601af80d73e61f5c5c3ed89b2d7185ed81 Gerrit-Change-Number: 21557 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 jenkins at lists.osmocom.org Sun Dec 6 09:47:00 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 6 Dec 2020 09:47:00 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:?= =?UTF-8?Q?_master-osmo-ccid-firmware_=C2=BB_a1=3Dd?= =?UTF-8?Q?efault,a2=3Ddefault,a3=3Ddefault,a4=3Dd?= =?UTF-8?Q?efault,osmocom-master-debian9_#405?= In-Reply-To: <1284940416.964.1607245658802@jenkins.osmocom.org> References: <1284940416.964.1607245658802@jenkins.osmocom.org> Message-ID: <192079017.973.1607248020577@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sun Dec 6 12:09:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 12:09:39 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols 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/+/21534 to look at the new patch set (#7). Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols This extends our existing TLV parser with the ability to * validate that mandatory IEs of a given message are present * validate that all present IEs are of required minimum length Introducing this generic layer will help us to reduce open-coded imperative verification across virtually all the protocols we implement, as well as add validation to those protocols where we don't properly perform related input validation yet. Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 --- M include/osmocom/gsm/tlv.h M src/gsm/libosmogsm.map M src/gsm/tlv_parser.c 3 files changed, 157 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/21534/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 7 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 Sun Dec 6 12:09:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 12:09:39 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP 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/+/21544 to look at the new patch set (#6). Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... bssgp: Add osmo_tlv_prot_def for BSSGP Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 --- M include/osmocom/gprs/gprs_bssgp.h M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 3 files changed, 317 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/21544/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 Gerrit-PatchSet: 6 Gerrit-Owner: laforge 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 Sun Dec 6 12:09:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 12:09:40 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Add some PDU definitions still missing References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21558 ) Change subject: gsm_08_18.h: Add some PDU definitions still missing ...................................................................... gsm_08_18.h: Add some PDU definitions still missing In I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 I seem to have failed to realize that 3GPP TS 48.018 v15.0.0.0 Table 11.3.26 continues on yet another page. Let's add those missing PDU types definitions. Change-Id: I9173c35240ff78048b2b76a1155d90467ef16b2d --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 19 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/21558/1 diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 4c04f6b..679a08e 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -77,6 +77,25 @@ BSSGP_PDUT_PS_HO_COMPLETE = 0x91, BSSGP_PDUT_PS_HO_CANCEL = 0x92, BSSGP_PDUT_PS_HO_COMPLETE_ACK = 0x93, + /* PDUs between LCS SAPs */ + BSSGP_PDUT_PERFORM_LOC_REQ = 0x60, + BSSGP_PDUT_PERFORM_LOC_RESP = 0x61, + BSSGP_PDUT_PERFORM_LOC_ABORT = 0x62, + BSSGP_PDUT_POSITION_COMMAND = 0x63, + BSSGP_PDUT_POSITION_RESPONSE = 0x64, + /* PDUs between RIM SAPs */ + BSSGP_PDUT_RAN_INFO = 0x70, + BSSGP_PDUT_RAN_INFO_REQ = 0x71, + BSSGP_PDUT_RAN_INFO_ACK = 0x72, + BSSGP_PDUT_RAN_INFO_ERROR = 0x73, + BSSGP_PDUT_RAN_INFO_APP_ERROR = 0x74, + /* PDUs between MBMS SAPs */ + BSSGP_PDUT_MBMS_START_REQ = 0x80, + BSSGP_PDUT_MBMS_START_RESP = 0x81, + BSSGP_PDUT_MBMS_STOP_REQ = 0x82, + BSSGP_PDUT_MBMS_STOP_RESP = 0x83, + BSSGP_PDUT_MBMS_UPDATE_REQ = 0x84, + BSSGP_PDUT_MBMS_UPDATE_RESP = 0x85, }; /*! BSSGP User-Data header (Section 10.2.1 and 10.2.2) */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9173c35240ff78048b2b76a1155d90467ef16b2d Gerrit-Change-Number: 21558 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 Dec 6 12:10:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 12:10:09 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 7: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21534/5/include/osmocom/gsm/tlv.h File include/osmocom/gsm/tlv.h: https://gerrit.osmocom.org/c/libosmocore/+/21534/5/include/osmocom/gsm/tlv.h at 626 PS5, Line 626: * > missing '*!' Done https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c at 661 PS5, Line 661: in > Nevermind, I see that it's actually 'const'. Done https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c at 664 PS5, Line 664: */ > missing \returns Done https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c at 713 PS5, Line 713: */ > missing \returns Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 7 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 06 Dec 2020 12:10:09 +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 Dec 6 12:10:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 12:10:44 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Add some PDU definitions still missing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21558 ) Change subject: gsm_08_18.h: Add some PDU definitions still missing ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9173c35240ff78048b2b76a1155d90467ef16b2d Gerrit-Change-Number: 21558 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sun, 06 Dec 2020 12:10: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 Dec 6 13:14:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 13:14:49 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Add some PDU definitions still missing In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21558 ) Change subject: gsm_08_18.h: Add some PDU definitions still missing ...................................................................... gsm_08_18.h: Add some PDU definitions still missing In I7da8b25c9a89a7e3ae6c1680ba838e136d7d5293 I seem to have failed to realize that 3GPP TS 48.018 v15.0.0.0 Table 11.3.26 continues on yet another page. Let's add those missing PDU types definitions. Change-Id: I9173c35240ff78048b2b76a1155d90467ef16b2d --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 19 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 4c04f6b..679a08e 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -77,6 +77,25 @@ BSSGP_PDUT_PS_HO_COMPLETE = 0x91, BSSGP_PDUT_PS_HO_CANCEL = 0x92, BSSGP_PDUT_PS_HO_COMPLETE_ACK = 0x93, + /* PDUs between LCS SAPs */ + BSSGP_PDUT_PERFORM_LOC_REQ = 0x60, + BSSGP_PDUT_PERFORM_LOC_RESP = 0x61, + BSSGP_PDUT_PERFORM_LOC_ABORT = 0x62, + BSSGP_PDUT_POSITION_COMMAND = 0x63, + BSSGP_PDUT_POSITION_RESPONSE = 0x64, + /* PDUs between RIM SAPs */ + BSSGP_PDUT_RAN_INFO = 0x70, + BSSGP_PDUT_RAN_INFO_REQ = 0x71, + BSSGP_PDUT_RAN_INFO_ACK = 0x72, + BSSGP_PDUT_RAN_INFO_ERROR = 0x73, + BSSGP_PDUT_RAN_INFO_APP_ERROR = 0x74, + /* PDUs between MBMS SAPs */ + BSSGP_PDUT_MBMS_START_REQ = 0x80, + BSSGP_PDUT_MBMS_START_RESP = 0x81, + BSSGP_PDUT_MBMS_STOP_REQ = 0x82, + BSSGP_PDUT_MBMS_STOP_RESP = 0x83, + BSSGP_PDUT_MBMS_UPDATE_REQ = 0x84, + BSSGP_PDUT_MBMS_UPDATE_RESP = 0x85, }; /*! BSSGP User-Data header (Section 10.2.1 and 10.2.2) */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9173c35240ff78048b2b76a1155d90467ef16b2d Gerrit-Change-Number: 21558 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 Dec 6 13:15:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 13:15:52 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: cosmetic: Use function rather than open-coding is_sgsn References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21559 ) Change subject: gb_proxy: cosmetic: Use function rather than open-coding is_sgsn ...................................................................... gb_proxy: cosmetic: Use function rather than open-coding is_sgsn Change-Id: Id41d74ebd41e5084377a986f4a1acd53cae12bc1 --- M src/gbproxy/gb_proxy.c 1 file changed, 8 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/59/21559/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 74f799d..98fa928 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -83,6 +83,12 @@ static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei); + +static int gbproxy_is_sgsn_nsei(struct gbproxy_config *cfg, uint16_t nsei) +{ + return nsei == cfg->nsip_sgsn_nsei; +} + static int check_bvc_nsei(struct gbproxy_bvc *bvc, uint16_t nsei) { OSMO_ASSERT(bvc); @@ -726,11 +732,6 @@ return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, orig_msg); } -static int gbproxy_is_sgsn_nsei(struct gbproxy_config *cfg, uint16_t nsei) -{ - return nsei == cfg->nsip_sgsn_nsei; -} - int gbprox_bssgp_send_cb(void *ctx, struct msgb *msg) { int rc; @@ -800,7 +801,7 @@ case NS_AFF_CAUSE_RECOVERY: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); - if (nsp->nsei == cfg->nsip_sgsn_nsei) { + if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { /* look-up or create the BTS context for this BVC */ struct bssgp_bvc_ctx *bctx = btsctx_by_bvci_nsei(nsp->bvci, nsp->nsei); if (!bctx) @@ -810,7 +811,7 @@ } break; case NS_AFF_CAUSE_FAILURE: - if (nsp->nsei == cfg->nsip_sgsn_nsei) { + if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { /* sgsn */ /* TODO: BSVC: block all PtP towards bss */ rate_ctr_inc(&cfg->ctrg-> -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id41d74ebd41e5084377a986f4a1acd53cae12bc1 Gerrit-Change-Number: 21559 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 Dec 6 13:15:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 13:15:52 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Introduce more validation / constraint checks References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21560 ) Change subject: gb_proxy: Introduce more validation / constraint checks ...................................................................... gb_proxy: Introduce more validation / constraint checks * ensure the BSSGP PDU header length before reading pdu_type field * ensure we never process uplink PDUs in downlink and vice-versa * ensure we never proceses PTP PDUs on SIGNALING BVCI and vice-versa Change-Id: I6e40aed0283f1a0860ab273606605f7fb28717cf Depends: libosmocore.git I7e4226463f3c935134b5c2c737696fbfd1dd5815 --- M src/gbproxy/gb_proxy.c 1 file changed, 63 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/60/21560/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 98fa928..a30f5ad 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -249,8 +249,26 @@ struct msgb *msg, uint16_t nsei, uint16_t ns_bvci) { + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); struct gbproxy_bvc *bvc; + if (ns_bvci == 0 && ns_bvci == 1) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not PTP\n", nsei, ns_bvci); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_PTP)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in PTP BVC\n", + nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_UL)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in uplink direction\n", + nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); if (!bvc) { LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find bvc " @@ -272,12 +290,27 @@ struct msgb *msg, uint16_t nsei, uint16_t ns_bvci) { + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); struct gbproxy_bvc *bvc; + if (ns_bvci == 0 && ns_bvci == 1) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not PTP\n", nsei, ns_bvci); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_PTP)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in PTP BVC\n", + nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_DL)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in downlink direction\n", + nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); - - /* Send status messages before patching */ - if (!bvc) { LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find bvc for " "for message from NSE(%05u/SGSN)\n", @@ -393,18 +426,20 @@ int rc; if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) BVCI=%05u is not signalling\n", - nsei, ns_bvci); - return -EINVAL; + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not signalling\n", nsei, ns_bvci); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - /* we actually should never see those two for BVCI == 0, but double-check - * just to make sure */ - if (pdu_type == BSSGP_PDUT_UL_UNITDATA || - pdu_type == BSSGP_PDUT_DL_UNITDATA) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) UNITDATA not allowed in " - "signalling\n", nsei); - return -EINVAL; + if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) %s not allowed in signalling BVC\n", + nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_UL)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) %s not allowed in uplink direction\n", + nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } bssgp_tlv_parse(&tp, bgph->data, data_len); @@ -596,18 +631,19 @@ int i; if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BVCI=%05u is not " - "signalling\n", nsei, ns_bvci); - /* FIXME: Send proper error message */ - return -EINVAL; + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BVCI=%05u is not signalling\n", nsei, ns_bvci); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } - /* we actually should never see those two for BVCI == 0, but double-check - * just to make sure */ - if (pdu_type == BSSGP_PDUT_UL_UNITDATA || - pdu_type == BSSGP_PDUT_DL_UNITDATA) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) UNITDATA not allowed in " - "signalling\n", nsei); + if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) %s not allowed in signalling BVC\n", + nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + } + + if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_DL)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) %s not allowed in downlink direction\n", + nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } @@ -758,6 +794,10 @@ int remote_end_is_sgsn = gbproxy_is_sgsn_nsei(cfg, nsei); + /* ensure minimum length to decode PCU type */ + if (msgb_bssgp_len(msg) < sizeof(struct bssgp_normal_hdr)) + return bssgp_tx_status(BSSGP_CAUSE_SEM_INCORR_PDU, NULL, msg); + /* Only BVCI=0 messages need special treatment */ if (ns_bvci == 0 || ns_bvci == 1) { if (remote_end_is_sgsn) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6e40aed0283f1a0860ab273606605f7fb28717cf Gerrit-Change-Number: 21560 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 Dec 6 13:15:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 13:15:53 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use gbprox_relay2peer() whenever possible References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21561 ) Change subject: gbproxy: use gbprox_relay2peer() whenever possible ...................................................................... gbproxy: use gbprox_relay2peer() whenever possible gbprox_relay2peer() is a small wrapper around gbprox_relay2nse(), but as it manages the transmit error counter, we should use it whenever possible. Change-Id: I85ab49ca0a25dd7c54b88c4fdc8838843e6d2209 --- M src/gbproxy/gb_proxy.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/61/21561/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index a30f5ad..a90030e 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -519,7 +519,7 @@ hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); - gbprox_relay2nse(msg, nse, ns_bvci); + gbprox_relay2peer(msg, bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; @@ -533,7 +533,7 @@ hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); - gbprox_relay2nse(msg, nse, ns_bvci); + gbprox_relay2peer(msg, bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; @@ -545,7 +545,7 @@ hash_for_each(cfg->bss_nses, i, nse, list) { hash_for_each(nse->bvcs, j, bvc, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); - gbprox_relay2nse(msg, nse, ns_bvci); + gbprox_relay2peer(msg, bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I85ab49ca0a25dd7c54b88c4fdc8838843e6d2209 Gerrit-Change-Number: 21561 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 Dec 6 13:41:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 13:41:06 +0000 Subject: Change in libosmocore[master]: hash/log2: Add generic implementations of fls() and fls64() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21562 ) Change subject: hash/log2: Add generic implementations of fls() and fls64() ...................................................................... hash/log2: Add generic implementations of fls() and fls64() When importing the hashtable code in I8ef73a62fe9846ce45058eb21cf999dd3eed5741 I didn't import actual implementations of the fls() and fls64() implementations, as at least gcc-10 was smart enough to detect we only use it on constant types and hence the computation can happen at build time via const_ilog2() However, in our jenkins build verification' this doesn't appear to happen, as we get below errors: /build/deps/install/stow/libosmocore/include/osmocom/core/log2.h: In function ?__ilog2_u32?: /build/deps/install/stow/libosmocore/include/osmocom/core/log2.h:20:9: error: implicit declaration of function ?fls? [-Werror=implicit-function-declaration] return fls(n) - 1; ^~~ /build/deps/install/stow/libosmocore/include/osmocom/core/log2.h: In function ?__ilog2_u64?: /build/deps/install/stow/libosmocore/include/osmocom/core/log2.h:28:9: error: implicit declaration of function ?fls64? [-Werror=implicit-function-declaration] return fls64(n) - 1; ^~~~~ Let's provide some generic implementations for this case. If needed one could also introduce architecture-specific assembly implementations like in the Linux kernel, but so far we managed to keep libosmocore free of any assembly tweaks. Change-Id: Ifa4898eb66c8d949618edd47961b7a0330ed35b5 --- M include/osmocom/core/log2.h 1 file changed, 59 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21562/1 diff --git a/include/osmocom/core/log2.h b/include/osmocom/core/log2.h index 06b20f8..dfe9d37 100644 --- a/include/osmocom/core/log2.h +++ b/include/osmocom/core/log2.h @@ -6,6 +6,65 @@ */ #pragma once +#define __always_inline inline __attribute__((always_inline)) + +/* from linux/asm-generic/bitops/{fls,fls64}.h - could later be enhanced + * with architecture specific optimized versions */ + +/** + * fls - find last (most-significant) bit set + * @x: the word to search + * + * This is defined the same way as ffs. + * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32. + */ +static __always_inline int fls(unsigned int x) +{ + int r = 32; + + if (!x) + return 0; + if (!(x & 0xffff0000u)) { + x <<= 16; + r -= 16; + } + if (!(x & 0xff000000u)) { + x <<= 8; + r -= 8; + } + if (!(x & 0xf0000000u)) { + x <<= 4; + r -= 4; + } + if (!(x & 0xc0000000u)) { + x <<= 2; + r -= 2; + } + if (!(x & 0x80000000u)) { + x <<= 1; + r -= 1; + } + return r; +} + +/** + * fls64 - find last set bit in a 64-bit word + * @x: the word to search + * + * This is defined in a similar way as the libc and compiler builtin + * ffsll, but returns the position of the most significant set bit. + * + * fls64(value) returns 0 if value is 0 or the position of the last + * set bit if value is nonzero. The last (most significant) bit is + * at position 64. + */ +static __always_inline int fls64(__u64 x) +{ + __u32 h = x >> 32; + if (h) + return fls(h) + 32; + return fls(x); +} /* * non-constant log of base 2 calculators -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifa4898eb66c8d949618edd47961b7a0330ed35b5 Gerrit-Change-Number: 21562 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 Dec 6 13:54:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 13:54:50 +0000 Subject: Change in libosmocore[master]: hash/log2: Add generic implementations of fls() and fls64() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21562 ) Change subject: hash/log2: Add generic implementations of fls() and fls64() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifa4898eb66c8d949618edd47961b7a0330ed35b5 Gerrit-Change-Number: 21562 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 06 Dec 2020 13:54: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 Sun Dec 6 13:54:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 13:54:55 +0000 Subject: Change in libosmocore[master]: hash/log2: Add generic implementations of fls() and fls64() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21562 ) Change subject: hash/log2: Add generic implementations of fls() and fls64() ...................................................................... hash/log2: Add generic implementations of fls() and fls64() When importing the hashtable code in I8ef73a62fe9846ce45058eb21cf999dd3eed5741 I didn't import actual implementations of the fls() and fls64() implementations, as at least gcc-10 was smart enough to detect we only use it on constant types and hence the computation can happen at build time via const_ilog2() However, in our jenkins build verification' this doesn't appear to happen, as we get below errors: /build/deps/install/stow/libosmocore/include/osmocom/core/log2.h: In function ?__ilog2_u32?: /build/deps/install/stow/libosmocore/include/osmocom/core/log2.h:20:9: error: implicit declaration of function ?fls? [-Werror=implicit-function-declaration] return fls(n) - 1; ^~~ /build/deps/install/stow/libosmocore/include/osmocom/core/log2.h: In function ?__ilog2_u64?: /build/deps/install/stow/libosmocore/include/osmocom/core/log2.h:28:9: error: implicit declaration of function ?fls64? [-Werror=implicit-function-declaration] return fls64(n) - 1; ^~~~~ Let's provide some generic implementations for this case. If needed one could also introduce architecture-specific assembly implementations like in the Linux kernel, but so far we managed to keep libosmocore free of any assembly tweaks. Change-Id: Ifa4898eb66c8d949618edd47961b7a0330ed35b5 --- M include/osmocom/core/log2.h 1 file changed, 59 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/core/log2.h b/include/osmocom/core/log2.h index 06b20f8..dfe9d37 100644 --- a/include/osmocom/core/log2.h +++ b/include/osmocom/core/log2.h @@ -6,6 +6,65 @@ */ #pragma once +#define __always_inline inline __attribute__((always_inline)) + +/* from linux/asm-generic/bitops/{fls,fls64}.h - could later be enhanced + * with architecture specific optimized versions */ + +/** + * fls - find last (most-significant) bit set + * @x: the word to search + * + * This is defined the same way as ffs. + * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32. + */ +static __always_inline int fls(unsigned int x) +{ + int r = 32; + + if (!x) + return 0; + if (!(x & 0xffff0000u)) { + x <<= 16; + r -= 16; + } + if (!(x & 0xff000000u)) { + x <<= 8; + r -= 8; + } + if (!(x & 0xf0000000u)) { + x <<= 4; + r -= 4; + } + if (!(x & 0xc0000000u)) { + x <<= 2; + r -= 2; + } + if (!(x & 0x80000000u)) { + x <<= 1; + r -= 1; + } + return r; +} + +/** + * fls64 - find last set bit in a 64-bit word + * @x: the word to search + * + * This is defined in a similar way as the libc and compiler builtin + * ffsll, but returns the position of the most significant set bit. + * + * fls64(value) returns 0 if value is 0 or the position of the last + * set bit if value is nonzero. The last (most significant) bit is + * at position 64. + */ +static __always_inline int fls64(__u64 x) +{ + __u32 h = x >> 32; + if (h) + return fls(h) + 32; + return fls(x); +} /* * non-constant log of base 2 calculators -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifa4898eb66c8d949618edd47961b7a0330ed35b5 Gerrit-Change-Number: 21562 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 Dec 6 14:13:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 14:13:41 +0000 Subject: Change in libosmocore[master]: log2.h: Use uintXX_t instead of kernel specific types References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21563 ) Change subject: log2.h: Use uintXX_t instead of kernel specific types ...................................................................... log2.h: Use uintXX_t instead of kernel specific types Change-Id: Ieb872551bdbe514f2c77f9aeb2b9ee42f6573909 --- M include/osmocom/core/log2.h 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/21563/1 diff --git a/include/osmocom/core/log2.h b/include/osmocom/core/log2.h index dfe9d37..adbec5b 100644 --- a/include/osmocom/core/log2.h +++ b/include/osmocom/core/log2.h @@ -58,9 +58,9 @@ * set bit if value is nonzero. The last (most significant) bit is * at position 64. */ -static __always_inline int fls64(__u64 x) +static __always_inline int fls64(uint64_t x) { - __u32 h = x >> 32; + uint32_t h = x >> 32; if (h) return fls(h) + 32; return fls(x); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ieb872551bdbe514f2c77f9aeb2b9ee42f6573909 Gerrit-Change-Number: 21563 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 Dec 6 14:14:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 14:14:46 +0000 Subject: Change in libosmocore[master]: log2.h: Use uintXX_t instead of kernel specific types In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/21563 ) Change subject: log2.h: Use uintXX_t instead of kernel specific types ...................................................................... log2.h: Use uintXX_t instead of kernel specific types Change-Id: Ieb872551bdbe514f2c77f9aeb2b9ee42f6573909 --- M include/osmocom/core/log2.h 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/21563/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ieb872551bdbe514f2c77f9aeb2b9ee42f6573909 Gerrit-Change-Number: 21563 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 6 14:15:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 14:15:30 +0000 Subject: Change in libosmocore[master]: log2.h: Use uintXX_t instead of kernel specific types In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21563 ) Change subject: log2.h: Use uintXX_t instead of kernel specific types ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ieb872551bdbe514f2c77f9aeb2b9ee42f6573909 Gerrit-Change-Number: 21563 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sun, 06 Dec 2020 14: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 Sun Dec 6 14:15:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 6 Dec 2020 14:15:32 +0000 Subject: Change in libosmocore[master]: log2.h: Use uintXX_t instead of kernel specific types In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21563 ) Change subject: log2.h: Use uintXX_t instead of kernel specific types ...................................................................... log2.h: Use uintXX_t instead of kernel specific types Change-Id: Ieb872551bdbe514f2c77f9aeb2b9ee42f6573909 --- M include/osmocom/core/log2.h 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/include/osmocom/core/log2.h b/include/osmocom/core/log2.h index dfe9d37..035ce86 100644 --- a/include/osmocom/core/log2.h +++ b/include/osmocom/core/log2.h @@ -6,6 +6,7 @@ */ #pragma once +#include #define __always_inline inline __attribute__((always_inline)) /* from linux/asm-generic/bitops/{fls,fls64}.h - could later be enhanced @@ -58,9 +59,9 @@ * set bit if value is nonzero. The last (most significant) bit is * at position 64. */ -static __always_inline int fls64(__u64 x) +static __always_inline int fls64(uint64_t x) { - __u32 h = x >> 32; + uint32_t h = x >> 32; if (h) return fls(h) + 32; return fls(x); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ieb872551bdbe514f2c77f9aeb2b9ee42f6573909 Gerrit-Change-Number: 21563 Gerrit-PatchSet: 2 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 Sun Dec 6 14:53:38 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 14:53:38 +0000 Subject: Change in osmo-gsm-tester[master]: wait_no_raise(): set default args In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21508 ) Change subject: wait_no_raise(): set default args ...................................................................... Patch Set 2: > Patch Set 2: > > I don't like this really much. I would favour only using the wait() method and handling the exception in the test. Let's keep the amount of APIs we need to maintain in tests as small as possible please. I looked and can in fact just use wait(). But actually it was *you* who added wait_no_raise to the testenv explicitly as test API in 927344b4. Admittedly three years ago. I guess you should remove that then (or apply this patch so that wait_no_raise is sanely usable) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21508 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: I225a175b25c5c148ef5e23d2184f5d1aa2f4188a Gerrit-Change-Number: 21508 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 06 Dec 2020 14:53: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 Sun Dec 6 15:16:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 15:16:05 +0000 Subject: Change in osmo-gsm-tester[master]: configure fixed ARFCN per bts In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 ) Change subject: configure fixed ARFCN per bts ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/src/osmo_gsm_tester/core/schema.py File src/osmo_gsm_tester/core/schema.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/src/osmo_gsm_tester/core/schema.py at 381 PS2, Line 381: 'ip_address[].addr': IPV4, > this is going to dissapear too at some point once we move osmocom objects to the newly run_nodes :) i think we still need to assign varying IP addresses to CN components depending on how many of them are started...?? https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/sysmocom/resources.conf.prod File sysmocom/resources.conf.prod: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/sysmocom/resources.conf.prod at 37 PS2, Line 37: - arfcn: 870 > Be careful here, because when used with multi_arfcn, 870 + 2 more ARFCN (with separation of 4 on eac [?] erm i don't follow ... is osmo-trx using those ARFCNs without them appearing in the config? Then let's space these configured arfcns some more, is that what you're saying? interestingly the two that would then collide iiuc would be b200 (870 and multi_arfcn) and umtrx (872), but exactly those two running together were the most reliable in passing handover tests... -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 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: I0a6c60544226f4261f9106013478d6a27fc39f38 Gerrit-Change-Number: 21511 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 06 Dec 2020 15:16: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 Sun Dec 6 22:17:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:17:10 +0000 Subject: Change in osmo-gsm-tester[master]: add test.report_fragment() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 ) Change subject: add test.report_fragment() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/2/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py File selftest/suite_test/suitedirA/test_suite/test_report_fragment.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/2/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py at 11 PS2, Line 11: raise Exception('failure in the third fragment') > Please see sysmocom/suites/4g/ping.py, last line "test.set_report_stdout(output)". [?] test.set_report_stdout() is replacing the contents of a test report item. This patch is instead *adding new report items*. The point is that I want to have a good indicator of which part of a handover test failed, and see in the Test Results Analyzer at which time which parts started working. Before this, I basically see a wall of red, and every time I want to find out whether bts1 failed to start or maybe the second handover failed, I need to click through logs and accumulate data manually. This patch gives me the information i need instantly across this and past builds. Take a look at https://jenkins.osmocom.org/jenkins/job/osmo-gsm-tester_run-prod_handover/test_results_analyzer/ hit 'expand all': each handover.py run has more detailed reports on partial passes, immediately showing what general area the failure is related to. When you click on one of those sub-items, you get the stderr log of *only that fragment* shown in jenkins immediately. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 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: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 Gerrit-Change-Number: 21516 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 06 Dec 2020 22:17: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 Sun Dec 6 22:17:31 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:17:31 +0000 Subject: Change in osmo-gsm-tester[master]: add handover_2G suite, with handover.py test In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 ) Change subject: add handover_2G suite, with handover.py test ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/handover-suites.conf File sysmocom/handover-suites.conf: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/handover-suites.conf at 1 PS2, Line 1: - handover_2G:nanobts+bts1-oc2g > Why not adding it to the defaults-suites. [?] happening in another commit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py File sysmocom/suites/handover_2G/handover.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py at 91 PS2, Line 91: with bsc.ctrl() as bsc_ctrl: > so basically you keep the object until the end of the test. [?] the entire point of 'with' is that the CTRL socket is also closed again when the test is done, whatever the reason. Otherwise we may end up leaking open sockets en masse. What other way would you suggest? https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py at 118 PS2, Line 118: wait_no_raise(counters.changed, timeout=20) > try: wait() except: pass [?] i think at first i just wanted some supplementary info of the counters and not fail on them if they didn't change, but wait() is sufficient indeed. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 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: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 Gerrit-Change-Number: 21523 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 06 Dec 2020 22:17:31 +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 Dec 6 22:17:36 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:17:36 +0000 Subject: Change in osmo-gsm-tester[master]: process: add get_output_mark() and grep_output() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 ) Change subject: process: add get_output_mark() and grep_output() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512/2/src/osmo_gsm_tester/core/process.py File src/osmo_gsm_tester/core/process.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512/2/src/osmo_gsm_tester/core/process.py at 388 PS2, Line 388: def get_stdout_mark(self): > Using this with get_stdout looks like a source of all Earth problem. [?] i don't see any race, really. it's not like the stdout is being "piped away", this is process.py returning all of the stdout recorded so far, and it is constantly growing. The returned mark is just an integer that remains valid until the process object is discarded, no matter how many marks are requested. Am I missing something? But i don't actually use the get_stdout* and get_stderr* variants, i end up using only get_output_mark(which='stderr') and grep_output(which='stderr') in my code. So I see unused API creep. I never heard of "source of all Earth"? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 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: Ib6569f7486e9d961bd79a5f24232e58d053667a1 Gerrit-Change-Number: 21512 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 06 Dec 2020 22:17:36 +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 Dec 6 22:17:40 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:17:40 +0000 Subject: Change in osmo-gsm-tester[master]: log reserved resources In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 ) Change subject: log reserved resources ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/2/selftest/suite_test/suite_test.ok File selftest/suite_test/suite_test.ok: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/2/selftest/suite_test/suite_test.ok at 148 PS2, Line 148: tst test_suite: RESERVED RESOURCES for test_suite: > So what's the point? you already see the same output above ^ [?] Looks like we can indeed drop the below DBG one, but these few lines on the normal log are very useful: I added this because looking at a running non-dbg log output (I think in jenkins console) it was completely invisible which cells were being picked in a test run, and I found that intolerable. Which cell a test is actually running on is the most fundamental thing I want to know about a test. I look for this info very frequently and now can find it very easily. I added the full dicts on DBG without thinking about it, but the part i actually need is the brief part in the non-dbg log. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/2/selftest/suite_test/suite_test.ok at 158 PS2, Line 158: tst test_suite: DBG: reserved resources for test_suite: we can drop this DBG one. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 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: Ic23556eafee654c93d13c5ef405028da09bd51d7 Gerrit-Change-Number: 21510 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 06 Dec 2020 22:17:40 +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 Dec 6 22:17:45 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:17:45 +0000 Subject: Change in osmo-gsm-tester[master]: bsc: add active lchan matching via vty In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 ) Change subject: bsc: add active lchan matching via vty ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506/2/src/osmo_gsm_tester/obj/bsc_osmo.py File src/osmo_gsm_tester/obj/bsc_osmo.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506/2/src/osmo_gsm_tester/obj/bsc_osmo.py at 173 PS2, Line 173: def active_lchans_match(self, expected=[], not_expected=[]): > Are these APIs to be used by tests? I would like to keep the public available APIs to a minimum in g [?] yes -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 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: I03df8f3ae2ee47930eee311c7ce104c36dbb3154 Gerrit-Change-Number: 21506 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 06 Dec 2020 22:17: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 gerrit-no-reply at lists.osmocom.org Sun Dec 6 22:17:50 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:17:50 +0000 Subject: Change in osmo-gsm-tester[master]: add osmo_vty.py In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 ) Change subject: add osmo_vty.py ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py File src/osmo_gsm_tester/obj/osmo_vty.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py at 44 PS1, Line 44: def connect(self): > Please if this API is aimed at be used internally also through __enter__ and __exit__ add comments s [?] ok, will add. (it's up to the caller, but indeed the safest usage is via 'with') -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 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: I7c17b143b7c690b8c4105ee7c6272670046fa91d Gerrit-Change-Number: 21504 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 06 Dec 2020 22:17:50 +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 Dec 6 22:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:42 +0000 Subject: Change in osmo-gsm-tester[master]: add osmo_vty.py 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/+/21504 to look at the new patch set (#3). Change subject: add osmo_vty.py ...................................................................... add osmo_vty.py To trigger manual handovers, I need a VTY interface. The non-trivial parts of this are copied from osmo-python-tests osmo_interact_vty.py. Will be used in the upcoming handover_2G test suite in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I7c17b143b7c690b8c4105ee7c6272670046fa91d --- A src/osmo_gsm_tester/obj/osmo_vty.py 1 file changed, 206 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/04/21504/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 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: I7c17b143b7c690b8c4105ee7c6272670046fa91d Gerrit-Change-Number: 21504 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 Sun Dec 6 22:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:42 +0000 Subject: Change in osmo-gsm-tester[master]: add bsc.vty() 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/+/21505 to look at the new patch set (#3). Change subject: add bsc.vty() ...................................................................... add bsc.vty() The BSC's VTY port will be used to trigger manual handover, and to retrieve a list of active lchans from the BSC, in the upcoming handover_2G test suite, I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I06652db04fc9e48748f3c2196334f5352e9cc48a --- M src/osmo_gsm_tester/obj/bsc_osmo.py 1 file changed, 11 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/05/21505/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 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: I06652db04fc9e48748f3c2196334f5352e9cc48a Gerrit-Change-Number: 21505 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 Sun Dec 6 22:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:42 +0000 Subject: Change in osmo-gsm-tester[master]: bsc: add active lchan matching via 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-gsm-tester/+/21506 to look at the new patch set (#3). Change subject: bsc: add active lchan matching via vty ...................................................................... bsc: add active lchan matching via vty Will be used in upcoming handover_2G test suite in I0b2671304165a1aaae2b386af46fbd8b098e3bd8, which needs to verify that a handover actually ended up on the expected lchan. Change-Id: I03df8f3ae2ee47930eee311c7ce104c36dbb3154 --- M src/osmo_gsm_tester/obj/bsc_osmo.py 1 file changed, 49 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/06/21506/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 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: I03df8f3ae2ee47930eee311c7ce104c36dbb3154 Gerrit-Change-Number: 21506 Gerrit-PatchSet: 3 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 Sun Dec 6 22:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:42 +0000 Subject: Change in osmo-gsm-tester[master]: log reserved resources 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/+/21510 to look at the new patch set (#3). Change subject: log reserved resources ...................................................................... log reserved resources On non-debug log level, show something like this at the beginning of each suite: 03:45:49.439720 tst handover:sysmo+secondbts-trx-b200: RESERVED RESOURCES for handover: bts sysmoBTS 1002 Ettus B200 ip_address 10.42.42.2 10.42.42.3 10.42.42.4 10.42.42.5 10.42.42.6 10.42.42.7 modem sierra_1st sierra_2nd Change-Id: Ic23556eafee654c93d13c5ef405028da09bd51d7 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/resource.py M src/osmo_gsm_tester/core/suite.py 3 files changed, 67 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/10/21510/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 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: Ic23556eafee654c93d13c5ef405028da09bd51d7 Gerrit-Change-Number: 21510 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 Sun Dec 6 22:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:42 +0000 Subject: Change in osmo-gsm-tester[master]: process: add get_output_mark() and grep_output() 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-gsm-tester/+/21512 to look at the new patch set (#3). Change subject: process: add get_output_mark() and grep_output() ...................................................................... process: add get_output_mark() and grep_output() Allow showing log lines matching specific regexes, from a specific start point of a log. My use case is to echo the handover related logging after an expected handover failed, so that the reason is visible already in the console output of a jenkins run. So far I would need to open the endless bsc log and look up the matching place in it to get a conclusion about why a handover failed. Change-Id: Ib6569f7486e9d961bd79a5f24232e58d053667a1 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 40 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/12/21512/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 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: Ib6569f7486e9d961bd79a5f24232e58d053667a1 Gerrit-Change-Number: 21512 Gerrit-PatchSet: 3 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 Sun Dec 6 22:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:42 +0000 Subject: Change in osmo-gsm-tester[master]: add test.report_fragment() 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-gsm-tester/+/21516 to look at the new patch set (#3). Change subject: add test.report_fragment() ...................................................................... add test.report_fragment() Allow enriching the junit output with arbitrary subtasks within a test. The current aim is, for handover tests, to not just show that a test failed, but to show exactly which steps worked and which didn't, e.g.: handover.py__01_bts0_started PASSED handover.py__02.1_ms0_attach PASSED handover.py__02.2_ms1_attach PASSED handover.py__02.3_subscribed_in_msc PASSED handover.py__03_call_established PASSED handover.py__04.1_bts1_started FAILED In this case it is immediately obvious from looking at the jenkins results analyzer that bts1 is the cause of the test failure, and it is visible which parts of the test are flaky, over time. First user Will be the upcoming handover_2G suite, in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.ok.ign M selftest/suite_test/suite_test.py A selftest/suite_test/suitedirA/test_suite/test_report_fragment.py M src/osmo_gsm_tester/core/report.py M src/osmo_gsm_tester/core/test.py 6 files changed, 175 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/16/21516/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 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: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 Gerrit-Change-Number: 21516 Gerrit-PatchSet: 3 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 Sun Dec 6 22:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:42 +0000 Subject: Change in osmo-gsm-tester[master]: add handover_2G suite, with handover.py test 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-gsm-tester/+/21523 to look at the new patch set (#3). Change subject: add handover_2G suite, with handover.py test ...................................................................... add handover_2G suite, with handover.py test Via VTY, handover two lchans of a voice call from bts0 to bts1 and back. New scenarios/bts1-* allow selecting various types for bts1, complementing the already existing files for selecting bts0. Change-Id: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 --- M src/osmo_gsm_tester/testenv.py A sysmocom/handover-suites.conf A sysmocom/scenarios/bts1-nanobts.conf A sysmocom/scenarios/bts1-oc2g.conf A sysmocom/scenarios/bts1-octphy.conf A sysmocom/scenarios/bts1-sysmo.conf A sysmocom/scenarios/bts1-trx-b200.conf A sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf A sysmocom/scenarios/bts1-trx-lms.conf A sysmocom/scenarios/bts1-trx-sysmocell5000.conf A sysmocom/scenarios/bts1-trx-umtrx.conf A sysmocom/suites/handover_2G/handover.py A sysmocom/suites/handover_2G/suite.conf 13 files changed, 315 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/23/21523/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 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: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 Gerrit-Change-Number: 21523 Gerrit-PatchSet: 3 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 Sun Dec 6 22:24:46 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:46 +0000 Subject: Change in osmo-gsm-tester[master]: OsmoCtrl cleanup: get_var(), set_var(), get_trap() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21564 ) Change subject: OsmoCtrl cleanup: get_var(), set_var(), get_trap() ...................................................................... OsmoCtrl cleanup: get_var(), set_var(), get_trap() CTRL interface interaction was mostly inherited from the first legacy implementation of osmo-gsm-tester, and it was a pain to look at from the start. Now, while I'm close to the topic, I want this to improve: Properly match a GET_REPLY/SET_REPLY to a sent GET/SET by the message ID. Completely drop the do_get() and do_set(), which were not useful for correct handling of the CTRL request and response messaging. The API to use by callers is set_var(), get_var()/get_int_var() and get_trap(). These call the internal _sendrecv() (or for TRAP only _recv()) functions. Make it so that tese work both on an already connected OsmoCtrl, as well as one that needs to establish a (short) connection, so that both are trivially possible: # one CTRL connection stays open with OsmoCtrl(...) as ctrl: ctrl.get_var('var1') ctrl.get_var('var2') ctrl.get_var('var3') and # get_var() opens a connection, does the GET and closes again OsmoCtrl(...).get_var('var1') Do away with doubling the instances OsmoCtrl and e.g. OsmoBscCtrl. Rather make OsmoBscCtrl a child class of OsmoCtrl, which means that we no longer have bsc.ctrl().ctrl(), just bsc.ctrl(). Have VERB_* constants instead of dup'd strings. Apply to / simplify all callers of OsmoCtrl. Some of these changes are similar to recently added OsmoVty. Change-Id: Id561e5a55d8057a997a8ec9e7fa6f94840194df1 --- M src/osmo_gsm_tester/obj/bsc_osmo.py M src/osmo_gsm_tester/obj/msc_osmo.py M src/osmo_gsm_tester/obj/nitb_osmo.py M src/osmo_gsm_tester/obj/osmo_ctrl.py 4 files changed, 174 insertions(+), 127 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/64/21564/1 diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index cf54205..a16ef92 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -145,41 +145,27 @@ # over this list, we have a 1:1 match in indexes. return self.bts.index(bts) - def bts_is_connected(self, bts): - return OsmoBscCtrl(self).bts_is_connected(self.bts_num(bts)) + def bts_is_connected(self, bts, use_ctrl=None): + if use_ctrl is None: + use_ctrl = self.ctrl() + return use_ctrl.bts_is_connected(self.bts_num(bts)) def running(self): return not self.process.terminated() + def ctrl(self): + return OsmoBscCtrl(self) + def vty(self): return OsmoBscVty(self) -class OsmoBscCtrl(log.Origin): - PORT = 4249 - BTS_OML_STATE_VAR = "bts.%d.oml-connection-state" - BTS_OML_STATE_RE = re.compile("GET_REPLY (\d+) bts.\d+.oml-connection-state (?P\w+)") - - def __init__(self, bsc): +class OsmoBscCtrl(osmo_ctrl.OsmoCtrl): + def __init__(self, bsc, port=4249): self.bsc = bsc - super().__init__(log.C_BUS, 'CTRL(%s:%d)' % (self.bsc.addr(), OsmoBscCtrl.PORT)) - - def ctrl(self): - return osmo_ctrl.OsmoCtrl(self.bsc.addr(), OsmoBscCtrl.PORT) + super().__init__(bsc.addr(), port) def bts_is_connected(self, bts_num): - with self.ctrl() as ctrl: - ctrl.do_get(OsmoBscCtrl.BTS_OML_STATE_VAR % bts_num) - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - res = OsmoBscCtrl.BTS_OML_STATE_RE.match(answer_str) - if res: - oml_state = str(res.group('oml_state')) - if oml_state == 'connected': - return True - return False + return self.get_var('bts.%d.oml-connection-state' % bts_num) == 'connected' class OsmoBscVty(osmo_vty.OsmoVty): PORT = 4242 diff --git a/src/osmo_gsm_tester/obj/msc_osmo.py b/src/osmo_gsm_tester/obj/msc_osmo.py index 67e1d31..5a7c0ba 100644 --- a/src/osmo_gsm_tester/obj/msc_osmo.py +++ b/src/osmo_gsm_tester/obj/msc_osmo.py @@ -157,29 +157,12 @@ return not self.process.terminated() -class OsmoMscCtrl(log.Origin): - PORT = 4255 - SUBSCR_LIST_ACTIVE_VAR = 'subscriber-list-active-v1' - - def __init__(self, msc): +class OsmoMscCtrl(osmo_ctrl.OsmoCtrl): + def __init__(self, msc, port=4255): self.msc = msc - super().__init__(log.C_BUS, 'CTRL(%s:%d)' % (self.msc.addr(), self.PORT)) - - def ctrl(self): - return osmo_ctrl.OsmoCtrl(self.msc.addr(), self.PORT) + super().__init__(self.msc.addr(), port) def subscriber_list_active(self): - aslist_str = "" - with self.ctrl() as ctrl: - ctrl.do_get(self.SUBSCR_LIST_ACTIVE_VAR) - # This is legacy code from the old osmo-gsm-tester. - # looks like this doesn't work for long data. - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - aslist_str = answer_str - return aslist_str + return self.get_var('subscriber-list-active-v1').replace('\n', ' ') # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/nitb_osmo.py b/src/osmo_gsm_tester/obj/nitb_osmo.py index a424927..ea00a75 100644 --- a/src/osmo_gsm_tester/obj/nitb_osmo.py +++ b/src/osmo_gsm_tester/obj/nitb_osmo.py @@ -158,22 +158,10 @@ return not self.process.terminated() -class OsmoNitbCtrl(log.Origin): - PORT = 4249 - SUBSCR_MODIFY_VAR = 'subscriber-modify-v1' - SUBSCR_MODIFY_REPLY_RE = re.compile("SET_REPLY (\d+) %s OK" % SUBSCR_MODIFY_VAR) - SUBSCR_DELETE_VAR = 'subscriber-delete-v1' - SUBSCR_DELETE_REPLY_RE = re.compile("SET_REPLY (\d+) %s Removed" % SUBSCR_DELETE_VAR) - SUBSCR_LIST_ACTIVE_VAR = 'subscriber-list-active-v1' - BTS_OML_STATE_VAR = "bts.%d.oml-connection-state" - BTS_OML_STATE_RE = re.compile("GET_REPLY (\d+) bts.\d+.oml-connection-state (?P\w+)") - - def __init__(self, nitb): +class OsmoNitbCtrl(osmo_ctrl.OsmoCtrl): + def __init__(self, nitb, port=4249): self.nitb = nitb - super().__init__(log.C_BUS, 'CTRL(%s:%d)' % (self.nitb.addr(), OsmoNitbCtrl.PORT)) - - def ctrl(self): - return osmo_ctrl.OsmoCtrl(self.nitb.addr(), OsmoNitbCtrl.PORT) + super().__init__(nitb.addr(), port) def subscriber_add(self, imsi, msisdn, ki=None, algo=None): if algo: @@ -181,54 +169,17 @@ else: value = '%s,%s' % (imsi, msisdn) - with self.ctrl() as ctrl: - ctrl.do_set(OsmoNitbCtrl.SUBSCR_MODIFY_VAR, value) - data = ctrl.receive() - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - res = OsmoNitbCtrl.SUBSCR_MODIFY_REPLY_RE.match(answer_str) - if not res: - raise RuntimeError('Cannot create subscriber %r (answer=%r)' % (imsi, answer_str)) - self.dbg('Created subscriber', imsi=imsi, msisdn=msisdn) + assert self.set_var('subscriber-modify-v1', value) == 'OK' + self.dbg('Created subscriber', imsi=imsi, msisdn=msisdn) def subscriber_delete(self, imsi): - with self.ctrl() as ctrl: - ctrl.do_set(OsmoNitbCtrl.SUBSCR_DELETE_VAR, imsi) - data = ctrl.receive() - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - res = OsmoNitbCtrl.SUBSCR_DELETE_REPLY_RE.match(answer_str) - if not res: - raise RuntimeError('Cannot delete subscriber %r (answer=%r)' % (imsi, answer_str)) - self.dbg('Deleted subscriber', imsi=imsi) + assert self.set_var('subscriber-delete-v1', imsi) == 'Removed' + self.dbg('Deleted subscriber', imsi=imsi) def subscriber_list_active(self): - aslist_str = "" - with self.ctrl() as ctrl: - ctrl.do_get(OsmoNitbCtrl.SUBSCR_LIST_ACTIVE_VAR) - # This is legacy code from the old osmo-gsm-tester. - # looks like this doesn't work for long data. - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - aslist_str = answer_str - return aslist_str + return self.get_var('subscriber-list-active-v1').replace('\n', ' ') def bts_is_connected(self, bts_num): - with self.ctrl() as ctrl: - ctrl.do_get(OsmoNitbCtrl.BTS_OML_STATE_VAR % bts_num) - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - res = OsmoNitbCtrl.BTS_OML_STATE_RE.match(answer_str) - if res: - oml_state = str(res.group('oml_state')) - if oml_state == 'connected': - return True - return False + return self.get_var('bts.%d.oml-connection-state' % bts_num) == 'connected' # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index c2dd7e3..89faef3 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -20,9 +20,20 @@ import socket import struct +import re from ..core import log +VERB_SET = 'SET' +VERB_GET = 'GET' +VERB_SET_REPLY = 'SET_REPLY' +VERB_GET_REPLY = 'GET_REPLY' +VERB_TRAP = 'TRAP' +VERB_ERROR = 'ERROR' +RECV_VERBS = (VERB_GET_REPLY, VERB_SET_REPLY, VERB_TRAP, VERB_ERROR) +recv_re = re.compile('(%s) ([0-9]+) (.*)' % ('|'.join(RECV_VERBS)), + re.MULTILINE + re.DOTALL) + class CtrlInterfaceExn(Exception): pass @@ -57,40 +68,156 @@ return data[4:plen+3], data[plen+3:] def connect(self): + assert self.sck is None self.dbg('Connecting') - self.sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.sck.connect((self.host, self.port)) - self.sck.setblocking(1) - self.sck.settimeout(10) + sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sck.connect((self.host, self.port)) + try: + sck.setblocking(1) + sck.settimeout(10) + except: + sck.close() + raise + # set self.sck only after everything was successful + self.sck = sck def disconnect(self): + if self.sck is None: + return self.dbg('Disconnecting') - if self.sck is not None: - self.sck.close() + self.sck.close() + self.sck = None - def _send(self, data): + def _recv(self, verbs, match_args=None, match_id=None, attempts=10, length=1024): + '''Receive until a response matching the verbs / args / msg-id is obtained from CTRL. + The general socket timeout applies for each attempt made, see connect(). + Multiple attempts may be necessary if, for example, intermediate + messages are received that do not relate to what is expected, like + TRAPs that are not interesting. + + To receive a GET_REPLY / SET_REPLY: + verb, rx_id, val = _recv(('GET_REPLY', 'ERROR'), match_id=used_id) + if verb == 'ERROR': + raise CtrlInterfaceExn() + print(val) + + To receive a TRAP: + verb, rx_id, val = _recv('TRAP', 'bts_connection_status connected') + # val == 'bts_connection_status connected' + + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + + # allow calling for both already connected VTY as well as establishing + # a connection just for this command. + if self.sck is None: + with self: + return self._recv(verbs, match_args=match_args, + match_id=match_id, attempts=attempts, length=length) + + if isinstance(verbs, str): + verbs = (verbs, ) + + for i in range(attempts): + data = self.sck.recv(length) + self.dbg('Receiving', data=data) + while len(data) > 0: + msg, data = self.remove_ipa_ctrl_header(data) + msg_str = msg.decode('utf-8') + + m = recv_re.fullmatch(msg_str) + if m is None: + raise CtrlInterfaceExn('Received garbage: %r' % data) + + rx_verb, rx_id, rx_args = m.groups() + rx_id = int(rx_id) + + if match_id is not None and match_id != rx_id: + continue + + if verbs and rx_verb not in verbs: + continue + + if match_args and not rx_args.startswith(match_args): + continue + + return rx_verb, rx_id, rx_args + raise CtrlInterfaceExn('No answer found: ' + reply_header) + + def _sendrecv(self, verb, send_args, *recv_args, use_id=None, **recv_kwargs): + '''Send a request and receive a matching response. + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + if self.sck is None: + with self: + return self._sendrecv(verb, send_args, *recv_args, use_id=use_id, **recv_kwargs) + + if use_id is None: + use_id = self.next_id() + + # send + data = '{verb} {use_id} {send_args}'.format(**locals()) self.dbg('Sending', data=data) data = self.prefix_ipa_ctrl_header(data) self.sck.send(data) - def receive(self, length = 1024): - data = self.sck.recv(length) - self.dbg('Receiving', data=data) - return data + # receive reply + recv_kwargs['match_id'] = use_id + return self._recv(*recv_args, **recv_kwargs) - def do_set(self, var, value, use_id=None): - if use_id is None: - use_id = self.next_id() - setmsg = "SET %s %s %s" %(use_id, var, value) - self._send(setmsg) - return use_id + def set_var(self, var, value): + '''Set the value of a specific variable on a CTRL interface, and return the response, e.g.: + assert set_var('subscriber-modify-v1', '901701234567,2342') == 'OK' + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + verb, rx_id, args = self._sendrecv(VERB_SET, '%s %s' % (var, value), (VERB_SET_REPLY, VERB_ERROR)) - def do_get(self, var, use_id=None): - if use_id is None: - use_id = self.next_id() - getmsg = "GET %s %s" %(use_id, var) - self._send(getmsg) - return use_id + if verb == VERB_ERROR: + raise CtrlInterfaceExn('SET %s = %s returned %r' % (var, value, ' '.join((verb, str(rx_id), args)))) + + var_and_space = var + ' ' + if not args.startswith(var_and_space): + raise CtrlInterfaceExn('SET %s = %s returned SET_REPLY for different var: %r' + % (var, value, ' '.join((verb, str(rx_id), args)))) + + return args[len(var_and_space):] + + def get_var(self, var): + '''Get the value of a specific variable from a CTRL interface: + assert get_var('bts.0.oml-connection-state') == 'connected' + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + verb, rx_id, args = self._sendrecv(VERB_GET, var, (VERB_GET_REPLY, VERB_ERROR)) + + if verb == VERB_ERROR: + raise CtrlInterfaceExn('GET %s returned %r' % (var, ' '.join((verb, str(rx_id), args)))) + + var_and_space = var + ' ' + if not args.startswith(var_and_space): + raise CtrlInterfaceExn('GET %s returned GET_REPLY for different var: %r' + % (var, value, ' '.join((verb, str(rx_id), args)))) + + return args[len(var_and_space):] + + def get_int_var(self, var): + '''Same as get_var() but return an int''' + return int(self.get_var(var)) + + def get_trap(self, name): + '''Read from CTRL until a TRAP of this name is received. + If name is None, any TRAP is returned. + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + verb, rx_id, args = self._recv(VERB_TRAP, name) + name_and_space = var + ' ' + # _recv() should ensure this: + assert args.startswith(name_and_space) + return args[len(name_and_space):] def __enter__(self): self.connect() -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21564 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: Id561e5a55d8057a997a8ec9e7fa6f94840194df1 Gerrit-Change-Number: 21564 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 Dec 6 22:24:46 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:46 +0000 Subject: Change in osmo-gsm-tester[master]: process output: do not leak ANSI colors past logged stdout/stderr References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21565 ) Change subject: process output: do not leak ANSI colors past logged stdout/stderr ...................................................................... process output: do not leak ANSI colors past logged stdout/stderr In jenkins, I still saw incidents of the entire log becoming colored after a colored stderr snippet was printed to the log. Make absolutely sure that no unterminated ANSI coloring is leaked. Change-Id: Ib9ac1eea4a12d6d43ac8614491f016bbe9ca17b1 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/65/21565/1 diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index eeccef8..51e2781 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -338,7 +338,7 @@ with open(path, 'r') as f2: if since_mark > 0: f2.seek(since_mark) - return f2.read() + return self.end_ansi_colors(f2.read()) def get_output_file(self, which): ''' Return filename for given output ''' @@ -354,7 +354,7 @@ return None out = out.splitlines() tail = min(len(out), tail) - return prefix + ('\n' + prefix).join(out[-tail:]) + return prefix + self.end_ansi_colors(('\n' + prefix).join(out[-tail:])) def get_output_mark(self, which): out = self.get_output(which) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21565 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: Ib9ac1eea4a12d6d43ac8614491f016bbe9ca17b1 Gerrit-Change-Number: 21565 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 Dec 6 22:24:47 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:47 +0000 Subject: Change in osmo-gsm-tester[master]: add option osmo-gsm-tester.py --suites-file my-suites-listing.conf References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21566 ) Change subject: add option osmo-gsm-tester.py --suites-file my-suites-listing.conf ...................................................................... add option osmo-gsm-tester.py --suites-file my-suites-listing.conf For example, run with '-S handover-suites.conf' to just do the handover tests. Change-Id: If896ac84d02a275deda2f20a93c29312df128ebb --- M src/osmo-gsm-tester.py 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/66/21566/1 diff --git a/src/osmo-gsm-tester.py b/src/osmo-gsm-tester.py index cfe55f6..15b1923 100755 --- a/src/osmo-gsm-tester.py +++ b/src/osmo-gsm-tester.py @@ -109,6 +109,11 @@ parser.add_argument('-s', '--suite-scenario', dest='suite_scenario', action='append', help='''A suite-scenarios combination like suite:scenario+scenario''') + parser.add_argument('-S', '--suites-file', dest='suites_file', action='append', + default=[], + help='''Read suites to run from a yml listing, +like default-suites.conf. The path is relative to +--conf-path.''') parser.add_argument('-t', '--test', dest='test', action='append', help='''Run only tests matching this name. Any test name that contains the given string is run. @@ -151,6 +156,12 @@ combination_strs = list(args.suite_scenario or []) + for suites_file in args.suites_file: + suites_file = config.main_config_path_to_abspath(suites_file) + from_this_file = config.read(suites_file) + print(('Running suites from %r:\n ' % suites_file) + ('\n '.join(from_this_file))) + combination_strs.extend(from_this_file) + if not combination_strs: combination_strs = config.read_config_file(config.CFG_DEFAULT_SUITES_CONF, if_missing_return=[]) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21566 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: If896ac84d02a275deda2f20a93c29312df128ebb Gerrit-Change-Number: 21566 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 Dec 6 22:24:47 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:24:47 +0000 Subject: Change in osmo-gsm-tester[master]: OsmoCtrl: use one global common counter for CTRL IDs References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21567 ) Change subject: OsmoCtrl: use one global common counter for CTRL IDs ...................................................................... OsmoCtrl: use one global common counter for CTRL IDs It is easier to traverse debugging logs if the CTRL request and response IDs are globally unique across all programs and tests. Before this, we were using 0 almost everywhere. (This is not strictly needed for correctness, since each CTRL client has its own request ID scope; just we open fairly many separate CTRL clients all the time in our tests.) Change-Id: I44c51f4fb5beb6cedf98ea0d6684a24c6aa418c7 --- M src/osmo_gsm_tester/obj/osmo_ctrl.py 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/67/21567/1 diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index 56167c3..0ea6a2c 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -38,17 +38,17 @@ pass class OsmoCtrl(log.Origin): + _next_id = 1 def __init__(self, host, port): super().__init__(log.C_BUS, 'Ctrl', host=host, port=port) self.host = host self.port = port self.sck = None - self._next_id = 0 def next_id(self): - ret = self._next_id - self._next_id += 1 + ret = OsmoCtrl._next_id + OsmoCtrl._next_id += 1 return ret def prefix_ipa_ctrl_header(self, data): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21567 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: I44c51f4fb5beb6cedf98ea0d6684a24c6aa418c7 Gerrit-Change-Number: 21567 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 Dec 6 22:26:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:26:27 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: add get_var() to properly GET and read a GET_REPLY In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21520 ) Change subject: ctrl: add get_var() to properly GET and read a GET_REPLY ...................................................................... Abandoned now part of Id561e5a55d8057a997a8ec9e7fa6f94840194df1 OsmoCtrl cleanup -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21520 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: I75ec2494412e9b36b665ee6e45bd9f8fcdd27be6 Gerrit-Change-Number: 21520 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Sun Dec 6 22:26:38 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 6 Dec 2020 22:26:38 +0000 Subject: Change in osmo-gsm-tester[master]: use ctrl.get_var() instead of do_get() with code dup In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21521 ) Change subject: use ctrl.get_var() instead of do_get() with code dup ...................................................................... Abandoned now part of Id561e5a55d8057a997a8ec9e7fa6f94840194df1 OsmoCtrl cleanup -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21521 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: I8dd6140787c6e84dff0882a1c9d5be4bdd3bbc43 Gerrit-Change-Number: 21521 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Sun Dec 6 23:39:21 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 6 Dec 2020 23:39:21 +0000 Subject: Change in osmo-bts[master]: power_control: implement BS (Downlink) 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/+/21447 to look at the new patch set (#5). Change subject: power_control: implement BS (Downlink) Power Control ...................................................................... power_control: implement BS (Downlink) Power Control We already have MS Power Control, which according to 3GPP 45.008 shall be implemented in the MS to minimize the transmit power in the Uplink direction. The BS Power Control may optionally be implemented by the network side for the same purpose. Using Downlink signal measurements reported by the MS, the BSS (either BSC, or BTS) may control Downlink attenuation in a way that the transmit power remains as low as possible, or remains in a specific range corresponding to good RxLev values on the MS side. This change implements autonomous BS Power Control, that can optionally be enabled by the BSC. BS Power Control re-uses parts of the MS Power Control code, so all parameters can be configured in the same way - via the VTY interface or a configuration file. This basically means that features like hysteresis and EWMA based filtering are also available for BS Power Control. The only difference is that RxQual values higher than 0 would trigger the logic to reduce the current attenuation twice. Note that one of the unit tests ('TC_rxlev_max_min') fails, as the power step limitations for raising and lowering look wrong to me, and the related discussion is still ongoing. Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Related: SYS#4918 --- M .gitignore M include/osmo-bts/gsm_data.h M include/osmo-bts/power_control.h M src/common/l1sap.c M src/common/power_control.c M src/common/rsl.c M src/common/scheduler.c M src/common/tx_power.c M src/common/vty.c M tests/power/Makefile.am A tests/power/bs_power_loop_test.c A tests/power/bs_power_loop_test.err A tests/power/bs_power_loop_test.ok M tests/testsuite.at 14 files changed, 878 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/21447/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Gerrit-Change-Number: 21447 Gerrit-PatchSet: 5 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 Dec 6 23:39:21 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 6 Dec 2020 23:39:21 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct bts_power_ctrl_params' 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/+/21499 to look at the new patch set (#3). Change subject: power_control: clarify units in 'struct bts_power_ctrl_params' ...................................................................... power_control: clarify units in 'struct bts_power_ctrl_params' Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M src/common/power_control.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/ms_power_loop_test.c 11 files changed, 42 insertions(+), 42 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/99/21499/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Gerrit-Change-Number: 21499 Gerrit-PatchSet: 3 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 Sun Dec 6 23:39:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 6 Dec 2020 23:39:24 +0000 Subject: Change in osmo-bts[master]: power_control: make raise/lower step limitation configurable References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21568 ) Change subject: power_control: make raise/lower step limitation configurable ...................................................................... power_control: make raise/lower step limitation configurable Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Related: SYS#4918 --- M include/osmo-bts/bts.h M include/osmo-bts/power_control.h M src/common/bts.c 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 M tests/power/ms_power_loop_test.c 8 files changed, 64 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/21568/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 48f404c..8956c36 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -107,6 +107,10 @@ int target_dbm; /* Tolerated deviation from target */ int hysteresis_db; + /* How many dB do we raise power as maximum */ + int raise_max_db; + /* How many dB do we lower power as maximum */ + int lower_max_db; /* RxLev filtering algorithm */ enum bts_pf_algo pf_algo; /* (Optional) filtering parameters */ diff --git a/include/osmo-bts/power_control.h b/include/osmo-bts/power_control.h index f2e14cf..ab107b8 100644 --- a/include/osmo-bts/power_control.h +++ b/include/osmo-bts/power_control.h @@ -3,6 +3,10 @@ #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/bts.c b/src/common/bts.c index e021864..669bcdd 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -53,6 +53,7 @@ #include #include #include +#include #define MIN_QUAL_RACH 50 /* minimum link quality (in centiBels) for Access Bursts */ #define MIN_QUAL_NORM -5 /* minimum link quality (in centiBels) for Normal Bursts */ @@ -334,6 +335,8 @@ (struct bts_power_ctrl_params) { .target_dbm = -75, .hysteresis_db = 3, /* -78 .. -72 dBm */ + .raise_max_db = PWR_RAISE_MAX_DB, + .lower_max_db = PWR_LOWER_MAX_DB, .pf_algo = BTS_PF_ALGO_EWMA, .pf = { .ewma = { diff --git a/src/common/power_control.c b/src/common/power_control.c index d458a92..f54db34 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -33,10 +33,6 @@ #include #include -/* how many dB do we raise/lower as maximum (1 ms power level = 2 dB) */ -#define PWR_RAISE_MAX_DB 4 -#define PWR_LOWER_MAX_DB 8 - /* We don't want to deal with floating point, so we scale up */ #define EWMA_SCALE_FACTOR 100 @@ -122,10 +118,10 @@ /* 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 > PWR_RAISE_MAX_DB) - delta = PWR_RAISE_MAX_DB; - else if (delta < -PWR_LOWER_MAX_DB) - delta = -PWR_LOWER_MAX_DB; + if (delta > params->raise_max_db) + delta = params->raise_max_db; + else if (delta < -params->lower_max_db) + delta = -params->lower_max_db; return delta; } diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index 2f60cc0..5f1bf92 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -31,6 +31,15 @@ #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_max_db = PWR_LOWER_MAX_DB, \ + .lower_max_db = PWR_RAISE_MAX_DB + #define DL_MEAS_FULL(rxqual, rxlev) \ .rxqual_full = rxqual, \ .rxlev_full = rxlev @@ -95,10 +104,15 @@ g_trx = gsm_bts_trx_alloc(g_bts); OSMO_ASSERT(g_trx != NULL); - g_bts->dl_power_ctrl.target_dbm = rxlev2dbm(PWR_TEST_RXLEV_TARGET); 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); } @@ -326,7 +340,8 @@ /* Enable hysteresis */ { .type = PWR_TEST_ST_SET_PARAMS, .params = { - .target_dbm = -110 + PWR_TEST_RXLEV_TARGET, + PWR_TEST_CFG_RXLEV_TARGET, + PWR_TEST_CFG_RAISE_LOWER_MAX, .hysteresis_db = 3, } }, @@ -347,7 +362,8 @@ /* Enable EWMA based power filtering */ { .type = PWR_TEST_ST_SET_PARAMS, .params = { - .target_dbm = -110 + PWR_TEST_RXLEV_TARGET, /* RxLev 30 */ + PWR_TEST_CFG_RXLEV_TARGET, + PWR_TEST_CFG_RAISE_LOWER_MAX, .pf_algo = BTS_PF_ALGO_EWMA, .pf.ewma.alpha = 50, } diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index 44d996e..43063c0 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -7,29 +7,29 @@ (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 -> 8 dB (maximum 20 dB, target -80 dBm, delta -8 dB) +(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) 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 -> 16 dB (maximum 20 dB, target -80 dBm, delta -8 dB) +(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) 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 -8 dB) +(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) 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 -8 dB) +(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) 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 -8 dB) +(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) 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 -8 dB) +(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) 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 -8 dB) +(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) 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 -> 12 dB (maximum 20 dB, target -80 dBm, delta 8 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: 16 -> 12 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(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) 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: 4 -> 0 dB (maximum 20 dB, target -80 dBm, delta 8 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: 8 -> 4 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, target -80 dBm, delta 8 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 4 dB) +(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) 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 diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index fe2eb78..acaad82 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -39,19 +39,19 @@ #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 -> 8 (expected 4) +#01 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 4 (expected 4) #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: 8 -> 16 (expected 8) +#02 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 8 (expected 8) #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: 16 -> 20 (expected 12) +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 12 (expected 12) #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: 20 -> 20 (expected 16) +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 16 (expected 16) #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: 20 -> 20 (expected 20) +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 20 (expected 20) #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) @@ -60,20 +60,20 @@ #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 -> 16 (expected 12) +#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: 16 -> 12 (expected 4) +#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: 12 -> 8 (expected 0) +#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: 8 -> 4 (expected 0) +#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: 4 -> 0 (expected 0) -Test case verdict: FAIL +#12 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +Test case verdict: SUCCESS Starting test case 'TC_dtxd_mode' #00 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 4f4f746..a804ad7 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -47,11 +47,16 @@ g_trx->ms_pwr_ctl_soft = true; - g_bts->ul_power_ctrl.target_dbm = -75; - g_bts->dl_power_ctrl.target_dbm = -75; 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_max_db = PWR_RAISE_MAX_DB, + .lower_max_db = PWR_LOWER_MAX_DB, + }; + printf("\nStarting test case '%s'\n", name); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Gerrit-Change-Number: 21568 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Dec 7 01:34:43 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 07 Dec 2020 01:34:43 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fcd86cc9d3a5_1bee2aad75dd45f8690422@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] [ 133s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 133s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 133s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 133s] Memory region Used Size Region Size %age Used [ 133s] rom: 16580 B 16 KB 101.20% [ 133s] 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 [ 133s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 133s] /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' [ 133s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 133s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 133s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 133s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 133s] collect2: error: ld returned 1 exit status [ 133s] % [ 133s] make[2]: *** [Makefile:234: flash] Error 1 [ 133s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 133s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 133s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 133s] dh_auto_build: error: make -j1 returned exit code 2 [ 133s] make: *** [debian/rules:16: build] Error 25 [ 133s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 133s] ### VM INTERACTION START ### [ 136s] [ 124.563660] sysrq: Power Off [ 136s] [ 124.572264] reboot: Power down [ 136s] ### VM INTERACTION END ### [ 136s] [ 136s] old-atreju3 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Dec 7 01:34:33 UTC 2020. [ 136s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Dec 7 01:39:00 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 07 Dec 2020 01:39:00 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fcd87ba1943e_1bee2aad75dd45f86905d5@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] [ 150.056081] sysrq: Power Off [ 160s] [ 150.063623] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] lamb09 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Dec 7 01:38:43 UTC 2020. [ 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 Dec 7 06:41:55 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE 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/+/21555 to look at the new patch set (#2). Change subject: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE ...................................................................... gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE The SNS FSM can go into the SIZE state when all NS-VC are failing. This is the case if the network connection to the SGSN got interrupted. Change-Id: I7e7da9451458505c1c2d73836dd916aee7704fda --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/21555/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e7da9451458505c1c2d73836dd916aee7704fda Gerrit-Change-Number: 21555 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 Mon Dec 7 06:41:55 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: dynamic calculate the maximum NS-VCs 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/+/21556 to look at the new patch set (#2). Change subject: gprs_ns2_sns: dynamic calculate the maximum NS-VCs ...................................................................... gprs_ns2_sns: dynamic calculate the maximum NS-VCs The previous hard-coded value could be not enough if the user configures too many local binds. Allow at least 8 NS-VCs. In case the user configures too many binds (> 2) increase the maximum NS-VCs to allow the SGSN to have 4 redundant connections. Change-Id: Iae859dc504716fd6f705e72db5fc293b4b3298e7 --- M src/gb/gprs_ns2_sns.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/21556/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iae859dc504716fd6f705e72db5fc293b4b3298e7 Gerrit-Change-Number: 21556 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 Mon Dec 7 06:41:57 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21569 ) Change subject: gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen ...................................................................... gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen The event GPRS_SNS_EV_NO_NSVC was never dispatched because the S() was missing to convert it into a bitmask. Change-Id: I4af01293ff0ba8629e1426b1ba92f72f0520c7f0 --- M src/gb/gprs_ns2_sns.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/69/21569/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 50a1f9b..edf7da3 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1205,7 +1205,7 @@ .name = "GPRS-NS2-SNS-BSS", .states = ns2_sns_bss_states, .num_states = ARRAY_SIZE(ns2_sns_bss_states), - .allstate_event_mask = GPRS_SNS_EV_NO_NSVC, + .allstate_event_mask = S(GPRS_SNS_EV_NO_NSVC), .allstate_action = ns2_sns_st_all_action, .cleanup = NULL, .timer_cb = ns2_sns_fsm_bss_timer_cb, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4af01293ff0ba8629e1426b1ba92f72f0520c7f0 Gerrit-Change-Number: 21569 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 Dec 7 06:41:57 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: fix whitespaces and superflous comment References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21570 ) Change subject: gprs_ns2_sns: fix whitespaces and superflous comment ...................................................................... gprs_ns2_sns: fix whitespaces and superflous comment Change-Id: Ica0033c88cad71827ad843e92ccd54663426de23 --- M src/gb/gprs_ns2_sns.c 1 file changed, 4 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/70/21570/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index edf7da3..d13d920 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -719,17 +719,16 @@ { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; /* Transmit SNS-CONFIG */ - /* TODO: ipv6 */ switch (gss->ip) { case IPv4: ns2_tx_sns_config(gss->sns_nsvc, true, - gss->ip4_local, gss->num_ip4_local, - NULL, 0); + gss->ip4_local, gss->num_ip4_local, + NULL, 0); break; case IPv6: ns2_tx_sns_config(gss->sns_nsvc, true, - NULL, 0, - gss->ip6_local, gss->num_ip6_local); + NULL, 0, + gss->ip6_local, gss->num_ip6_local); break; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ica0033c88cad71827ad843e92ccd54663426de23 Gerrit-Change-Number: 21570 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 Dec 7 06:41:58 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move allocation of the SNS fsm into create_nse References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21571 ) Change subject: gprs_ns2: move allocation of the SNS fsm into create_nse ...................................................................... gprs_ns2: move allocation of the SNS fsm into create_nse The allocation of the SNS fsm can be done in create_nse because the dialect is now known at that time. Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 --- M src/gb/gprs_ns2.c 1 file changed, 13 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/21571/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 920fa68..57590a5 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -677,6 +677,7 @@ enum gprs_ns2_ll linklayer, enum gprs_ns2_dialect dialect) { struct gprs_ns2_nse *nse; + char sns[16]; nse = gprs_ns2_nse_by_nsei(nsi, nsei); if (nse) { @@ -688,6 +689,15 @@ if (!nse) return NULL; + if (dialect == NS2_DIALECT_SNS) { + snprintf(sns, sizeof(sns), "nse-%d-sns", nsei); + nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, NULL); + if (!nse->bss_sns_fi) { + talloc_free(nse); + return NULL; + } + } + nse->dialect = dialect; nse->ll = linklayer; nse->nsei = nsei; @@ -959,14 +969,11 @@ return -2; } - nsvc = gprs_ns2_ip_bind_connect(bind, nse, remote); - if (!nsvc) + if (!nse->bss_sns_fi) return -1; - if (!nse->bss_sns_fi) - nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, NULL); - - if (!nse->bss_sns_fi) + nsvc = gprs_ns2_ip_bind_connect(bind, nse, remote); + if (!nsvc) return -1; return ns2_sns_bss_fsm_start(nse, nsvc, remote); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 Gerrit-Change-Number: 21571 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 Dec 7 06:41:58 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21572 ) Change subject: gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE ...................................................................... gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE Change-Id: I909443b540dbf75146297f1d7f94940690be6c0d --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/libosmogb.map 3 files changed, 18 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/72/21572/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 4b89ab5..3c3c63a 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -161,6 +161,7 @@ /* create vc */ void gprs_ns2_free_nsvc(struct gprs_ns2_vc *nsvc); +void gprs_ns2_free_nsvcs(struct gprs_ns2_nse *nse); struct gprs_ns2_vc *gprs_ns2_nsvc_by_nsvci(struct gprs_ns2_inst *nsi, uint16_t nsvci); /* generic VL driver */ diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 00a1f61..6d4b079 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -562,6 +562,21 @@ talloc_free(nsvc); } +/*! Destroy/release all NS-VC of given NSE + * \param[in] nse NSE + */ +void gprs_ns2_free_nsvcs(struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc, *tmp; + + if (!nse) + return; + + llist_for_each_entry_safe(nsvc, tmp, &nse->nsvc, list) { + gprs_ns2_free_nsvc(nsvc); + } +} + /*! Allocate a message buffer for use with the NS2 stack. */ struct msgb *gprs_ns2_msgb_alloc(void) { @@ -722,15 +737,10 @@ * \param[in] nse NS Entity to destroy */ void gprs_ns2_free_nse(struct gprs_ns2_nse *nse) { - struct gprs_ns2_vc *nsvc, *tmp; - if (!nse) return; - llist_for_each_entry_safe(nsvc, tmp, &nse->nsvc, list) { - gprs_ns2_free_nsvc(nsvc); - } - + gprs_ns2_free_nsvcs(nse); ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); llist_del(&nse->list); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 0590140..7e7971a 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -93,6 +93,7 @@ gprs_ns2_free_nse; gprs_ns2_free_nses; gprs_ns2_free_nsvc; +gprs_ns2_free_nsvcs; gprs_ns2_frgre_bind; gprs_ns2_fr_bind; gprs_ns2_fr_bind_netif; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I909443b540dbf75146297f1d7f94940690be6c0d Gerrit-Change-Number: 21572 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 Dec 7 06:41:58 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21573 ) Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... gprs_ns2_sns: rework IP-SNS initial remote The IP-SNS requires at least one initial remote address of the SGSN. However it should be multiple initial remote address instead of a single in case the interface might fail. Rework the SNS to support multiple initial remote addresses. Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/libosmogb.map 6 files changed, 334 insertions(+), 190 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/21573/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 3c3c63a..bc89b6a 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -83,6 +83,7 @@ /* osmocom own causes */ NS_AFF_CAUSE_SNS_CONFIGURED, NS_AFF_CAUSE_SNS_FAILURE, + NS_AFF_CAUSE_SNS_NO_ENDPOINTS, }; extern const struct value_string gprs_ns2_aff_cause_prim_strs[]; @@ -219,9 +220,10 @@ void gprs_ns2_free_binds(struct gprs_ns2_inst *nsi); /* create a VC SNS connection */ -int gprs_ns2_ip_connect_sns(struct gprs_ns2_vc_bind *bind, - const struct osmo_sockaddr *remote, - uint16_t nsei); +int gprs_ns2_sns_add_endpoint(struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *saddr); +int gprs_ns2_sns_del_endpoint(struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *saddr); const struct osmo_sockaddr *gprs_ns2_nse_sns_remote(struct gprs_ns2_nse *nse); const struct osmo_sockaddr *gprs_ns2_ip_vc_remote(const struct gprs_ns2_vc *nsvc); diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 6d4b079..9947e59 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -953,42 +953,6 @@ return gprs_ns2_ip_connect(bind, remote, nse, nsvci); } -/*! Create, connect and activate a new IP-SNS NSE. - * \param[in] bind bind in which the new NS-VC is to be created - * \param[in] remote remote address to which to connect - * \param[in] nsei NSEI of the NS Entity in which the NS-VC is to be created - * \return 0 on success; negative on error */ -int gprs_ns2_ip_connect_sns(struct gprs_ns2_vc_bind *bind, - const struct osmo_sockaddr *remote, - uint16_t nsei) -{ - struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); - struct gprs_ns2_vc *nsvc; - - if (!nse) { - nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP, NS2_DIALECT_SNS); - if (!nse) - return -1; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - return -2; - } - - if (nse->dialect != NS2_DIALECT_SNS) { - return -2; - } - - if (!nse->bss_sns_fi) - return -1; - - nsvc = gprs_ns2_ip_bind_connect(bind, nse, remote); - if (!nsvc) - return -1; - - return ns2_sns_bss_fsm_start(nse, nsvc, remote); -} - /*! Find NS-VC for given socket address. * \param[in] nse NS Entity in which to search * \param[in] sockaddr socket address to search for diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 3ef0906..5a090c2 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -290,13 +290,15 @@ 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); +int ns2_ip_count_bind(struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote); +struct gprs_ns2_vc_bind *ns2_ip_get_bind_by_offset(struct gprs_ns2_inst *nsi, + struct osmo_sockaddr *remote, + int offset); /* sns */ int gprs_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); -int ns2_sns_bss_fsm_start(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, - const struct osmo_sockaddr *remote); void ns2_sns_free_nsvc(struct gprs_ns2_vc *nsvc); /* vc */ diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index d13d920..718d075 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -69,7 +69,7 @@ }; enum gprs_sns_event { - GPRS_SNS_EV_START, + GPRS_SNS_EV_SELECT_ENDPOINT, /*!< Select a SNS endpoint from the list */ GPRS_SNS_EV_SIZE, GPRS_SNS_EV_SIZE_ACK, GPRS_SNS_EV_CONFIG, @@ -82,7 +82,7 @@ }; static const struct value_string gprs_sns_event_names[] = { - { GPRS_SNS_EV_START, "START" }, + { GPRS_SNS_EV_SELECT_ENDPOINT, "SELECT_ENDPOINT" }, { GPRS_SNS_EV_SIZE, "SIZE" }, { GPRS_SNS_EV_SIZE_ACK, "SIZE_ACK" }, { GPRS_SNS_EV_CONFIG, "CONFIG" }, @@ -95,14 +95,26 @@ { 0, NULL } }; +struct sns_endpoint { + struct llist_head list; + struct osmo_sockaddr saddr; +}; + struct ns2_sns_state { struct gprs_ns2_nse *nse; enum ns2_sns_type ip; - /* initial connection. the initial connection will be terminated - * in configured state or moved into NSE if valid */ - struct osmo_sockaddr initial; + /* holds the list of initial SNS endpoints */ + struct llist_head sns_endpoints; + /* prevent recursive reselection */ + bool reselection_running; + + /* The current initial SNS endpoints. + * The initial connection will be moved into the NSE + * if configured via SNS. Otherwise it will be removed + * in configured state. */ + struct sns_endpoint *initial; /* all SNS PDU will be sent over this nsvc */ struct gprs_ns2_vc *sns_nsvc; @@ -207,7 +219,7 @@ return NULL; gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; - return &gss->initial; + return &gss->initial->saddr; } /*! called when a nsvc is beeing freed */ @@ -646,16 +658,7 @@ static void ns2_sns_st_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, void *data) { - struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); - struct gprs_ns2_inst *nsi = nse->nsi; - - switch (event) { - case GPRS_SNS_EV_START: - osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); - break; - default: - OSMO_ASSERT(0); - } + /* empty state - SNS Select will start by all action */ } static void ns2_sns_st_size(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -681,18 +684,133 @@ } } +/* setup all dynamic SNS settings, create a new nsvc and send the SIZE */ static void ns2_sns_st_size_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; + struct gprs_ns_ie_ip4_elem *ip4_elems; + struct gprs_ns_ie_ip6_elem *ip6_elems; + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_inst *nsi = gss->nse->nsi; + struct osmo_sockaddr *remote; + const struct osmo_sockaddr *sa; + struct osmo_sockaddr local; + int count; + /* 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); + /* no initial available */ + if (!gss->initial) + return; + + remote = &gss->initial->saddr; + + /* count how many bindings are available (only UDP binds) */ + count = ns2_ip_count_bind(nsi, remote); + if (count == 0) { + /* TODO: logging */ + return; + } + + bind = ns2_ip_get_bind_by_offset(nsi, remote, 0); + if (!bind) { + return; + } + + /* setup the NSVC */ + if (!gss->sns_nsvc) { + gss->sns_nsvc = gprs_ns2_ip_bind_connect(bind, gss->nse, remote); + if (!gss->sns_nsvc) + return; + gss->sns_nsvc->sns_only = true; + } + + switch (gss->ip) { + case IPv4: + ip4_elems = talloc_zero_size(fi, sizeof(struct gprs_ns_ie_ip4_elem) * count); + if (!ip4_elems) + return; + + gss->ip4_local = ip4_elems; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!gprs_ns2_is_ip_bind(bind)) + continue; + + sa = gprs_ns2_ip_bind_sockaddr(bind); + if (!sa) + continue; + + if (sa->u.sas.ss_family != AF_INET) + continue; + + /* check if this is an specific bind */ + if (sa->u.sin.sin_addr.s_addr == 0) { + if (osmo_sockaddr_local_ip(&local, remote)) + continue; + + ip4_elems->ip_addr = local.u.sin.sin_addr.s_addr; + } else { + ip4_elems->ip_addr = sa->u.sin.sin_addr.s_addr; + } + + ip4_elems->udp_port = sa->u.sin.sin_port; + ip4_elems->sig_weight = 2; + ip4_elems->data_weight = 1; + ip4_elems++; + } + + gss->num_ip4_local = count; + gss->num_max_ip4_remote = 4; + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip4_remote * 4, 8); + break; + case IPv6: + /* IPv6 */ + ip6_elems = talloc_zero_size(fi, sizeof(struct gprs_ns_ie_ip6_elem) * count); + if (!ip6_elems) + return; + + gss->ip6_local = ip6_elems; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!gprs_ns2_is_ip_bind(bind)) + continue; + + sa = gprs_ns2_ip_bind_sockaddr(bind); + if (!sa) + continue; + + if (sa->u.sas.ss_family != AF_INET6) + continue; + + /* check if this is an specific bind */ + if (IN6_IS_ADDR_UNSPECIFIED(&sa->u.sin6.sin6_addr)) { + if (osmo_sockaddr_local_ip(&local, remote)) + continue; + + ip6_elems->ip_addr = local.u.sin6.sin6_addr; + } else { + ip6_elems->ip_addr = sa->u.sin6.sin6_addr; + } + + ip6_elems->udp_port = sa->u.sin.sin_port; + ip6_elems->sig_weight = 2; + ip6_elems->data_weight = 1; + + ip6_elems++; + } + gss->num_ip6_local = count; + gss->num_max_ip6_remote = 4; + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * 4, 8); + break; + } + if (gss->num_max_ip4_remote > 0) ns2_tx_sns_size(gss->sns_nsvc, true, gss->num_max_nsvcs, gss->num_max_ip4_remote, -1); else ns2_tx_sns_size(gss->sns_nsvc, true, gss->num_max_nsvcs, -1, gss->num_max_ip6_remote); - } static void ns2_sns_st_config_bss(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -1130,7 +1248,7 @@ static const struct osmo_fsm_state ns2_sns_bss_states[] = { [GPRS_SNS_ST_UNCONFIGURED] = { - .in_event_mask = S(GPRS_SNS_EV_START), + .in_event_mask = 0, .out_state_mask = S(GPRS_SNS_ST_SIZE), .name = "UNCONFIGURED", .action = ns2_sns_st_unconfigured, @@ -1194,17 +1312,46 @@ static void ns2_sns_st_all_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) { + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); /* reset when receiving GPRS_SNS_EV_NO_NSVC */ - osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nse->nsi->timeout[NS_TOUT_TSNS_PROV], 3); + switch (event) { + case GPRS_SNS_EV_NO_NSVC: + if (!gss->reselection_running) + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + break; + case GPRS_SNS_EV_SELECT_ENDPOINT: + /* tear down previous state + * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */ + gss->reselection_running = true; + gprs_ns2_free_nsvcs(nse); + + /* 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); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 3); + return; + } else if (!gss->initial) + gss->initial = llist_first_entry(&gss->sns_endpoints, struct sns_endpoint, list); + else if (gss->initial->list.next == &gss->sns_endpoints) /* last entry, continue with first */ + gss->initial = llist_first_entry(&gss->sns_endpoints, struct sns_endpoint, list); + else /* next element is an entry */ + gss->initial = llist_entry(gss->initial->list.next, struct sns_endpoint, list); + + gss->reselection_running = false; + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nse->nsi->timeout[NS_TOUT_TSNS_PROV], 1); + break; + } } static struct osmo_fsm gprs_ns2_sns_bss_fsm = { .name = "GPRS-NS2-SNS-BSS", .states = ns2_sns_bss_states, .num_states = ARRAY_SIZE(ns2_sns_bss_states), - .allstate_event_mask = S(GPRS_SNS_EV_NO_NSVC), + .allstate_event_mask = S(GPRS_SNS_EV_NO_NSVC) | + S(GPRS_SNS_EV_SELECT_ENDPOINT), .allstate_action = ns2_sns_st_all_action, .cleanup = NULL, .timer_cb = ns2_sns_fsm_bss_timer_cb, @@ -1241,134 +1388,6 @@ return NULL; } -/*! Start an IP-SNS FSM. - * \param[in] nse NS Entity whose IP-SNS FSM shall be started - * \param[in] nsvc Initial NS-VC - * \param[in] remote remote (SGSN) address - * \returns 0 on success; negative on error */ -int ns2_sns_bss_fsm_start(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, - const struct osmo_sockaddr *remote) -{ - struct osmo_fsm_inst *fi = nse->bss_sns_fi; - struct ns2_sns_state *gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; - struct gprs_ns_ie_ip4_elem *ip4_elems; - struct gprs_ns_ie_ip6_elem *ip6_elems; - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_inst *nsi = nse->nsi; - const struct osmo_sockaddr *sa; - struct osmo_sockaddr local; - - gss->ip = remote->u.sa.sa_family == AF_INET ? IPv4 : IPv6; - - gss->initial = *remote; - gss->sns_nsvc = nsvc; - nsvc->sns_only = true; - - /* count how many bindings are available (only UDP binds) */ - int count = 0; - llist_for_each_entry(bind, &nsi->binding, list) { - if (!gprs_ns2_is_ip_bind(bind)) - continue; - - sa = gprs_ns2_ip_bind_sockaddr(bind); - if (!sa) - continue; - - if (sa->u.sa.sa_family == remote->u.sa.sa_family) - count++; - } - - if (count == 0) { - /* TODO: logging */ - goto err; - } - - switch (gss->ip) { - case IPv4: - ip4_elems = talloc_zero_size(fi, sizeof(struct gprs_ns_ie_ip4_elem) * count); - if (!ip4_elems) - goto err; - - gss->ip4_local = ip4_elems; - - llist_for_each_entry(bind, &nsi->binding, list) { - if (!gprs_ns2_is_ip_bind(bind)) - continue; - - sa = gprs_ns2_ip_bind_sockaddr(bind); - if (!sa) - continue; - - if (sa->u.sas.ss_family != AF_INET) - continue; - - /* check if this is an specific bind */ - if (sa->u.sin.sin_addr.s_addr == 0) { - if (osmo_sockaddr_local_ip(&local, remote)) - continue; - - ip4_elems->ip_addr = local.u.sin.sin_addr.s_addr; - } else { - ip4_elems->ip_addr = sa->u.sin.sin_addr.s_addr; - } - - ip4_elems->udp_port = sa->u.sin.sin_port; - ip4_elems->sig_weight = 2; - ip4_elems->data_weight = 1; - ip4_elems++; - } - - gss->num_ip4_local = count; - gss->num_max_ip4_remote = 4; - gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip4_remote * 4, 8); - break; - case IPv6: - /* IPv6 */ - ip6_elems = talloc_zero_size(fi, sizeof(struct gprs_ns_ie_ip6_elem) * count); - if (!ip6_elems) - goto err; - - gss->ip6_local = ip6_elems; - - llist_for_each_entry(bind, &nsi->binding, list) { - if (!gprs_ns2_is_ip_bind(bind)) - continue; - - sa = gprs_ns2_ip_bind_sockaddr(bind); - if (!sa) - continue; - - if (sa->u.sas.ss_family != AF_INET6) - continue; - - /* check if this is an specific bind */ - if (IN6_IS_ADDR_UNSPECIFIED(&sa->u.sin6.sin6_addr)) { - if (osmo_sockaddr_local_ip(&local, remote)) - continue; - - ip6_elems->ip_addr = local.u.sin6.sin6_addr; - } else { - ip6_elems->ip_addr = sa->u.sin6.sin6_addr; - } - - ip6_elems->udp_port = sa->u.sin.sin_port; - ip6_elems->sig_weight = 2; - ip6_elems->data_weight = 1; - - ip6_elems++; - } - gss->num_ip6_local = count; - gss->num_max_ip6_remote = 4; - gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * 4, 8); - break; - } - - return osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_START, NULL); - -err: - return -1; -} - /*! main entry point for receiving SNS messages from the network. * \param[in] nsvc NS-VC on which the message was received * \param[in] msg message buffer of the IP-SNS message @@ -1490,6 +1509,113 @@ } } +static struct sns_endpoint *ns2_get_sns_endpoint(struct ns2_sns_state *state, + const struct osmo_sockaddr *saddr) +{ + struct sns_endpoint *endpoint; + + llist_for_each_entry(endpoint, &state->sns_endpoints, list) { + if (!osmo_sockaddr_cmp(saddr, &endpoint->saddr)) + return endpoint; + } + + return NULL; +} + +/*! gprs_ns2_sns_add_endpoint + * \param[in] nse + * \param[in] sockaddr + * \return + */ +int gprs_ns2_sns_add_endpoint(struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *saddr) +{ + struct ns2_sns_state *gss; + struct sns_endpoint *endpoint; + bool do_selection = false; + + if (nse->ll != GPRS_NS2_LL_UDP) { + return -EINVAL; + } + + if (nse->dialect != NS2_DIALECT_SNS) { + return -EINVAL; + } + + gss = nse->bss_sns_fi->priv; + + if (ns2_get_sns_endpoint(gss, saddr)) + return -EADDRINUSE; + + endpoint = talloc_zero(nse->bss_sns_fi->priv, struct sns_endpoint); + if (!endpoint) + return -ENOMEM; + + endpoint->saddr = *saddr; + if (llist_empty(&gss->sns_endpoints)) + do_selection = true; + + llist_add_tail(&endpoint->list, &gss->sns_endpoints); + if (do_selection) + osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + + return 0; +} + +/*! gprs_ns2_sns_del_endpoint + * \param[in] nse + * \param[in] sockaddr + * \return 0 on success, otherwise < 0 + */ +int gprs_ns2_sns_del_endpoint(struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *saddr) +{ + struct ns2_sns_state *gss; + struct sns_endpoint *endpoint; + + if (nse->ll != GPRS_NS2_LL_UDP) { + return -EINVAL; + } + + if (nse->dialect != NS2_DIALECT_SNS) { + return -EINVAL; + } + + gss = nse->bss_sns_fi->priv; + endpoint = ns2_get_sns_endpoint(gss, saddr); + if (!endpoint) + return -ENOENT; + + /* if this is an unused SNS endpoint it's done */ + if (gss->initial != endpoint) { + llist_del(&endpoint->list); + talloc_free(endpoint); + return 0; + } + + /* 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." + "Closing all NS-VC and restart SNS-SIZE procedure" + "with a remaining SNS endpoint.\n"); + + /* Continue with the next endpoint in the list. + * Special case if the endpoint is at the start or end of the list */ + if (endpoint->list.prev == &gss->sns_endpoints || + endpoint->list.next == &gss->sns_endpoints) + gss->initial = NULL; + else + gss->initial = llist_entry(endpoint->list.next->prev, + struct sns_endpoint, + list); + + llist_del(&endpoint->list); + gprs_ns2_free_nsvcs(nse); + talloc_free(endpoint); + + return 0; +} + /* initialize osmo_ctx on main tread */ static __attribute__((constructor)) void on_dso_load_ctx(void) { diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index c0ab5f5..69ea83f 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -513,3 +513,52 @@ return rc; } + +/*! Count UDP binds compatible with remote */ +int ns2_ip_count_bind(struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *sa; + int count = 0; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!gprs_ns2_is_ip_bind(bind)) + continue; + + sa = gprs_ns2_ip_bind_sockaddr(bind); + if (!sa) + continue; + + if (sa->u.sa.sa_family == remote->u.sa.sa_family) + count++; + } + + return count; +} + +/* return the matching bind by offset */ +struct gprs_ns2_vc_bind *ns2_ip_get_bind_by_offset(struct gprs_ns2_inst *nsi, + struct osmo_sockaddr *remote, + int offset) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *sa; + int i = 0; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!gprs_ns2_is_ip_bind(bind)) + continue; + + sa = gprs_ns2_ip_bind_sockaddr(bind); + if (!sa) + continue; + + if (sa->u.sa.sa_family == remote->u.sa.sa_family) { + if (offset == i) + return bind; + i++; + } + } + + return NULL; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 7e7971a..7fcac6a 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -111,7 +111,6 @@ gprs_ns2_ip_connect; gprs_ns2_ip_connect2; gprs_ns2_ip_connect_inactive; -gprs_ns2_ip_connect_sns; gprs_ns2_ip_vc_local; gprs_ns2_ip_vc_remote; gprs_ns2_ip_vc_equal; @@ -132,6 +131,8 @@ gprs_ns2_recv_prim; gprs_ns2_reset_persistent_nsvcs; gprs_ns2_start_alive_all_nsvcs; +gprs_ns2_sns_add_endpoint; +gprs_ns2_sns_del_endpoint; gprs_ns2_vty_create; gprs_ns2_vty_init; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 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 Dec 7 06:41:59 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:59 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: use different binds for the initial connection References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21574 ) Change subject: gprs_ns2_sns: use different binds for the initial connection ...................................................................... gprs_ns2_sns: use different binds for the initial connection In case the first bind is not working the SNS would never build a succesful connection to the SGSN. Iterate over all binds by using an offset. Instead of tracking the binds use an offset instead of a direct pointer. This might result in skipping the order of the next bind. Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb --- M src/gb/gprs_ns2_sns.c 1 file changed, 19 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/21574/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 718d075..e294fee 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -117,6 +117,8 @@ struct sns_endpoint *initial; /* all SNS PDU will be sent over this nsvc */ struct gprs_ns2_vc *sns_nsvc; + /* iterate over the binds after all remote has been tested */ + int bind_offset; /* local configuration to send to the remote end */ struct gprs_ns_ie_ip4_elem *ip4_local; @@ -714,9 +716,15 @@ return; } - bind = ns2_ip_get_bind_by_offset(nsi, remote, 0); + bind = ns2_ip_get_bind_by_offset(nsi, remote, gss->bind_offset); if (!bind) { - return; + if (gss->bind_offset) { + gss->bind_offset = 0; + bind = ns2_ip_get_bind_by_offset(nsi, remote, gss->bind_offset); + } + + if (!bind) + return; } /* setup the NSVC */ @@ -1333,12 +1341,18 @@ ns2_prim_status_ind(gss->nse, NULL, 0, NS_AFF_CAUSE_SNS_NO_ENDPOINTS); osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 3); return; - } else if (!gss->initial) + } else if (!gss->initial) { gss->initial = llist_first_entry(&gss->sns_endpoints, struct sns_endpoint, list); - else if (gss->initial->list.next == &gss->sns_endpoints) /* last entry, continue with first */ + gss->bind_offset = 0; + } else if (gss->initial->list.next == &gss->sns_endpoints) { + /* last entry, continue with first */ gss->initial = llist_first_entry(&gss->sns_endpoints, struct sns_endpoint, list); - else /* next element is an entry */ + gss->bind_offset++; + gss->bind_offset %= ns2_ip_count_bind(nse->nsi, &gss->initial->saddr); + } else { + /* next element is an entry */ gss->initial = llist_entry(gss->initial->list.next, struct sns_endpoint, list); + } gss->reselection_running = false; osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nse->nsi->timeout[NS_TOUT_TSNS_PROV], 1); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb Gerrit-Change-Number: 21574 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 Dec 7 06:41:59 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:59 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: introduce SNS Size/Config retries References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21575 ) Change subject: gprs_ns2_sns: introduce SNS Size/Config retries ...................................................................... gprs_ns2_sns: introduce SNS Size/Config retries According to 3GPP Size and Config procedure can have retries in case the timeout of the procedure runs out. Change-Id: I00e9023a6e7adc6ad48f4016fcaef189ac8b353e --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 3 files changed, 19 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/75/21575/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 9947e59..ac12c2c 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1153,6 +1153,8 @@ nsi->timeout[NS_TOUT_TNS_ALIVE] = 3; nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES] = 10; nsi->timeout[NS_TOUT_TSNS_PROV] = 3; /* 1..10 */ + nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES] = 3; + nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES] = 3; return nsi; } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 5a090c2..d92481f 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -15,10 +15,8 @@ struct gprs_ns2_vc_driver; struct gprs_ns2_vc_bind; - - -#define NS_TIMERS_COUNT 8 -#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov)" +#define NS_TIMERS_COUNT 10 +#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-prov-retries)" #define NS_TIMERS_HELP \ "(un)blocking Timer (Tns-block) timeout\n" \ "(un)blocking Timer (Tns-block) number of retries\n" \ @@ -27,7 +25,9 @@ "Test Timer (Tns-test) timeout\n" \ "Alive Timer (Tns-alive) timeout\n" \ "Alive Timer (Tns-alive) number of retries\n" \ - "SNS Provision Timer (Tsns-prov) timeout\n" + "SNS Provision Timer (Tsns-prov) timeout\n" \ + "SNS Size number of retries\n" \ + "SNS Config number of retries\n" \ /* Educated guess - LLC user payload is 1500 bytes plus possible headers */ #define NS_ALLOC_SIZE 3072 @@ -42,6 +42,8 @@ NS_TOUT_TNS_ALIVE, NS_TOUT_TNS_ALIVE_RETRIES, NS_TOUT_TSNS_PROV, + NS_TOUT_TSNS_SIZE_RETRIES, + NS_TOUT_TSNS_CONFIG_RETRIES, }; enum nsvc_timer_mode { diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index e294fee..9a5f933 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -119,6 +119,8 @@ struct gprs_ns2_vc *sns_nsvc; /* iterate over the binds after all remote has been tested */ int bind_offset; + /* timer N */ + int N; /* local configuration to send to the remote end */ struct gprs_ns_ie_ip4_elem *ip4_local; @@ -1304,14 +1306,22 @@ static int ns2_sns_fsm_bss_timer_cb(struct osmo_fsm_inst *fi) { + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); struct gprs_ns2_inst *nsi = nse->nsi; + gss->N++; switch (fi->T) { case 1: + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES]) + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); break; case 2: + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); break; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e9023a6e7adc6ad48f4016fcaef189ac8b353e Gerrit-Change-Number: 21575 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 Dec 7 06:41:59 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 7 Dec 2020 06:41:59 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2_vty2: improve ip-sns implementation References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21576 ) Change subject: WIP: gprs_ns2_vty2: improve ip-sns implementation ...................................................................... WIP: gprs_ns2_vty2: improve ip-sns implementation Change-Id: I741f21c36f1074e99304d51d96e1c00be24cf3c6 --- M src/gb/gprs_ns2_vty2.c 1 file changed, 26 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/76/21576/1 diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 5604183..fa6a7c4 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1007,6 +1007,7 @@ struct gprs_ns2_nse *nse = vty->index; bool dialect_modified = false; bool ll_modified = false; + int rc; const char *bindgroup = argv[0]; struct osmo_sockaddr_str remote_str; @@ -1043,9 +1044,17 @@ goto err; } - /* TODO add */ - - return CMD_SUCCESS; + 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) @@ -1070,6 +1079,7 @@ struct osmo_sockaddr_str remote_str; /* argv[2] */ struct osmo_sockaddr remote; uint16_t port = atoi(argv[3]); + int rc; if (nse->ll != GPRS_NS2_LL_UDP) { vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); @@ -1098,6 +1108,19 @@ return CMD_WARNING; } + rc = gprs_ns2_sns_del_endpoint(nse, &remote); + if (rc) { + vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + /* TODO: + * - check if sns has endpoints + * - if !empty -> CMD SUCCESS + * - remove sns fsm + * - set to LL/DIALECT to undef + */ + if (llist_empty(&nse->nsvc)) { nse->ll = GPRS_NS2_LL_UNDEF; nse->dialect = NS2_DIALECT_UNDEF; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I741f21c36f1074e99304d51d96e1c00be24cf3c6 Gerrit-Change-Number: 21576 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 Dec 7 09:45:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 09:45:55 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Rename gbproxy_peer to gbproxy_bvc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21548 ) Change subject: gb_proxy: Rename gbproxy_peer to gbproxy_bvc ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iae01067282a6401f6af4cab731202872d2cdb080 Gerrit-Change-Number: 21548 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 09:45: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 Dec 7 09:52:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 09:52:10 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21549 ) Change subject: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5accec0c70c01b88927ea07beba6f6488bd9d5a Gerrit-Change-Number: 21549 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 09:52: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 Dec 7 09:54:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 09:54:47 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: convert bss_nses from llist_head to hashtable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21550 ) Change subject: gbproxy: convert bss_nses from llist_head to hashtable ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idbb6a362332bb6e3ce22102e7409ae80d0980f44 Gerrit-Change-Number: 21550 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 09: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 Dec 7 10:00:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:00:50 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21544 ) Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21544/1/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/21544/1/src/gb/gprs_bssgp_util.c at 209 PS1, Line 209: static const uint8_t crt_bss_pfc_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }; > I'm not sure I understand your suggestion. [?] #define DECLR_TLV_IE(name) static const uint8_t name_ies #define DEF_TLV_IE(name, str) [name] = MSG_DEF(str, name_ies), Then, for instance: DECLR_TLV_IE(BSSGP_PDUT_DL_UNITDATA) = { BSSGP_IE_PDU_LIFETIME }; ... msg_def = { DEF_TLV_IE(BSSGP_PDUT_DL_UNITDATA, "DL-UNITDATA"), ... Just as an idea, not saying it needs to be done this way. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:00:50 +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 Dec 7 10:02:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:02:22 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c at 664 PS5, Line 664: */ > Done It is marked as "Done" but it's not done? same below. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 7 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:02:22 +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 Dec 7 10:03:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:03:26 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: cosmetic: Use function rather than open-coding is_sgsn In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21559 ) Change subject: gb_proxy: cosmetic: Use function rather than open-coding is_sgsn ...................................................................... Patch Set 1: Code-Review+1 Not sure what's the gain here but ok. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id41d74ebd41e5084377a986f4a1acd53cae12bc1 Gerrit-Change-Number: 21559 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 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 Dec 7 10:08:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:08:27 +0000 Subject: Change in osmo-gsm-tester[master]: wait_no_raise(): set default args In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21508 ) Change subject: wait_no_raise(): set default args ...................................................................... Patch Set 2: Yes I added it apparently a while ago but time has shown for maintainability/compatibility reasons it's better having as less implementation details as possible available to the tests. In fact no test is using that API so far and I think it can perfectly continue that way :) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21508 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: I225a175b25c5c148ef5e23d2184f5d1aa2f4188a Gerrit-Change-Number: 21508 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:08: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 Dec 7 10:09:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:09:22 +0000 Subject: Change in osmo-gsm-tester[master]: configure fixed ARFCN per bts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 ) Change subject: configure fixed ARFCN per bts ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/src/osmo_gsm_tester/core/schema.py File src/osmo_gsm_tester/core/schema.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/src/osmo_gsm_tester/core/schema.py at 381 PS2, Line 381: 'ip_address[].addr': IPV4, > i think we still need to assign varying IP addresses to CN components depending on how many of them [?] Yes, but there's "run_node" objects now, which also allow running stuff on remote nodes. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 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: I0a6c60544226f4261f9106013478d6a27fc39f38 Gerrit-Change-Number: 21511 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:09:22 +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 Dec 7 10:19:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:19:33 +0000 Subject: Change in osmo-gsm-tester[master]: configure fixed ARFCN per bts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 ) Change subject: configure fixed ARFCN per bts ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/sysmocom/resources.conf.prod File sysmocom/resources.conf.prod: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/sysmocom/resources.conf.prod at 37 PS2, Line 37: - arfcn: 870 > erm i don't follow ... [?] See sysmocom/default.conf: """ bsc_bts: ... trx_list: arfcn: 868 .. arfcn: 872 ... """ So all BTS are configured by default to use 868 on first TRX and 872 on second TRX. As an interesting detail, you can see that then all BTS get config for 2 TRXs by default, but the bts.py base code trims the trx_list to be of size "num_trx", which is the attribute defining the amount of TRX to use. Hence, you should configure the 2nd TRX here in this line (where I'm writing this comment). Something like: """ trx_list: - arfcn: 870 - arfcn: 874 """ BTW, also take into account for the nanoBTS on the 900 band we used to apply some arfcns manually (to overcome the ARFCN object limitations and selections, since the 1800 band cannot be used there). Furthermore, take into account that one iirc has 2 nanoBTS intercconected, which means is basically a 2-TRX nanoBTS (so you'll also need to assign 2 ARFCN to it). To understand what I mean, see: src/osmo_gsm_tester/obj/bts_nanobts.py:73: config.overlay(trx_list[trx_i], { 'arfcn' : str(531 + trx_i * 2) }) src/osmo_gsm_tester/obj/bts_nanobts.py:76: config.overlay(trx_list[trx_i], { 'arfcn' : str(50 + trx_i * 2) }) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 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: I0a6c60544226f4261f9106013478d6a27fc39f38 Gerrit-Change-Number: 21511 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:19:33 +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 Dec 7 10:23:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:23:40 +0000 Subject: Change in osmo-gsm-tester[master]: add osmo_vty.py In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 ) Change subject: add osmo_vty.py ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py File src/osmo_gsm_tester/obj/osmo_vty.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py at 44 PS1, Line 44: def connect(self): > ok, will add. [?] You sed you'd add but I don't see the comments with (PROTECTED, PUBLIC - INTERNAL API, PUBLIC (test API included)) and each function under its corresponding section. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/3/src/osmo_gsm_tester/obj/osmo_vty.py File src/osmo_gsm_tester/obj/osmo_vty.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/3/src/osmo_gsm_tester/obj/osmo_vty.py at 64 PS3, Line 64: self.sck = None is socket closed whenever you set it to None? I'd prefer having an explicitly sck.close() here. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 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: I7c17b143b7c690b8c4105ee7c6272670046fa91d Gerrit-Change-Number: 21504 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:23:40 +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 Dec 7 10:24:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:24:29 +0000 Subject: Change in osmo-gsm-tester[master]: add bsc.vty() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 ) Change subject: add bsc.vty() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 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: I06652db04fc9e48748f3c2196334f5352e9cc48a Gerrit-Change-Number: 21505 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 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 Dec 7 10:25:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:25:52 +0000 Subject: Change in osmo-gsm-tester[master]: bsc: add active lchan matching via vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 ) Change subject: bsc: add active lchan matching via vty ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 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: I03df8f3ae2ee47930eee311c7ce104c36dbb3154 Gerrit-Change-Number: 21506 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:25: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 Dec 7 10:34:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:34:00 +0000 Subject: Change in osmo-gsm-tester[master]: process: add get_output_mark() and grep_output() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 ) Change subject: process: add get_output_mark() and grep_output() ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512/2/src/osmo_gsm_tester/core/process.py File src/osmo_gsm_tester/core/process.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512/2/src/osmo_gsm_tester/core/process.py at 388 PS2, Line 388: def get_stdout_mark(self): > i don't see any race, really. it's not like the stdout is being "piped away", this is process. [?] Can you write here an example on how to use the get_output_mark() API? Only use I see is a test doing: output = proc.get_stdout() mark = proc.get_stdout_mark() check_output(output) output = proc.get_stdout(since_mark=mark) Which is racy, because in between proc.get_stdout and proc.get_stdout_mark() calls the process may have written something to the file and that content you'll never get because at the time you call get_stdout_mark then you start looking only from last byte there. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 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: Ib6569f7486e9d961bd79a5f24232e58d053667a1 Gerrit-Change-Number: 21512 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:34:00 +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 Dec 7 10:44:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:44:07 +0000 Subject: Change in osmo-gsm-tester[master]: add test.report_fragment() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 ) Change subject: add test.report_fragment() ...................................................................... Patch Set 3: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/3//COMMIT_MSG at 14 PS3, Line 14: handover.py__01_bts0_started PASSED The separator is / instead of __ now right? https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/3/src/osmo_gsm_tester/core/test.py File src/osmo_gsm_tester/core/test.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/3/src/osmo_gsm_tester/core/test.py at 171 PS3, Line 171: if isinstance(lt, log.FileLogTarget): This looks not related to this commit? Is it a separate fix? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 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: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 Gerrit-Change-Number: 21516 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:44:07 +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 Dec 7 10:46:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:46:50 +0000 Subject: Change in osmo-gsm-tester[master]: add handover_2G suite, with handover.py test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 ) Change subject: add handover_2G suite, with handover.py test ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py File sysmocom/suites/handover_2G/handover.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py at 91 PS2, Line 91: with bsc.ctrl() as bsc_ctrl: > the entire point of 'with' is that the CTRL socket is also closed again when the test is done, whate [?] I'd use testenv.register_for_cleanup() and add a "cleanup(self)" method to the object, that's the usual way. I'm not sure how well does the "with" functionality play together with exceptions being thrown. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 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: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 Gerrit-Change-Number: 21523 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:46:50 +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 Dec 7 10:50:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:50:23 +0000 Subject: Change in osmo-gsm-tester[master]: add handover_2G suite, with handover.py test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 ) Change subject: add handover_2G suite, with handover.py test ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py File sysmocom/suites/handover_2G/handover.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py at 91 PS2, Line 91: with bsc.ctrl() as bsc_ctrl: > I'd use testenv. [?] BTW, I'd do that ofc inside the obj class, so test doesn't need to care about those details. That way you don't end up having tests full of indented with statements. You simply do: bsc_vty = bsc.vty(), and use bsc_vty, and testenv takes care of cleaning up everything at the end of test, no matter if it passed or failed. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 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: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 Gerrit-Change-Number: 21523 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:50:23 +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 Dec 7 10:53:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:53:38 +0000 Subject: Change in osmo-gsm-tester[master]: log reserved resources In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 ) Change subject: log reserved resources ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/2/selftest/suite_test/suite_test.ok File selftest/suite_test/suite_test.ok: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/2/selftest/suite_test/suite_test.ok at 148 PS2, Line 148: tst test_suite: RESERVED RESOURCES for test_suite: > Looks like we can indeed drop the below DBG one, but these few lines on the normal log are very usef [?] ACK https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/2/selftest/suite_test/suite_test.ok at 158 PS2, Line 158: tst test_suite: DBG: reserved resources for test_suite: > we can drop this DBG one. ACK -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 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: Ic23556eafee654c93d13c5ef405028da09bd51d7 Gerrit-Change-Number: 21510 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:53:38 +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 Dec 7 10:55:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:55:52 +0000 Subject: Change in osmo-gsm-tester[master]: log reserved resources In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 ) Change subject: log reserved resources ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/3/src/osmo_gsm_tester/core/suite.py File src/osmo_gsm_tester/core/suite.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510/3/src/osmo_gsm_tester/core/suite.py at 164 PS3, Line 164: self.log('RESERVED RESOURCES for ' + self.suite_name() + ':', '\n' + self.reserved_resources.summary_str()) why 2 parameters instead of 1? I have the feeling this is adding that extra space at the end of first line we see in selftests? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 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: Ic23556eafee654c93d13c5ef405028da09bd51d7 Gerrit-Change-Number: 21510 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:55: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 Dec 7 10:56:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:56:43 +0000 Subject: Change in osmo-gsm-tester[master]: OsmoCtrl cleanup: get_var(), set_var(), get_trap() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21564 ) Change subject: OsmoCtrl cleanup: get_var(), set_var(), get_trap() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21564 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: Id561e5a55d8057a997a8ec9e7fa6f94840194df1 Gerrit-Change-Number: 21564 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10: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 Mon Dec 7 10:56:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:56:57 +0000 Subject: Change in osmo-gsm-tester[master]: process output: do not leak ANSI colors past logged stdout/stderr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21565 ) Change subject: process output: do not leak ANSI colors past logged stdout/stderr ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21565 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: Ib9ac1eea4a12d6d43ac8614491f016bbe9ca17b1 Gerrit-Change-Number: 21565 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10:56: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 Dec 7 10:59:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 10:59:32 +0000 Subject: Change in osmo-gsm-tester[master]: add option osmo-gsm-tester.py --suites-file my-suites-listing.conf In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21566 ) Change subject: add option osmo-gsm-tester.py --suites-file my-suites-listing.conf ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21566 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: If896ac84d02a275deda2f20a93c29312df128ebb Gerrit-Change-Number: 21566 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 10: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 Mon Dec 7 11:00:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:00:37 +0000 Subject: Change in osmo-gsm-tester[master]: OsmoCtrl: use one global common counter for CTRL IDs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21567 ) Change subject: OsmoCtrl: use one global common counter for CTRL IDs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21567 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: I44c51f4fb5beb6cedf98ea0d6684a24c6aa418c7 Gerrit-Change-Number: 21567 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 11:00: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 Dec 7 11:11:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:11:18 +0000 Subject: Change in osmo-bts[master]: power_control: implement BS (Downlink) Power Control In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21447 ) Change subject: power_control: implement BS (Downlink) Power Control ...................................................................... Patch Set 5: Code-Review+1 (4 comments) https://gerrit.osmocom.org/c/osmo-bts/+/21447/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/21447/5//COMMIT_MSG at 27 PS5, Line 27: The only difference is that RxQual values higher than 0 would Can you describe this paragraphs a bit better (as a comment here it's fine), I don't fully get what you mean here. https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/power_control.c at 283 PS5, Line 283: * because empty lines are free! ;) https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/power_control.c at 295 PS5, Line 295: new = state->current - delta; better use a another variable name (C++, syntax highlight, etc.) https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/rsl.c at 1162 PS5, Line 1162: lchan->bs_power_ctrl.max = 2 * 15; where does this come from? 2 * 15 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Gerrit-Change-Number: 21447 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 11:11: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 Mon Dec 7 11:11:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:11:54 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct bts_power_ctrl_params' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21499 ) Change subject: power_control: clarify units in 'struct bts_power_ctrl_params' ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Gerrit-Change-Number: 21499 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 11:11: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 Dec 7 11:13:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:13:02 +0000 Subject: Change in osmo-bts[master]: power_control: make raise/lower step limitation configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21568 ) Change subject: power_control: make raise/lower step limitation configurable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Gerrit-Change-Number: 21568 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 11: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 Mon Dec 7 11:15:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:15:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21555 ) Change subject: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e7da9451458505c1c2d73836dd916aee7704fda Gerrit-Change-Number: 21555 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 11: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 Mon Dec 7 11:16:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:16:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: dynamic calculate the maximum NS-VCs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21556 ) Change subject: gprs_ns2_sns: dynamic calculate the maximum NS-VCs ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iae859dc504716fd6f705e72db5fc293b4b3298e7 Gerrit-Change-Number: 21556 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 11:16: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 Dec 7 11:16:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:16:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21569 ) Change subject: gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4af01293ff0ba8629e1426b1ba92f72f0520c7f0 Gerrit-Change-Number: 21569 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 11:16: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 Mon Dec 7 11:17:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:17:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: fix whitespaces and superflous comment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21570 ) Change subject: gprs_ns2_sns: fix whitespaces and superflous comment ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ica0033c88cad71827ad843e92ccd54663426de23 Gerrit-Change-Number: 21570 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 11: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 Mon Dec 7 11:52:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:52:41 +0000 Subject: Change in docker-playground[master]: Rename centos-repo-install-test/Dockerfile to centos8 References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21577 ) Change subject: Rename centos-repo-install-test/Dockerfile to centos8 ...................................................................... Rename centos-repo-install-test/Dockerfile to centos8 We are using centos8 as distro name instead of centos everywher else and jenkins-common.sh are expecting that. Related: OS#4888 Change-Id: I05b012abced5b812e74315ccf64365896412e876 --- R centos8-repo-install-test/Dockerfile R centos8-repo-install-test/Makefile 2 files changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/77/21577/1 diff --git a/centos-repo-install-test/Dockerfile b/centos8-repo-install-test/Dockerfile similarity index 100% rename from centos-repo-install-test/Dockerfile rename to centos8-repo-install-test/Dockerfile diff --git a/centos-repo-install-test/Makefile b/centos8-repo-install-test/Makefile similarity index 100% rename from centos-repo-install-test/Makefile rename to centos8-repo-install-test/Makefile -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I05b012abced5b812e74315ccf64365896412e876 Gerrit-Change-Number: 21577 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 Dec 7 11:54:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 11:54:34 +0000 Subject: Change in osmo-ci[master]: jobs: repo-install-test: Use centos8 as distro name References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21578 ) Change subject: jobs: repo-install-test: Use centos8 as distro name ...................................................................... jobs: repo-install-test: Use centos8 as distro name We use centos8 instead of centos in all docker-playground.git setups and the infrastructure there expects that kind of naming. Related: OS#4888 Change-Id: Idfbb2c4fc1ca10741406c8ab8930dabe8ce632ee --- M jobs/repo-install-test.yml M scripts/repo-install-test/run-inside-docker.sh 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/78/21578/1 diff --git a/jobs/repo-install-test.yml b/jobs/repo-install-test.yml index f386eab..d16b852 100644 --- a/jobs/repo-install-test.yml +++ b/jobs/repo-install-test.yml @@ -6,7 +6,7 @@ distro: - debian: feeds: !!python/tuple [nightly, latest] - - centos: + - centos8: feeds: !!python/tuple [next, nightly] - job-template: diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index e0f07c2..450a754 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -59,7 +59,7 @@ apt-get update } -configure_osmocom_repo_centos() { +configure_osmocom_repo_centos8() { echo "Configuring Osmocom repository" # Generate this file, based on the feed: # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8_Stream/network:osmocom:latest.repo @@ -87,7 +87,7 @@ > /etc/apt/apt.conf.d/01keep-debs } -configure_keep_cache_centos() { +configure_keep_cache_centos8() { if [ -z "$KEEP_CACHE" ]; then return fi @@ -118,7 +118,7 @@ apt install -y $(cat osmocom_packages.txt) } -install_repo_packages_centos() { +install_repo_packages_centos8() { echo "Installing all repository packages" # Get a list of all packages from the repository -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Idfbb2c4fc1ca10741406c8ab8930dabe8ce632ee Gerrit-Change-Number: 21578 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 Dec 7 12:37:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 12:37:02 +0000 Subject: Change in libosmocore[master]: Include mnl.h iif --enable-libmnl References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21579 ) Change subject: Include mnl.h iif --enable-libmnl ...................................................................... Include mnl.h iif --enable-libmnl Change-Id: I06016e3a6e90b09b76634a00081d0d40a8e2f94b --- M include/Makefile.am 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/79/21579/1 diff --git a/include/Makefile.am b/include/Makefile.am index f13ae76..f67e1ad 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -35,7 +35,6 @@ osmocom/core/log2.h \ osmocom/core/logging.h \ osmocom/core/loggingrb.h \ - osmocom/core/mnl.h \ osmocom/core/stats.h \ osmocom/core/macaddr.h \ osmocom/core/msgb.h \ @@ -187,6 +186,10 @@ osmocom/usb/libusb.h endif +if ENABLE_LIBMNL +nobase_include_HEADERS += osmocom/core/mnl.h +endif + noinst_HEADERS = \ osmocom/gsm/kasumi.h \ osmocom/gsm/gea.h \ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I06016e3a6e90b09b76634a00081d0d40a8e2f94b Gerrit-Change-Number: 21579 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 Dec 7 12:37:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 12:37:03 +0000 Subject: Change in libosmocore[master]: gb: Import mnl.h iif --enable-libmnl References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21580 ) Change subject: gb: Import mnl.h iif --enable-libmnl ...................................................................... gb: Import mnl.h iif --enable-libmnl Change-Id: Ic0100493a9256e9c30a4bbb92be404270a8b9393 --- M src/gb/gprs_ns2_fr.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/21580/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index a651e1d..8befe1c 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -50,9 +50,12 @@ #include #include #include -#include #include +#ifdef ENABLE_LIBMNL +#include +#endif + #include "config.h" #include "common_vty.h" #include "gprs_ns2_internal.h" -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0100493a9256e9c30a4bbb92be404270a8b9393 Gerrit-Change-Number: 21580 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 Dec 7 12:43:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 12:43:45 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Disable libmnl dependency cross-compiling osmo-pcu References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21581 ) Change subject: contrib: Disable libmnl dependency cross-compiling osmo-pcu ...................................................................... contrib: Disable libmnl dependency cross-compiling osmo-pcu Only newest OE SDKs have libmnl added, but we don't need this feature anyway, so let's disable it in order to get builds running fine again. Change-Id: Id3b30d0b183cd21fd6df89fdda5581ab58c7a9a5 --- M contrib/jenkins-build-osmo-pcu-oc2g.sh M contrib/jenkins-build-osmo-pcu-sysmo.sh 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/81/21581/1 diff --git a/contrib/jenkins-build-osmo-pcu-oc2g.sh b/contrib/jenkins-build-osmo-pcu-oc2g.sh index d2ae028..5e85c6e 100755 --- a/contrib/jenkins-build-osmo-pcu-oc2g.sh +++ b/contrib/jenkins-build-osmo-pcu-oc2g.sh @@ -24,7 +24,7 @@ git_url="${prev_git_url}" L1_OC2G_HEADERS="$PWD/oc2g-fw/inc" -build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug +build_repo libosmocore --disable-pcsc --disable-libmnl --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug build_repo osmo-pcu --disable-sysmocom-dsp -enable-oc2gbts-phy --with-oc2g="$L1_OC2G_HEADERS" create_bin_tgz osmo-pcu diff --git a/contrib/jenkins-build-osmo-pcu-sysmo.sh b/contrib/jenkins-build-osmo-pcu-sysmo.sh index 789b0c0..86d53da 100755 --- a/contrib/jenkins-build-osmo-pcu-sysmo.sh +++ b/contrib/jenkins-build-osmo-pcu-sysmo.sh @@ -18,7 +18,7 @@ prefix_real="$DESTDIR$prefix" . "$(dirname "$0")/jenkins-build-common.sh" -build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug +build_repo libosmocore --disable-pcsc --disable-libmnl --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug build_repo osmo-pcu --enable-sysmocom-dsp create_bin_tgz osmo-pcu -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21581 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: Id3b30d0b183cd21fd6df89fdda5581ab58c7a9a5 Gerrit-Change-Number: 21581 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 Dec 7 13:02:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:02:06 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: Catch up with config changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21545 ) Change subject: ttcn3-gbproxy-test-fr: Catch up with config changes ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I80de01c96185c60fe2de7a8ffa9daed2669658e1 Gerrit-Change-Number: 21545 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:02: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 Dec 7 13:04:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:04:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 ) Change subject: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525/2/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525/2/gbproxy/GBProxy_Tests.ttcn at 1125 PS2, Line 1125: [test_done] T.timeout; so there is no T.timeout clause anymore in the test is not done? So what if we never receive any PDU but then run into the timeout? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If71db2d37d67d02c5d9550202128ee3470762964 Gerrit-Change-Number: 21525 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:04: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 Dec 7 13:04:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:04:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Reset gbproxy bvc as well as ns state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21536 ) Change subject: gbproxy: Reset gbproxy bvc as well as ns state ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaedfadf94f716b190495a807c28785be0078addc Gerrit-Change-Number: 21536 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:04: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 Dec 7 13:04:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:04:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21537 ) Change subject: gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6fe00558b346174f05f36703fe630796fb04a71e Gerrit-Change-Number: 21537 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:04: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 Dec 7 13:05:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:05:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Improve NSEI/... numbering and improve paging test coverage In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 ) Change subject: gbproxy: Improve NSEI/... numbering and improve paging test coverage ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 Gerrit-PatchSet: 6 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:05: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 Dec 7 13:05:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:05:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21546 ) Change subject: gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie1ab32ee40ff68ef3243439280244ba7668cf1dc Gerrit-Change-Number: 21546 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13: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 Dec 7 13:05:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:05:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Reset gbproxy bvc as well as ns state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21536 ) Change subject: gbproxy: Reset gbproxy bvc as well as ns state ...................................................................... gbproxy: Reset gbproxy bvc as well as ns state We need to ensure that before each test the gbproxy does not have any state. Move the vty commands into loops that run before we init either SGSN or PCU Gb. This ensures that we don't send some spurious block or other message at the start of the test. Related: SYS#5002 Change-Id: Iaedfadf94f716b190495a807c28785be0078addc --- M gbproxy/GBProxy_Tests.ttcn 1 file 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/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 30a019e..c288adb 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -382,11 +382,17 @@ f_init_vty(); for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { f_vty_transceive(GBPVTY, "nsvc nsei " & int2str(g_sgsn[i].cfg.nsei) & " force-unconfigured"); + } + for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) { + f_vty_transceive(GBPVTY, "nsvc nsei " & int2str(g_pcu[i].cfg.nsei) & " force-unconfigured"); + f_vty_transceive(GBPVTY, "delete-gbproxy-peer " & int2str(g_pcu[i].cfg.nsei) & " only-bvc"); + } + + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { f_init_gb_sgsn(g_sgsn[i], "GbProxy_Test", i); } f_sleep(4.0); for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) { - f_vty_transceive(GBPVTY, "nsvc nsei " & int2str(g_pcu[i].cfg.nsei) & " force-unconfigured"); f_init_gb_pcu(g_pcu[i], "GbProxy_Test", i); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaedfadf94f716b190495a807c28785be0078addc Gerrit-Change-Number: 21536 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 Mon Dec 7 13:05:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:05:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21537 ) Change subject: gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass ...................................................................... gbproxy: Make TC_bvc_reset_sig_from_bss() actually pass If we hit none of the failures in the test case it means the test was passed. Change-Id: I6fe00558b346174f05f36703fe630796fb04a71e Related: SYS#5002 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 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/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index c288adb..2233ece 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2100,7 +2100,7 @@ /* check if BVC-block was not received on any unexpected BVC is not required as * such a message would basically run into 'no matching clause' */ - + setverdict(pass); f_cleanup(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6fe00558b346174f05f36703fe630796fb04a71e Gerrit-Change-Number: 21537 Gerrit-PatchSet: 2 Gerrit-Owner: daniel 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 Dec 7 13:06:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:06:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Improve NSEI/... numbering and improve paging test coverage In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 ) Change subject: gbproxy: Improve NSEI/... numbering and improve paging test coverage ...................................................................... gbproxy: Improve NSEI/... numbering and improve paging test coverage With this setup we can and do now test: * Paging a LAI on BVC0 is sent once per matching NSE * Paging a LAI on BVC0 is sent to multiple different matching NSE * Paging a RA ID on BVC0 is sent once per matching NSE * Paging a RA ID on BVC0 is sent to multiple different matching NSE Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Related: SYS#5226 --- M gbproxy/GBProxy_Tests.fr.cfg M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.fr.cfg 3 files changed, 147 insertions(+), 48 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index 9b31dfd..7b63125 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -20,7 +20,7 @@ GBProxy_Tests.mp_nsconfig_pcu := { { - nsei := 1, + nsei := 2001, role_sgsn := false, handle_sns := false, nsvc := { @@ -58,30 +58,56 @@ nsvci := 4 } } - } -} -GBProxy_Tests.mp_gbconfigs := { - { - nsei := 1, - sgsn_role := false, - bvc := { - { - bvci := 196, - cell_id := { - ra_id := { - lai := { - mcc_mnc := '262F42'H, - lac := 13135 - }, - rac := 0 - }, - cell_id := 20960 - }, - depth := BSSGP_DECODE_DEPTH_BSSGP - } + }, + { + nsei := 2002, + role_sgsn := false, + handle_sns := false, + nsvc := { + { + provider := { + fr := { + netdev := "hdlc5", + dlci := 20 + } + }, + nsvci := 5 + }, { + provider := { + fr := { + netdev := "hdlc6", + dlci := 21 + } + }, + nsvci := 6 } } - }; + }, + { + nsei := 2003, + role_sgsn := false, + handle_sns := false, + nsvc := { + { + provider := { + fr := { + netdev := "hdlc7", + dlci := 22 + } + }, + nsvci := 7 + }, { + provider := { + fr := { + netdev := "hdlc8", + dlci := 23 + } + }, + nsvci := 8 + } + } + } +} [MAIN_CONTROLLER] diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 2233ece..1430af0 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -44,7 +44,7 @@ const integer max_fr_info_size := 1600; modulepar { - /* IP/port on which we run our internal GSUP/HLR emulation */ + /* SGSN NS configuration */ NSConfigurations mp_nsconfig_sgsn := { { nsei := 101, @@ -66,9 +66,12 @@ } } }; + /* BSS NSEI start at 2000 + x + * NSVCI start from value of NSEI + 100 + * UDP port is NSVCI * 10 */ NSConfigurations mp_nsconfig_pcu := { { - nsei := 96, + nsei := 2001, role_sgsn := false, handle_sns := false, nsvc := { @@ -82,12 +85,12 @@ remote_ip := "127.0.0.1" } }, - nsvci := 97 + nsvci := 2101 } } }, { - nsei := 97, + nsei := 2002, role_sgsn := false, handle_sns := false, nsvc := { @@ -95,18 +98,18 @@ provider := { ip := { address_family := AF_INET, - local_udp_port := 21011, + local_udp_port := 21020, local_ip := "127.0.0.1", remote_udp_port := 23000, remote_ip := "127.0.0.1" } }, - nsvci := 98 + nsvci := 2102 } } }, { - nsei := 98, + nsei := 2003, role_sgsn := false, handle_sns := false, nsvc := { @@ -114,24 +117,33 @@ provider := { ip := { address_family := AF_INET, - local_udp_port := 21012, + local_udp_port := 21030, local_ip := "127.0.0.1", remote_udp_port := 23000, remote_ip := "127.0.0.1" } }, - nsvci := 99 + nsvci := 2103 } } } }; + /* BVCI are NSEI*10 + x + * The first NSE only has one BVC, the second one 2 and so on + * The Cell ID is BVCI + 10000 + * LAC/RAC are configured in such a way that: + * LAC 13135 is present once in NSE(2001), twice in NSE(2002) and once in NSE(2003) + * LAC 13300 is present twice in NSE(2003) + * RAI 13135-1 is present in NSE(2002) and NSE(2003) + * RAI 13300-0 is present twice in NSE(2003) + */ BssgpConfigs mp_gbconfigs := { { - nsei := 96, + nsei := 2001, sgsn_role := false, bvc := { { - bvci := 196, + bvci := 20011, cell_id := { ra_id := { lai := { @@ -140,18 +152,18 @@ }, rac := 0 }, - cell_id := 20960 + cell_id := 30011 }, depth := BSSGP_DECODE_DEPTH_BSSGP, create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) } } }, { - nsei := 97, + nsei := 2002, sgsn_role := false, bvc := { { - bvci := 210, + bvci := 20021, cell_id := { ra_id := { lai := { @@ -160,18 +172,48 @@ }, rac := 1 }, - cell_id := 20961 + cell_id := 30021 + }, + depth := BSSGP_DECODE_DEPTH_BSSGP, + create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) + }, + { + bvci := 20022, + cell_id := { + ra_id := { + lai := { + mcc_mnc := c_mcc_mnc, + lac := 13135 + }, + rac := 2 + }, + cell_id := 30022 }, depth := BSSGP_DECODE_DEPTH_BSSGP, create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) } } }, { - nsei := 98, + nsei := 2003, sgsn_role := false, bvc := { { - bvci := 220, + bvci := 20031, + cell_id := { + ra_id := { + lai := { + mcc_mnc := c_mcc_mnc, + lac := 13135 + }, + rac := 1 + }, + cell_id := 30031 + }, + depth := BSSGP_DECODE_DEPTH_BSSGP, + create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) + }, + { + bvci := 20032, cell_id := { ra_id := { lai := { @@ -180,7 +222,22 @@ }, rac := 0 }, - cell_id := 20962 + cell_id := 30032 + }, + depth := BSSGP_DECODE_DEPTH_BSSGP, + create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) + }, + { + bvci := 20033, + cell_id := { + ra_id := { + lai := { + mcc_mnc := c_mcc_mnc, + lac := 13300 + }, + rac := 0 + }, + cell_id := 30033 }, depth := BSSGP_DECODE_DEPTH_BSSGP, create_cb := refers(BSSGP_Emulation.DefaultCreateCallback) @@ -1354,8 +1411,13 @@ /* PS-PAGING on SIG-BVC for Location Area */ private function f_TC_paging_ps_sig_lac(charstring id) runs on BSSGP_ConnHdlr { - /* Both PCU index 0 and 1 have a BVC within the LAC */ - f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, {0, 1}); + /* 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}); + /* 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}); } testcase TC_paging_ps_sig_lac() runs on test_CT { var BSSGP_ConnHdlr vc_conn; @@ -1389,8 +1451,15 @@ /* PS-PAGING on SIG-BVC for Routeing Area */ private function f_TC_paging_ps_sig_rac(charstring id) runs on BSSGP_ConnHdlr { - /* Only PCU index 0 has a matching BVC within the LAC */ + /* 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}); + 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}); + 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}); } testcase TC_paging_ps_sig_rac() runs on test_CT { var BSSGP_ConnHdlr vc_conn; diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index 5c5644b..dd73b71 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -24,10 +24,14 @@ encapsulation udp local-port 23000 encapsulation framerelay-gre enabled 0 - nse 1 nsvci 1 frnet hdlcnet1 dlci 16 - nse 1 nsvci 2 frnet hdlcnet2 dlci 17 - nse 1 nsvci 3 frnet hdlcnet3 dlci 18 - nse 1 nsvci 4 frnet hdlcnet4 dlci 19 + 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 gbproxy sgsn nsei 101 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b Gerrit-Change-Number: 21420 Gerrit-PatchSet: 7 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 Mon Dec 7 13:06:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:06:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21546 ) Change subject: gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master ...................................................................... gbproxy: Change osmo-gbproxy.cfg so it works on libosmocore master Change-Id: Ie1ab32ee40ff68ef3243439280244ba7668cf1dc --- M gbproxy/osmo-gbproxy.fr.cfg 1 file changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index dd73b71..efec418 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -8,11 +8,11 @@ no login ! ns - !nse 101 nsvci 101 - nse 101 nsvci 101 remote-role sgsn - nse 101 nsvci 101 encapsulation udp - nse 101 nsvci 101 remote-ip 127.0.0.1 - nse 101 nsvci 101 remote-port 7777 + 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 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie1ab32ee40ff68ef3243439280244ba7668cf1dc Gerrit-Change-Number: 21546 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 Mon Dec 7 13:07:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:07:01 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: Catch up with config changes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21545 ) Change subject: ttcn3-gbproxy-test-fr: Catch up with config changes ...................................................................... ttcn3-gbproxy-test-fr: Catch up with config changes Change-Id: I80de01c96185c60fe2de7a8ffa9daed2669658e1 Related: SYS#5226 Depends: I698a932b3dc78c776e9350283109463bcdc40e6b (osmo-ttcn3-hacks) --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 1 file changed, 8 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 7e57c0c..1713afb 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -37,7 +37,11 @@ encapsulation udp local-ip 172.18.25.10 encapsulation udp local-port 23000 encapsulation framerelay-gre enabled 0 - nse 1 nsvci 1 frnet hdlcnet1 dlci 16 - nse 1 nsvci 2 frnet hdlcnet2 dlci 17 - nse 1 nsvci 3 frnet hdlcnet3 dlci 18 - nse 1 nsvci 4 frnet hdlcnet4 dlci 19 + 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 hdlcnet1 dlci 20 + nse 2002 nsvci 6 frnet hdlcnet2 dlci 21 + nse 2003 nsvci 7 frnet hdlcnet3 dlci 22 + nse 2003 nsvci 8 frnet hdlcnet4 dlci 23 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I80de01c96185c60fe2de7a8ffa9daed2669658e1 Gerrit-Change-Number: 21545 Gerrit-PatchSet: 1 Gerrit-Owner: 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 Dec 7 13:07:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:07:38 +0000 Subject: Change in docker-playground[master]: Rename centos-repo-install-test/Dockerfile to centos8 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21577 ) Change subject: Rename centos-repo-install-test/Dockerfile to centos8 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I05b012abced5b812e74315ccf64365896412e876 Gerrit-Change-Number: 21577 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 13: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 Dec 7 13:07:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:07:57 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Disable libmnl dependency cross-compiling osmo-pcu In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21581 ) Change subject: contrib: Disable libmnl dependency cross-compiling osmo-pcu ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21581 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: Id3b30d0b183cd21fd6df89fdda5581ab58c7a9a5 Gerrit-Change-Number: 21581 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 13:07: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 Dec 7 13:07:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:07:59 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Disable libmnl dependency cross-compiling osmo-pcu In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21581 ) Change subject: contrib: Disable libmnl dependency cross-compiling osmo-pcu ...................................................................... contrib: Disable libmnl dependency cross-compiling osmo-pcu Only newest OE SDKs have libmnl added, but we don't need this feature anyway, so let's disable it in order to get builds running fine again. Change-Id: Id3b30d0b183cd21fd6df89fdda5581ab58c7a9a5 --- M contrib/jenkins-build-osmo-pcu-oc2g.sh M contrib/jenkins-build-osmo-pcu-sysmo.sh 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/contrib/jenkins-build-osmo-pcu-oc2g.sh b/contrib/jenkins-build-osmo-pcu-oc2g.sh index d2ae028..5e85c6e 100755 --- a/contrib/jenkins-build-osmo-pcu-oc2g.sh +++ b/contrib/jenkins-build-osmo-pcu-oc2g.sh @@ -24,7 +24,7 @@ git_url="${prev_git_url}" L1_OC2G_HEADERS="$PWD/oc2g-fw/inc" -build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug +build_repo libosmocore --disable-pcsc --disable-libmnl --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug build_repo osmo-pcu --disable-sysmocom-dsp -enable-oc2gbts-phy --with-oc2g="$L1_OC2G_HEADERS" create_bin_tgz osmo-pcu diff --git a/contrib/jenkins-build-osmo-pcu-sysmo.sh b/contrib/jenkins-build-osmo-pcu-sysmo.sh index 789b0c0..86d53da 100755 --- a/contrib/jenkins-build-osmo-pcu-sysmo.sh +++ b/contrib/jenkins-build-osmo-pcu-sysmo.sh @@ -18,7 +18,7 @@ prefix_real="$DESTDIR$prefix" . "$(dirname "$0")/jenkins-build-common.sh" -build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug +build_repo libosmocore --disable-pcsc --disable-libmnl --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug build_repo osmo-pcu --enable-sysmocom-dsp create_bin_tgz osmo-pcu -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21581 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: Id3b30d0b183cd21fd6df89fdda5581ab58c7a9a5 Gerrit-Change-Number: 21581 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 7 13:08:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:08:23 +0000 Subject: Change in libosmocore[master]: Include mnl.h iif --enable-libmnl In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21579 ) Change subject: Include mnl.h iif --enable-libmnl ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I06016e3a6e90b09b76634a00081d0d40a8e2f94b Gerrit-Change-Number: 21579 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 13:08: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 Dec 7 13:08:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:08:39 +0000 Subject: Change in libosmocore[master]: gb: Import mnl.h iif --enable-libmnl In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21580 ) Change subject: gb: Import mnl.h iif --enable-libmnl ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0100493a9256e9c30a4bbb92be404270a8b9393 Gerrit-Change-Number: 21580 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 13:08: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 Dec 7 13:08:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:08:52 +0000 Subject: Change in libosmocore[master]: Include mnl.h iif --enable-libmnl In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21579 ) Change subject: Include mnl.h iif --enable-libmnl ...................................................................... Include mnl.h iif --enable-libmnl Change-Id: I06016e3a6e90b09b76634a00081d0d40a8e2f94b --- M include/Makefile.am 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/Makefile.am b/include/Makefile.am index f13ae76..f67e1ad 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -35,7 +35,6 @@ osmocom/core/log2.h \ osmocom/core/logging.h \ osmocom/core/loggingrb.h \ - osmocom/core/mnl.h \ osmocom/core/stats.h \ osmocom/core/macaddr.h \ osmocom/core/msgb.h \ @@ -187,6 +186,10 @@ osmocom/usb/libusb.h endif +if ENABLE_LIBMNL +nobase_include_HEADERS += osmocom/core/mnl.h +endif + noinst_HEADERS = \ osmocom/gsm/kasumi.h \ osmocom/gsm/gea.h \ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I06016e3a6e90b09b76634a00081d0d40a8e2f94b Gerrit-Change-Number: 21579 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 7 13:08:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:08:52 +0000 Subject: Change in libosmocore[master]: gb: Import mnl.h iif --enable-libmnl In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21580 ) Change subject: gb: Import mnl.h iif --enable-libmnl ...................................................................... gb: Import mnl.h iif --enable-libmnl Change-Id: Ic0100493a9256e9c30a4bbb92be404270a8b9393 --- M src/gb/gprs_ns2_fr.c 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index a651e1d..8befe1c 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -50,9 +50,12 @@ #include #include #include -#include #include +#ifdef ENABLE_LIBMNL +#include +#endif + #include "config.h" #include "common_vty.h" #include "gprs_ns2_internal.h" -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0100493a9256e9c30a4bbb92be404270a8b9393 Gerrit-Change-Number: 21580 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 7 13:09:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:09:25 +0000 Subject: Change in osmo-ci[master]: jobs: repo-install-test: Use centos8 as distro name In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21578 ) Change subject: jobs: repo-install-test: Use centos8 as distro name ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Idfbb2c4fc1ca10741406c8ab8930dabe8ce632ee Gerrit-Change-Number: 21578 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 13:09: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 Dec 7 13:10:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:10:08 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21555 ) Change subject: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e7da9451458505c1c2d73836dd916aee7704fda Gerrit-Change-Number: 21555 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13: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 Mon Dec 7 13:12:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:12:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: dynamic calculate the maximum NS-VCs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21556 ) Change subject: gprs_ns2_sns: dynamic calculate the maximum NS-VCs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iae859dc504716fd6f705e72db5fc293b4b3298e7 Gerrit-Change-Number: 21556 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:12: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 Dec 7 13:12:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:12:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21569 ) Change subject: gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4af01293ff0ba8629e1426b1ba92f72f0520c7f0 Gerrit-Change-Number: 21569 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13: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 Mon Dec 7 13:13:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:13:00 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: fix whitespaces and superflous comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21570 ) Change subject: gprs_ns2_sns: fix whitespaces and superflous comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ica0033c88cad71827ad843e92ccd54663426de23 Gerrit-Change-Number: 21570 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:13: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 Dec 7 13:13:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:13:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21555 ) Change subject: gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE ...................................................................... gprs_ns2_sns: add missing transistion UNCONFIGURED -> SIZE The SNS FSM can go into the SIZE state when all NS-VC are failing. This is the case if the network connection to the SGSN got interrupted. Change-Id: I7e7da9451458505c1c2d73836dd916aee7704fda --- M src/gb/gprs_ns2_sns.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_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 31f8a5f..9091c9a 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1169,7 +1169,8 @@ .in_event_mask = S(GPRS_SNS_EV_ADD) | S(GPRS_SNS_EV_DELETE) | S(GPRS_SNS_EV_CHANGE_WEIGHT), - .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_SIZE), .name = "CONFIGURED", .action = ns2_sns_st_configured, .onenter = ns2_sns_st_configured_onenter, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e7da9451458505c1c2d73836dd916aee7704fda Gerrit-Change-Number: 21555 Gerrit-PatchSet: 3 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 Mon Dec 7 13:13:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:13:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: dynamic calculate the maximum NS-VCs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21556 ) Change subject: gprs_ns2_sns: dynamic calculate the maximum NS-VCs ...................................................................... gprs_ns2_sns: dynamic calculate the maximum NS-VCs The previous hard-coded value could be not enough if the user configures too many local binds. Allow at least 8 NS-VCs. In case the user configures too many binds (> 2) increase the maximum NS-VCs to allow the SGSN to have 4 redundant connections. Change-Id: Iae859dc504716fd6f705e72db5fc293b4b3298e7 --- M src/gb/gprs_ns2_sns.c 1 file changed, 3 insertions(+), 2 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_sns.c b/src/gb/gprs_ns2_sns.c index 9091c9a..50a1f9b 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1265,6 +1265,7 @@ gss->sns_nsvc = nsvc; nsvc->sns_only = true; + /* count how many bindings are available (only UDP binds) */ int count = 0; llist_for_each_entry(bind, &nsi->binding, list) { if (!gprs_ns2_is_ip_bind(bind)) @@ -1320,6 +1321,7 @@ gss->num_ip4_local = count; gss->num_max_ip4_remote = 4; + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip4_remote * 4, 8); break; case IPv6: /* IPv6 */ @@ -1358,11 +1360,10 @@ } gss->num_ip6_local = count; gss->num_max_ip6_remote = 4; + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * 4, 8); break; } - gss->num_max_nsvcs = 8; - return osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_START, NULL); err: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iae859dc504716fd6f705e72db5fc293b4b3298e7 Gerrit-Change-Number: 21556 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 Mon Dec 7 13:13:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:13:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21569 ) Change subject: gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen ...................................................................... gprs_ns2_sns: add missing S() to allow GPRS_SNS_EV_NO_NSVC happen The event GPRS_SNS_EV_NO_NSVC was never dispatched because the S() was missing to convert it into a bitmask. Change-Id: I4af01293ff0ba8629e1426b1ba92f72f0520c7f0 --- M src/gb/gprs_ns2_sns.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_sns.c b/src/gb/gprs_ns2_sns.c index 50a1f9b..edf7da3 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1205,7 +1205,7 @@ .name = "GPRS-NS2-SNS-BSS", .states = ns2_sns_bss_states, .num_states = ARRAY_SIZE(ns2_sns_bss_states), - .allstate_event_mask = GPRS_SNS_EV_NO_NSVC, + .allstate_event_mask = S(GPRS_SNS_EV_NO_NSVC), .allstate_action = ns2_sns_st_all_action, .cleanup = NULL, .timer_cb = ns2_sns_fsm_bss_timer_cb, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4af01293ff0ba8629e1426b1ba92f72f0520c7f0 Gerrit-Change-Number: 21569 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 Mon Dec 7 13:13:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:13:08 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: fix whitespaces and superflous comment In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21570 ) Change subject: gprs_ns2_sns: fix whitespaces and superflous comment ...................................................................... gprs_ns2_sns: fix whitespaces and superflous comment Change-Id: Ica0033c88cad71827ad843e92ccd54663426de23 --- M src/gb/gprs_ns2_sns.c 1 file changed, 4 insertions(+), 5 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_sns.c b/src/gb/gprs_ns2_sns.c index edf7da3..d13d920 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -719,17 +719,16 @@ { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; /* Transmit SNS-CONFIG */ - /* TODO: ipv6 */ switch (gss->ip) { case IPv4: ns2_tx_sns_config(gss->sns_nsvc, true, - gss->ip4_local, gss->num_ip4_local, - NULL, 0); + gss->ip4_local, gss->num_ip4_local, + NULL, 0); break; case IPv6: ns2_tx_sns_config(gss->sns_nsvc, true, - NULL, 0, - gss->ip6_local, gss->num_ip6_local); + NULL, 0, + gss->ip6_local, gss->num_ip6_local); break; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ica0033c88cad71827ad843e92ccd54663426de23 Gerrit-Change-Number: 21570 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 Mon Dec 7 13:13:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:13:55 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Rename gbproxy_peer to gbproxy_bvc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21548 ) Change subject: gb_proxy: Rename gbproxy_peer to gbproxy_bvc ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iae01067282a6401f6af4cab731202872d2cdb080 Gerrit-Change-Number: 21548 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:13: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 Dec 7 13:13:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:13:57 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21549 ) Change subject: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5accec0c70c01b88927ea07beba6f6488bd9d5a Gerrit-Change-Number: 21549 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:13: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 Dec 7 13:14:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:14:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: convert bss_nses from llist_head to hashtable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21550 ) Change subject: gbproxy: convert bss_nses from llist_head to hashtable ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idbb6a362332bb6e3ce22102e7409ae80d0980f44 Gerrit-Change-Number: 21550 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13: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 Mon Dec 7 13:14:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:14:18 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Rename gbproxy_peer to gbproxy_bvc In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21548 ) Change subject: gb_proxy: Rename gbproxy_peer to gbproxy_bvc ...................................................................... gb_proxy: Rename gbproxy_peer to gbproxy_bvc I cannot really read the code while it contains its historical weird naming. A "peer" used to be a strange amalgamation of NSE + BVC, while in reality we can have any number of BVC on top of each NSE. We recently started to split the peer into a gbproxy_nse_peer + gbproxy_peer. This takes it one step further and renames gbproxy_peer to gbproxy_bvc, as that's really what it is. Change-Id: Iae01067282a6401f6af4cab731202872d2cdb080 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/gbproxy_test.c 8 files changed, 596 insertions(+), 592 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/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index b3a9a6c..818ab9d 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -37,7 +37,7 @@ GBPROX_GLOB_CTR_PATCH_PEER_ERR, }; -enum gbproxy_peer_ctr { +enum gbproxy_bvc_ctr { GBPROX_PEER_CTR_BLOCKED, GBPROX_PEER_CTR_UNBLOCKED, GBPROX_PEER_CTR_DROPPED, @@ -102,7 +102,7 @@ struct gprs_ns2_inst *nsi; /* Linked list of all Gb peers (except SGSN) */ - struct llist_head nse_peers; + struct llist_head nses; /* Counter */ struct rate_ctr_group *ctrg; @@ -118,7 +118,7 @@ unsigned int clean_stale_timer_freq; /* If !0, Max age to consider a struct gbproxy_link_info as stale */ int tlli_max_age; - /* If !0, Max len of gbproxy_peer->list (list of struct gbproxy_link_info) */ + /* If !0, Max len of gbproxy_bvc->list (list of struct gbproxy_link_info) */ int tlli_max_len; /* If !0, Max len of gbproxy_link_info->stored_msgs (list of msgb) */ uint32_t stored_msgs_max_len; @@ -147,17 +147,17 @@ }; /* One BVC inside an NSE */ -struct gbproxy_peer { - /* linked to gbproxy_nse.bts_peers */ +struct gbproxy_bvc { + /* linked to gbproxy_nse.bvcs */ struct llist_head list; - /* The peer this BVC belongs to */ + /* The NSE this BVC belongs to */ struct gbproxy_nse *nse; - /* BVCI used for Point-to-Point to this peer */ + /* PTP BVCI of this BVC */ uint16_t bvci; - /* Routing Area that this peer is part of (raw 04.08 encoding) */ + /* Routing Area that this BVC is part of (raw 04.08 encoding) */ uint8_t ra[6]; /* true if this BVC is blocked */ @@ -173,19 +173,19 @@ struct osmo_timer_list clean_stale_timer; }; -/* one peer at NS level that we interact with (BSS/PCU) */ +/* one NS Entity that we interact with (BSS/PCU) */ struct gbproxy_nse { - /* linked to gbproxy_config.nse_peers */ + /* linked to gbproxy_config.nses */ struct llist_head list; /* point back to the config */ struct gbproxy_config *cfg; - /* NSEI of the peer entity */ + /* NSEI of the NSE */ uint16_t nsei; /* List of all BVCs in this NSE */ - struct llist_head bts_peers; + struct llist_head bvcs; }; struct gbproxy_tlli_state { @@ -205,7 +205,7 @@ /* One TLLI (= UE, = Subscriber) served via this proxy */ struct gbproxy_link_info { - /* link to gbproxy_peer.patch_state.logical_links */ + /* link to gbproxy_bvc.patch_state.logical_links */ struct llist_head list; /* TLLI on the BSS/PCU side */ @@ -276,40 +276,40 @@ void gbprox_reset(struct gbproxy_config *cfg); /* TLLI info handling */ -void gbproxy_delete_link_infos(struct gbproxy_peer *peer); +void gbproxy_delete_link_infos(struct gbproxy_bvc *bvc); struct gbproxy_link_info *gbproxy_update_link_state_ul( - struct gbproxy_peer *peer, time_t now, + struct gbproxy_bvc *bvc, time_t now, struct gprs_gb_parse_context *parse_ctx); struct gbproxy_link_info *gbproxy_update_link_state_dl( - struct gbproxy_peer *peer, time_t now, + struct gbproxy_bvc *bvc, time_t now, struct gprs_gb_parse_context *parse_ctx); int gbproxy_update_link_state_after( - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, time_t now, struct gprs_gb_parse_context *parse_ctx); -int gbproxy_remove_stale_link_infos(struct gbproxy_peer *peer, time_t now); -void gbproxy_delete_link_info(struct gbproxy_peer *peer, +int gbproxy_remove_stale_link_infos(struct gbproxy_bvc *bvc, time_t now); +void gbproxy_delete_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info); void gbproxy_link_info_discard_messages(struct gbproxy_link_info *link_info); -void gbproxy_attach_link_info(struct gbproxy_peer *peer, time_t now, +void gbproxy_attach_link_info(struct gbproxy_bvc *bvc, time_t now, struct gbproxy_link_info *link_info); void gbproxy_update_link_info(struct gbproxy_link_info *link_info, const uint8_t *imsi, size_t imsi_len); -void gbproxy_detach_link_info(struct gbproxy_peer *peer, +void gbproxy_detach_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info); -struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_peer *peer); +struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_bvc *bvc); struct gbproxy_link_info *gbproxy_link_info_by_tlli( - struct gbproxy_peer *peer, uint32_t tlli); + struct gbproxy_bvc *bvc, uint32_t tlli); struct gbproxy_link_info *gbproxy_link_info_by_imsi( - struct gbproxy_peer *peer, const uint8_t *imsi, size_t imsi_len); + struct gbproxy_bvc *bvc, const uint8_t *imsi, size_t imsi_len); struct gbproxy_link_info *gbproxy_link_info_by_any_sgsn_tlli( - struct gbproxy_peer *peer, uint32_t tlli); + struct gbproxy_bvc *bvc, uint32_t tlli); struct gbproxy_link_info *gbproxy_link_info_by_sgsn_tlli( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t tlli, uint32_t sgsn_nsei); struct gbproxy_link_info *gbproxy_link_info_by_ptmsi( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t ptmsi); int gbproxy_imsi_matches( @@ -320,9 +320,9 @@ uint32_t other_tlli, struct gbproxy_link_info *link_info, int to_bss); /* needed by gb_proxy_tlli.h */ -uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_peer *peer, uint32_t sgsn_ptmsi); +uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_bvc *bvc, uint32_t sgsn_ptmsi); uint32_t gbproxy_make_sgsn_tlli( - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, uint32_t bss_tlli); void gbproxy_reset_link(struct gbproxy_link_info *link_info); int gbproxy_check_imsi( @@ -331,12 +331,12 @@ /* Message patching */ void gbproxy_patch_bssgp( struct msgb *msg, uint8_t *bssgp, size_t bssgp_len, - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, int *len_change, struct gprs_gb_parse_context *parse_ctx); int gbproxy_patch_llc( struct msgb *msg, uint8_t *llc, size_t llc_len, - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, int *len_change, struct gprs_gb_parse_context *parse_ctx); int gbproxy_set_patch_filter( @@ -344,22 +344,22 @@ void gbproxy_clear_patch_filter(struct gbproxy_match *match); /* Peer handling */ -struct gbproxy_peer *gbproxy_peer_by_bvci( +struct gbproxy_bvc *gbproxy_bvc_by_bvci( struct gbproxy_config *cfg, uint16_t bvci); -struct gbproxy_peer *gbproxy_peer_by_nsei( +struct gbproxy_bvc *gbproxy_bvc_by_nsei( struct gbproxy_config *cfg, uint16_t nsei); -struct gbproxy_peer *gbproxy_peer_by_rai( +struct gbproxy_bvc *gbproxy_bvc_by_rai( struct gbproxy_config *cfg, const uint8_t *ra); -struct gbproxy_peer *gbproxy_peer_by_lai( +struct gbproxy_bvc *gbproxy_bvc_by_lai( struct gbproxy_config *cfg, const uint8_t *la); -struct gbproxy_peer *gbproxy_peer_by_lac( +struct gbproxy_bvc *gbproxy_bvc_by_lac( struct gbproxy_config *cfg, const uint8_t *la); -struct gbproxy_peer *gbproxy_peer_by_bssgp_tlv( +struct gbproxy_bvc *gbproxy_bvc_by_bssgp_tlv( struct gbproxy_config *cfg, struct tlv_parsed *tp); -struct gbproxy_peer *gbproxy_peer_alloc(struct gbproxy_nse *nse, uint16_t bvci); -void gbproxy_peer_free(struct gbproxy_peer *peer); -void gbproxy_peer_move(struct gbproxy_peer *peer, struct gbproxy_nse *nse); -int gbproxy_cleanup_peers(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci); +struct gbproxy_bvc *gbproxy_bvc_alloc(struct gbproxy_nse *nse, uint16_t bvci); +void gbproxy_bvc_free(struct gbproxy_bvc *bvc); +void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse); +int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci); /* NSE handling */ struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index c130466..94944f9 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -77,21 +77,21 @@ .class_id = OSMO_STATS_CLASS_GLOBAL, }; -static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_peer *peer, +static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_bvc *bvc, uint16_t ns_bvci); static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei); static void gbproxy_reset_imsi_acquisition(struct gbproxy_link_info* link_info); -static int check_peer_nsei(struct gbproxy_peer *peer, uint16_t nsei) +static int check_bvc_nsei(struct gbproxy_bvc *bvc, uint16_t nsei) { - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); - if (peer->nse->nsei != nsei) { - LOGPBVC(peer, LOGL_NOTICE, "Peer entry doesn't match current NSEI " + if (bvc->nse->nsei != nsei) { + LOGPBVC(bvc, LOGL_NOTICE, "Peer entry doesn't match current NSEI " "via NSE(%05u/BSS)\n", nsei); - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_INV_NSEI]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_INV_NSEI]); return 0; } @@ -190,16 +190,16 @@ msgb_tlli(msg) = tlli; } -/* update peer according to the BSS message */ +/* update bvc according to the BSS message */ static void gbprox_update_current_raid(uint8_t *raid_enc, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, const char *log_text) { - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; const struct osmo_plmn_id old_plmn = state->local_plmn; struct gprs_ra_id raid; - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (!raid_enc) @@ -225,7 +225,7 @@ } if (osmo_plmn_cmp(&old_plmn, &state->local_plmn)) - LOGPBVC(peer, LOGL_NOTICE, + LOGPBVC(bvc, LOGL_NOTICE, "Patching RAID %sactivated, msg: %s, " "local: %s, core: %s\n", state->local_plmn.mcc || state->local_plmn.mnc ? @@ -235,12 +235,12 @@ osmo_plmn_name2(&cfg->core_plmn)); } -uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_peer *peer, +uint32_t gbproxy_make_bss_ptmsi(struct gbproxy_bvc *bvc, uint32_t sgsn_ptmsi) { uint32_t bss_ptmsi; int max_retries = 23, rc = 0; - if (!peer->nse->cfg->patch_ptmsi) { + if (!bvc->nse->cfg->patch_ptmsi) { bss_ptmsi = sgsn_ptmsi; } else { do { @@ -252,24 +252,24 @@ bss_ptmsi = bss_ptmsi | GSM23003_TMSI_SGSN_MASK; - if (gbproxy_link_info_by_ptmsi(peer, bss_ptmsi)) + if (gbproxy_link_info_by_ptmsi(bvc, bss_ptmsi)) bss_ptmsi = GSM_RESERVED_TMSI; } while (bss_ptmsi == GSM_RESERVED_TMSI && max_retries--); } if (bss_ptmsi == GSM_RESERVED_TMSI) - LOGPBVC(peer, LOGL_ERROR, "Failed to allocate a BSS P-TMSI: %d (%s)\n", rc, strerror(-rc)); + LOGPBVC(bvc, LOGL_ERROR, "Failed to allocate a BSS P-TMSI: %d (%s)\n", rc, strerror(-rc)); return bss_ptmsi; } -uint32_t gbproxy_make_sgsn_tlli(struct gbproxy_peer *peer, +uint32_t gbproxy_make_sgsn_tlli(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, uint32_t bss_tlli) { uint32_t sgsn_tlli; int max_retries = 23, rc = 0; - if (!peer->nse->cfg->patch_ptmsi) { + if (!bvc->nse->cfg->patch_ptmsi) { sgsn_tlli = bss_tlli; } else if (link_info->sgsn_tlli.ptmsi != GSM_RESERVED_TMSI && gprs_tlli_type(bss_tlli) == TLLI_FOREIGN) { @@ -290,13 +290,13 @@ sgsn_tlli = (sgsn_tlli & 0x7fffffff) | 0x78000000; - if (gbproxy_link_info_by_any_sgsn_tlli(peer, sgsn_tlli)) + if (gbproxy_link_info_by_any_sgsn_tlli(bvc, sgsn_tlli)) sgsn_tlli = 0; } while (!sgsn_tlli && max_retries--); } if (!sgsn_tlli) - LOGPBVC(peer, LOGL_ERROR, "Failed to allocate an SGSN TLLI: %d (%s)\n", rc, strerror(-rc)); + LOGPBVC(bvc, LOGL_ERROR, "Failed to allocate an SGSN TLLI: %d (%s)\n", rc, strerror(-rc)); return sgsn_tlli; } @@ -330,15 +330,15 @@ /* Got identity response with IMSI, assuming the request had * been generated by the gbproxy */ -static int gbproxy_flush_stored_messages(struct gbproxy_peer *peer, +static int gbproxy_flush_stored_messages(struct gbproxy_bvc *bvc, time_t now, struct gbproxy_link_info* link_info) { int rc; struct msgb *stored_msg; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); /* Patch and flush stored messages towards the SGSN */ @@ -354,13 +354,13 @@ &tmp_parse_ctx); gbproxy_patch_bssgp(stored_msg, msgb_bssgph(stored_msg), msgb_bssgp_len(stored_msg), - peer, link_info, &len_change, + bvc, link_info, &len_change, &tmp_parse_ctx); - rc = gbproxy_update_link_state_after(peer, link_info, now, + rc = gbproxy_update_link_state_after(bvc, link_info, now, &tmp_parse_ctx); if (rc == 1) { - LOGPBVC_CAT(peer, DLLC, LOGL_NOTICE, "link_info deleted while flushing stored messages\n"); + LOGPBVC_CAT(bvc, DLLC, LOGL_NOTICE, "link_info deleted while flushing stored messages\n"); msgb_free(stored_msg); return -1; } @@ -369,7 +369,7 @@ msgb_bvci(stored_msg), link_info->sgsn_nsei); if (rc < 0) - LOGPBVC_CAT(peer, DLLC, LOGL_ERROR, + LOGPBVC_CAT(bvc, DLLC, LOGL_ERROR, "failed to send stored message " "(%s)\n", tmp_parse_ctx.llc_msg_name ? @@ -380,7 +380,7 @@ return 0; } -static int gbproxy_gsm48_to_peer(struct gbproxy_peer *peer, +static int gbproxy_gsm48_to_bvc(struct gbproxy_bvc *bvc, struct gbproxy_link_info* link_info, uint16_t bvci, struct msgb *msg /* Takes msg ownership */) @@ -397,12 +397,12 @@ gprs_push_bssgp_dl_unitdata(msg, link_info->tlli.current); msg->l3h = msg->data; - rc = gbprox_relay2peer(msg, peer, bvci); + rc = gbprox_relay2peer(msg, bvc, bvci); msgb_free(msg); return rc; } -static void gbproxy_acquire_imsi(struct gbproxy_peer *peer, +static void gbproxy_acquire_imsi(struct gbproxy_bvc *bvc, struct gbproxy_link_info* link_info, uint16_t bvci) { @@ -411,10 +411,10 @@ /* Send IDENT REQ */ idreq_msg = gsm48_msgb_alloc_name("GSM 04.08 ACQ IMSI"); gprs_put_identity_req(idreq_msg, GSM_MI_TYPE_IMSI); - gbproxy_gsm48_to_peer(peer, link_info, bvci, idreq_msg); + gbproxy_gsm48_to_bvc(bvc, link_info, bvci, idreq_msg); } -static void gbproxy_tx_detach_acc(struct gbproxy_peer *peer, +static void gbproxy_tx_detach_acc(struct gbproxy_bvc *bvc, struct gbproxy_link_info* link_info, uint16_t bvci) { @@ -423,20 +423,20 @@ /* Send DETACH ACC */ detacc_msg = gsm48_msgb_alloc_name("GSM 04.08 DET ACC"); gprs_put_mo_detach_acc(detacc_msg); - gbproxy_gsm48_to_peer(peer, link_info, bvci, detacc_msg); + gbproxy_gsm48_to_bvc(bvc, link_info, bvci, detacc_msg); } /* Return != 0 iff msg still needs to be processed */ -static int gbproxy_imsi_acquisition(struct gbproxy_peer *peer, +static int gbproxy_imsi_acquisition(struct gbproxy_bvc *bvc, struct msgb *msg, time_t now, struct gbproxy_link_info* link_info, struct gprs_gb_parse_context *parse_ctx) { struct msgb *stored_msg; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (!link_info) @@ -451,7 +451,7 @@ case GSM48_MT_GMM_RA_UPD_REQ: case GSM48_MT_GMM_ATTACH_REQ: if (gbproxy_restart_imsi_acquisition(link_info)) { - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, " IMSI acquisition was in progress " "when receiving an %s.\n", parse_ctx->llc_msg_name); @@ -460,19 +460,19 @@ case GSM48_MT_GMM_DETACH_REQ: /* Nothing has been sent to the SGSN yet */ if (link_info->imsi_acq_pending) { - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "IMSI acquisition was in progress " "when receiving a DETACH_REQ.\n"); } if (!parse_ctx->invalidate_tlli) { - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "IMSI not yet acquired, " "faking a DETACH_ACC.\n"); - gbproxy_tx_detach_acc(peer, link_info, msgb_bvci(msg)); + gbproxy_tx_detach_acc(bvc, link_info, msgb_bvci(msg)); parse_ctx->invalidate_tlli = 1; } gbproxy_reset_imsi_acquisition(link_info); - gbproxy_update_link_state_after(peer, link_info, now, + gbproxy_update_link_state_after(bvc, link_info, now, parse_ctx); return 0; } @@ -483,13 +483,13 @@ gsm48_hdr_pdisc(parse_ctx->g48_hdr) == GSM48_PDISC_MM_GPRS && gsm48_hdr_msg_type(parse_ctx->g48_hdr) == GSM48_MT_GMM_ID_RESP; - LOGPBVC_CAT(peer, DLLC, LOGL_DEBUG, + LOGPBVC_CAT(bvc, DLLC, LOGL_DEBUG, "IMSI acquisition succeeded, " "flushing stored messages\n"); /* The IMSI is now available. If flushing the messages fails, * then link_info has been deleted and we should return * immediately. */ - if (gbproxy_flush_stored_messages(peer, now, link_info) < 0) + if (gbproxy_flush_stored_messages(bvc, now, link_info) < 0) return 0; gbproxy_reset_imsi_acquisition(link_info); @@ -511,7 +511,7 @@ struct msgb *msgb_drop; msgb_drop = msgb_dequeue_count(&link_info->stored_msgs, &link_info->stored_msgs_len); - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "Dropping stored msgb from list " "(!acq imsi, length %d, max_len exceeded)\n", link_info->stored_msgs_len); @@ -521,7 +521,7 @@ } /* Enqueue unpatched messages */ - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "IMSI acquisition in progress, " "storing message (%s)\n", parse_ctx->llc_msg_name ? parse_ctx->llc_msg_name : "BSSGP"); @@ -531,12 +531,12 @@ &link_info->stored_msgs_len); if (!link_info->imsi_acq_pending) { - LOGPBVC_CAT(peer, DLLC, LOGL_INFO, + LOGPBVC_CAT(bvc, DLLC, LOGL_INFO, "IMSI is required but not available, " "initiating identification procedure (%s)\n", parse_ctx->llc_msg_name ? parse_ctx->llc_msg_name : "BSSGP"); - gbproxy_acquire_imsi(peer, link_info, msgb_bvci(msg)); + gbproxy_acquire_imsi(bvc, link_info, msgb_bvci(msg)); /* There is no explicit retransmission handling, the * implementation relies on the MS doing proper retransmissions @@ -548,37 +548,37 @@ return 0; } -struct gbproxy_peer *gbproxy_find_peer(struct gbproxy_config *cfg, +struct gbproxy_bvc *gbproxy_find_bvc(struct gbproxy_config *cfg, struct msgb *msg, struct gprs_gb_parse_context *parse_ctx) { - struct gbproxy_peer *peer = NULL; + struct gbproxy_bvc *bvc = NULL; if (msgb_bvci(msg) >= 2) - peer = gbproxy_peer_by_bvci(cfg, msgb_bvci(msg)); + bvc = gbproxy_bvc_by_bvci(cfg, msgb_bvci(msg)); - if (!peer && !parse_ctx->to_bss) - peer = gbproxy_peer_by_nsei(cfg, msgb_nsei(msg)); + if (!bvc && !parse_ctx->to_bss) + bvc = gbproxy_bvc_by_nsei(cfg, msgb_nsei(msg)); - if (!peer) - peer = gbproxy_peer_by_bssgp_tlv(cfg, &parse_ctx->bssgp_tp); + if (!bvc) + bvc = gbproxy_bvc_by_bssgp_tlv(cfg, &parse_ctx->bssgp_tp); - if (!peer) { + if (!bvc) { LOGP(DLLC, LOGL_INFO, - "NSE(%05u/%s) patching: didn't find peer for message, " + "NSE(%05u/%s) patching: didn't find bvc for message, " "PDU %d\n", msgb_nsei(msg), parse_ctx->to_bss ? "BSS" : "SGSN", parse_ctx->pdu_type); /* Increment counter */ rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PATCH_PEER_ERR]); } - return peer; + return bvc; } /* patch BSSGP message */ static int gbprox_process_bssgp_ul(struct gbproxy_config *cfg, struct msgb *msg, - struct gbproxy_peer *peer) + struct gbproxy_bvc *bvc) { struct gprs_gb_parse_context parse_ctx = {0}; int rc; @@ -610,49 +610,49 @@ return 0; } - /* Get peer */ - if (!peer) - peer = gbproxy_find_peer(cfg, msg, &parse_ctx); + /* Get bvc */ + if (!bvc) + bvc = gbproxy_find_bvc(cfg, msg, &parse_ctx); - if (!peer) + if (!bvc) return 0; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - gbprox_update_current_raid(parse_ctx.bssgp_raid_enc, peer, + gbprox_update_current_raid(parse_ctx.bssgp_raid_enc, bvc, parse_ctx.llc_msg_name); gprs_gb_log_parse_context(LOGL_DEBUG, &parse_ctx, "NS_UNITDATA"); - link_info = gbproxy_update_link_state_ul(peer, now, &parse_ctx); + link_info = gbproxy_update_link_state_ul(bvc, now, &parse_ctx); if (parse_ctx.g48_hdr) { switch (parse_ctx.g48_hdr->msg_type) { case GSM48_MT_GMM_ATTACH_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REQS]); break; case GSM48_MT_GMM_DETACH_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_DETACH_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DETACH_REQS]); break; case GSM48_MT_GMM_ATTACH_COMPL: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_COMPLS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_COMPLS]); break; case GSM48_MT_GMM_RA_UPD_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REQS]); break; case GSM48_MT_GMM_RA_UPD_COMPL: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_COMPLS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_COMPLS]); break; case GSM48_MT_GMM_STATUS: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_BSS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_BSS]); break; case GSM48_MT_GSM_ACT_PDP_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REQS]); break; case GSM48_MT_GSM_DEACT_PDP_REQ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_REQS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_REQS]); break; default: @@ -673,16 +673,16 @@ /* Handle IMSI acquisition */ if (cfg->acquire_imsi) { - rc = gbproxy_imsi_acquisition(peer, msg, now, link_info, + rc = gbproxy_imsi_acquisition(bvc, msg, now, link_info, &parse_ctx); if (rc <= 0) return rc; } gbproxy_patch_bssgp(msg, msgb_bssgph(msg), msgb_bssgp_len(msg), - peer, link_info, &len_change, &parse_ctx); + bvc, link_info, &len_change, &parse_ctx); - gbproxy_update_link_state_after(peer, link_info, now, &parse_ctx); + gbproxy_update_link_state_after(bvc, link_info, now, &parse_ctx); if (sgsn_nsei != cfg->nsip_sgsn_nsei) { /* Send message directly to the selected SGSN */ @@ -697,7 +697,7 @@ /* patch BSSGP message to use core_plmn.mcc/mnc on the SGSN side */ static void gbprox_process_bssgp_dl(struct gbproxy_config *cfg, struct msgb *msg, - struct gbproxy_peer *peer) + struct gbproxy_bvc *bvc) { struct gprs_gb_parse_context parse_ctx = {0}; int rc; @@ -727,11 +727,11 @@ return; } - /* Get peer */ - if (!peer) - peer = gbproxy_find_peer(cfg, msg, &parse_ctx); + /* Get bvc */ + if (!bvc) + bvc = gbproxy_find_bvc(cfg, msg, &parse_ctx); - if (!peer) + if (!bvc) return; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); @@ -740,31 +740,31 @@ if (parse_ctx.g48_hdr) { switch (parse_ctx.g48_hdr->msg_type) { case GSM48_MT_GMM_ATTACH_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_ACKS]); break; case GSM48_MT_GMM_ATTACH_REJ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REJS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_ATTACH_REJS]); break; case GSM48_MT_GMM_DETACH_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_DETACH_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DETACH_ACKS]); break; case GSM48_MT_GMM_RA_UPD_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_ACKS]); break; case GSM48_MT_GMM_RA_UPD_REJ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REJS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_RA_UPD_REJS]); break; case GSM48_MT_GMM_STATUS: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_SGSN]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_GMM_STATUS_SGSN]); break; case GSM48_MT_GSM_ACT_PDP_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_ACKS]); break; case GSM48_MT_GSM_ACT_PDP_REJ: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REJS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_ACT_REJS]); break; case GSM48_MT_GSM_DEACT_PDP_ACK: - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_ACKS]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_PDP_DEACT_ACKS]); break; default: @@ -774,17 +774,17 @@ gprs_gb_log_parse_context(LOGL_DEBUG, &parse_ctx, "NS_UNITDATA"); - link_info = gbproxy_update_link_state_dl(peer, now, &parse_ctx); + link_info = gbproxy_update_link_state_dl(bvc, now, &parse_ctx); gbproxy_patch_bssgp(msg, msgb_bssgph(msg), msgb_bssgp_len(msg), - peer, link_info, &len_change, &parse_ctx); + bvc, link_info, &len_change, &parse_ctx); - gbproxy_update_link_state_after(peer, link_info, now, &parse_ctx); + gbproxy_update_link_state_after(bvc, link_info, now, &parse_ctx); return; } -/* feed a message down the NS-VC associated with the specified peer */ +/* feed a message down the NS-VC associated with the specified bvc */ static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei) { @@ -847,32 +847,32 @@ rc = gprs_ns2_recv_prim(nsi, &nsp.oph); /* FIXME: We need a counter group for gbproxy_nse */ //if (rc < 0) - // rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_TX_ERR]); + // rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_TX_ERR]); return rc; } -/* feed a message down the NS-VC associated with the specified peer */ -static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_peer *peer, +/* feed a message down the NS-VC associated with the specified bvc */ +static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_bvc *bvc, uint16_t ns_bvci) { int rc; - struct gbproxy_nse *nse = peer->nse; + struct gbproxy_nse *nse = bvc->nse; OSMO_ASSERT(nse); rc = gbprox_relay2nse(old_msg, nse, ns_bvci); if (rc < 0) - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_TX_ERR]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_TX_ERR]); return rc; } -static int block_unblock_peer(struct gbproxy_config *cfg, uint16_t ptp_bvci, uint8_t pdu_type) +static int block_unblock_bvc(struct gbproxy_config *cfg, uint16_t ptp_bvci, uint8_t pdu_type) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; - peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); - if (!peer) { + bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); + if (!bvc) { LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", ptp_bvci); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); @@ -881,12 +881,12 @@ switch (pdu_type) { case BSSGP_PDUT_BVC_BLOCK_ACK: - peer->blocked = true; - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_BLOCKED]); + bvc->blocked = true; + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_BLOCKED]); break; case BSSGP_PDUT_BVC_UNBLOCK_ACK: - peer->blocked = false; - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_UNBLOCKED]); + bvc->blocked = false; + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_UNBLOCKED]); break; default: break; @@ -894,22 +894,22 @@ return 0; } -/* Send a message to a peer identified by ptp_bvci but using ns_bvci +/* Send a message to a bvc identified by ptp_bvci but using ns_bvci * in the NS hdr */ static int gbprox_relay2bvci(struct gbproxy_config *cfg, struct msgb *msg, uint16_t ptp_bvci, uint16_t ns_bvci) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; - peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); - if (!peer) { + bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); + if (!bvc) { LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", ptp_bvci); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); return -ENOENT; } - return gbprox_relay2peer(msg, peer, ns_bvci); + return gbprox_relay2peer(msg, bvc, ns_bvci); } int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) @@ -922,14 +922,14 @@ struct msgb *msg, uint16_t nsei, uint16_t ns_bvci) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); uint8_t pdu_type = bgph->pdu_type; int rc; - peer = gbproxy_peer_by_bvci(cfg, ns_bvci); - if (!peer) { - LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find peer " + bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); + if (!bvc) { + LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find bvc " "for PTP message from NSE(%05u/BSS), " "discarding message\n", ns_bvci, nsei); @@ -938,9 +938,9 @@ } /* TODO: Should we discard this message if the check fails */ - check_peer_nsei(peer, nsei); + check_bvc_nsei(bvc, nsei); - rc = gbprox_process_bssgp_ul(cfg, msg, peer); + rc = gbprox_process_bssgp_ul(cfg, msg, bvc); if (!rc) return 0; @@ -965,16 +965,16 @@ struct msgb *msg, uint16_t nsei, uint16_t ns_bvci) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); uint8_t pdu_type = bgph->pdu_type; - peer = gbproxy_peer_by_bvci(cfg, ns_bvci); + bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); /* Send status messages before patching */ - if (!peer) { - LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find peer for " + if (!bvc) { + LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find bvc for " "for message from NSE(%05u/SGSN)\n", ns_bvci, nsei); rate_ctr_inc(&cfg->ctrg-> @@ -983,10 +983,10 @@ &ns_bvci, msg); } - if (peer->blocked) { - LOGPBVC(peer, LOGL_NOTICE, "Dropping PDU for " + if (bvc->blocked) { + LOGPBVC(bvc, LOGL_NOTICE, "Dropping PDU for " "blocked BVC via NSE(%05u/SGSN)\n", nsei); - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); return bssgp_tx_status(BSSGP_CAUSE_BVCI_BLOCKED, &ns_bvci, msg); } @@ -1004,9 +1004,9 @@ } /* Optionally patch the message */ - gbprox_process_bssgp_dl(cfg, msg, peer); + gbprox_process_bssgp_dl(cfg, msg, bvc); - return gbprox_relay2peer(msg, peer, ns_bvci); + return gbprox_relay2peer(msg, bvc, ns_bvci); } /* process a BVC-RESET message from the BSS side */ @@ -1014,7 +1014,7 @@ uint16_t nsei, struct tlv_parsed *tp, int *copy_to_sgsn2) { - struct gbproxy_peer *from_peer = NULL; + struct gbproxy_bvc *from_bvc = NULL; uint16_t bvci; if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { @@ -1029,7 +1029,7 @@ * don't want the SGSN to reset, as the signalling endpoint * is common for all point-to-point BVCs (and thus all BTS) */ - /* Ensure the NSE peer is there and clear all PtP BVCs */ + /* Ensure the NSE bvc is there and clear all PtP BVCs */ struct gbproxy_nse *nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); if (!nse) { LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); @@ -1037,15 +1037,15 @@ return 0; } - gbproxy_cleanup_peers(cfg, nsei, 0); + gbproxy_cleanup_bvcs(cfg, nsei, 0); /* FIXME: only do this if SGSN is alive! */ LOGPNSE(nse, LOGL_INFO, "Tx fake BVC RESET ACK of BVCI=0\n"); bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); return 0; } else { - from_peer = gbproxy_peer_by_bvci(cfg, bvci); - if (!from_peer) { + from_bvc = gbproxy_bvc_by_bvci(cfg, bvci); + if (!from_bvc) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); if (!nse) { LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " @@ -1054,15 +1054,15 @@ return 0; } /* if a PTP-BVC is reset, and we don't know that - * PTP-BVCI yet, we should allocate a new peer */ - from_peer = gbproxy_peer_alloc(nse, bvci); - OSMO_ASSERT(from_peer); - LOGPBVC(from_peer, LOGL_INFO, "Allocated new peer\n"); + * PTP-BVCI yet, we should allocate a new bvc */ + from_bvc = gbproxy_bvc_alloc(nse, bvci); + OSMO_ASSERT(from_bvc); + LOGPBVC(from_bvc, LOGL_INFO, "Allocated new bvc\n"); } /* Could have moved to a different NSE */ - if (!check_peer_nsei(from_peer, nsei)) { - LOGPBVC(from_peer, LOGL_NOTICE, "moving peer to NSE(%05u)\n", nsei); + if (!check_bvc_nsei(from_bvc, nsei)) { + LOGPBVC(from_bvc, LOGL_NOTICE, "moving bvc to NSE(%05u)\n", nsei); struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); if (!nse_new) { @@ -1072,8 +1072,8 @@ return 0; } - /* Move peer to different NSE */ - gbproxy_peer_move(from_peer, nse_new); + /* Move bvc to different NSE */ + gbproxy_bvc_move(from_bvc, nse_new); } if (TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { @@ -1082,9 +1082,9 @@ * PDU, this means we can extend our local * state information about this particular cell * */ - memcpy(from_peer->ra, TLVP_VAL(tp, BSSGP_IE_CELL_ID), sizeof(from_peer->ra)); - gsm48_parse_ra(&raid, from_peer->ra); - LOGPBVC(from_peer, LOGL_INFO, "Cell ID %s\n", osmo_rai_name(&raid)); + memcpy(from_bvc->ra, TLVP_VAL(tp, BSSGP_IE_CELL_ID), sizeof(from_bvc->ra)); + gsm48_parse_ra(&raid, from_bvc->ra); + LOGPBVC(from_bvc, LOGL_INFO, "Cell ID %s\n", osmo_rai_name(&raid)); } if (cfg->route_to_sgsn2) *copy_to_sgsn2 = 1; @@ -1102,7 +1102,7 @@ struct tlv_parsed tp; uint8_t pdu_type = bgph->pdu_type; int data_len = msgb_bssgp_len(msg) - sizeof(*bgph); - struct gbproxy_peer *from_peer = NULL; + struct gbproxy_bvc *from_bvc = NULL; struct gprs_ra_id raid; int copy_to_sgsn2 = 0; int rc; @@ -1128,19 +1128,19 @@ case BSSGP_PDUT_SUSPEND: case BSSGP_PDUT_RESUME: /* We implement RAI snooping during SUSPEND/RESUME, since it - * establishes a relationsip between BVCI/peer and the routeing + * establishes a relationsip between BVCI/bvc and the routeing * area identification. The snooped information is then used * for routing the {SUSPEND,RESUME}_[N]ACK back to the correct * BSSGP */ if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) goto err_mand_ie; - from_peer = gbproxy_peer_by_nsei(cfg, nsei); - if (!from_peer) - goto err_no_peer; - memcpy(from_peer->ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), - sizeof(from_peer->ra)); - gsm48_parse_ra(&raid, from_peer->ra); - LOGPBVC(from_peer, LOGL_INFO, "BSSGP SUSPEND/RESUME " + from_bvc = gbproxy_bvc_by_nsei(cfg, nsei); + if (!from_bvc) + goto err_no_bvc; + memcpy(from_bvc->ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), + sizeof(from_bvc->ra)); + gsm48_parse_ra(&raid, from_bvc->ra); + LOGPBVC(from_bvc, LOGL_INFO, "BSSGP SUSPEND/RESUME " "RAI snooping: RAI %s\n", osmo_rai_name(&raid)); /* FIXME: This only supports one BSS per RA */ @@ -1155,7 +1155,7 @@ /* Normally, we can simply pass on all signalling messages from BSS to * SGSN */ - rc = gbprox_process_bssgp_ul(cfg, msg, from_peer); + rc = gbprox_process_bssgp_ul(cfg, msg, from_bvc); if (!rc) return 0; @@ -1163,8 +1163,8 @@ gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn2_nsei); return gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn_nsei); -err_no_peer: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) cannot find peer based on NSEI\n", +err_no_bvc: + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) cannot find bvc based on NSEI\n", nsei); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_NSEI]); return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); @@ -1180,7 +1180,7 @@ uint32_t nsei, uint16_t ns_bvci) { struct gbproxy_nse *nse; - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; @@ -1191,21 +1191,21 @@ if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; - peer = gbproxy_peer_by_bvci(cfg, bvci); - if (!peer) { + bvc = gbproxy_bvc_by_bvci(cfg, bvci); + if (!bvc) { LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP PAGING: " "unable to route: BVCI=%05u unknown\n", nsei, bvci); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } - LOGPBVC(peer, LOGL_INFO, "routing by BVCI\n"); - return gbprox_relay2peer(msg, peer, ns_bvci); + LOGPBVC(bvc, LOGL_INFO, "routing by BVCI\n"); + return gbprox_relay2peer(msg, bvc, ns_bvci); } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; - /* iterate over all peers and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { + /* iterate over all bvcs and dispatch the paging to each matching one */ + llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; @@ -1216,10 +1216,10 @@ } } else if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { errctr = GBPROX_GLOB_CTR_INV_LAI; - /* iterate over all peers and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { + /* iterate over all bvcs and dispatch the paging to each matching one */ + llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; @@ -1229,9 +1229,9 @@ } } } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { - /* iterate over all peers and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { - llist_for_each_entry(peer, &nse->bts_peers, list) { + /* iterate over all bvcs and dispatch the paging to each matching one */ + llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; @@ -1261,7 +1261,7 @@ uint32_t nsei, uint16_t ns_bvci) { struct gbproxy_nse *nse; - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; uint16_t ptp_bvci; if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { @@ -1274,9 +1274,9 @@ if (ptp_bvci >= 2) { /* A reset for a PTP BVC was received, forward it to its - * respective peer */ - peer = gbproxy_peer_by_bvci(cfg, ptp_bvci); - if (!peer) { + * respective bvc */ + bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); + if (!bvc) { LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BVCI=%05u: Cannot find BSS\n", nsei, ptp_bvci); rate_ctr_inc(&cfg->ctrg-> @@ -1284,16 +1284,16 @@ return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &ptp_bvci, orig_msg); } - return gbprox_relay2peer(msg, peer, ns_bvci); + return gbprox_relay2peer(msg, bvc, ns_bvci); } /* A reset for the Signalling entity has been received * from the SGSN. As the signalling BVCI is shared * among all the BSS's that we multiplex, it needs to * be relayed */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { - llist_for_each_entry(peer, &nse->bts_peers, list) - gbprox_relay2peer(msg, peer, ns_bvci); + llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) + gbprox_relay2peer(msg, bvc, ns_bvci); } return 0; @@ -1310,7 +1310,7 @@ uint8_t pdu_type = bgph->pdu_type; int data_len; struct gbproxy_nse *nse; - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; uint16_t bvci; struct msgb *msg; int rc = 0; @@ -1397,10 +1397,10 @@ /* RAI IE is mandatory */ if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) goto err_mand_ie; - peer = gbproxy_peer_by_rai(cfg, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA)); - if (!peer) - goto err_no_peer; - rc = gbprox_relay2peer(msg, peer, ns_bvci); + bvc = gbproxy_bvc_by_rai(cfg, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA)); + if (!bvc) + goto err_no_bvc; + rc = gbprox_relay2peer(msg, bvc, ns_bvci); break; case BSSGP_PDUT_BVC_BLOCK_ACK: case BSSGP_PDUT_BVC_UNBLOCK_ACK: @@ -1416,7 +1416,7 @@ ctr[GBPROX_GLOB_CTR_INV_BVCI]); } else { /* Mark BVC as (un)blocked */ - block_unblock_peer(cfg, bvci, pdu_type); + block_unblock_bvc(cfg, bvci, pdu_type); } rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); break; @@ -1424,8 +1424,8 @@ case BSSGP_PDUT_OVERLOAD: LOGP(DGPRS, LOGL_DEBUG, "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); - /* broadcast to all BSS-side peers */ - llist_for_each_entry(nse, &cfg->nse_peers, list) { + /* broadcast to all BSS-side bvcs */ + llist_for_each_entry(nse, &cfg->nses, list) { gbprox_relay2nse(msg, nse, 0); } break; @@ -1448,8 +1448,8 @@ ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); msgb_free(msg); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, orig_msg); -err_no_peer: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) cannot find peer based on RAI\n", +err_no_bvc: + LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) cannot find bvc based on RAI\n", nsei); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_RAI]); msgb_free(msg); @@ -1519,10 +1519,10 @@ void gprs_ns_prim_status_cb(struct gbproxy_config *cfg, struct osmo_gprs_ns2_prim *nsp) { - /* TODO: bss nsei available/unavailable bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, nsvc->nsei, peer->bvci, 0); + /* TODO: bss nsei available/unavailable bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, nsvc->nsei, bvc->bvci, 0); * TODO: sgsn nsei available/unavailable */ - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; switch (nsp->u.status.cause) { case NS_AFF_CAUSE_SNS_FAILURE: @@ -1549,18 +1549,18 @@ } else { /* bss became unavailable * TODO: Block all BVC belonging to that NSE */ - peer = gbproxy_peer_by_nsei(cfg, nsp->nsei); - if (!peer) { + bvc = gbproxy_bvc_by_nsei(cfg, nsp->nsei); + if (!bvc) { /* TODO: use primitive name + status cause name */ - LOGP(DGPRS, LOGL_NOTICE, "Received ns2 primitive %d for unknown peer NSEI=%u\n", + LOGP(DGPRS, LOGL_NOTICE, "Received ns2 primitive %d for unknown bvc NSEI=%u\n", nsp->u.status.cause, nsp->nsei); break; } - if (!peer->blocked) + if (!bvc->blocked) break; bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, cfg->nsip_sgsn_nsei, - peer->bvci, 0); + bvc->bvci, 0); } LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); break; @@ -1620,10 +1620,10 @@ { struct gbproxy_nse *nse, *ntmp; - llist_for_each_entry_safe(nse, ntmp, &cfg->nse_peers, list) { - struct gbproxy_peer *peer, *tmp; - llist_for_each_entry_safe(peer, tmp, &nse->bts_peers, list) - gbproxy_peer_free(peer); + llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) { + struct gbproxy_bvc *bvc, *tmp; + llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) + gbproxy_bvc_free(bvc); gbproxy_nse_free(nse); } @@ -1636,7 +1636,7 @@ { struct timespec tp; - INIT_LLIST_HEAD(&cfg->nse_peers); + INIT_LLIST_HEAD(&cfg->nses); 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_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index 482bca0..097a29e 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -69,7 +69,7 @@ gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); /* NS-VCs for BSS peers */ - llist_for_each_entry(nse_peer, &cfg->nse_peers, list) { + llist_for_each_entry(nse_peer, &cfg->nses, list) { nse = gprs_ns2_nse_by_nsei(nsi, nse_peer->nsei); if (nse) gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); @@ -87,17 +87,17 @@ cmd->reply = talloc_strdup(cmd, ""); - llist_for_each_entry(nse_peer, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse_peer->bts_peers, list) { + llist_for_each_entry(nse_peer, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse_peer->bvcs, list) { struct gprs_ra_id raid; - gsm48_parse_ra(&raid, peer->ra); + gsm48_parse_ra(&raid, bvc->ra); cmd->reply = talloc_asprintf_append(cmd->reply, "%u,%u,%u,%u,%u,%u,%s\n", - nse_peer->nsei, peer->bvci, + nse_peer->nsei, bvc->bvci, raid.mcc, raid.mnc, raid.lac, raid.rac, - peer->blocked ? "BLOCKED" : "UNBLOCKED"); + bvc->blocked ? "BLOCKED" : "UNBLOCKED"); } } @@ -112,8 +112,8 @@ struct gbproxy_nse *nse_peer; uint32_t count = 0; - llist_for_each_entry(nse_peer, &cfg->nse_peers, list) - count += llist_count(&nse_peer->bts_peers); + llist_for_each_entry(nse_peer, &cfg->nses, list) + count += llist_count(&nse_peer->bvcs); cmd->reply = talloc_strdup(cmd, ""); cmd->reply = talloc_asprintf_append(cmd->reply, "%u", count); diff --git a/src/gbproxy/gb_proxy_patch.c b/src/gbproxy/gb_proxy_patch.c index 5915722..e78d31b 100644 --- a/src/gbproxy/gb_proxy_patch.c +++ b/src/gbproxy/gb_proxy_patch.c @@ -33,20 +33,20 @@ extern void *tall_sgsn_ctx; /* patch RA identifier in place */ -static void gbproxy_patch_raid(struct gsm48_ra_id *raid_enc, struct gbproxy_peer *peer, +static void gbproxy_patch_raid(struct gsm48_ra_id *raid_enc, struct gbproxy_bvc *bvc, int to_bss, const char *log_text) { - OSMO_ASSERT(peer); - struct gbproxy_patch_state *state = &peer->patch_state; + OSMO_ASSERT(bvc); + struct gbproxy_patch_state *state = &bvc->patch_state; struct osmo_plmn_id old_plmn; struct gprs_ra_id raid; - enum gbproxy_peer_ctr counter = + enum gbproxy_bvc_ctr counter = to_bss ? GBPROX_PEER_CTR_RAID_PATCHED_SGSN : GBPROX_PEER_CTR_RAID_PATCHED_BSS; - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (!state->local_plmn.mcc || !state->local_plmn.mnc) @@ -80,7 +80,7 @@ } } - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %s to %s: " "%s-%d-%d -> %s\n", log_text, @@ -89,12 +89,12 @@ osmo_rai_name(&raid)); gsm48_encode_ra(raid_enc, &raid); - rate_ctr_inc(&peer->ctrg->ctr[counter]); + rate_ctr_inc(&bvc->ctrg->ctr[counter]); } static void gbproxy_patch_apn_ie(struct msgb *msg, uint8_t *apn_ie, size_t apn_ie_len, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, size_t *new_apn_ie_len, const char *log_text) { struct apn_ie_hdr { @@ -105,9 +105,9 @@ size_t apn_len = hdr->apn_len; uint8_t *apn = hdr->apn; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); OSMO_ASSERT(apn_ie_len == apn_len + sizeof(struct apn_ie_hdr)); @@ -116,7 +116,7 @@ if (cfg->core_apn_size == 0) { char str1[110]; /* Remove the IE */ - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %s to SGSN: Removing APN '%s'\n", log_text, osmo_apn_to_str(str1, apn, apn_len)); @@ -130,7 +130,7 @@ OSMO_ASSERT(cfg->core_apn_size <= 100); - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %s to SGSN: " "Replacing APN '%s' -> '%s'\n", log_text, @@ -144,21 +144,21 @@ hdr->apn_len = cfg->core_apn_size; } - rate_ctr_inc(&peer->ctrg->ctr[GBPROX_PEER_CTR_APN_PATCHED]); + rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_APN_PATCHED]); } static int gbproxy_patch_tlli(uint8_t *tlli_enc, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t new_tlli, int to_bss, const char *log_text) { uint32_t tlli_be; uint32_t tlli; - enum gbproxy_peer_ctr counter = + enum gbproxy_bvc_ctr counter = to_bss ? GBPROX_PEER_CTR_TLLI_PATCHED_SGSN : GBPROX_PEER_CTR_TLLI_PATCHED_BSS; - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); memcpy(&tlli_be, tlli_enc, sizeof(tlli_be)); tlli = ntohl(tlli_be); @@ -166,7 +166,7 @@ if (tlli == new_tlli) return 0; - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %ss: " "Replacing %08x -> %08x\n", log_text, tlli, new_tlli); @@ -174,23 +174,23 @@ tlli_be = htonl(new_tlli); memcpy(tlli_enc, &tlli_be, sizeof(tlli_be)); - rate_ctr_inc(&peer->ctrg->ctr[counter]); + rate_ctr_inc(&bvc->ctrg->ctr[counter]); return 1; } static int gbproxy_patch_ptmsi(uint8_t *ptmsi_enc, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t new_ptmsi, int to_bss, const char *log_text) { uint32_t ptmsi_be; uint32_t ptmsi; - enum gbproxy_peer_ctr counter = + enum gbproxy_bvc_ctr counter = to_bss ? GBPROX_PEER_CTR_PTMSI_PATCHED_SGSN : GBPROX_PEER_CTR_PTMSI_PATCHED_BSS; - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); memcpy(&ptmsi_be, ptmsi_enc, sizeof(ptmsi_be)); ptmsi = ntohl(ptmsi_be); @@ -198,7 +198,7 @@ if (ptmsi == new_ptmsi) return 0; - LOGPBVC(peer, LOGL_DEBUG, + LOGPBVC(bvc, LOGL_DEBUG, "Patching %ss: " "Replacing %08x -> %08x\n", log_text, ptmsi, new_ptmsi); @@ -206,22 +206,22 @@ ptmsi_be = htonl(new_ptmsi); memcpy(ptmsi_enc, &ptmsi_be, sizeof(ptmsi_be)); - rate_ctr_inc(&peer->ctrg->ctr[counter]); + rate_ctr_inc(&bvc->ctrg->ctr[counter]); return 1; } int gbproxy_patch_llc(struct msgb *msg, uint8_t *llc, size_t llc_len, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, int *len_change, struct gprs_gb_parse_context *parse_ctx) { struct gprs_llc_hdr_parsed *ghp = &parse_ctx->llc_hdr_parsed; int have_patched = 0; int fcs; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (parse_ctx->ptmsi_enc && link_info && @@ -233,7 +233,7 @@ ptmsi = link_info->sgsn_tlli.ptmsi; if (ptmsi != GSM_RESERVED_TMSI) { - if (gbproxy_patch_ptmsi(parse_ctx->ptmsi_enc, peer, + if (gbproxy_patch_ptmsi(parse_ctx->ptmsi_enc, bvc, ptmsi, parse_ctx->to_bss, "P-TMSI")) have_patched = 1; } else { @@ -249,20 +249,20 @@ ptmsi = link_info->sgsn_tlli.ptmsi; OSMO_ASSERT(ptmsi); - if (gbproxy_patch_ptmsi(parse_ctx->new_ptmsi_enc, peer, + if (gbproxy_patch_ptmsi(parse_ctx->new_ptmsi_enc, bvc, ptmsi, parse_ctx->to_bss, "new P-TMSI")) have_patched = 1; } if (parse_ctx->raid_enc) { - gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->raid_enc, peer, parse_ctx->to_bss, + gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->raid_enc, bvc, parse_ctx->to_bss, parse_ctx->llc_msg_name); have_patched = 1; } if (parse_ctx->old_raid_enc && !parse_ctx->old_raid_is_foreign) { /* TODO: Patch to invalid if P-TMSI unknown. */ - gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->old_raid_enc, peer, parse_ctx->to_bss, + gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->old_raid_enc, bvc, parse_ctx->to_bss, parse_ctx->llc_msg_name); have_patched = 1; } @@ -275,7 +275,7 @@ size_t new_len; gbproxy_patch_apn_ie(msg, parse_ctx->apn_ie, parse_ctx->apn_ie_len, - peer, &new_len, parse_ctx->llc_msg_name); + bvc, &new_len, parse_ctx->llc_msg_name); *len_change += (int)new_len - (int)parse_ctx->apn_ie_len; have_patched = 1; @@ -287,7 +287,7 @@ /* Fix FCS */ fcs = gprs_llc_fcs(llc, ghp->crc_length); - LOGPBVC_CAT(peer, DLLC, LOGL_DEBUG, "Updated LLC message, CRC: %06x -> %06x\n", + LOGPBVC_CAT(bvc, DLLC, LOGL_DEBUG, "Updated LLC message, CRC: %06x -> %06x\n", ghp->fcs, fcs); llc[llc_len - 3] = fcs & 0xff; @@ -300,18 +300,18 @@ /* patch BSSGP message to use core_plmn.mcc/mnc on the SGSN side */ void gbproxy_patch_bssgp(struct msgb *msg, uint8_t *bssgp, size_t bssgp_len, - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, int *len_change, struct gprs_gb_parse_context *parse_ctx) { const char *err_info = NULL; int err_ctr = -1; - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (parse_ctx->bssgp_raid_enc) - gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->bssgp_raid_enc, peer, + gbproxy_patch_raid((struct gsm48_ra_id *)parse_ctx->bssgp_raid_enc, bvc, parse_ctx->to_bss, "BSSGP"); if (parse_ctx->need_decryption && @@ -342,7 +342,7 @@ link_info, parse_ctx->to_bss); if (tlli) { - gbproxy_patch_tlli(parse_ctx->tlli_enc, peer, tlli, + gbproxy_patch_tlli(parse_ctx->tlli_enc, bvc, tlli, parse_ctx->to_bss, "TLLI"); parse_ctx->tlli = tlli; } else { @@ -362,7 +362,7 @@ if (ptmsi != GSM_RESERVED_TMSI) gbproxy_patch_ptmsi( - parse_ctx->bssgp_ptmsi_enc, peer, + parse_ctx->bssgp_ptmsi_enc, bvc, ptmsi, parse_ctx->to_bss, "BSSGP P-TMSI"); } @@ -371,7 +371,7 @@ size_t llc_len = parse_ctx->llc_len; int llc_len_change = 0; - gbproxy_patch_llc(msg, llc, llc_len, peer, link_info, + gbproxy_patch_llc(msg, llc, llc_len, bvc, link_info, &llc_len_change, parse_ctx); /* Note that the APN might have been resized here, but no * pointer int the parse_ctx will refer to an adress after the @@ -406,8 +406,8 @@ patch_error: OSMO_ASSERT(err_ctr >= 0); - rate_ctr_inc(&peer->ctrg->ctr[err_ctr]); - LOGPBVC(peer, LOGL_ERROR, + rate_ctr_inc(&bvc->ctrg->ctr[err_ctr]); + LOGPBVC(bvc, LOGL_ERROR, "NSE(%05u/%s) failed to patch BSSGP message as requested: %s.\n", msgb_nsei(msg), parse_ctx->to_bss ? "SGSN" : "BSS", err_info); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 79ea8e3..a5b93ee 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -35,7 +35,7 @@ extern void *tall_sgsn_ctx; -static const struct rate_ctr_desc peer_ctr_description[] = { +static const struct rate_ctr_desc bvc_ctr_description[] = { { "blocked", "BVC Block " }, { "unblocked", "BVC Unblock " }, { "dropped", "BVC blocked, dropped packet " }, @@ -71,98 +71,98 @@ { "tlli-cache", "TLLI cache size " }, }; -osmo_static_assert(ARRAY_SIZE(peer_ctr_description) == GBPROX_PEER_CTR_LAST, everything_described); +osmo_static_assert(ARRAY_SIZE(bvc_ctr_description) == GBPROX_PEER_CTR_LAST, everything_described); -static const struct rate_ctr_group_desc peer_ctrg_desc = { +static const struct rate_ctr_group_desc bvc_ctrg_desc = { .group_name_prefix = "gbproxy:peer", .group_description = "GBProxy Peer Statistics", - .num_ctr = ARRAY_SIZE(peer_ctr_description), - .ctr_desc = peer_ctr_description, + .num_ctr = ARRAY_SIZE(bvc_ctr_description), + .ctr_desc = bvc_ctr_description, .class_id = OSMO_STATS_CLASS_PEER, }; -/* Find the gbproxy_peer by its BVCI. There can only be one match */ -struct gbproxy_peer *gbproxy_peer_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) +/* Find the gbproxy_bvc by its BVCI. There can only be one match */ +struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (peer->bvci == bvci) - return peer; + llist_for_each_entry(nse, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (bvc->bvci == bvci) + return bvc; } } return NULL; } -/* Find the gbproxy_peer by its NSEI */ -/* FIXME: Only returns the first peer, but we could have multiple on this nsei */ -struct gbproxy_peer *gbproxy_peer_by_nsei(struct gbproxy_config *cfg, +/* Find the gbproxy_bvc by its NSEI */ +/* FIXME: Only returns the first bvc, but we could have multiple on this nsei */ +struct gbproxy_bvc *gbproxy_bvc_by_nsei(struct gbproxy_config *cfg, uint16_t nsei) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - if (nse->nsei == nsei && !llist_empty(&nse->bts_peers)) - return llist_first_entry(&nse->bts_peers, struct gbproxy_peer, list); + llist_for_each_entry(nse, &cfg->nses, list) { + if (nse->nsei == nsei && !llist_empty(&nse->bvcs)) + return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); } return NULL; } -/* look-up a peer by its Routeing Area Identification (RAI) */ -/* FIXME: this doesn't make sense, as RA can span multiple peers! */ -struct gbproxy_peer *gbproxy_peer_by_rai(struct gbproxy_config *cfg, +/* look-up a bvc by its Routeing Area Identification (RAI) */ +/* FIXME: this doesn't make sense, as RA can span multiple bvcs! */ +struct gbproxy_bvc *gbproxy_bvc_by_rai(struct gbproxy_config *cfg, const uint8_t *ra) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra, ra, 6)) - return peer; + llist_for_each_entry(nse, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra, ra, 6)) + return bvc; } } return NULL; } -/* look-up a peer by its Location Area Identification (LAI) */ -/* FIXME: this doesn't make sense, as LA can span multiple peers! */ -struct gbproxy_peer *gbproxy_peer_by_lai(struct gbproxy_config *cfg, +/* look-up a bvc by its Location Area Identification (LAI) */ +/* FIXME: this doesn't make sense, as LA can span multiple bvcs! */ +struct gbproxy_bvc *gbproxy_bvc_by_lai(struct gbproxy_config *cfg, const uint8_t *la) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra, la, 5)) - return peer; + llist_for_each_entry(nse, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra, la, 5)) + return bvc; } } return NULL; } -/* look-up a peer by its Location Area Code (LAC) */ -/* FIXME: this doesn't make sense, as LAC can span multiple peers! */ -struct gbproxy_peer *gbproxy_peer_by_lac(struct gbproxy_config *cfg, +/* look-up a bvc by its Location Area Code (LAC) */ +/* FIXME: this doesn't make sense, as LAC can span multiple bvcs! */ +struct gbproxy_bvc *gbproxy_bvc_by_lac(struct gbproxy_config *cfg, const uint8_t *la) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - if (!memcmp(peer->ra + 3, la + 3, 2)) - return peer; + llist_for_each_entry(nse, &cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + if (!memcmp(bvc->ra + 3, la + 3, 2)) + return bvc; } } return NULL; } -struct gbproxy_peer *gbproxy_peer_by_bssgp_tlv(struct gbproxy_config *cfg, +struct gbproxy_bvc *gbproxy_bvc_by_bssgp_tlv(struct gbproxy_config *cfg, struct tlv_parsed *tp) { if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { @@ -170,22 +170,22 @@ bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); if (bvci >= 2) - return gbproxy_peer_by_bvci(cfg, bvci); + return gbproxy_bvc_by_bvci(cfg, bvci); } - /* FIXME: this doesn't make sense, as RA can span multiple peers! */ + /* FIXME: this doesn't make sense, as RA can span multiple bvcs! */ if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { uint8_t *rai = (uint8_t *)TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA); /* Only compare LAC part, since MCC/MNC are possibly patched. * Since the LAC of different BSS must be different when * MCC/MNC are patched, collisions shouldn't happen. */ - return gbproxy_peer_by_lac(cfg, rai); + return gbproxy_bvc_by_lac(cfg, rai); } - /* FIXME: this doesn't make sense, as LA can span multiple peers! */ + /* FIXME: this doesn't make sense, as LA can span multiple bvcs! */ if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { uint8_t *lai = (uint8_t *)TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA); - return gbproxy_peer_by_lac(cfg, lai); + return gbproxy_bvc_by_lac(cfg, lai); } return NULL; @@ -195,88 +195,92 @@ { time_t now; struct timespec ts = {0,}; - struct gbproxy_peer *peer = (struct gbproxy_peer *) data; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + struct gbproxy_bvc *bvc = (struct gbproxy_bvc *) data; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - gbproxy_remove_stale_link_infos(peer, now); + gbproxy_remove_stale_link_infos(bvc, now); if (cfg->clean_stale_timer_freq != 0) - osmo_timer_schedule(&peer->clean_stale_timer, + osmo_timer_schedule(&bvc->clean_stale_timer, cfg->clean_stale_timer_freq, 0); } -struct gbproxy_peer *gbproxy_peer_alloc(struct gbproxy_nse *nse, uint16_t bvci) +struct gbproxy_bvc *gbproxy_bvc_alloc(struct gbproxy_nse *nse, uint16_t bvci) { - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; OSMO_ASSERT(nse); struct gbproxy_config *cfg = nse->cfg; OSMO_ASSERT(cfg); - peer = talloc_zero(tall_sgsn_ctx, struct gbproxy_peer); - if (!peer) + bvc = talloc_zero(tall_sgsn_ctx, struct gbproxy_bvc); + if (!bvc) return NULL; - peer->bvci = bvci; - peer->ctrg = rate_ctr_group_alloc(peer, &peer_ctrg_desc, bvci); - if (!peer->ctrg) { - talloc_free(peer); + bvc->bvci = bvci; + bvc->ctrg = rate_ctr_group_alloc(bvc, &bvc_ctrg_desc, bvci); + if (!bvc->ctrg) { + talloc_free(bvc); return NULL; } - peer->nse = nse; + bvc->nse = nse; - llist_add(&peer->list, &nse->bts_peers); + llist_add(&bvc->list, &nse->bvcs); - INIT_LLIST_HEAD(&peer->patch_state.logical_links); + INIT_LLIST_HEAD(&bvc->patch_state.logical_links); - osmo_timer_setup(&peer->clean_stale_timer, clean_stale_timer_cb, peer); + osmo_timer_setup(&bvc->clean_stale_timer, clean_stale_timer_cb, bvc); if (cfg->clean_stale_timer_freq != 0) - osmo_timer_schedule(&peer->clean_stale_timer, + osmo_timer_schedule(&bvc->clean_stale_timer, cfg->clean_stale_timer_freq, 0); - return peer; + return bvc; } -void gbproxy_peer_free(struct gbproxy_peer *peer) +void gbproxy_bvc_free(struct gbproxy_bvc *bvc) { - if (!peer) + if (!bvc) return; - llist_del(&peer->list); - osmo_timer_del(&peer->clean_stale_timer); - gbproxy_delete_link_infos(peer); + llist_del(&bvc->list); + osmo_timer_del(&bvc->clean_stale_timer); + gbproxy_delete_link_infos(bvc); - rate_ctr_group_free(peer->ctrg); - peer->ctrg = NULL; + rate_ctr_group_free(bvc->ctrg); + bvc->ctrg = NULL; - talloc_free(peer); + talloc_free(bvc); } -void gbproxy_peer_move(struct gbproxy_peer *peer, struct gbproxy_nse *nse) +void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse) { - llist_del(&peer->list); - llist_add(&peer->list, &nse->bts_peers); - peer->nse = nse; + llist_del(&bvc->list); + llist_add(&bvc->list, &nse->bvcs); + bvc->nse = nse; } -int gbproxy_cleanup_peers(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) +/*! remove bvcs (BVCs) on NSE specified by NSEI. + * \param[in] cfg proxy in which we operate + * \param[in] nsei NS entity in which we should clean up + * \param[in] bvci if 0: remove all BVCs; if != 0: BVCI of the single BVC to clean up */ +int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) { int counter = 0; struct gbproxy_nse *nse, *ntmp; OSMO_ASSERT(cfg); - llist_for_each_entry_safe(nse, ntmp, &cfg->nse_peers, list) { - struct gbproxy_peer *peer, *tmp; + llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) { + struct gbproxy_bvc *bvc, *tmp; if (nse->nsei != nsei) continue; - llist_for_each_entry_safe(peer, tmp, &nse->bts_peers, list) { - if (bvci && peer->bvci != bvci) + llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) { + if (bvci && bvc->bvci != bvci) continue; - gbproxy_peer_free(peer); + gbproxy_bvc_free(bvc); counter += 1; } } @@ -296,23 +300,23 @@ nse->nsei = nsei; nse->cfg = cfg; - llist_add(&nse->list, &cfg->nse_peers); + llist_add(&nse->list, &cfg->nses); - INIT_LLIST_HEAD(&nse->bts_peers); + INIT_LLIST_HEAD(&nse->bvcs); return nse; } void gbproxy_nse_free(struct gbproxy_nse *nse) { - struct gbproxy_peer *peer, *tmp; + struct gbproxy_bvc *bvc, *tmp; if (!nse) return; llist_del(&nse->list); - llist_for_each_entry_safe(peer, tmp, &nse->bts_peers, list) - gbproxy_peer_free(peer); + llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) + gbproxy_bvc_free(bvc); talloc_free(nse); } @@ -322,7 +326,7 @@ struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - llist_for_each_entry(nse, &cfg->nse_peers, list) { + llist_for_each_entry(nse, &cfg->nses, list) { if (nse->nsei == nsei) return nse; } @@ -340,4 +344,4 @@ nse = gbproxy_nse_alloc(cfg, nsei); return nse; -} \ No newline at end of file +} diff --git a/src/gbproxy/gb_proxy_tlli.c b/src/gbproxy/gb_proxy_tlli.c index b84d1ea..0ea3a93 100644 --- a/src/gbproxy/gb_proxy_tlli.c +++ b/src/gbproxy/gb_proxy_tlli.c @@ -32,11 +32,11 @@ #include #include -struct gbproxy_link_info *gbproxy_link_info_by_tlli(struct gbproxy_peer *peer, +struct gbproxy_link_info *gbproxy_link_info_by_tlli(struct gbproxy_bvc *bvc, uint32_t tlli) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (!tlli) return NULL; @@ -50,11 +50,11 @@ } struct gbproxy_link_info *gbproxy_link_info_by_ptmsi( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t ptmsi) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (ptmsi == GSM_RESERVED_TMSI) return NULL; @@ -67,11 +67,11 @@ } struct gbproxy_link_info *gbproxy_link_info_by_any_sgsn_tlli( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t tlli) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (!tlli) return NULL; @@ -86,11 +86,11 @@ } struct gbproxy_link_info *gbproxy_link_info_by_sgsn_tlli( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, uint32_t tlli, uint32_t sgsn_nsei) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (!tlli) return NULL; @@ -105,12 +105,12 @@ } struct gbproxy_link_info *gbproxy_link_info_by_imsi( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, const uint8_t *imsi, size_t imsi_len) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; if (!gprs_is_mi_imsi(imsi, imsi_len)) return NULL; @@ -137,10 +137,10 @@ } } -void gbproxy_delete_link_info(struct gbproxy_peer *peer, +void gbproxy_delete_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info) { - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; gbproxy_link_info_discard_messages(link_info); @@ -148,44 +148,44 @@ talloc_free(link_info); state->logical_link_count -= 1; - peer->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = + bvc->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = state->logical_link_count; } -void gbproxy_delete_link_infos(struct gbproxy_peer *peer) +void gbproxy_delete_link_infos(struct gbproxy_bvc *bvc) { struct gbproxy_link_info *link_info, *nxt; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; llist_for_each_entry_safe(link_info, nxt, &state->logical_links, list) - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); OSMO_ASSERT(state->logical_link_count == 0); OSMO_ASSERT(llist_empty(&state->logical_links)); } -void gbproxy_attach_link_info(struct gbproxy_peer *peer, time_t now, +void gbproxy_attach_link_info(struct gbproxy_bvc *bvc, time_t now, struct gbproxy_link_info *link_info) { - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; link_info->timestamp = now; llist_add(&link_info->list, &state->logical_links); state->logical_link_count += 1; - peer->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = + bvc->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = state->logical_link_count; } -int gbproxy_remove_stale_link_infos(struct gbproxy_peer *peer, time_t now) +int gbproxy_remove_stale_link_infos(struct gbproxy_bvc *bvc, time_t now) { - OSMO_ASSERT(peer); - struct gbproxy_patch_state *state = &peer->patch_state; + OSMO_ASSERT(bvc); + struct gbproxy_patch_state *state = &bvc->patch_state; int exceeded_max_len = 0; int deleted_count = 0; int check_for_age; - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (cfg->tlli_max_len > 0) @@ -200,12 +200,12 @@ link_info = llist_entry(state->logical_links.prev, struct gbproxy_link_info, list); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list " "(stale, length %d, max_len exceeded)\n", link_info->tlli.current, state->logical_link_count); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); deleted_count += 1; } @@ -222,23 +222,23 @@ continue; } - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list " "(stale, age %d, max_age exceeded)\n", link_info->tlli.current, (int)age); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); deleted_count += 1; } return deleted_count; } -struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_peer *peer) +struct gbproxy_link_info *gbproxy_link_info_alloc( struct gbproxy_bvc *bvc) { struct gbproxy_link_info *link_info; - link_info = talloc_zero(peer, struct gbproxy_link_info); + link_info = talloc_zero(bvc, struct gbproxy_link_info); link_info->tlli.ptmsi = GSM_RESERVED_TMSI; link_info->sgsn_tlli.ptmsi = GSM_RESERVED_TMSI; @@ -250,16 +250,16 @@ } void gbproxy_detach_link_info( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info) { - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; llist_del(&link_info->list); OSMO_ASSERT(state->logical_link_count > 0); state->logical_link_count -= 1; - peer->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = + bvc->ctrg->ctr[GBPROX_PEER_CTR_TLLI_CACHE_SIZE].current = state->logical_link_count; } @@ -277,13 +277,13 @@ } void gbproxy_reassign_tlli(struct gbproxy_tlli_state *tlli_state, - struct gbproxy_peer *peer, uint32_t new_tlli) + struct gbproxy_bvc *bvc, uint32_t new_tlli) { - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); if (new_tlli == tlli_state->current) return; - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "The TLLI has been reassigned from %08x to %08x\n", tlli_state->current, new_tlli); @@ -345,26 +345,26 @@ tlli_state->assigned = 0; } -static void gbproxy_touch_link_info(struct gbproxy_peer *peer, +static void gbproxy_touch_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, time_t now) { - gbproxy_detach_link_info(peer, link_info); - gbproxy_attach_link_info(peer, now, link_info); + gbproxy_detach_link_info(bvc, link_info); + gbproxy_attach_link_info(bvc, now, link_info); } -static int gbproxy_unregister_link_info(struct gbproxy_peer *peer, +static int gbproxy_unregister_link_info(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info) { - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); if (!link_info) return 1; if (link_info->tlli.ptmsi == GSM_RESERVED_TMSI && !link_info->imsi_len) { - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list (P-TMSI or IMSI are not set)\n", link_info->tlli.current); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); return 1; } @@ -394,32 +394,32 @@ return link_info != NULL && link_info->is_matching[match_id]; } -static void gbproxy_assign_imsi(struct gbproxy_peer *peer, +static void gbproxy_assign_imsi(struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, struct gprs_gb_parse_context *parse_ctx) { int imsi_matches; struct gbproxy_link_info *other_link_info; enum gbproxy_match_id match_id; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); /* Make sure that there is a second entry with the same IMSI */ other_link_info = gbproxy_link_info_by_imsi( - peer, parse_ctx->imsi, parse_ctx->imsi_len); + bvc, parse_ctx->imsi, parse_ctx->imsi_len); if (other_link_info && other_link_info != link_info) { struct osmo_mobile_identity mi; if (osmo_mobile_identity_decode(&mi, parse_ctx->imsi, parse_ctx->imsi_len, false) || mi.type != GSM_MI_TYPE_IMSI) { - LOGPBVC(peer, LOGL_ERROR, "Failed to decode Mobile Identity\n"); + LOGPBVC(bvc, LOGL_ERROR, "Failed to decode Mobile Identity\n"); } else { - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list (IMSI %s re-used)\n", other_link_info->tlli.current, mi.imsi); - gbproxy_delete_link_info(peer, other_link_info); + gbproxy_delete_link_info(bvc, other_link_info); } } @@ -456,11 +456,11 @@ } static void gbproxy_remove_matching_link_infos( - struct gbproxy_peer *peer, struct gbproxy_link_info *link_info) + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info) { - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); struct gbproxy_link_info *info, *nxt; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; /* Make sure that there is no second entry with the same P-TMSI or TLLI */ llist_for_each_entry_safe(info, nxt, &state->logical_links, list) { @@ -472,22 +472,22 @@ !gbproxy_tlli_match(&link_info->sgsn_tlli, &info->sgsn_tlli))) continue; - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list (P-TMSI/TLLI re-used)\n", info->tlli.current); - gbproxy_delete_link_info(peer, info); + gbproxy_delete_link_info(bvc, info); } } static struct gbproxy_link_info *gbproxy_get_link_info_ul( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, int *tlli_is_valid, struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info = NULL; if (parse_ctx->tlli_enc) { - link_info = gbproxy_link_info_by_tlli(peer, parse_ctx->tlli); + link_info = gbproxy_link_info_by_tlli(bvc, parse_ctx->tlli); if (link_info) { *tlli_is_valid = 1; @@ -499,13 +499,13 @@ if (!link_info && parse_ctx->imsi) { link_info = gbproxy_link_info_by_imsi( - peer, parse_ctx->imsi, parse_ctx->imsi_len); + bvc, parse_ctx->imsi, parse_ctx->imsi_len); } if (!link_info && parse_ctx->ptmsi_enc && !parse_ctx->old_raid_is_foreign) { uint32_t bss_ptmsi; gprs_parse_tmsi(parse_ctx->ptmsi_enc, &bss_ptmsi); - link_info = gbproxy_link_info_by_ptmsi(peer, bss_ptmsi); + link_info = gbproxy_link_info_by_ptmsi(bvc, bss_ptmsi); } if (!link_info) @@ -517,27 +517,27 @@ } struct gbproxy_link_info *gbproxy_update_link_state_ul( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, time_t now, struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info; int tlli_is_valid; - OSMO_ASSERT(peer); + OSMO_ASSERT(bvc); - link_info = gbproxy_get_link_info_ul(peer, &tlli_is_valid, parse_ctx); + link_info = gbproxy_get_link_info_ul(bvc, &tlli_is_valid, parse_ctx); if (parse_ctx->tlli_enc && parse_ctx->llc) { uint32_t sgsn_tlli; if (!link_info) { - LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list\n", + LOGPBVC(bvc, LOGL_INFO, "Adding TLLI %08x to list\n", parse_ctx->tlli); - link_info = gbproxy_link_info_alloc(peer); - gbproxy_attach_link_info(peer, now, link_info); + link_info = gbproxy_link_info_alloc(bvc); + gbproxy_attach_link_info(bvc, now, link_info); /* Setup TLLIs */ - sgsn_tlli = gbproxy_make_sgsn_tlli(peer, link_info, + sgsn_tlli = gbproxy_make_sgsn_tlli(bvc, link_info, parse_ctx->tlli); link_info->sgsn_tlli.current = sgsn_tlli; link_info->tlli.current = parse_ctx->tlli; @@ -546,34 +546,34 @@ link_info->tlli.current = parse_ctx->tlli; link_info->tlli.assigned = 0; link_info->sgsn_tlli.current = - gbproxy_make_sgsn_tlli(peer, link_info, + gbproxy_make_sgsn_tlli(bvc, link_info, parse_ctx->tlli); link_info->sgsn_tlli.assigned = 0; - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } else { sgsn_tlli = gbproxy_map_tlli(parse_ctx->tlli, link_info, 0); if (!sgsn_tlli) - sgsn_tlli = gbproxy_make_sgsn_tlli(peer, link_info, + sgsn_tlli = gbproxy_make_sgsn_tlli(bvc, link_info, parse_ctx->tlli); gbproxy_validate_tlli(&link_info->tlli, parse_ctx->tlli, 0); gbproxy_validate_tlli(&link_info->sgsn_tlli, sgsn_tlli, 0); - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } } else if (link_info) { - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } if (parse_ctx->imsi && link_info && link_info->imsi_len == 0) - gbproxy_assign_imsi(peer, link_info, parse_ctx); + gbproxy_assign_imsi(bvc, link_info, parse_ctx); return link_info; } static struct gbproxy_link_info *gbproxy_get_link_info_dl( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info = NULL; @@ -581,14 +581,14 @@ /* Which key to use depends on its availability only, if that fails, do * not retry it with another key (e.g. IMSI). */ if (parse_ctx->tlli_enc) - link_info = gbproxy_link_info_by_sgsn_tlli(peer, parse_ctx->tlli, + link_info = gbproxy_link_info_by_sgsn_tlli(bvc, parse_ctx->tlli, parse_ctx->peer_nsei); /* TODO: Get link_info by (SGSN) P-TMSI if that is available (see * GSM 08.18, 7.2) instead of using the IMSI as key. */ else if (parse_ctx->imsi) link_info = gbproxy_link_info_by_imsi( - peer, parse_ctx->imsi, parse_ctx->imsi_len); + bvc, parse_ctx->imsi, parse_ctx->imsi_len); if (link_info) link_info->is_deregistered = false; @@ -597,17 +597,17 @@ } struct gbproxy_link_info *gbproxy_update_link_state_dl( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, time_t now, struct gprs_gb_parse_context *parse_ctx) { struct gbproxy_link_info *link_info = NULL; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); - link_info = gbproxy_get_link_info_dl(peer, parse_ctx); + link_info = gbproxy_get_link_info_dl(bvc, parse_ctx); if (parse_ctx->tlli_enc && parse_ctx->new_ptmsi_enc && link_info) { /* A new P-TMSI has been signalled in the message, @@ -620,9 +620,9 @@ new_bss_ptmsi = link_info->tlli.ptmsi; if (new_bss_ptmsi == GSM_RESERVED_TMSI) - new_bss_ptmsi = gbproxy_make_bss_ptmsi(peer, new_sgsn_ptmsi); + new_bss_ptmsi = gbproxy_make_bss_ptmsi(bvc, new_sgsn_ptmsi); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Got new PTMSI %08x from SGSN, using %08x for BSS\n", new_sgsn_ptmsi, new_bss_ptmsi); /* Setup PTMSIs */ @@ -636,25 +636,25 @@ uint32_t new_ptmsi; gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Adding TLLI %08x to list (SGSN, new P-TMSI is %08x)\n", parse_ctx->tlli, new_ptmsi); - link_info = gbproxy_link_info_alloc(peer); + link_info = gbproxy_link_info_alloc(bvc); link_info->sgsn_tlli.current = parse_ctx->tlli; link_info->tlli.current = parse_ctx->tlli; link_info->sgsn_tlli.ptmsi = new_ptmsi; link_info->tlli.ptmsi = new_ptmsi; - gbproxy_attach_link_info(peer, now, link_info); + gbproxy_attach_link_info(bvc, now, link_info); } else if (parse_ctx->tlli_enc && parse_ctx->llc && !link_info && !cfg->patch_ptmsi) { /* Unknown SGSN TLLI, create a new link_info */ uint32_t new_ptmsi; - link_info = gbproxy_link_info_alloc(peer); - LOGPBVC(peer, LOGL_INFO, "Adding TLLI %08x to list (SGSN)\n", + link_info = gbproxy_link_info_alloc(bvc); + LOGPBVC(bvc, LOGL_INFO, "Adding TLLI %08x to list (SGSN)\n", parse_ctx->tlli); - gbproxy_attach_link_info(peer, now, link_info); + gbproxy_attach_link_info(bvc, now, link_info); /* Setup TLLIs */ link_info->sgsn_tlli.current = parse_ctx->tlli; @@ -665,7 +665,7 @@ /* A new P-TMSI has been signalled in the message */ gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Assigning new P-TMSI %08x\n", new_ptmsi); /* Setup P-TMSIs */ link_info->sgsn_tlli.ptmsi = new_ptmsi; @@ -675,27 +675,27 @@ link_info, 1); gbproxy_validate_tlli(&link_info->sgsn_tlli, parse_ctx->tlli, 1); gbproxy_validate_tlli(&link_info->tlli, bss_tlli, 1); - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } else if (link_info) { - gbproxy_touch_link_info(peer, link_info, now); + gbproxy_touch_link_info(bvc, link_info, now); } if (parse_ctx->imsi && link_info && link_info->imsi_len == 0) - gbproxy_assign_imsi(peer, link_info, parse_ctx); + gbproxy_assign_imsi(bvc, link_info, parse_ctx); return link_info; } int gbproxy_update_link_state_after( - struct gbproxy_peer *peer, + struct gbproxy_bvc *bvc, struct gbproxy_link_info *link_info, time_t now, struct gprs_gb_parse_context *parse_ctx) { int rc = 0; - OSMO_ASSERT(peer); - OSMO_ASSERT(peer->nse); - struct gbproxy_config *cfg = peer->nse->cfg; + OSMO_ASSERT(bvc); + OSMO_ASSERT(bvc->nse); + struct gbproxy_config *cfg = bvc->nse->cfg; OSMO_ASSERT(cfg); if (parse_ctx->invalidate_tlli && link_info) { @@ -706,13 +706,13 @@ (cfg->keep_link_infos == GBPROX_KEEP_IDENTIFIED && link_info->imsi_len > 0); if (keep_info) { - LOGPBVC(peer, LOGL_INFO, "Unregistering TLLI %08x\n", + LOGPBVC(bvc, LOGL_INFO, "Unregistering TLLI %08x\n", link_info->tlli.current); - rc = gbproxy_unregister_link_info(peer, link_info); + rc = gbproxy_unregister_link_info(bvc, link_info); } else { - LOGPBVC(peer, LOGL_INFO, "Removing TLLI %08x from list\n", + LOGPBVC(bvc, LOGL_INFO, "Removing TLLI %08x from list\n", link_info->tlli.current); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); rc = 1; } } else if (parse_ctx->to_bss && parse_ctx->tlli_enc && @@ -727,18 +727,18 @@ new_sgsn_tlli = gprs_tmsi2tlli(new_sgsn_ptmsi, TLLI_LOCAL); if (new_bss_ptmsi != GSM_RESERVED_TMSI) new_bss_tlli = gprs_tmsi2tlli(new_bss_ptmsi, TLLI_LOCAL); - LOGPBVC(peer, LOGL_INFO, + LOGPBVC(bvc, LOGL_INFO, "Assigning new TLLI %08x to SGSN, %08x to BSS\n", new_sgsn_tlli, new_bss_tlli); gbproxy_reassign_tlli(&link_info->sgsn_tlli, - peer, new_sgsn_tlli); + bvc, new_sgsn_tlli); gbproxy_reassign_tlli(&link_info->tlli, - peer, new_bss_tlli); - gbproxy_remove_matching_link_infos(peer, link_info); + bvc, new_bss_tlli); + gbproxy_remove_matching_link_infos(bvc, link_info); } - gbproxy_remove_stale_link_infos(peer, now); + gbproxy_remove_stale_link_infos(bvc, now); return rc; } diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index bf1c4e0..3ef8ccc 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -68,14 +68,14 @@ {0, NULL} }; -static void gbprox_vty_print_peer(struct vty *vty, struct gbproxy_peer *peer) +static void gbprox_vty_print_bvc(struct vty *vty, struct gbproxy_bvc *bvc) { struct gprs_ra_id raid; - gsm48_parse_ra(&raid, peer->ra); + gsm48_parse_ra(&raid, bvc->ra); vty_out(vty, "NSEI %5u, PTP-BVCI %5u, " - "RAI %s", peer->nse->nsei, peer->bvci, osmo_rai_name(&raid)); - if (peer->blocked) + "RAI %s", bvc->nse->nsei, bvc->bvci, osmo_rai_name(&raid)); + if (bvc->blocked) vty_out(vty, " [BVC-BLOCKED]"); vty_out(vty, "%s", VTY_NEWLINE); @@ -426,12 +426,12 @@ /* Re-schedule running timers soon in case prev frequency was really big and new frequency is desired to be lower. After initial run, periodic - time is used. Use random() to avoid firing timers for all peers at + time is used. Use random() to avoid firing timers for all bvcs at the same time */ - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) - osmo_timer_schedule(&peer->clean_stale_timer, + llist_for_each_entry(nse, &g_cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) + osmo_timer_schedule(&bvc->clean_stale_timer, random() % 5, random() % 1000000); } @@ -447,10 +447,10 @@ struct gbproxy_nse *nse; g_cfg->clean_stale_timer_freq = 0; - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) - osmo_timer_del(&peer->clean_stale_timer); + llist_for_each_entry(nse, &g_cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) + osmo_timer_del(&bvc->clean_stale_timer); } return CMD_SUCCESS; @@ -584,13 +584,13 @@ if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { - gbprox_vty_print_peer(vty, peer); + llist_for_each_entry(nse, &g_cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { + gbprox_vty_print_bvc(vty, bvc); if (show_stats) - vty_out_rate_ctr_group(vty, " ", peer->ctrg); + vty_out_rate_ctr_group(vty, " ", bvc->ctrg); } } return CMD_SUCCESS; @@ -606,13 +606,13 @@ osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { + llist_for_each_entry(nse, &g_cfg->nses, list) { + struct gbproxy_bvc *bvc; + llist_for_each_entry(bvc, &nse->bvcs, list) { struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; + struct gbproxy_patch_state *state = &bvc->patch_state; - gbprox_vty_print_peer(vty, peer); + gbprox_vty_print_bvc(vty, bvc); llist_for_each_entry(link_info, &state->logical_links, list) { time_t age = now - link_info->timestamp; @@ -652,16 +652,16 @@ DEFUN(delete_gb_bvci, delete_gb_bvci_cmd, "delete-gbproxy-peer <0-65534> bvci <2-65534>", - "Delete a GBProxy peer by NSEI and optionally BVCI\n" + "Delete a GBProxy bvc by NSEI and optionally BVCI\n" "NSEI number\n" - "Only delete peer with a matching BVCI\n" + "Only delete bvc with a matching BVCI\n" "BVCI number\n") { const uint16_t nsei = atoi(argv[0]); const uint16_t bvci = atoi(argv[1]); int counter; - counter = gbproxy_cleanup_peers(g_cfg, nsei, bvci); + counter = gbproxy_cleanup_bvcs(g_cfg, nsei, bvci); if (counter == 0) { vty_out(vty, "BVC not found%s", VTY_NEWLINE); @@ -673,7 +673,7 @@ DEFUN(delete_gb_nsei, delete_gb_nsei_cmd, "delete-gbproxy-peer <0-65534> (only-bvc|only-nsvc|all) [dry-run]", - "Delete a GBProxy peer by NSEI and optionally BVCI\n" + "Delete a GBProxy bvc by NSEI and optionally BVCI\n" "NSEI number\n" "Only delete BSSGP connections (BVC)\n" "Only delete dynamic NS connections (NS-VC)\n" @@ -698,18 +698,18 @@ if (delete_bvc) { if (!dry_run) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei); - counter = gbproxy_cleanup_peers(g_cfg, nsei, 0); + counter = gbproxy_cleanup_bvcs(g_cfg, nsei, 0); gbproxy_nse_free(nse); } else { struct gbproxy_nse *nse; - struct gbproxy_peer *peer; + struct gbproxy_bvc *bvc; counter = 0; - llist_for_each_entry(nse, &g_cfg->nse_peers, list) { + llist_for_each_entry(nse, &g_cfg->nses, list) { if (nse->nsei != nsei) continue; - llist_for_each_entry(peer, &nse->bts_peers, list) { + llist_for_each_entry(bvc, &nse->bvcs, list) { vty_out(vty, "BVC: "); - gbprox_vty_print_peer(vty, peer); + gbprox_vty_print_bvc(vty, bvc); counter += 1; } } @@ -754,7 +754,7 @@ enum {MATCH_TLLI = 't', MATCH_IMSI = 'i', MATCH_SGSN = 's'} match; uint32_t ident = 0; const char *imsi = NULL; - struct gbproxy_peer *peer = 0; + struct gbproxy_bvc *bvc = 0; struct gbproxy_link_info *link_info, *nxt; struct gbproxy_patch_state *state; int found = 0; @@ -767,14 +767,14 @@ case MATCH_SGSN: ident = strtoll(argv[2], NULL, 0); break; }; - peer = gbproxy_peer_by_nsei(g_cfg, nsei); - if (!peer) { - vty_out(vty, "Didn't find peer with NSEI %d%s", + bvc = gbproxy_bvc_by_nsei(g_cfg, nsei); + if (!bvc) { + vty_out(vty, "Didn't find bvc with NSEI %d%s", nsei, VTY_NEWLINE); return CMD_WARNING; } - state = &peer->patch_state; + state = &bvc->patch_state; llist_for_each_entry_safe(link_info, nxt, &state->logical_links, list) { struct osmo_mobile_identity mi; @@ -801,7 +801,7 @@ vty_out(vty, "Deleting link with TLLI %08x%s", link_info->tlli.current, VTY_NEWLINE); - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); found += 1; } @@ -821,7 +821,7 @@ { const uint16_t nsei = atoi(argv[0]); enum {MATCH_STALE = 's', MATCH_DEREGISTERED = 'd'} match; - struct gbproxy_peer *peer = 0; + struct gbproxy_bvc *bvc = 0; struct gbproxy_link_info *link_info, *nxt; struct gbproxy_patch_state *state; time_t now; @@ -831,20 +831,20 @@ match = argv[1][0]; - peer = gbproxy_peer_by_nsei(g_cfg, nsei); - if (!peer) { - vty_out(vty, "Didn't find peer with NSEI %d%s", + bvc = gbproxy_bvc_by_nsei(g_cfg, nsei); + if (!bvc) { + vty_out(vty, "Didn't find bvc with NSEI %d%s", nsei, VTY_NEWLINE); return CMD_WARNING; } - state = &peer->patch_state; + state = &bvc->patch_state; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; if (match == MATCH_STALE) { - found = gbproxy_remove_stale_link_infos(peer, now); + found = gbproxy_remove_stale_link_infos(bvc, now); if (found) vty_out(vty, "Deleted %d stale logical link%s%s", found, found == 1 ? "" : "s", VTY_NEWLINE); @@ -854,7 +854,7 @@ if (!link_info->is_deregistered) continue; - gbproxy_delete_link_info(peer, link_info); + gbproxy_delete_link_info(bvc, link_info); found += 1; } } diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index fec5914..873319b 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -129,9 +129,9 @@ return rc; - llist_for_each_entry(nse, &cfg->nse_peers, list) { - struct gbproxy_peer *peer; - llist_for_each_entry(peer, &nse->bts_peers, list) { + llist_for_each_entry(nse, &cfg->nses, list) { + struct gbproxy_bvc *peer; + llist_for_each_entry(peer, &nse->bvcs, list) { struct gbproxy_link_info *link_info; struct gbproxy_patch_state *state = &peer->patch_state; gsm48_parse_ra(&raid, peer->ra); @@ -1285,20 +1285,20 @@ send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x10ff, (uint8_t *)"", 0); /* Find peer */ - OSMO_ASSERT(gbproxy_peer_by_bvci(&gbcfg, 0xeeee) == NULL); - OSMO_ASSERT(gbproxy_peer_by_bvci(&gbcfg, 0x1000) == NULL); - OSMO_ASSERT(gbproxy_peer_by_bvci(&gbcfg, 0x1012) != NULL); - OSMO_ASSERT(gbproxy_peer_by_nsei(&gbcfg, 0xeeee) == NULL); - OSMO_ASSERT(gbproxy_peer_by_nsei(&gbcfg, 0x1012) == NULL); - OSMO_ASSERT(gbproxy_peer_by_nsei(&gbcfg, 0x1000) != NULL); + OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0xeeee) == NULL); + OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0x1000) == NULL); + OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0x1012) != NULL); + OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0xeeee) == NULL); + OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0x1012) == NULL); + OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0x1000) != NULL); /* Cleanup */ - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0, 0) == 0); - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0x1000, 0xeeee) == 0); - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0, 0x1002) == 0); - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0x1000, 0x1012) == 1); - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0x1000, 0x1012) == 0); + OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0, 0) == 0); + OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0xeeee) == 0); + OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0, 0x1002) == 0); + OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0x1012) == 1); + OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0x1012) == 0); dump_peers(stdout, 0, 0, &gbcfg); @@ -1411,7 +1411,7 @@ const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; const char *patch_re = "^9898|^121314"; struct gbproxy_link_info *link_info; - struct gbproxy_peer *peer; + struct gbproxy_bvc *peer; LLIST_HEAD(rcv_list); struct expect_result *expect_res; @@ -1450,7 +1450,7 @@ setup_bssgp(nsi, bss_nsei[0], 0x1002); dump_peers(stdout, 0, 0, &gbcfg); - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); + peer = gbproxy_bvc_by_nsei(&gbcfg, 0x1000); OSMO_ASSERT(peer != NULL); OSMO_ASSERT(expect_bssgp_msg(SGSN_NSEI, 0, BSSGP_PDUT_BVC_RESET)); @@ -1509,17 +1509,17 @@ OSMO_ASSERT(2 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_SGSN].current); - OSMO_ASSERT(gbproxy_peer_by_rai(&gbcfg, convert_ra(&rai_bss)) != NULL); - OSMO_ASSERT(gbproxy_peer_by_rai(&gbcfg, convert_ra(&rai_sgsn)) == NULL); - OSMO_ASSERT(gbproxy_peer_by_rai(&gbcfg, convert_ra(&rai_unknown)) == NULL); + OSMO_ASSERT(gbproxy_bvc_by_rai(&gbcfg, convert_ra(&rai_bss)) != NULL); + OSMO_ASSERT(gbproxy_bvc_by_rai(&gbcfg, convert_ra(&rai_sgsn)) == NULL); + OSMO_ASSERT(gbproxy_bvc_by_rai(&gbcfg, convert_ra(&rai_unknown)) == NULL); - OSMO_ASSERT(gbproxy_peer_by_lai(&gbcfg, convert_ra(&rai_bss)) != NULL); - OSMO_ASSERT(gbproxy_peer_by_lai(&gbcfg, convert_ra(&rai_sgsn)) == NULL); - OSMO_ASSERT(gbproxy_peer_by_lai(&gbcfg, convert_ra(&rai_unknown)) == NULL); + OSMO_ASSERT(gbproxy_bvc_by_lai(&gbcfg, convert_ra(&rai_bss)) != NULL); + OSMO_ASSERT(gbproxy_bvc_by_lai(&gbcfg, convert_ra(&rai_sgsn)) == NULL); + OSMO_ASSERT(gbproxy_bvc_by_lai(&gbcfg, convert_ra(&rai_unknown)) == NULL); - OSMO_ASSERT(gbproxy_peer_by_lac(&gbcfg, convert_ra(&rai_bss)) != NULL); - OSMO_ASSERT(gbproxy_peer_by_lac(&gbcfg, convert_ra(&rai_sgsn)) != NULL); - OSMO_ASSERT(gbproxy_peer_by_lac(&gbcfg, convert_ra(&rai_unknown)) == NULL); + OSMO_ASSERT(gbproxy_bvc_by_lac(&gbcfg, convert_ra(&rai_bss)) != NULL); + OSMO_ASSERT(gbproxy_bvc_by_lac(&gbcfg, convert_ra(&rai_sgsn)) != NULL); + OSMO_ASSERT(gbproxy_bvc_by_lac(&gbcfg, convert_ra(&rai_unknown)) == NULL); link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_tlli, SGSN_NSEI); OSMO_ASSERT(link_info); @@ -1750,7 +1750,7 @@ const uint8_t imsi2[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info, *link_info2; - struct gbproxy_peer *peer; + struct gbproxy_bvc *peer; unsigned bss_nu = 0; unsigned sgsn_nu = 0; @@ -1777,7 +1777,7 @@ setup_ns(nsi, bss_nsei[0]); setup_bssgp(nsi, bss_nsei[0], 0x1002); - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); + peer = gbproxy_bvc_by_nsei(&gbcfg, 0x1000); OSMO_ASSERT(peer != NULL); send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); @@ -1977,7 +1977,7 @@ const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info; - struct gbproxy_peer *peer; + struct gbproxy_bvc *peer; unsigned bss_nu = 0; unsigned sgsn_nu = 0; int old_ctr; @@ -2010,7 +2010,7 @@ setup_ns(nsi, bss_nsei[0]); setup_bssgp(nsi, bss_nsei[0], 0x1002); - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); + peer = gbproxy_bvc_by_nsei(&gbcfg, 0x1000); OSMO_ASSERT(peer != NULL); send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); @@ -2300,7 +2300,7 @@ const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info; - struct gbproxy_peer *peer; + struct gbproxy_bvc *peer; unsigned bss_nu = 0; unsigned sgsn_nu = 0; uint16_t bss_nsei[] = { 0x1000 }; @@ -2327,7 +2327,7 @@ setup_ns(nsi, bss_nsei[0]); setup_bssgp(nsi, bss_nsei[0], 0x1002); - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); + peer = gbproxy_bvc_by_nsei(&gbcfg, 0x1000); OSMO_ASSERT(peer != NULL); send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); @@ -2483,7 +2483,7 @@ const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info; - struct gbproxy_peer *peer; + struct gbproxy_bvc *peer; unsigned bss_nu = 0; unsigned sgsn_nu = 0; uint16_t bss_nsei[] = { 0x1000 }; @@ -2510,7 +2510,7 @@ setup_ns(nsi, bss_nsei[0]); setup_bssgp(nsi, bss_nsei[0], 0x1002); - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); + peer = gbproxy_bvc_by_nsei(&gbcfg, 0x1000); OSMO_ASSERT(peer != NULL); send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); @@ -2803,7 +2803,7 @@ const uint8_t imsi3[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x26, 0x27, 0xf8}; struct gbproxy_link_info *link_info; struct gbproxy_link_info *other_info; - struct gbproxy_peer *peer; + struct gbproxy_bvc *peer; unsigned bss_nu = 0; unsigned sgsn_nu = 0; @@ -2852,7 +2852,7 @@ send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); send_bssgp_reset_ack(nsi, SGSN2_NSEI, 0x1002); - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); + peer = gbproxy_bvc_by_nsei(&gbcfg, 0x1000); OSMO_ASSERT(peer != NULL); dump_global(stdout, 0); @@ -3279,7 +3279,7 @@ const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info, *link_info2; - struct gbproxy_peer *peer; + struct gbproxy_bvc *peer; unsigned bss_nu = 0; unsigned sgsn_nu = 0; uint16_t bss_nsei[] = { 0x1000 }; @@ -3311,7 +3311,7 @@ setup_ns(nsi, bss_nsei[0]); setup_bssgp(nsi, bss_nsei[0], 0x1002); - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); + peer = gbproxy_bvc_by_nsei(&gbcfg, 0x1000); OSMO_ASSERT(peer != NULL); send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); @@ -4208,7 +4208,7 @@ } struct gbproxy_link_info *register_tlli( - struct gbproxy_peer *peer, uint32_t tlli, + struct gbproxy_bvc *peer, uint32_t tlli, const uint8_t *imsi, size_t imsi_len, time_t now) { struct gbproxy_link_info *link_info; @@ -4264,7 +4264,7 @@ { struct gbproxy_config cfg = {0}; struct gbproxy_nse *nse; - struct gbproxy_peer *peer; + struct gbproxy_bvc *peer; const char *err_msg = NULL; const uint8_t imsi1[] = { GSM_MI_TYPE_IMSI, 0x23, 0x24, 0x25, 0xf6 }; const uint8_t imsi2[] = { GSM_MI_TYPE_IMSI, 0x26, 0x27, 0x28, 0xf9 }; @@ -4294,7 +4294,7 @@ cfg.tlli_max_len = 0; cfg.tlli_max_age = 0; - peer = gbproxy_peer_alloc(nse, 20); + peer = gbproxy_bvc_alloc(nse, 20); OSMO_ASSERT(peer->patch_state.logical_link_count == 0); printf(" Add TLLI 1, IMSI 1\n"); @@ -4323,7 +4323,7 @@ printf("\n"); - gbproxy_peer_free(peer); + gbproxy_bvc_free(peer); } { @@ -4333,7 +4333,7 @@ cfg.tlli_max_len = 0; cfg.tlli_max_age = 0; - peer = gbproxy_peer_alloc(nse, 20); + peer = gbproxy_bvc_alloc(nse, 20); OSMO_ASSERT(peer->patch_state.logical_link_count == 0); printf(" Add TLLI 1, IMSI 1\n"); @@ -4362,7 +4362,7 @@ printf("\n"); - gbproxy_peer_free(peer); + gbproxy_bvc_free(peer); } { @@ -4373,7 +4373,7 @@ cfg.tlli_max_len = 1; cfg.tlli_max_age = 0; - peer = gbproxy_peer_alloc(nse, 20); + peer = gbproxy_bvc_alloc(nse, 20); OSMO_ASSERT(peer->patch_state.logical_link_count == 0); printf(" Add TLLI 1, IMSI 1\n"); @@ -4400,7 +4400,7 @@ printf("\n"); - gbproxy_peer_free(peer); + gbproxy_bvc_free(peer); } { @@ -4411,7 +4411,7 @@ cfg.tlli_max_len = 0; cfg.tlli_max_age = 1; - peer = gbproxy_peer_alloc(nse, 20); + peer = gbproxy_bvc_alloc(nse, 20); OSMO_ASSERT(peer->patch_state.logical_link_count == 0); printf(" Add TLLI 1, IMSI 1 (should expire after timeout)\n"); @@ -4438,7 +4438,7 @@ printf("\n"); - gbproxy_peer_free(peer); + gbproxy_bvc_free(peer); } { @@ -4449,7 +4449,7 @@ cfg.tlli_max_len = 0; cfg.tlli_max_age = 1; - peer = gbproxy_peer_alloc(nse, 20); + peer = gbproxy_bvc_alloc(nse, 20); OSMO_ASSERT(peer->patch_state.logical_link_count == 0); printf(" Add TLLI 1, IMSI 1 (should expire)\n"); @@ -4486,7 +4486,7 @@ printf("\n"); - gbproxy_peer_free(peer); + gbproxy_bvc_free(peer); } gbproxy_clear_patch_filter(&cfg.matches[GBPROX_MATCH_PATCHING]); gbprox_reset(&cfg); @@ -4583,7 +4583,7 @@ const uint32_t foreign_tlli1 = 0x8000dead; - struct gbproxy_peer *peer; + struct gbproxy_bvc *peer; unsigned bss_nu = 0; unsigned sgsn_nu = 0; uint16_t bss_nsei[] = { 0x1000 }; @@ -4611,7 +4611,7 @@ setup_ns(nsi, bss_nsei[0]); setup_bssgp(nsi, bss_nsei[0], 0x1002); - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); + peer = gbproxy_bvc_by_nsei(&gbcfg, 0x1000); OSMO_ASSERT(peer != NULL); send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iae01067282a6401f6af4cab731202872d2cdb080 Gerrit-Change-Number: 21548 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 Dec 7 13:14:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:14:19 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21549 ) Change subject: gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses ...................................................................... gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses We will soon also have a list of sgsn-side NSEs, and we need to differentiate those. Change-Id: If5accec0c70c01b88927ea07beba6f6488bd9d5a Related: OS#4472 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/gbproxy_test.c 6 files changed, 27 insertions(+), 27 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/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 818ab9d..27b47cf 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -101,8 +101,8 @@ /* NS instance of libosmogb */ struct gprs_ns2_inst *nsi; - /* Linked list of all Gb peers (except SGSN) */ - struct llist_head nses; + /* Linked list of all BSS side Gb peers */ + struct llist_head bss_nses; /* Counter */ struct rate_ctr_group *ctrg; @@ -175,7 +175,7 @@ /* one NS Entity that we interact with (BSS/PCU) */ struct gbproxy_nse { - /* linked to gbproxy_config.nses */ + /* linked to gbproxy_config.bss_nses */ struct llist_head list; /* point back to the config */ diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 94944f9..4c34941 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1203,7 +1203,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); @@ -1217,7 +1217,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { errctr = GBPROX_GLOB_CTR_INV_LAI; /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); @@ -1230,7 +1230,7 @@ } } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); @@ -1291,7 +1291,7 @@ * from the SGSN. As the signalling BVCI is shared * among all the BSS's that we multiplex, it needs to * be relayed */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { llist_for_each_entry(bvc, &nse->bvcs, list) gbprox_relay2peer(msg, bvc, ns_bvci); } @@ -1425,7 +1425,7 @@ LOGP(DGPRS, LOGL_DEBUG, "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); /* broadcast to all BSS-side bvcs */ - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { gbprox_relay2nse(msg, nse, 0); } break; @@ -1620,7 +1620,7 @@ { struct gbproxy_nse *nse, *ntmp; - llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) { + llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc, *tmp; llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) gbproxy_bvc_free(bvc); @@ -1636,7 +1636,7 @@ { struct timespec tp; - INIT_LLIST_HEAD(&cfg->nses); + INIT_LLIST_HEAD(&cfg->bss_nses); 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_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index 097a29e..c3cfddf 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -69,7 +69,7 @@ gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); /* NS-VCs for BSS peers */ - llist_for_each_entry(nse_peer, &cfg->nses, list) { + llist_for_each_entry(nse_peer, &cfg->bss_nses, list) { nse = gprs_ns2_nse_by_nsei(nsi, nse_peer->nsei); if (nse) gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); @@ -87,7 +87,7 @@ cmd->reply = talloc_strdup(cmd, ""); - llist_for_each_entry(nse_peer, &cfg->nses, list) { + llist_for_each_entry(nse_peer, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse_peer->bvcs, list) { struct gprs_ra_id raid; @@ -112,7 +112,7 @@ struct gbproxy_nse *nse_peer; uint32_t count = 0; - llist_for_each_entry(nse_peer, &cfg->nses, list) + llist_for_each_entry(nse_peer, &cfg->bss_nses, list) count += llist_count(&nse_peer->bvcs); cmd->reply = talloc_strdup(cmd, ""); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index a5b93ee..c48a78f 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -87,7 +87,7 @@ { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (bvc->bvci == bvci) @@ -103,7 +103,7 @@ uint16_t nsei) { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { if (nse->nsei == nsei && !llist_empty(&nse->bvcs)) return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); } @@ -117,7 +117,7 @@ { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, ra, 6)) @@ -135,7 +135,7 @@ { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, la, 5)) @@ -152,7 +152,7 @@ { struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra + 3, la + 3, 2)) @@ -272,7 +272,7 @@ struct gbproxy_nse *nse, *ntmp; OSMO_ASSERT(cfg); - llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) { + llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) { struct gbproxy_bvc *bvc, *tmp; if (nse->nsei != nsei) continue; @@ -300,7 +300,7 @@ nse->nsei = nsei; nse->cfg = cfg; - llist_add(&nse->list, &cfg->nses); + llist_add(&nse->list, &cfg->bss_nses); INIT_LLIST_HEAD(&nse->bvcs); @@ -326,7 +326,7 @@ struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { if (nse->nsei == nsei) return nse; } diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 3ef8ccc..e79297d 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -428,7 +428,7 @@ and new frequency is desired to be lower. After initial run, periodic time is used. Use random() to avoid firing timers for all bvcs at the same time */ - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) osmo_timer_schedule(&bvc->clean_stale_timer, @@ -447,7 +447,7 @@ struct gbproxy_nse *nse; g_cfg->clean_stale_timer_freq = 0; - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) osmo_timer_del(&bvc->clean_stale_timer); @@ -584,7 +584,7 @@ if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { gbprox_vty_print_bvc(vty, bvc); @@ -606,7 +606,7 @@ osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { struct gbproxy_link_info *link_info; @@ -704,7 +704,7 @@ struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; counter = 0; - llist_for_each_entry(nse, &g_cfg->nses, list) { + llist_for_each_entry(nse, &g_cfg->bss_nses, list) { if (nse->nsei != nsei) continue; llist_for_each_entry(bvc, &nse->bvcs, list) { diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index 873319b..5538089 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -129,7 +129,7 @@ return rc; - llist_for_each_entry(nse, &cfg->nses, list) { + llist_for_each_entry(nse, &cfg->bss_nses, list) { struct gbproxy_bvc *peer; llist_for_each_entry(peer, &nse->bvcs, list) { struct gbproxy_link_info *link_info; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5accec0c70c01b88927ea07beba6f6488bd9d5a Gerrit-Change-Number: 21549 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 Dec 7 13:14:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:14:19 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: convert bss_nses from llist_head to hashtable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21550 ) Change subject: gbproxy: convert bss_nses from llist_head to hashtable ...................................................................... gbproxy: convert bss_nses from llist_head to hashtable For the common lookup-by-nsei, this should reduce the computational complexity significantly. Depends: libosmocore.git I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Change-Id: Idbb6a362332bb6e3ce22102e7409ae80d0980f44 --- M TODO-RELEASE M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/gbproxy_test.c 7 files changed, 56 insertions(+), 35 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 6b29a87..1e409b5 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -1,2 +1,3 @@ #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 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 27b47cf..b0ab83d 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -102,7 +103,7 @@ struct gprs_ns2_inst *nsi; /* Linked list of all BSS side Gb peers */ - struct llist_head bss_nses; + DECLARE_HASHTABLE(bss_nses, 8); /* Counter */ struct rate_ctr_group *ctrg; @@ -176,7 +177,7 @@ /* one NS Entity that we interact with (BSS/PCU) */ struct gbproxy_nse { /* linked to gbproxy_config.bss_nses */ - struct llist_head list; + struct hlist_node list; /* point back to the config */ struct gbproxy_config *cfg; diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 4c34941..c37b21a 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -1183,6 +1184,7 @@ struct gbproxy_bvc *bvc; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; + int i; /* FIXME: Handle paging logic to only page each matching NSE */ @@ -1203,7 +1205,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); @@ -1217,7 +1219,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) { errctr = GBPROX_GLOB_CTR_INV_LAI; /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); @@ -1230,7 +1232,7 @@ } } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* iterate over all bvcs and dispatch the paging to each matching one */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { llist_for_each_entry(bvc, &nse->bvcs, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); @@ -1263,6 +1265,7 @@ struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; uint16_t ptp_bvci; + int i; if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { rate_ctr_inc(&cfg->ctrg-> @@ -1291,7 +1294,7 @@ * from the SGSN. As the signalling BVCI is shared * among all the BSS's that we multiplex, it needs to * be relayed */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { llist_for_each_entry(bvc, &nse->bvcs, list) gbprox_relay2peer(msg, bvc, ns_bvci); } @@ -1315,6 +1318,7 @@ struct msgb *msg; int rc = 0; int cause; + int i; if (ns_bvci != 0 && ns_bvci != 1) { LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BVCI=%05u is not " @@ -1425,7 +1429,7 @@ LOGP(DGPRS, LOGL_DEBUG, "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); /* broadcast to all BSS-side bvcs */ - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { gbprox_relay2nse(msg, nse, 0); } break; @@ -1618,9 +1622,11 @@ void gbprox_reset(struct gbproxy_config *cfg) { - struct gbproxy_nse *nse, *ntmp; + struct gbproxy_nse *nse; + struct hlist_node *ntmp; + int i; - llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) { + hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { struct gbproxy_bvc *bvc, *tmp; llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) gbproxy_bvc_free(bvc); @@ -1636,7 +1642,7 @@ { struct timespec tp; - INIT_LLIST_HEAD(&cfg->bss_nses); + hash_init(cfg->bss_nses); 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_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index c3cfddf..8290412 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -56,6 +56,7 @@ struct gprs_ns2_inst *nsi = cfg->nsi; struct gprs_ns2_nse *nse; struct gbproxy_nse *nse_peer; + int i; cmd->reply = talloc_strdup(cmd, ""); @@ -69,7 +70,7 @@ gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); /* NS-VCs for BSS peers */ - llist_for_each_entry(nse_peer, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse_peer, list) { nse = gprs_ns2_nse_by_nsei(nsi, nse_peer->nsei); if (nse) gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); @@ -84,10 +85,11 @@ { struct gbproxy_config *cfg = data; struct gbproxy_nse *nse_peer; + int i; cmd->reply = talloc_strdup(cmd, ""); - llist_for_each_entry(nse_peer, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse_peer, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse_peer->bvcs, list) { struct gprs_ra_id raid; @@ -111,8 +113,9 @@ struct gbproxy_config *cfg = data; struct gbproxy_nse *nse_peer; uint32_t count = 0; + int i; - llist_for_each_entry(nse_peer, &cfg->bss_nses, list) + hash_for_each(cfg->bss_nses, i, nse_peer, list) count += llist_count(&nse_peer->bvcs); cmd->reply = talloc_strdup(cmd, ""); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index c48a78f..00bff20 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -86,8 +86,9 @@ struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) { struct gbproxy_nse *nse; + int i; - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (bvc->bvci == bvci) @@ -102,11 +103,11 @@ struct gbproxy_bvc *gbproxy_bvc_by_nsei(struct gbproxy_config *cfg, uint16_t nsei) { - struct gbproxy_nse *nse; - llist_for_each_entry(nse, &cfg->bss_nses, list) { - if (nse->nsei == nsei && !llist_empty(&nse->bvcs)) - return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); - } + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); + + if (nse && !llist_empty(&nse->bvcs)) + return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); + return NULL; } @@ -116,8 +117,9 @@ const uint8_t *ra) { struct gbproxy_nse *nse; + int i; - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, ra, 6)) @@ -134,8 +136,9 @@ const uint8_t *la) { struct gbproxy_nse *nse; + int i; - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra, la, 5)) @@ -151,8 +154,9 @@ const uint8_t *la) { struct gbproxy_nse *nse; + int i; - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { if (!memcmp(bvc->ra + 3, la + 3, 2)) @@ -268,11 +272,12 @@ * \param[in] bvci if 0: remove all BVCs; if != 0: BVCI of the single BVC to clean up */ int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) { - int counter = 0; - struct gbproxy_nse *nse, *ntmp; + int i, counter = 0; + struct gbproxy_nse *nse; + struct hlist_node *ntmp; OSMO_ASSERT(cfg); - llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) { + hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { struct gbproxy_bvc *bvc, *tmp; if (nse->nsei != nsei) continue; @@ -300,7 +305,7 @@ nse->nsei = nsei; nse->cfg = cfg; - llist_add(&nse->list, &cfg->bss_nses); + hash_add(cfg->bss_nses, &nse->list, nsei); INIT_LLIST_HEAD(&nse->bvcs); @@ -313,7 +318,7 @@ if (!nse) return; - llist_del(&nse->list); + hash_del(&nse->list); llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) gbproxy_bvc_free(bvc); @@ -326,7 +331,7 @@ struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each_possible(cfg->bss_nses, nse, list, nsei) { if (nse->nsei == nsei) return nse; } diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index e79297d..da8afdc 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -422,13 +422,14 @@ "Frequency at which the periodic timer is fired (in seconds)\n") { struct gbproxy_nse *nse; + int i; g_cfg->clean_stale_timer_freq = (unsigned int) atoi(argv[0]); /* Re-schedule running timers soon in case prev frequency was really big and new frequency is desired to be lower. After initial run, periodic time is used. Use random() to avoid firing timers for all bvcs at the same time */ - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) osmo_timer_schedule(&bvc->clean_stale_timer, @@ -445,9 +446,10 @@ { struct gbproxy_nse *nse; + int i; g_cfg->clean_stale_timer_freq = 0; - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) osmo_timer_del(&bvc->clean_stale_timer); @@ -580,11 +582,12 @@ { struct gbproxy_nse *nse; int show_stats = argc >= 1; + int i; if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { gbprox_vty_print_bvc(vty, bvc); @@ -602,11 +605,12 @@ struct gbproxy_nse *nse; time_t now; struct timespec ts = {0,}; + int i; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; llist_for_each_entry(bvc, &nse->bvcs, list) { struct gbproxy_link_info *link_info; @@ -703,8 +707,9 @@ } else { struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; + int i; counter = 0; - llist_for_each_entry(nse, &g_cfg->bss_nses, list) { + hash_for_each(g_cfg->bss_nses, i, nse, list) { if (nse->nsei != nsei) continue; llist_for_each_entry(bvc, &nse->bvcs, list) { diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index 5538089..bd5c8b5 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -120,7 +120,7 @@ { struct gbproxy_nse *nse; struct gprs_ra_id raid; - unsigned int i; + unsigned int i, _nse; const struct rate_ctr_group_desc *desc; int rc; @@ -129,7 +129,7 @@ return rc; - llist_for_each_entry(nse, &cfg->bss_nses, list) { + hash_for_each(cfg->bss_nses, _nse, nse, list) { struct gbproxy_bvc *peer; llist_for_each_entry(peer, &nse->bvcs, list) { struct gbproxy_link_info *link_info; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idbb6a362332bb6e3ce22102e7409ae80d0980f44 Gerrit-Change-Number: 21550 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 Dec 7 13:24:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:24:37 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: convert nse->bvcs from llist_head to hashtable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21551 ) Change subject: gbproxy: convert nse->bvcs from llist_head to hashtable ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ic8e9279fd61a3c514fc3203429f36a468f0e81d3 Gerrit-Change-Number: 21551 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 13:24: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 Dec 7 13:24:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:24:44 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove patching, TLLI-tracking and SGSN2 support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21552 ) Change subject: gbproxy: Remove patching, TLLI-tracking and SGSN2 support ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id9cc2e1c63486491ac5bb68876088a615075fde6 Gerrit-Change-Number: 21552 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 13:24: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 Dec 7 13:24:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:24:53 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: convert nse->bvcs from llist_head to hashtable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21551 ) Change subject: gbproxy: convert nse->bvcs from llist_head to hashtable ...................................................................... gbproxy: convert nse->bvcs from llist_head to hashtable For the common lookup-by-bvci, this should reduce the computational complexity significantly. Depends: libosmocore.git I8ef73a62fe9846ce45058eb21cf999dd3eed5741 Change-Id: Ic8e9279fd61a3c514fc3203429f36a468f0e81d3 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/gbproxy_test.c M tests/gbproxy/gbproxy_test.ok 7 files changed, 79 insertions(+), 64 deletions(-) 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 b0ab83d..95a3331 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -150,7 +150,7 @@ /* One BVC inside an NSE */ struct gbproxy_bvc { /* linked to gbproxy_nse.bvcs */ - struct llist_head list; + struct hlist_node list; /* The NSE this BVC belongs to */ struct gbproxy_nse *nse; @@ -186,7 +186,7 @@ uint16_t nsei; /* List of all BVCs in this NSE */ - struct llist_head bvcs; + DECLARE_HASHTABLE(bvcs, 10); }; struct gbproxy_tlli_state { diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index c37b21a..4cf7e41 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1184,7 +1184,7 @@ struct gbproxy_bvc *bvc; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; - int i; + int i, j; /* FIXME: Handle paging logic to only page each matching NSE */ @@ -1206,7 +1206,7 @@ errctr = GBPROX_GLOB_CTR_INV_RAI; /* iterate over all bvcs and dispatch the paging to each matching one */ hash_for_each(cfg->bss_nses, i, nse, list) { - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); @@ -1220,7 +1220,7 @@ errctr = GBPROX_GLOB_CTR_INV_LAI; /* iterate over all bvcs and dispatch the paging to each matching one */ hash_for_each(cfg->bss_nses, i, nse, list) { - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); gbprox_relay2nse(msg, nse, ns_bvci); @@ -1233,7 +1233,7 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* iterate over all bvcs and dispatch the paging to each matching one */ hash_for_each(cfg->bss_nses, i, nse, list) { - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); gbprox_relay2nse(msg, nse, ns_bvci); n_nses++; @@ -1265,7 +1265,7 @@ struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; uint16_t ptp_bvci; - int i; + int i, j; if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { rate_ctr_inc(&cfg->ctrg-> @@ -1295,7 +1295,7 @@ * among all the BSS's that we multiplex, it needs to * be relayed */ hash_for_each(cfg->bss_nses, i, nse, list) { - llist_for_each_entry(bvc, &nse->bvcs, list) + hash_for_each(nse->bvcs, j, bvc, list) gbprox_relay2peer(msg, bvc, ns_bvci); } @@ -1624,11 +1624,12 @@ { struct gbproxy_nse *nse; struct hlist_node *ntmp; - int i; + int i, j; hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { - struct gbproxy_bvc *bvc, *tmp; - llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) + struct gbproxy_bvc *bvc; + struct hlist_node *tmp; + hash_for_each_safe(nse->bvcs, j, tmp, bvc, list) gbproxy_bvc_free(bvc); gbproxy_nse_free(nse); diff --git a/src/gbproxy/gb_proxy_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index 8290412..157695d 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -85,13 +85,13 @@ { struct gbproxy_config *cfg = data; struct gbproxy_nse *nse_peer; - int i; + int i, j; cmd->reply = talloc_strdup(cmd, ""); hash_for_each(cfg->bss_nses, i, nse_peer, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse_peer->bvcs, list) { + hash_for_each(nse_peer->bvcs, j, bvc, list) { struct gprs_ra_id raid; gsm48_parse_ra(&raid, bvc->ra); @@ -112,11 +112,14 @@ { struct gbproxy_config *cfg = data; struct gbproxy_nse *nse_peer; + struct gbproxy_bvc *bvc; uint32_t count = 0; - int i; + int i, j; - hash_for_each(cfg->bss_nses, i, nse_peer, list) - count += llist_count(&nse_peer->bvcs); + hash_for_each(cfg->bss_nses, i, nse_peer, list) { + hash_for_each(nse_peer->bvcs, j, bvc, list) + count++; + } cmd->reply = talloc_strdup(cmd, ""); cmd->reply = talloc_asprintf_append(cmd->reply, "%u", count); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 00bff20..f5a4376 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -90,7 +90,7 @@ hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each_possible(nse->bvcs, bvc, list, bvci) { if (bvc->bvci == bvci) return bvc; } @@ -104,9 +104,15 @@ uint16_t nsei) { struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); + struct gbproxy_bvc *bvc; + int i; - if (nse && !llist_empty(&nse->bvcs)) - return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list); + if (!nse || hash_empty(nse->bvcs)) + return NULL; + + /* return the first entry we find */ + hash_for_each(nse->bvcs, i, bvc, list) + return bvc; return NULL; } @@ -117,11 +123,11 @@ const uint8_t *ra) { struct gbproxy_nse *nse; - int i; + int i, j; hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, ra, 6)) return bvc; } @@ -136,11 +142,11 @@ const uint8_t *la) { struct gbproxy_nse *nse; - int i; + int i, j; hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, la, 5)) return bvc; } @@ -154,11 +160,11 @@ const uint8_t *la) { struct gbproxy_nse *nse; - int i; + int i, j; hash_for_each(cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra + 3, la + 3, 2)) return bvc; } @@ -232,7 +238,7 @@ } bvc->nse = nse; - llist_add(&bvc->list, &nse->bvcs); + hash_add(nse->bvcs, &bvc->list, bvc->bvci); INIT_LLIST_HEAD(&bvc->patch_state.logical_links); @@ -249,7 +255,7 @@ if (!bvc) return; - llist_del(&bvc->list); + hash_del(&bvc->list); osmo_timer_del(&bvc->clean_stale_timer); gbproxy_delete_link_infos(bvc); @@ -261,8 +267,8 @@ void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse) { - llist_del(&bvc->list); - llist_add(&bvc->list, &nse->bvcs); + hash_del(&bvc->list); + hash_add(nse->bvcs, &bvc->list, bvc->bvci); bvc->nse = nse; } @@ -272,16 +278,17 @@ * \param[in] bvci if 0: remove all BVCs; if != 0: BVCI of the single BVC to clean up */ int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) { - int i, counter = 0; + int i, j, counter = 0; struct gbproxy_nse *nse; struct hlist_node *ntmp; OSMO_ASSERT(cfg); hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { - struct gbproxy_bvc *bvc, *tmp; + struct gbproxy_bvc *bvc; + struct hlist_node *btmp; if (nse->nsei != nsei) continue; - llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) { + hash_for_each_safe(nse->bvcs, j, btmp, bvc, list) { if (bvci && bvc->bvci != bvci) continue; @@ -307,20 +314,23 @@ hash_add(cfg->bss_nses, &nse->list, nsei); - INIT_LLIST_HEAD(&nse->bvcs); + hash_init(nse->bvcs); return nse; } void gbproxy_nse_free(struct gbproxy_nse *nse) { - struct gbproxy_bvc *bvc, *tmp; + struct gbproxy_bvc *bvc; + struct hlist_node *tmp; + int i; + if (!nse) return; hash_del(&nse->list); - llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list) + hash_for_each_safe(nse->bvcs, i, tmp, bvc, list) gbproxy_bvc_free(bvc); talloc_free(nse); diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index da8afdc..47ac9b9 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -422,7 +422,7 @@ "Frequency at which the periodic timer is fired (in seconds)\n") { struct gbproxy_nse *nse; - int i; + int i, j; g_cfg->clean_stale_timer_freq = (unsigned int) atoi(argv[0]); /* Re-schedule running timers soon in case prev frequency was really big @@ -431,7 +431,7 @@ the same time */ hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) + hash_for_each(nse->bvcs, j, bvc, list) osmo_timer_schedule(&bvc->clean_stale_timer, random() % 5, random() % 1000000); } @@ -446,12 +446,12 @@ { struct gbproxy_nse *nse; - int i; + int i, j; g_cfg->clean_stale_timer_freq = 0; hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) + hash_for_each(nse->bvcs, j, bvc, list) osmo_timer_del(&bvc->clean_stale_timer); } @@ -582,14 +582,14 @@ { struct gbproxy_nse *nse; int show_stats = argc >= 1; - int i; + int i, j; if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { gbprox_vty_print_bvc(vty, bvc); if (show_stats) @@ -605,14 +605,14 @@ struct gbproxy_nse *nse; time_t now; struct timespec ts = {0,}; - int i; + int i, j; osmo_clock_gettime(CLOCK_MONOTONIC, &ts); now = ts.tv_sec; hash_for_each(g_cfg->bss_nses, i, nse, list) { struct gbproxy_bvc *bvc; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { struct gbproxy_link_info *link_info; struct gbproxy_patch_state *state = &bvc->patch_state; @@ -707,12 +707,12 @@ } else { struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; - int i; + int i, j; counter = 0; hash_for_each(g_cfg->bss_nses, i, nse, list) { if (nse->nsei != nsei) continue; - llist_for_each_entry(bvc, &nse->bvcs, list) { + hash_for_each(nse->bvcs, j, bvc, list) { vty_out(vty, "BVC: "); gbprox_vty_print_bvc(vty, bvc); counter += 1; diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index bd5c8b5..c47bb34 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -131,7 +131,8 @@ hash_for_each(cfg->bss_nses, _nse, nse, list) { struct gbproxy_bvc *peer; - llist_for_each_entry(peer, &nse->bvcs, list) { + int _peer; + hash_for_each(nse->bvcs, _peer, peer, list) { struct gbproxy_link_info *link_info; struct gbproxy_patch_state *state = &peer->patch_state; gsm48_parse_ra(&raid, peer->ra); diff --git a/tests/gbproxy/gbproxy_test.ok b/tests/gbproxy/gbproxy_test.ok index fbd5366..978d91f 100644 --- a/tests/gbproxy/gbproxy_test.ok +++ b/tests/gbproxy/gbproxy_test.ok @@ -116,10 +116,10 @@ Peers: NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 TLLI-Cache: 0 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 TLLI-Cache: 0 + NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 + TLLI-Cache: 0 PROCESSING BVC_RESET_ACK from NSEI 256 23 04 82 10 12 @@ -151,10 +151,10 @@ Peers: NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 TLLI-Cache: 0 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 TLLI-Cache: 0 + NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 + TLLI-Cache: 0 PROCESSING BVC_RESET_ACK from NSEI 256 23 04 82 10 02 @@ -186,10 +186,10 @@ Peers: NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 TLLI-Cache: 0 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 TLLI-Cache: 0 + NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 + TLLI-Cache: 0 PROCESSING BVC_RESET_ACK from NSEI 256 23 04 82 10 02 @@ -306,10 +306,10 @@ NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 NSEI mismatch : 1 TLLI-Cache: 0 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 TLLI-Cache: 0 + NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 + TLLI-Cache: 0 Gbproxy global: PROCESSING BVC_RESET_ACK from NSEI 256 23 04 82 10 02 @@ -453,10 +453,10 @@ [L2]> [L3]> 23 04 82 20 02 Peers: - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 TLLI-Cache: 0 + NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 + TLLI-Cache: 0 --- Send message from BSS 1 to SGSN and back, BVCI 1 --- PROCESSING (null) from NSEI 4096 @@ -587,11 +587,11 @@ [L2]> [L3]> 23 04 82 30 02 Peers: - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 NSEI mismatch : 1 TLLI-Cache: 0 + NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 + TLLI-Cache: 0 NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 TLLI-Cache: 0 --- Send message from BSS 1 to SGSN and back, BVCI 1 --- @@ -635,11 +635,11 @@ [L2]> [L3]> Peers: - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 NSEI mismatch : 1 TLLI-Cache: 0 + NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 + TLLI-Cache: 0 NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 NSEI mismatch : 1 TLLI-Cache: 0 @@ -656,11 +656,11 @@ [L2]> [L3]> Peers: - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 NSEI mismatch : 1 TLLI-Cache: 0 + NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 + TLLI-Cache: 0 NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 NSEI mismatch : 1 TLLI-Cache: 0 @@ -692,10 +692,10 @@ Gbproxy global: Peers: - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 + NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 NSEI mismatch : 1 TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 + NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 NSEI mismatch : 1 TLLI-Cache: 0 NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ic8e9279fd61a3c514fc3203429f36a468f0e81d3 Gerrit-Change-Number: 21551 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 Mon Dec 7 13:24:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:24:54 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove patching, TLLI-tracking and SGSN2 support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21552 ) Change subject: gbproxy: Remove patching, TLLI-tracking and SGSN2 support ...................................................................... gbproxy: Remove patching, TLLI-tracking and SGSN2 support Those features were introduced a long time ago for one specific use case at one specific user, and they are not needed anymore. They complicate the code base significantly and are hard to maintain with all the upcoming modifications regarding SGSN pool supoprt. Change-Id: Id9cc2e1c63486491ac5bb68876088a615075fde6 --- M contrib/osmo-sgsn.spec.in M debian/copyright M debian/osmo-gbproxy.install M include/osmocom/sgsn/gb_proxy.h M osmoappdesc.py M src/gbproxy/Makefile.am M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c D src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_peer.c D src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c M tests/gbproxy/Makefile.am M tests/gbproxy/gbproxy_test.c M tests/gbproxy/gbproxy_test.ok 15 files changed, 4 insertions(+), 12,310 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id9cc2e1c63486491ac5bb68876088a615075fde6 Gerrit-Change-Number: 21552 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 Mon Dec 7 13:25:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:25:15 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: cosmetic: Use function rather than open-coding is_sgsn In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21559 ) Change subject: gb_proxy: cosmetic: Use function rather than open-coding is_sgsn ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id41d74ebd41e5084377a986f4a1acd53cae12bc1 Gerrit-Change-Number: 21559 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:25: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 Dec 7 13:25:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:25:17 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: cosmetic: Use function rather than open-coding is_sgsn In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21559 ) Change subject: gb_proxy: cosmetic: Use function rather than open-coding is_sgsn ...................................................................... gb_proxy: cosmetic: Use function rather than open-coding is_sgsn Change-Id: Id41d74ebd41e5084377a986f4a1acd53cae12bc1 --- M src/gbproxy/gb_proxy.c 1 file changed, 8 insertions(+), 7 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/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 74f799d..98fa928 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -83,6 +83,12 @@ static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei); + +static int gbproxy_is_sgsn_nsei(struct gbproxy_config *cfg, uint16_t nsei) +{ + return nsei == cfg->nsip_sgsn_nsei; +} + static int check_bvc_nsei(struct gbproxy_bvc *bvc, uint16_t nsei) { OSMO_ASSERT(bvc); @@ -726,11 +732,6 @@ return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, orig_msg); } -static int gbproxy_is_sgsn_nsei(struct gbproxy_config *cfg, uint16_t nsei) -{ - return nsei == cfg->nsip_sgsn_nsei; -} - int gbprox_bssgp_send_cb(void *ctx, struct msgb *msg) { int rc; @@ -800,7 +801,7 @@ case NS_AFF_CAUSE_RECOVERY: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); - if (nsp->nsei == cfg->nsip_sgsn_nsei) { + if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { /* look-up or create the BTS context for this BVC */ struct bssgp_bvc_ctx *bctx = btsctx_by_bvci_nsei(nsp->bvci, nsp->nsei); if (!bctx) @@ -810,7 +811,7 @@ } break; case NS_AFF_CAUSE_FAILURE: - if (nsp->nsei == cfg->nsip_sgsn_nsei) { + if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { /* sgsn */ /* TODO: BSVC: block all PtP towards bss */ rate_ctr_inc(&cfg->ctrg-> -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id41d74ebd41e5084377a986f4a1acd53cae12bc1 Gerrit-Change-Number: 21559 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 Dec 7 13:26:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:26:22 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/21534/5/src/gsm/tlv_parser.c at 664 PS5, Line 664: */ > It is marked as "Done" but it's not done? same below. I squashed the changes into the wrong patch, they are now part of I0b352792089c5c0c714712d2ea237beb92e1d73f, thanks for noticing. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 7 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:26:22 +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 Mon Dec 7 13:27:50 2020 From: gerrit-no-reply at lists.osmocom.org (ninjab3s) Date: Mon, 7 Dec 2020 13:27:50 +0000 Subject: Change in osmo-gsm-tester[master]: enb: Set cipher and integrity via scenario file References: Message-ID: ninjab3s has uploaded this change for review. ( 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 chipher algorithms: - 4g:srsue-rftype at uhd+srsenb-rftype@uhd+mod-amarisoftenb-cipher at 1+mod-amarisoftenb-cipher@0+mod-enb-nprb at 6 - 4g:srsue-rftype at uhd+srsenb-rftype@uhd+mod-srsenb-cipher at EEA1+mod-srsenb-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-amarisoftenb-cipher at .conf A sysmocom/scenarios/mod-amarisoftenb-integrity at .conf A sysmocom/scenarios/mod-srsenb-cipher at .conf A sysmocom/scenarios/mod-srsenb-integrity at .conf 11 files changed, 65 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/82/21582/1 diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py index d56d6ec..9d6bc11 100644 --- a/src/osmo_gsm_tester/core/schema.py +++ b/src/osmo_gsm_tester/core/schema.py @@ -105,11 +105,29 @@ raise ValueError('Positive value >0 expected instead of %d' % n) return True -def cipher(val): +def cipher_2g(val): if val in ('a5_0', 'a5_1', 'a5_2', 'a5_3', 'a5_4', 'a5_5', 'a5_6', 'a5_7'): return True raise ValueError('Unknown Cipher value: %r' % val) +def cipher_4g(val): + if val in ('EEA0', 'EEA1', 'EEA2'): + # srsENB + return True + if val in ('0', '1', '2'): + # Amarisoft eNB + return True + raise ValueError('Unknown 4G cipher value: %r' % val) + +def integrity_4g(val): + if val in ('EIA0', 'EIA1', 'EIA2'): + # srsENB + return True + if val in ('0', '1', '2',): + # Amarisoft eNB + return True + raise ValueError('Unknown 4G integrity value %r' % val) + def modem_feature(val): if val in ('sms', 'gprs', 'voice', 'ussd', 'sim', '2g', '3g', '4g', 'dl_qam256', 'ul_qam64'): return True @@ -165,7 +183,9 @@ MSISDN = 'msisdn' AUTH_ALGO = 'auth_algo' TIMES='times' -CIPHER = 'cipher' +CIPHER_2G = 'cipher_2g' +CIPHER_4G = 'cipher_4g' +INTEGRITY_4G = 'integrity_4g' MODEM_FEATURE = 'modem_feature' PHY_CHAN = 'chan' CHAN_ALLOCATOR = 'chan_allocator' @@ -189,7 +209,8 @@ MSISDN: msisdn, AUTH_ALGO: auth_algo, TIMES: times, - CIPHER: cipher, + CIPHER_2G: cipher_2g, + CIPHER_4G: cipher_4g, MODEM_FEATURE: modem_feature, PHY_CHAN: phy_channel_config, CHAN_ALLOCATOR: channel_allocator, @@ -198,6 +219,7 @@ OSMO_TRX_CLOCK_REF: osmo_trx_clock_ref, LTE_TRANSMISSION_MODE: lte_transmission_mode, DURATION: duration, + INTEGRITY_4G: integrity_4g, } def add(dest, src): diff --git a/src/osmo_gsm_tester/obj/bts.py b/src/osmo_gsm_tester/obj/bts.py index 5b43642..2453fef 100644 --- a/src/osmo_gsm_tester/obj/bts.py +++ b/src/osmo_gsm_tester/obj/bts.py @@ -31,7 +31,7 @@ 'addr': schema.IPV4, 'band': schema.BAND, 'direct_pcu': schema.BOOL_STR, - 'ciphers[]': schema.CIPHER, + 'ciphers[]': schema.CIPHER_2G, 'channel_allocator': schema.CHAN_ALLOCATOR, 'gprs_mode': schema.GPRS_MODE, 'emergency_calls_allowed': schema.BOOL_STR, diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index cdf9505..ce4a8fb 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -44,6 +44,8 @@ 'enable_measurements': schema.BOOL_STR, 'enable_dl_awgn': schema.BOOL_STR, 'dl_awgn_snr': schema.INT, + 'cipher_list[]': schema.CIPHER_4G, + 'integrity_list[]': schema.INTEGRITY_4G, 'a1_report_type': schema.STR, 'a1_report_value': schema.INT, 'a1_hysteresis': schema.INT, diff --git a/src/osmo_gsm_tester/obj/ms.py b/src/osmo_gsm_tester/obj/ms.py index 7257769..3d0827d 100644 --- a/src/osmo_gsm_tester/obj/ms.py +++ b/src/osmo_gsm_tester/obj/ms.py @@ -31,7 +31,7 @@ 'opc': schema.OPC, 'auth_algo': schema.AUTH_ALGO, 'apn_ipaddr': schema.IPV4, - 'ciphers[]': schema.CIPHER, + 'ciphers[]': schema.CIPHER_2G, 'features[]': schema.MODEM_FEATURE } schema.register_resource_schema('modem', resource_schema) diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl index 4c7aa33..fb41fb1 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl @@ -224,9 +224,9 @@ dpc_pucch_snr_target: 10, /* RRC/UP ciphering algorithm preference. EEA0 is always the last. */ - cipher_algo_pref: [], + cipher_algo_pref: [${', '.join(list(dict.fromkeys(enb.cipher_algo)))}], /* RRC integrity algorithm preference. EIA0 is always the last. */ - integ_algo_pref: [2, 1], + integ_algo_pref: [${', '.join(list(dict.fromkeys(enb.integrity_algo)))}], /* (in ms) send RRC connection release after this time of network inactivity */ diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl index 5df432b..3bcb9ac 100644 --- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl @@ -282,5 +282,5 @@ #link_failure_nof_err = 50 rrc_inactivity_timer = ${enb.inactivity_timer} #max_prach_offset_us = 30 -#eea_pref_list = EEA0, EEA2, EEA1 -#eia_pref_list = EIA2, EIA1, EIA0 +eea_pref_list = ${', '.join(list(dict.fromkeys(enb.cipher_list)))} +eia_pref_list = ${', '.join(list(dict.fromkeys(enb.integrity_list)))} diff --git a/sysmocom/defaults.conf b/sysmocom/defaults.conf index 7704857..c0ebf30 100644 --- a/sysmocom/defaults.conf +++ b/sysmocom/defaults.conf @@ -153,6 +153,14 @@ tx_gain: 80 rx_gain: 40 log_all_level: warning + cipher_4g: + - EEA0 + - EEA2 + - EEA1 + integrity_4g: + - EIA2 + - EIA1 + - EIA0 cell_list: - dl_rfemu: type: srsenb_stdin @@ -165,6 +173,10 @@ tx_gain: 89 rx_gain: 60 rf_dev_sync: none + cipher_4g: [] + integrity_4g: + - 2 + - 1 log_options: all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1 srsue: diff --git a/sysmocom/scenarios/mod-amarisoftenb-cipher at .conf b/sysmocom/scenarios/mod-amarisoftenb-cipher at .conf new file mode 100644 index 0000000..38a8002 --- /dev/null +++ b/sysmocom/scenarios/mod-amarisoftenb-cipher at .conf @@ -0,0 +1,5 @@ +modifiers: + enb: + - type: amarisoftenb + cipher_list: + - ${param1} diff --git a/sysmocom/scenarios/mod-amarisoftenb-integrity at .conf b/sysmocom/scenarios/mod-amarisoftenb-integrity at .conf new file mode 100644 index 0000000..ce58fbd --- /dev/null +++ b/sysmocom/scenarios/mod-amarisoftenb-integrity at .conf @@ -0,0 +1,5 @@ +modifiers: + enb: + - type: amarisoftenb + integrity_list: + - ${param1} diff --git a/sysmocom/scenarios/mod-srsenb-cipher at .conf b/sysmocom/scenarios/mod-srsenb-cipher at .conf new file mode 100644 index 0000000..36c798e --- /dev/null +++ b/sysmocom/scenarios/mod-srsenb-cipher at .conf @@ -0,0 +1,5 @@ +modifiers: + enb: + - type: srsenb + cipher_list: + - ${param1} diff --git a/sysmocom/scenarios/mod-srsenb-integrity at .conf b/sysmocom/scenarios/mod-srsenb-integrity at .conf new file mode 100644 index 0000000..013399e --- /dev/null +++ b/sysmocom/scenarios/mod-srsenb-integrity at .conf @@ -0,0 +1,5 @@ +modifiers: + enb: + - type: srsenb + integrity_list: + - ${param1} -- 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: 1 Gerrit-Owner: ninjab3s Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 7 13:27:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:27:58 +0000 Subject: Change in docker-playground[master]: Rename centos-repo-install-test/Dockerfile to centos8 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21577 ) Change subject: Rename centos-repo-install-test/Dockerfile to centos8 ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I05b012abced5b812e74315ccf64365896412e876 Gerrit-Change-Number: 21577 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:27: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 Dec 7 13:27:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:27:59 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols 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/+/21534 to look at the new patch set (#8). Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols This extends our existing TLV parser with the ability to * validate that mandatory IEs of a given message are present * validate that all present IEs are of required minimum length Introducing this generic layer will help us to reduce open-coded imperative verification across virtually all the protocols we implement, as well as add validation to those protocols where we don't properly perform related input validation yet. Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 --- M include/osmocom/gsm/tlv.h M src/gsm/libosmogsm.map M src/gsm/tlv_parser.c 3 files changed, 159 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/21534/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 8 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 Mon Dec 7 13:28:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:28:00 +0000 Subject: Change in docker-playground[master]: Rename centos-repo-install-test/Dockerfile to centos8 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21577 ) Change subject: Rename centos-repo-install-test/Dockerfile to centos8 ...................................................................... Rename centos-repo-install-test/Dockerfile to centos8 We are using centos8 as distro name instead of centos everywher else and jenkins-common.sh are expecting that. Related: OS#4888 Change-Id: I05b012abced5b812e74315ccf64365896412e876 --- R centos8-repo-install-test/Dockerfile R centos8-repo-install-test/Makefile 2 files changed, 0 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Verified diff --git a/centos-repo-install-test/Dockerfile b/centos8-repo-install-test/Dockerfile similarity index 100% rename from centos-repo-install-test/Dockerfile rename to centos8-repo-install-test/Dockerfile diff --git a/centos-repo-install-test/Makefile b/centos8-repo-install-test/Makefile similarity index 100% rename from centos-repo-install-test/Makefile rename to centos8-repo-install-test/Makefile -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I05b012abced5b812e74315ccf64365896412e876 Gerrit-Change-Number: 21577 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Dec 7 13:28:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:28:08 +0000 Subject: Change in osmo-ci[master]: jobs: repo-install-test: Use centos8 as distro name In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21578 ) Change subject: jobs: repo-install-test: Use centos8 as distro name ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Idfbb2c4fc1ca10741406c8ab8930dabe8ce632ee Gerrit-Change-Number: 21578 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:28: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 Dec 7 13:28:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:28:10 +0000 Subject: Change in osmo-ci[master]: jobs: repo-install-test: Use centos8 as distro name In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21578 ) Change subject: jobs: repo-install-test: Use centos8 as distro name ...................................................................... jobs: repo-install-test: Use centos8 as distro name We use centos8 instead of centos in all docker-playground.git setups and the infrastructure there expects that kind of naming. Related: OS#4888 Change-Id: Idfbb2c4fc1ca10741406c8ab8930dabe8ce632ee --- M jobs/repo-install-test.yml M scripts/repo-install-test/run-inside-docker.sh 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Verified diff --git a/jobs/repo-install-test.yml b/jobs/repo-install-test.yml index f386eab..d16b852 100644 --- a/jobs/repo-install-test.yml +++ b/jobs/repo-install-test.yml @@ -6,7 +6,7 @@ distro: - debian: feeds: !!python/tuple [nightly, latest] - - centos: + - centos8: feeds: !!python/tuple [next, nightly] - job-template: diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index e0f07c2..450a754 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -59,7 +59,7 @@ apt-get update } -configure_osmocom_repo_centos() { +configure_osmocom_repo_centos8() { echo "Configuring Osmocom repository" # Generate this file, based on the feed: # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8_Stream/network:osmocom:latest.repo @@ -87,7 +87,7 @@ > /etc/apt/apt.conf.d/01keep-debs } -configure_keep_cache_centos() { +configure_keep_cache_centos8() { if [ -z "$KEEP_CACHE" ]; then return fi @@ -118,7 +118,7 @@ apt install -y $(cat osmocom_packages.txt) } -install_repo_packages_centos() { +install_repo_packages_centos8() { echo "Installing all repository packages" # Get a list of all packages from the repository -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Idfbb2c4fc1ca10741406c8ab8930dabe8ce632ee Gerrit-Change-Number: 21578 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Dec 7 13:29:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:29:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 ) Change subject: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL block ...................................................................... Patch Set 2: Code-Review+2 Re-adding +1 from laforge on previous patch version and merging since this patch has been here for a while without further review. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7e0d9ed2475dbf989fbf932c8b83117ff5fb28fc Gerrit-Change-Number: 21419 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: Mon, 07 Dec 2020 13:29: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 Dec 7 13:29:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:29:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL ... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 ) Change subject: pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL block ...................................................................... pcu: Verify LLC UI dummy frames are not appended at end of rlcmac DL block LLC UI dummy frames are only to be sent alone in order to delay TBF termination. Until recently (osmo-pcu.git Ifae1a7b2b3dfad8df19585063088ba0df2749c8f), osmo-pcu was sending LLC UI dummy frames instead of padding at RLCMAC layer, which made no sense. Related: OS#4849 Change-Id: I7e0d9ed2475dbf989fbf932c8b83117ff5fb28fc --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 77 insertions(+), 14 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 0850a3d..16036ad 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -1001,13 +1001,6 @@ f_shutdown(__BFILE__, __LINE__); } - /* Check next data blocks contain dummy frames */ - if (lengthof(data_block.blocks) > 1 and substr(data_block.blocks[1].payload, 0, 3) != '43C001'O) { - setverdict(fail, "Second data payload is not a dummy frame: ", - data_block.blocks[1].payload); - f_shutdown(__BFILE__, __LINE__); - } - if (not match(data_block.cs, exp_cs)) { setverdict(fail, "Failed to match ", data_block.cs, " vs exp ", exp_cs); f_shutdown(__BFILE__, __LINE__); @@ -1036,13 +1029,6 @@ f_shutdown(__BFILE__, __LINE__); } - /* Check next data blocks contain dummy frames */ - if (lengthof(data_block.blocks) > 1 and substr(data_block.blocks[1].payload, 0, 3) != '43C001'O) { - setverdict(fail, "Second data payload is not a dummy frame: ", - data_block.blocks[1].payload); - f_shutdown(__BFILE__, __LINE__); - } - if (not match(data_block.mcs, exp_cs)) { setverdict(fail, "Failed to match ", data_block.mcs, " vs exp ", exp_cs); f_shutdown(__BFILE__, __LINE__); diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 67a811d..dad0873 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -2546,6 +2546,81 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +private function f_tc_dl_data_no_llc_ui_dummy(template (omit) MSRadioAccessCapabilityV_BSSGP ms_racap := omit) runs on RAW_PCU_Test_CT { + var AckNackDescription ack_nack_desc := valueof(t_AckNackDescription_init); + var octetstring data := f_rnd_octstring(6); + var RlcmacDlBlock dl_block; + var GprsMS ms; + var uint32_t fn; + + /* 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()); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + 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)); + 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); + + /* Expect the first (GPRS DL) block with bsn=0 and rrbp_valid=1 */ + f_rx_rlcmac_dl_block_exp_data(dl_block, fn, data, 0); + + if (ischosen(dl_block.data_egprs)) { + if (lengthof(dl_block.data_egprs.blocks) != 2) { + setverdict(fail, "DL EGPRS block has unexpected number of LLC frames: ", dl_block.data_egprs); + f_shutdown(__BFILE__, __LINE__); + } + if (dl_block.data_egprs.blocks[1].hdr.length_ind != 127) { + setverdict(fail, "DL EGPRS block 2nd llc frame is not padding!: ", dl_block.data_egprs); + f_shutdown(__BFILE__, __LINE__); + } + if (not match(dl_block.data_egprs.blocks[1].payload, + f_pad_oct(''O, lengthof(dl_block.data_egprs.blocks[1].payload), '2B'O))) { + setverdict(fail, "DL EGPRS block 2nd llc frame is not padding!: ", dl_block.data_egprs); + f_shutdown(__BFILE__, __LINE__); + } + } else if (lengthof(dl_block.data.blocks) > 1) { + setverdict(fail, "DL GPRS block has extra unexpected LLC frames: ", dl_block.data); + f_shutdown(__BFILE__, __LINE__); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + +/* Verify osmo-pcu Doesn't append LLC UI dummy frames to rlcmac blocks + * containing llc data. See OS#4849 */ +testcase TC_dl_gprs_data_no_llc_ui_dummy() runs on RAW_PCU_Test_CT { + f_tc_dl_data_no_llc_ui_dummy(omit); +} + +/* Verify osmo-pcu Doesn't append LLC UI dummy frames to rlcmac blocks + * containing llc data. See OS#4849 */ +testcase TC_dl_egprs_data_no_llc_ui_dummy() runs on RAW_PCU_Test_CT { + + var MultislotCap_GPRS_BSSGP mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MultislotCap_EGPRS_BSSGP mscap_egprs := { + egprsmultislotclass := '00011'B, + egprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV_BSSGP ms_racap := { valueof(ts_RaCapRec_BSSGP('0001'B /* E-GSM */, mscap_gprs, mscap_egprs)) }; + + f_tc_dl_data_no_llc_ui_dummy(ms_racap); +} + private function f_TC_egprs_pkt_chan_req(in EGPRSPktChRequest req, template GsmRrMessage t_imm_ass := ?, PCUIF_BurstType bt := BURST_TYPE_1) @@ -3459,6 +3534,8 @@ execute( TC_paging_cs_multi_ms_tmsi() ); execute( TC_bssgp_dl_unitdata_with_valid_imsi() ); execute( TC_bssgp_dl_unitdata_with_invalid_imsi() ); + execute( TC_dl_gprs_data_no_llc_ui_dummy() ); + execute( TC_dl_egprs_data_no_llc_ui_dummy() ); /* EGPRS specific test cases */ execute( TC_egprs_pkt_chan_req_signalling() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7e0d9ed2475dbf989fbf932c8b83117ff5fb28fc Gerrit-Change-Number: 21419 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 Mon Dec 7 13:30:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:30:38 +0000 Subject: Change in osmo-pcu[master]: Dl TBF: Get rid of LLC UI dummy blocks following other data In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21387 ) Change subject: Dl TBF: Get rid of LLC UI dummy blocks following other data ...................................................................... Patch Set 5: So after one week of no feedback, I guess everybody is happy with it? or doesn't care about it? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifae1a7b2b3dfad8df19585063088ba0df2749c8f Gerrit-Change-Number: 21387 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 07 Dec 2020 13:30: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 Dec 7 13:31:52 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 7 Dec 2020 13:31:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 ) Change subject: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525/2/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525/2/gbproxy/GBProxy_Tests.ttcn at 1125 PS2, Line 1125: [test_done] T.timeout; > so there is no T. [?] Not sure if that was a comment for patchset1? I'm handling timeouts for both [not test_done] and [test_done] here and a timeout if the test is not yet done should always be a failure. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If71db2d37d67d02c5d9550202128ee3470762964 Gerrit-Change-Number: 21525 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:31:52 +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 Dec 7 13:33:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:33:18 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:33: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 Dec 7 13:34:03 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 7 Dec 2020 13:34:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix cs paging tests References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21583 ) Change subject: gbproxy: Fix cs paging tests ...................................................................... gbproxy: Fix cs paging tests In commit 2c9300fd28 I only changed the TC_paging_ps_* tests and forgot cs. Change-Id: I625e0a0f01eaa951c7d91f8ced3edf0cac91bf74 Related: SYS#5226 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 15 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/83/21583/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 31cb465..4f79a90 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1815,8 +1815,13 @@ /* CS-PAGING on SIG-BVC for Location Area */ private function f_TC_paging_cs_sig_lac(charstring id) runs on BSSGP_ConnHdlr { - /* Both PCU index 0 and 1 have a BVC within the LAC */ - f_send_paging_cs_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, {0, 1}); + /* The first LAC (13135) is shared by all three NSEs */ + f_send_paging_cs_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, {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_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; @@ -1850,8 +1855,15 @@ /* CS-PAGING on SIG-BVC for Routeing Area */ private function f_TC_paging_cs_sig_rac(charstring id) runs on BSSGP_ConnHdlr { - /* Only PCU index 0 has a matching BVC within the LAC */ + /* Only PCU index 0 has a matching BVC with the RA ID */ f_send_paging_cs_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, {0}); + g_roi := {}; + /* PCU index 1 and 2 have a matching BVC with the RA ID */ + f_send_paging_cs_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {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_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; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I625e0a0f01eaa951c7d91f8ced3edf0cac91bf74 Gerrit-Change-Number: 21583 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 Dec 7 13:34:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:34:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 ) Change subject: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If71db2d37d67d02c5d9550202128ee3470762964 Gerrit-Change-Number: 21525 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:34: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 Dec 7 13:37:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:37:11 +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 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl File src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl at 227 PS1, Line 227: cipher_algo_pref: [${', '.join(list(dict.fromkeys(enb.cipher_algo)))}], isn't cipher_algo already a list? looks like you are transforming it to dict and back to a list? -- 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: 1 Gerrit-Owner: ninjab3s Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:37:11 +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 Dec 7 13:37:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:37:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix as_count_bvc_block() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21584 ) Change subject: gbproxy: Fix as_count_bvc_block() ...................................................................... gbproxy: Fix as_count_bvc_block() we must continue to wait for more BVC-BLOCK after receiving the first one Change-Id: I4664899414869fe373d31bc72f6c1dcfbcc9071c --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/84/21584/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 1430af0..edb59fd 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2127,6 +2127,7 @@ 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 }; + repeat; } } /* reset the signaling BVC from one BSS; expect no signaling BVC reset on SGSN; but BVC-BLOCK for PTP */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4664899414869fe373d31bc72f6c1dcfbcc9071c Gerrit-Change-Number: 21584 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 Dec 7 13:37:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 7 Dec 2020 13:37:22 +0000 Subject: Change in osmo-bts[master]: power_control: implement BS (Downlink) Power Control In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21447 ) Change subject: power_control: implement BS (Downlink) Power Control ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21447/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/21447/5//COMMIT_MSG at 27 PS5, Line 27: The only difference is that RxQual values higher than 0 would > Can you describe this paragraphs a bit better (as a comment here it's fine), I don't fully get what [?] RxQual = 0 indicates no bit errors during the last measurement period, RxQual = 7 indicates the worst channel quality. The idea is to decrease attenuation (i.e. increase BS power) when MS indicates bit errors on Downlink. We can also make this behavior configurable later. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Gerrit-Change-Number: 21447 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:37: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 Dec 7 13:42:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:42:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix cs paging tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21583 ) Change subject: gbproxy: Fix cs paging tests ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I625e0a0f01eaa951c7d91f8ced3edf0cac91bf74 Gerrit-Change-Number: 21583 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:42: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 Dec 7 13:43:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:43:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix as_count_bvc_block() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21584 ) Change subject: gbproxy: Fix as_count_bvc_block() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4664899414869fe373d31bc72f6c1dcfbcc9071c Gerrit-Change-Number: 21584 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13: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 Dec 7 13:45:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:45:33 +0000 Subject: Change in osmo-bts[master]: power_control: implement BS (Downlink) Power Control In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21447 ) Change subject: power_control: implement BS (Downlink) Power Control ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/21447/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/21447/5//COMMIT_MSG at 28 PS5, Line 28: trigger the logic to reduce the current attenuation twice. iirc from code you are /2, so this "reduce twice" actually means divide by two? https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/power_control.c at 275 PS5, Line 275: state->current /= 2; here, /2. That's not "reduce twice" right? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Gerrit-Change-Number: 21447 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:45: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 Dec 7 13:46:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 13:46:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix cs paging tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21583 ) Change subject: gbproxy: Fix cs paging tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I625e0a0f01eaa951c7d91f8ced3edf0cac91bf74 Gerrit-Change-Number: 21583 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:46: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 Dec 7 13:51:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:51:16 +0000 Subject: Change in osmo-ci[master]: repo-install-test: Fix name blacklist_centos.txt to centos8 References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21585 ) Change subject: repo-install-test: Fix name blacklist_centos.txt to centos8 ...................................................................... repo-install-test: Fix name blacklist_centos.txt to centos8 Change-Id: I9d50def17b3645b59b71fc1f1bcf8ff2a4ac790b --- R scripts/repo-install-test/blacklist_centos8.txt 1 file changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/85/21585/1 diff --git a/scripts/repo-install-test/blacklist_centos.txt b/scripts/repo-install-test/blacklist_centos8.txt similarity index 100% rename from scripts/repo-install-test/blacklist_centos.txt rename to scripts/repo-install-test/blacklist_centos8.txt -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9d50def17b3645b59b71fc1f1bcf8ff2a4ac790b Gerrit-Change-Number: 21585 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 Dec 7 13:51:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:51:27 +0000 Subject: Change in osmo-ci[master]: repo-install-test: Fix name blacklist_centos.txt to centos8 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21585 ) Change subject: repo-install-test: Fix name blacklist_centos.txt to centos8 ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9d50def17b3645b59b71fc1f1bcf8ff2a4ac790b Gerrit-Change-Number: 21585 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:51: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 Dec 7 13:51:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 13:51:32 +0000 Subject: Change in osmo-ci[master]: repo-install-test: Fix name blacklist_centos.txt to centos8 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21585 ) Change subject: repo-install-test: Fix name blacklist_centos.txt to centos8 ...................................................................... repo-install-test: Fix name blacklist_centos.txt to centos8 Change-Id: I9d50def17b3645b59b71fc1f1bcf8ff2a4ac790b --- R scripts/repo-install-test/blacklist_centos8.txt 1 file changed, 0 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/scripts/repo-install-test/blacklist_centos.txt b/scripts/repo-install-test/blacklist_centos8.txt similarity index 100% rename from scripts/repo-install-test/blacklist_centos.txt rename to scripts/repo-install-test/blacklist_centos8.txt -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I9d50def17b3645b59b71fc1f1bcf8ff2a4ac790b Gerrit-Change-Number: 21585 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 7 13:54:10 2020 From: gerrit-no-reply at lists.osmocom.org (ninjab3s) Date: Mon, 7 Dec 2020 13:54:10 +0000 Subject: Change in osmo-gsm-tester[master]: enb: Set cipher and integrity via scenario file In-Reply-To: References: Message-ID: ninjab3s 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 1: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl File src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl at 227 PS1, Line 227: cipher_algo_pref: [${', '.join(list(dict.fromkeys(enb.cipher_algo)))}], > isn't cipher_algo already a list? looks like you are transforming it to dict and back to a list? Yes, that's right. The reason for me doing this is avoiding duplicates introduced by the defaults. -- 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: 1 Gerrit-Owner: ninjab3s Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 13:54: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 Mon Dec 7 13:59:36 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 7 Dec 2020 13:59:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 ) Change subject: gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss ...................................................................... gbproxy: Fail on timeout in f_send_paging_xs_exp_one_bss These functions would not set a verdict in case no message was ever received. This patch ensures that a timeout while waiting for a paging message actually fails the test. Change-Id: If71db2d37d67d02c5d9550202128ee3470762964 Related: SYS#5002 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 18 insertions(+), 6 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 1430af0..31cb465 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1146,6 +1146,7 @@ boolean use_sig := false,integer pcu_idx := 0) runs on BSSGP_ConnHdlr { var template (present) PDU_BSSGP exp_rx; + var boolean test_done := false; /* 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 */ exp_rx := f_send_paging_ps(p4, sgsn_idx, use_sig); @@ -1153,15 +1154,17 @@ timer T := 2.0; T.start; alt { - [not use_sig] PCU[pcu_idx].receive(exp_rx) { + [not use_sig and not test_done] PCU[pcu_idx].receive(exp_rx) { setverdict(pass); + test_done := true; repeat; } [not use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on SIGNALING BVC, expected PTP BVC"); } - [use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { + [use_sig and not test_done] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(pass); + test_done := true; repeat; } [use_sig] PCU[pcu_idx].receive(exp_rx) { @@ -1179,7 +1182,10 @@ [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging than expected on SIGNALING BVC"); } - [] T.timeout; + [not test_done] T.timeout { + setverdict(fail, "Timeout waiting for paging"); + } + [test_done] T.timeout; } } @@ -1561,6 +1567,7 @@ boolean use_sig := false,integer pcu_idx := 0) runs on BSSGP_ConnHdlr { var template (present) PDU_BSSGP exp_rx; + var boolean test_done := false; /* 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 */ exp_rx := f_send_paging_cs(p4, sgsn_idx, use_sig); @@ -1568,15 +1575,17 @@ timer T := 2.0; T.start; alt { - [not use_sig] PCU[pcu_idx].receive(exp_rx) { + [not use_sig and not test_done] PCU[pcu_idx].receive(exp_rx) { setverdict(pass); + test_done := true; repeat; } [not use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on SIGNALING BVC, expected PTP BVC"); } - [use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { + [use_sig and not test_done] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(pass); + test_done := true; repeat; } [use_sig] PCU[pcu_idx].receive(exp_rx) { @@ -1594,7 +1603,10 @@ [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { setverdict(fail, "Different Paging than expected on SIGNALING BVC"); } - [] T.timeout; + [not test_done] T.timeout { + setverdict(fail, "Timeout while waiting for paging") + } + [test_done] T.timeout; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If71db2d37d67d02c5d9550202128ee3470762964 Gerrit-Change-Number: 21525 Gerrit-PatchSet: 3 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 Dec 7 13:59:37 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 7 Dec 2020 13:59:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix cs paging tests In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21583 ) Change subject: gbproxy: Fix cs paging tests ...................................................................... gbproxy: Fix cs paging tests In commit 2c9300fd28 I only changed the TC_paging_ps_* tests and forgot cs. Change-Id: I625e0a0f01eaa951c7d91f8ced3edf0cac91bf74 Related: SYS#5226 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 15 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/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 31cb465..4f79a90 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1815,8 +1815,13 @@ /* CS-PAGING on SIG-BVC for Location Area */ private function f_TC_paging_cs_sig_lac(charstring id) runs on BSSGP_ConnHdlr { - /* Both PCU index 0 and 1 have a BVC within the LAC */ - f_send_paging_cs_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, {0, 1}); + /* The first LAC (13135) is shared by all three NSEs */ + f_send_paging_cs_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, {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_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; @@ -1850,8 +1855,15 @@ /* CS-PAGING on SIG-BVC for Routeing Area */ private function f_TC_paging_cs_sig_rac(charstring id) runs on BSSGP_ConnHdlr { - /* Only PCU index 0 has a matching BVC within the LAC */ + /* Only PCU index 0 has a matching BVC with the RA ID */ f_send_paging_cs_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, {0}); + g_roi := {}; + /* PCU index 1 and 2 have a matching BVC with the RA ID */ + f_send_paging_cs_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {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_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; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I625e0a0f01eaa951c7d91f8ced3edf0cac91bf74 Gerrit-Change-Number: 21583 Gerrit-PatchSet: 1 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 Dec 7 14:12:06 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 7 Dec 2020 14:12:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix as_count_bvc_block() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21584 ) Change subject: gbproxy: Fix as_count_bvc_block() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4664899414869fe373d31bc72f6c1dcfbcc9071c Gerrit-Change-Number: 21584 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 14:12: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 Dec 7 14:12:16 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 7 Dec 2020 14:12:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix as_count_bvc_block() In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21584 ) Change subject: gbproxy: Fix as_count_bvc_block() ...................................................................... gbproxy: Fix as_count_bvc_block() we must continue to wait for more BVC-BLOCK after receiving the first one Change-Id: I4664899414869fe373d31bc72f6c1dcfbcc9071c --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: daniel: 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 4f79a90..01bcb9a 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2151,6 +2151,7 @@ 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 }; + repeat; } } /* reset the signaling BVC from one BSS; expect no signaling BVC reset on SGSN; but BVC-BLOCK for PTP */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4664899414869fe373d31bc72f6c1dcfbcc9071c Gerrit-Change-Number: 21584 Gerrit-PatchSet: 2 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 Mon Dec 7 14:41:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 14:41:46 +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 1: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl File src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl at 227 PS1, Line 227: cipher_algo_pref: [${', '.join(list(dict.fromkeys(enb.cipher_algo)))}], > Yes, that's right. The reason for me doing this is avoiding duplicates introduced by the defaults. How can duplicates happen? did you experience it? is it a problem passing duplicate entries here in the amarisoft cfg file? -- 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: 1 Gerrit-Owner: ninjab3s Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 14:41:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: ninjab3s 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 Dec 7 14:43:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 7 Dec 2020 14:43:34 +0000 Subject: Change in osmo-bts[master]: power_control: implement BS (Downlink) Power Control In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21447 ) Change subject: power_control: implement BS (Downlink) Power Control ...................................................................... Patch Set 5: (4 comments) https://gerrit.osmocom.org/c/osmo-bts/+/21447/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/21447/5//COMMIT_MSG at 28 PS5, Line 28: trigger the logic to reduce the current attenuation twice. > iirc from code you are /2, so this "reduce twice" actually means divide by two? Hmm, I am actually not sure how to say/write this correctly... Should I change to "divide by two"? https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/power_control.c at 283 PS5, Line 283: * > because empty lines are free! ;) Well, my intention is to separate formulas from text visually. https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/power_control.c at 295 PS5, Line 295: new = state->current - delta; > better use a another variable name (C++, syntax highlight, etc. [?] This is not a header file, so I don't think we will have any problems (other than syntax highlighting). https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/21447/5/src/common/rsl.c at 1162 PS5, Line 1162: lchan->bs_power_ctrl.max = 2 * 15; > where does this come from? 2 * 15 >From the definition of BS Power IE: 0 .. 15 (2 dB steps). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Gerrit-Change-Number: 21447 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 14:43: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 Mon Dec 7 14:53:32 2020 From: gerrit-no-reply at lists.osmocom.org (ninjab3s) Date: Mon, 7 Dec 2020 14:53:32 +0000 Subject: Change in osmo-gsm-tester[master]: enb: Set cipher and integrity via scenario file In-Reply-To: References: Message-ID: ninjab3s 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 1: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl File src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl at 227 PS1, Line 227: cipher_algo_pref: [${', '.join(list(dict.fromkeys(enb.cipher_algo)))}], > How can duplicates happen? did you experience it? is it a problem passing duplicate entries here in [?] Yes, I did experience it. The defaults for ciphering in srseNB are the following: "EEA0, EEA2, EEA1". If I now set less then 3 items as defaults not all of them are overwritten. For example, setting the ciphers for srsENB like this in defaults-suites.conf: "- 4g:srsue-rftype at uhd+srsenb-rftype@uhd+mod-srsenb-cipher at EEA1+mod-srsenb-cipher@EEA0+mod-enb-nprb at 6", results in: "eea_pref_list = EEA1, EEA0, EEA1". The same behavior applies to this config file. -- 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: 1 Gerrit-Owner: ninjab3s Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 14:53:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: ninjab3s 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 Dec 7 14:55:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 14:55:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21586 ) Change subject: NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK ...................................................................... NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK Particularly in case both sides initiate a BLOCK or UNBLOCK procedure at almost the same time, it can happen thet we're already in BLOCKED state and receive a late BLOCK-ACK or in UNBLOCKED state and receive a late UNBLOCK-ACK. Let's just silently discard them instaed of generating NS-STATUS which may confuse the peer. Change-Id: I2e5b934e1cf6c6cf982d5ab1dbb32e8920b91071 --- M library/NS_Emulation.ttcnpp 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/21586/1 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index ab1c136..2ccd399 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -561,6 +561,9 @@ Tns_block.stop; f_change_state(NSVC_S_ALIVE_UNBLOCKED); } + /* tolerate a late NS-BLOCK-ACK from peer */ + [] NSCP.receive(tr_NS_BLOCK_ACK(g_nsvc_config.nsvci)) -> value rf { + } [] Tns_block.timeout { /* repeat unblock transmission */ f_sendUnblock(); @@ -583,6 +586,9 @@ [] NSCP.receive(tr_NS_BLOCK_ACK(g_nsvc_config.nsvci)) -> value rf { Tns_block.stop; } + /* tolerate a late NS-UNBLOCK-ACK from peer */ + [] NSCP.receive(t_NS_UNBLOCK_ACK) -> value rf { + } /* NS-UNITDATA PDU from network to NS-UNITDATA.ind to user */ [] NSCP.receive(tr_NS_UNITDATA(?, ?, ?)) -> value rf { NS_SP.send(ts_NsUdInd(g_config.nsei, g_nsvc_config.nsvci, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2e5b934e1cf6c6cf982d5ab1dbb32e8920b91071 Gerrit-Change-Number: 21586 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 Dec 7 14:57:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 14:57:34 +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 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl File src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582/1/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl at 227 PS1, Line 227: cipher_algo_pref: [${', '.join(list(dict.fromkeys(enb.cipher_algo)))}], > Yes, I did experience it. [?] Ah yes that's expected. Lists of simple values (strings, integer, etc., not containers) are actually handled as if they were unordered sets, because it was found more useful when applying overlaying, merging, etc. -- 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: 1 Gerrit-Owner: ninjab3s Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 14:57:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: ninjab3s 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 Dec 7 14:58:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 14:58:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21586 ) Change subject: NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2e5b934e1cf6c6cf982d5ab1dbb32e8920b91071 Gerrit-Change-Number: 21586 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 14:58: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 Dec 7 16:04:04 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 7 Dec 2020 16:04:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: Osmocom_Gb_types: add RIM templates References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 ) Change subject: WIP: Osmocom_Gb_types: add RIM templates ...................................................................... WIP: 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, 700 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/21587/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 2afedcc..6ada404 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -2109,6 +2109,706 @@ } } + /* 3GPP TS 48.018 11.3.61 */ + template (value) RIM_Application_Identity ts_RIM_Application_Identity(OCT1 app_id) := { + iEI := '29'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 := '55'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 + } + + /* 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) + } + + /* 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_BSSGP_IE_CellId(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_BSSGP_IE_CellId(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_BSSGP_IE_CellId(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_BSSGP_IE_CellId(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_BSSGP_IE_CellId(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_BSSGP_IE_CellId(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 */ + 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 */ + template (value) RIM_Routing_Information ts_RIM_Routing_Information(template (value) RIM_Routing_Address addr) := { + iEI := '54'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + rIMRoutingAddressDiscriminator := '0'H, + spare := '0'H, + rIM_Routing_Address := addr + } + + template (value) RIM_Routing_Address ts_RIM_Routing_Address_cid(template (value) BssgpCellId cid) := { + cell_Identifier := t_Cell_Identifier_V(cid) + } + template (value) RIM_Routing_Address ts_RIM_Routing_Address_rncid(template (value) BssgpCellId cid, template (value) integer rnc_id) := { + globalRNCID := t_GlobalRNC_ID_BSSGP(cid, rnc_id) + } + template (value) RIM_Routing_Address ts_RIM_Routing_Address_enbid(template (value) BssgpCellId cid, template (value) integer tac, template (value) octetstring gnbid) := { + eNB_Identifier := t_ENB_Identifier_V(cid, tac, gnbid) + } + template (value) RIM_Routing_Address ts_RIM_Routing_Address_sector(template (value) 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 + } + } + + /* 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 + } + } + + /* 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 := '70'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 + } + } + + /* 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 + } + } + /* 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: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 7 16:05:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 16:05:29 +0000 Subject: Change in docker-playground[master]: centos8-build: Use arg OSMOCOM_REPO_MIRROR References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21588 ) Change subject: centos8-build: Use arg OSMOCOM_REPO_MIRROR ...................................................................... centos8-build: Use arg OSMOCOM_REPO_MIRROR Change-Id: If2aefff04792fe4d215fcc52377bec64d9a1db2d --- M centos8-build/Dockerfile 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/88/21588/1 diff --git a/centos8-build/Dockerfile b/centos8-build/Dockerfile index e71e03c..49f488c 100644 --- a/centos8-build/Dockerfile +++ b/centos8-build/Dockerfile @@ -1,6 +1,7 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=centos:centos8 FROM ${REGISTRY}/${UPSTREAM_DISTRO} +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" # Let package metadata expire after 60 seconds instead of 48 hours RUN echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf @@ -9,7 +10,7 @@ RUN dnf install -y dnf-utils wget && \ yum config-manager --set-enabled PowerTools && \ cd /etc/yum.repos.d/ && \ - wget https://download.opensuse.org/repositories/network:osmocom:nightly/CentOS_8_Stream/network:osmocom:nightly.repo + wget $OSMOCOM_REPO_MIRROR/repositories/network:osmocom:nightly/CentOS_8_Stream/network:osmocom:nightly.repo RUN dnf install -y \ autoconf \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If2aefff04792fe4d215fcc52377bec64d9a1db2d Gerrit-Change-Number: 21588 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 Dec 7 16:53:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 16:53:17 +0000 Subject: Change in libosmocore[master]: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21589 ) Change subject: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state ...................................................................... ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state if we transition to UNBLOCKED as a result of a locally-generated unblock action, then of course we will receive an inbound UNBLOCK-ACK. Let's avoid error log messages and confusign the peer with NS-STATUS in this case: DLNS DEBUG GPRS-NS2-VC(FR-hdlcnet3-DLCI18-NSEI2001-NSVCI3)[0x612000001720]{UNBLOCKED}: Received Event UNBLOCK_ACK (gprs_ns2_vc_fsm.c:692) DLNS ERROR GPRS-NS2-VC(FR-hdlcnet3-DLCI18-NSEI2001-NSVCI3)[0x612000001720]{UNBLOCKED}: Event UNBLOCK_ACK not permitted (gprs_ns2_vc_fsm.c:692) Change-Id: Icc4d960ddad82e3ebbf571d8ff9f24854b52a946 --- 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/89/21589/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 08b6b2d..0f6eeab 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -400,7 +400,7 @@ .onenter = gprs_ns2_st_blocked_onenter, }, [GPRS_NS2_ST_UNBLOCKED] = { - .in_event_mask = S(GPRS_NS2_EV_BLOCK), + .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), .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/+/21589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc4d960ddad82e3ebbf571d8ff9f24854b52a946 Gerrit-Change-Number: 21589 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 Dec 7 17:25:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 17:25:21 +0000 Subject: Change in libosmocore[master]: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21589 ) Change subject: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21589/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21589/1/src/gb/gprs_ns2_vc_fsm.c at 403 PS1, Line 403: .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), Let's try to put one per line please, it's much clearer when trying to understand the FSM. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc4d960ddad82e3ebbf571d8ff9f24854b52a946 Gerrit-Change-Number: 21589 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 17:25: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 Mon Dec 7 17:33:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 17:33:28 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Delete gbproxy_test References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21590 ) Change subject: gbproxy: Delete gbproxy_test ...................................................................... gbproxy: Delete gbproxy_test The test is actually performing invalid operations such as sending empty NS packets without even a BSSGP header - and assumes that gbproxy should route those. Given that we have a much more comprehensive tset suite in GBProxy_Tests.ttcn in osmo-ttch3-hacks.git, it makes sense to remove the testsuite. It may contain many more wrong assumptions, or assumptions that no longer hold true with the "gbproxy 2020". Change-Id: I053aebab6bf5d0ee955f2221bf27925b36140cf3 --- M configure.ac M tests/Makefile.am D tests/gbproxy/Makefile.am D tests/gbproxy/gbproxy_test.c D tests/gbproxy/gbproxy_test.ok M tests/testsuite.at 6 files changed, 0 insertions(+), 1,487 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/90/21590/1 diff --git a/configure.ac b/configure.ac index 0ed36b8..0c8a73f 100644 --- a/configure.ac +++ b/configure.ac @@ -261,7 +261,6 @@ tests/Makefile tests/atlocal tests/gprs/Makefile - tests/gbproxy/Makefile tests/sgsn/Makefile tests/gtphub/Makefile tests/xid/Makefile diff --git a/tests/Makefile.am b/tests/Makefile.am index a23d931..4a9449a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,6 +1,5 @@ SUBDIRS = \ gprs \ - gbproxy \ gtphub \ sgsn \ xid \ diff --git a/tests/gbproxy/Makefile.am b/tests/gbproxy/Makefile.am deleted file mode 100644 index 180ccee..0000000 --- a/tests/gbproxy/Makefile.am +++ /dev/null @@ -1,49 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(NULL) - -AM_LDFLAGS = \ - $(COVERAGE_LDFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - gbproxy_test.ok \ - $(NULL) - -noinst_PROGRAMS = \ - gbproxy_test \ - $(NULL) - -gbproxy_test_SOURCES = \ - gbproxy_test.c \ - $(NULL) - -gbproxy_test_LDFLAGS = \ - -Wl,--wrap=osmo_get_rand_id \ - $(NULL) - -gbproxy_test_LDADD = \ - $(top_builddir)/src/gbproxy/gb_proxy.o \ - $(top_builddir)/src/gbproxy/gb_proxy_peer.o \ - $(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) \ - $(LIBOSMOGB_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOVTY_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(LIBRARY_DL) \ - $(LIBRARY_DLSYM) \ - -lrt \ - $(NULL) diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c deleted file mode 100644 index d7479cc..0000000 --- a/tests/gbproxy/gbproxy_test.c +++ /dev/null @@ -1,759 +0,0 @@ -/* test routines for gbproxy - * send NS messages to the gbproxy and dumps what happens - * (C) 2013-2020 by sysmocom s.f.m.c. GmbH - * Author: Jacob Erlbeck - */ -#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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define REMOTE_BSS_ADDR 0x01020304 -#define REMOTE_SGSN_ADDR 0x05060708 - -#define SGSN_NSEI 0x0100 - -#define REMOTE_SGSN2_ADDR 0x15161718 -#define SGSN2_NSEI 0x0102 - -#define MATCH_ANY (-1) - -void *tall_sgsn_ctx = NULL; - -struct gbproxy_config gbcfg = {0}; - -struct llist_head *received_messages = NULL; - -/* override, requires '-Wl,--wrap=osmo_get_rand_id' */ -int __real_osmo_get_rand_id(uint8_t *data, size_t len); -int mock_osmo_get_rand_id(uint8_t *data, size_t len); -int (*osmo_get_rand_id_cb)(uint8_t *, size_t) = - &mock_osmo_get_rand_id; - -int __wrap_osmo_get_rand_id(uint8_t *buf, size_t num) -{ - return (*osmo_get_rand_id_cb)(buf, num); -} - -static int rand_seq_num = 0; -int mock_osmo_get_rand_id(uint8_t *buf, size_t num) -{ - uint32_t val; - - OSMO_ASSERT(num == sizeof(val)); - - val = 0x00dead00 + rand_seq_num; - - rand_seq_num++; - - memcpy(buf, &val, num); - - return 1; -} - -static void cleanup_test() -{ - rand_seq_num = 0; -} - -static int dump_global(FILE *stream, int indent) -{ - unsigned int i; - const struct rate_ctr_group_desc *desc; - int rc; - - rc = fprintf(stream, "%*sGbproxy global:\n", indent, ""); - if (rc < 0) - return rc; - - desc = gbcfg.ctrg->desc; - - for (i = 0; i < desc->num_ctr; i++) { - struct rate_ctr *ctr = &gbcfg.ctrg->ctr[i]; - if (ctr->current) { - rc = fprintf(stream, "%*s %s: %llu\n", - indent, "", - desc->ctr_desc[i].description, - (long long)ctr->current); - - if (rc < 0) - return rc; - } - } - - return 0; -} - -static int dump_peers(FILE *stream, int indent, time_t now, - struct gbproxy_config *cfg) -{ - struct gbproxy_nse *nse; - struct gprs_ra_id raid; - unsigned int i, _nse; - const struct rate_ctr_group_desc *desc; - int rc; - - rc = fprintf(stream, "%*sPeers:\n", indent, ""); - if (rc < 0) - return rc; - - - hash_for_each(cfg->bss_nses, _nse, nse, list) { - struct gbproxy_bvc *peer; - int _peer; - hash_for_each(nse->bvcs, _peer, peer, list) { - gsm48_parse_ra(&raid, peer->ra); - - rc = fprintf(stream, "%*s NSEI %u, BVCI %u, %sblocked, RAI %s\n", - indent, "", - nse->nsei, peer->bvci, - peer->blocked ? "" : "not ", - osmo_rai_name(&raid)); - - if (rc < 0) - return rc; - - desc = peer->ctrg->desc; - - for (i = 0; i < desc->num_ctr; i++) { - struct rate_ctr *ctr = &peer->ctrg->ctr[i]; - if (ctr->current) { - rc = fprintf(stream, "%*s %s: %llu\n", - indent, "", - desc->ctr_desc[i].description, - (long long)ctr->current); - - if (rc < 0) - return rc; - } - } - - } - } - return 0; -} - -const uint8_t *convert_ra(struct gprs_ra_id *raid) -{ - static struct gsm48_ra_id r; - gsm48_encode_ra(&r, raid); - return (const uint8_t *)&r; -} - -#define NS_ALLOC_HEADROOM 128 -#define NS_ALLOC_SIZE 3072 -static int gprs_ns2_callback(struct osmo_prim_hdr *oph, void *ctx); -static void send_ns_unitdata(struct gprs_ns2_inst *nsi, const char *text, - uint16_t nsei, uint16_t nsbvci, - const unsigned char *bssgp_msg, size_t bssgp_msg_size) -{ - struct msgb *msg; - struct osmo_gprs_ns2_prim nsp = {}; - nsp.nsei = nsei; - nsp.bvci = nsbvci; - //nsp.u.unitdata.change - - if (bssgp_msg_size > NS_ALLOC_SIZE - NS_ALLOC_HEADROOM) { - fprintf(stderr, "message too long: %zu\n", bssgp_msg_size); - return; - } - - msg = msgb_alloc_headroom(NS_ALLOC_SIZE, NS_ALLOC_HEADROOM, - "GPRS/NS"); - OSMO_ASSERT(msg); - memmove(msg->data, bssgp_msg, bssgp_msg_size); - msgb_bssgph(msg) = msg->data; - msg->l2h = msg->data; - msg->l3h = msg->data; - msgb_put(msg, bssgp_msg_size); - - printf("PROCESSING %s from NSEI %d\n%s\n\n", - text, nsei, - osmo_hexdump(bssgp_msg, bssgp_msg_size)); - - - //gprs_process_message(nsi, text ? text : "UNITDATA", nsei, msg, bssgp_msg_size + 4); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, - PRIM_OP_INDICATION, msg); - - gprs_ns2_callback(&nsp.oph, &gbcfg); -} -static int gbprox_test_bssgp_send_cb(void *ctx, struct msgb *msg); - -/* wrap */ -int gprs_ns2_recv_prim(struct gprs_ns2_inst *nsi, struct osmo_prim_hdr *oph) -{ - struct osmo_gprs_ns2_prim *nsp; - - if (oph->sap != SAP_NS) - return 0; - - nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); - - if (oph->operation != PRIM_OP_REQUEST) { - LOGP(DPCU, 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 */ - msgb_bssgph(oph->msg) = oph->msg->l3h; - msgb_bvci(oph->msg) = nsp->bvci; - msgb_nsei(oph->msg) = nsp->nsei; - printf("NS2 UD REQUEST, prim %d, msg length %zu, bvci 0x%04x\n%s\n\n", - oph->primitive, msgb_bssgp_len(oph->msg), nsp->bvci, - osmo_hexdump(msgb_l3(oph->msg), msgb_l3len(oph->msg))); - return gbprox_test_bssgp_send_cb(&gbcfg, oph->msg); - break; - default: - printf("NS2 REQUEST, prim %d, bvci 0x%04x\n\n", - oph->primitive, nsp->bvci); - - break; - } - return 0; -} - -static void send_bssgp_reset(struct gprs_ns2_inst *nsi, - uint16_t nsei, uint16_t bvci) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA, BVCI 0 - * BSSGP RESET */ - unsigned char msg[18] = { - 0x22, 0x04, 0x82, 0x4a, - 0x2e, 0x07, 0x81, 0x08, 0x08, 0x88, 0x11, 0x22, - 0x33, 0x40, 0x50, 0x60, 0x10, 0x00 - }; - - msg[3] = bvci / 256; - msg[4] = bvci % 256; - - send_ns_unitdata(nsi, "BVC_RESET", nsei, 0, msg, sizeof(msg)); -} - -static void send_bssgp_reset_ack(struct gprs_ns2_inst *nsi, - uint16_t nsei, uint16_t bvci) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA, BVCI 0 - * BSSGP RESET_ACK */ - static unsigned char msg[5] = { - 0x23, 0x04, 0x82, 0x00, - 0x00 - }; - - msg[3] = bvci / 256; - msg[4] = bvci % 256; - - send_ns_unitdata(nsi, "BVC_RESET_ACK", nsei, 0, msg, sizeof(msg)); -} - -/* STATUS indications */ -static void send_ns_avail(struct gprs_ns2_inst *nsi, - uint16_t sgsn_nsei) -{ - struct osmo_gprs_ns2_prim nsp = {}; - nsp.nsei = sgsn_nsei; - nsp.bvci = 0; - nsp.u.status.cause = NS_AFF_CAUSE_RECOVERY; - nsp.u.status.transfer = -1; - nsp.u.status.first = true; - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_STATUS, - PRIM_OP_INDICATION, NULL); - - gprs_ns2_callback(&nsp.oph, &gbcfg); -} - -static void setup_ns(struct gprs_ns2_inst *nsi, - uint16_t nsei) -{ - printf("Setup NS-VC: " - "NSEI 0x%04x(%d)\n\n", - nsei, nsei); - send_ns_avail(nsi, nsei); - send_bssgp_reset(nsi, nsei, 0); -} - -static void setup_bssgp(struct gprs_ns2_inst *nsi, - uint16_t nsei, uint16_t bvci) -{ - printf("Setup BSSGP: " - "BVCI 0x%04x(%d)\n\n", - bvci, bvci); - - send_bssgp_reset(nsi, nsei, bvci); -} - -static void connect_sgsn(struct gprs_ns2_inst *nsi, - uint32_t sgsn_nsei) -{ - send_ns_avail(nsi, sgsn_nsei); -} - -/* Function used to send a BSSGP message through NS */ -static int gbprox_test_bssgp_send_cb(void *ctx, struct msgb *msg) -{ - int rc; - struct gbproxy_config *cfg = (struct gbproxy_config *) ctx; - - uint16_t nsei = msgb_nsei(msg); - uint16_t bvci = msgb_bvci(msg); - - if (received_messages) { - struct msgb *msg_copy; - msg_copy = bssgp_msgb_copy(msg, "received_messages"); - llist_add_tail(&msg_copy->list, received_messages); - } - - if (nsei == cfg->nsip_sgsn_nsei) - printf("Message for SGSN"); - else - printf("Message for BSS"); - printf(" (NSEI=%d BVCI=%d):\n%s\n\n", nsei, bvci, msgb_hexdump(msg)); - - rc = msgb_length(msg); - msgb_free(msg); - - return rc; -} - -static void gprs_ns2_test_prim_status_cb(struct gbproxy_config *cfg, struct osmo_gprs_ns2_prim *nsp) -{ - enum gprs_ns2_affecting_cause cause = nsp->u.status.cause; - - switch (cause) { - case NS_AFF_CAUSE_RECOVERY: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); - break; - case NS_AFF_CAUSE_FAILURE: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); - break; - case NS_AFF_CAUSE_VC_RECOVERY: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d NS-VC %s became available\n", nsp->nsei, nsp->u.status.nsvc); - break; - case NS_AFF_CAUSE_VC_FAILURE: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d NS-VC %s became unavailable\n", nsp->nsei, nsp->u.status.nsvc); - break; - default: - LOGP(DPCU, LOGL_NOTICE, "Unhandled status %d (NS-NSE %d)\n", cause, nsp->nsei); - break; - } -} - -int gprs_ns2_prim_cb(struct osmo_prim_hdr *oph, void *ctx); - -/* override */ -static int gprs_ns2_callback(struct osmo_prim_hdr *oph, void *ctx) -{ - struct osmo_gprs_ns2_prim *nsp; - struct gbproxy_config *cfg = (struct gbproxy_config *) ctx; - - if (oph->sap != SAP_NS) - return 0; - - nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); - - if (oph->operation != PRIM_OP_INDICATION) { - LOGP(DPCU, 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 */ - msgb_bssgph(oph->msg) = oph->msg->l3h; - msgb_bvci(oph->msg) = nsp->bvci; - msgb_nsei(oph->msg) = nsp->nsei; - printf("NS2 CALLBACK, prim %d, msg length %zu, bvci 0x%04x\n%s\n\n", - oph->primitive, msgb_bssgp_len(oph->msg), nsp->bvci, - osmo_hexdump(msgb_l2(oph->msg), msgb_l2len(oph->msg))); - break; - case PRIM_NS_STATUS: - gprs_ns2_test_prim_status_cb(cfg, nsp); - default: - printf("NS2 CALLBACK, prim %d, bvci 0x%04x\n\n", - oph->primitive, nsp->bvci); - - break; - } - - /* Hand off to gbproxy which will free the msg */ - return gprs_ns2_prim_cb(oph, ctx); -} - -static void test_gbproxy() -{ - struct gprs_ns2_inst *nsi = gprs_ns2_instantiate(tall_sgsn_ctx, gprs_ns2_callback, &gbcfg); - uint16_t bss_nsei[2] = {0x1000, 0x2000}; - - gbcfg.nsi = nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - - bssgp_set_bssgp_callback(gbprox_test_bssgp_send_cb, &gbcfg); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, bss_nsei[0]); - setup_bssgp(nsi, bss_nsei[0], 0x1002); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); - - printf("--- Initialise BSS 2 ---\n\n"); - - setup_ns(nsi, bss_nsei[1]); - setup_bssgp(nsi, bss_nsei[1], 0x2002); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x2002); - - printf("--- Reset BSS 1 with a new BVCI ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], 0x1012); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1012); - - printf("--- Reset BSS 1 with the old BVCI ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], 0x1002); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); - - printf("--- Reset BSS 1 with the old BVCI again ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], 0x1002); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1012 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x1012 ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from BSS 2 to SGSN, BVCI 0x2002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x2002, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 2, BVCI 0x2002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x2002, (uint8_t *)"", 0); - - printf("--- Reset BSS 1 with the old BVCI on BSS2's link ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], 0x1002); - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x10ff, (uint8_t *)"", 0); - - /* Find peer */ - OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0xeeee) == NULL); - OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0x1000) == NULL); - OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0x1012) != NULL); - OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0xeeee) == NULL); - OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0x1012) == NULL); - OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0x1000) != NULL); - - - /* Cleanup */ - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0, 0) == 0); - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0xeeee) == 0); - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0, 0x1002) == 0); - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0x1012) == 1); - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0x1012) == 0); - - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - gbprox_reset(&gbcfg); - gprs_ns2_free(nsi); - nsi = NULL; -} - -static void test_gbproxy_ident_changes() -{ - struct gprs_ns2_inst *nsi = gprs_ns2_instantiate(tall_sgsn_ctx, gprs_ns2_callback, &gbcfg); - uint16_t bss_nsei[2] = {0x1000, 0x2000}; - uint16_t bvci[4] = {0x1002, 0x2002, 0x3002}; - - gbcfg.nsi = nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - - bssgp_set_bssgp_callback(gbprox_test_bssgp_send_cb, &gbcfg); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, bss_nsei[0]); - - printf("--- Setup BVCI 1 ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], bvci[0]); - send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[0]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Setup BVCI 2 ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], bvci[1]); - send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[1]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 1 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], bvci[0], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[0], (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 2 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], bvci[1], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[1], (uint8_t *)"", 0); - - printf("--- Change NSEI ---\n\n"); - - setup_ns(nsi, bss_nsei[1]); - - printf("--- Setup BVCI 1 ---\n\n"); - - setup_bssgp(nsi, bss_nsei[1], bvci[0]); - send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[0]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Setup BVCI 3 ---\n\n"); - - setup_bssgp(nsi, bss_nsei[1], bvci[2]); - send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[2]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 1 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[1], bvci[0], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[0], (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 2 " - " (should fail) ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[1], bvci[1], (uint8_t *)"", 0); - dump_peers(stdout, 0, 0, &gbcfg); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[1], (uint8_t *)"", 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 3 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], bvci[2], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[2], (uint8_t *)"", 0); - - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - gbprox_reset(&gbcfg); - gprs_ns2_free(nsi); - nsi = NULL; -} - -/* See OS#3178 "gbproxy: failed to parse invalid BSSGP-UNITDATA message" */ -static void test_gbproxy_parse_bssgp_unitdata() -{ - const char *hex = "0000239401e155cfea000004088872f4801018009c4000800e000601c0416c4338"; - struct msgb *msg = msgb_alloc(1034, "bssgp_unitdata"); - struct gprs_gb_parse_context parse_ctx; - int rc; - - memset(&parse_ctx, 0, sizeof(parse_ctx)); - - OSMO_ASSERT(msg); - msgb_bssgph(msg) = msg->head; - msgb_put(msg, osmo_hexparse(hex, msg->head, msgb_tailroom(msg))); - - parse_ctx.to_bss = 0; - parse_ctx.peer_nsei = msgb_nsei(msg); - - rc = gprs_gb_parse_bssgp(msg->data, msg->len, &parse_ctx); - if (!rc) - fprintf(stderr, "%s: Test passed; Failed to parse invalid message %s\n", __func__, msgb_hexdump(msg)); - else - fprintf(stderr, "%s: Test failed; invalid message was accepted by parser: %s\n", __func__, msgb_hexdump(msg)); - - OSMO_ASSERT(!rc); - - /* Manually decoded message according to: - ETSI TS 148 018 V10.6.0 (2012 07) 96 - 3GPP TS 48.018 version 10.6.0 Release 10 - Table 10.2.2: UL-UNITDATA PDU content - - 00 - PDU type UL-UNITDATA (ok) - - 11.3.35 Temporary logical link Identity (TLLI) - 00 - TLLI[0] - 23 - TLLI[1] - 94 - TLLI[2] - 01 - TLLI[3] - TLLI == "00239401" - - e1 - QOS[0] (bit rate MSB) - 55 - QOS[1] (bit rate LSB) - bit rate = "57685" (57685*100000 bit/s per PBRG) - cf - QOS[2] PBRG = 11 (bit rate is expressed in 100000 bit/s increments), - C/R 0 (contains LLC ACK/SACK), - T 0 (contains signalling), - A 1 (radio if uses MAC/UNITDATA, - Precedence 111 (reserved value) - - ea - CELL_ID[0] (TLV IEI: wrong, should be 0x08) - 00 - CELL_ID[1] (length 1) - 00 - CELL_ID[2] (length 2) - lenth == 0 - 04 -- CELL_ID[3] - 08 -- CELL_ID[4] - 88 -- CELL_ID[5] - 72 -- CELL_ID[6] - f4 -- CELL_ID[7] - 80 -- CELL_ID[8] - 10 -- CELL_DI[9] - - 18 -- QOSP[0] OoS Profile IEI - not allowed in BSSGP Userdata - 00 -- QOSP[1] - 9c -- QOSP[2] - 40 -- QOSP[3] - 00 -- QOSP[4] - - 80 -- IEI for "E-UTRAN Inter RAT Handover Info" - not allowed in BSSGP Userdata - 0e -- length (14 bytes -- only 8 bytes remain) - 00 06 01 c0 41 6c 43 38 */ - - msgb_free(msg); - - cleanup_test(); -} - -static struct log_info_cat gprs_categories[] = { - [DGPRS] = { - .name = "DGPRS", - .description = "GPRS Packet Service", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DNS] = { - .name = "DNS", - .description = "GPRS Network Service (NS)", - .enabled = 1, .loglevel = LOGL_INFO, - }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -static struct log_info info = { - .cat = gprs_categories, - .num_cat = ARRAY_SIZE(gprs_categories), -}; - -int main(int argc, char **argv) -{ - talloc_enable_leak_report(); - tall_sgsn_ctx = talloc_named_const(NULL, 0, "gbproxy_test"); - void *log_ctx = talloc_named_const(tall_sgsn_ctx, 0, "log"); - - msgb_talloc_ctx_init(tall_sgsn_ctx, 0); - - osmo_init_logging2(log_ctx, &info); - log_set_use_color(osmo_stderr_target, 0); - log_set_print_filename(osmo_stderr_target, 0); - log_set_log_level(osmo_stderr_target, LOGL_DEBUG); - log_set_all_filter(osmo_stderr_target, 1); - - rate_ctr_init(tall_sgsn_ctx); - - setlinebuf(stdout); - - printf("===== GbProxy test START\n"); - gbproxy_init_config(&gbcfg); - test_gbproxy(); - test_gbproxy_ident_changes(); - test_gbproxy_parse_bssgp_unitdata(); - gbprox_reset(&gbcfg); - /* gbprox_reset() frees the rate_ctr, but re-allocates it again. */ - rate_ctr_group_free(gbcfg.ctrg); - printf("===== GbProxy test END\n\n"); - - talloc_free(log_ctx); - /* expecting root and msgb ctx, empty */ - OSMO_ASSERT(talloc_total_blocks(tall_sgsn_ctx) == 2); - talloc_free(tall_sgsn_ctx); - - return 0; -} diff --git a/tests/gbproxy/gbproxy_test.ok b/tests/gbproxy/gbproxy_test.ok deleted file mode 100644 index 75bea98..0000000 --- a/tests/gbproxy/gbproxy_test.ok +++ /dev/null @@ -1,671 +0,0 @@ -===== GbProxy test START -=== test_gbproxy === ---- Initialise SGSN --- - -NS2 CALLBACK, prim 2, bvci 0x0000 - -Message for SGSN (NSEI=256 BVCI=0): -22 04 82 00 00 07 81 08 - ---- Initialise BSS 1 --- - -Setup NS-VC: NSEI 0x1000(4096) - -NS2 CALLBACK, prim 2, bvci 0x0000 - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for BSS (NSEI=4096 BVCI=0): -23 04 82 00 00 - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - ---- Initialise BSS 2 --- - -Setup NS-VC: NSEI 0x2000(8192) - -NS2 CALLBACK, prim 2, bvci 0x0000 - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for BSS (NSEI=8192 BVCI=0): -23 04 82 00 00 - -Setup BSSGP: BVCI 0x2002(8194) - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 20 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 20 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 20 02 - -Message for BSS (NSEI=8192 BVCI=0): -[L2]> [L3]> 23 04 82 20 02 - ---- Reset BSS 1 with a new BVCI --- - -Setup BSSGP: BVCI 0x1012(4114) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 12 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 12 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 12 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 12 - ---- Reset BSS 1 with the old BVCI --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - ---- Reset BSS 1 with the old BVCI again --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - ---- Send message from BSS 1 to SGSN, BVCI 0x1012 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for SGSN (NSEI=256 BVCI=4114): -[L2]> [L3]> - ---- Send message from SGSN to BSS 1, BVCI 0x1012 --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for BSS (NSEI=4096 BVCI=4114): -[L2]> [L3]> - ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for SGSN (NSEI=256 BVCI=4114): -[L2]> [L3]> - ---- Send message from SGSN to BSS 1, BVCI 0x1002 --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for BSS (NSEI=4096 BVCI=4114): -[L2]> [L3]> - ---- Send message from BSS 2 to SGSN, BVCI 0x2002 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for SGSN (NSEI=256 BVCI=8194): -[L2]> [L3]> - ---- Send message from SGSN to BSS 2, BVCI 0x2002 --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for BSS (NSEI=8192 BVCI=8194): -[L2]> [L3]> - ---- Reset BSS 1 with the old BVCI on BSS2's link --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 -Gbproxy global: -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for SGSN (NSEI=256 BVCI=4114): -[L2]> [L3]> - ---- Send message from SGSN to BSS 1, BVCI 0x1002 --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for BSS (NSEI=4096 BVCI=4114): -[L2]> [L3]> - ---- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x10ff - - -Message for SGSN (NSEI=256 BVCI=0): -41 07 81 05 04 82 10 ff 15 80 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 -Gbproxy global: - Invalid BVC Identifier : 1 -=== test_gbproxy_ident_changes === ---- Initialise SGSN --- - -NS2 CALLBACK, prim 2, bvci 0x0000 - -Message for SGSN (NSEI=256 BVCI=0): -22 04 82 00 00 07 81 08 - ---- Initialise BSS 1 --- - -Setup NS-VC: NSEI 0x1000(4096) - -NS2 CALLBACK, prim 2, bvci 0x0000 - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for BSS (NSEI=4096 BVCI=0): -23 04 82 00 00 - ---- Setup BVCI 1 --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 ---- Setup BVCI 2 --- - -Setup BSSGP: BVCI 0x2002(8194) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 20 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 20 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 20 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 20 02 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 ---- Send message from BSS 1 to SGSN and back, BVCI 1 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002 - - -Message for SGSN (NSEI=256 BVCI=4098): -[L2]> [L3]> - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002 - - -Message for BSS (NSEI=4096 BVCI=4098): -[L2]> [L3]> - ---- Send message from BSS 1 to SGSN and back, BVCI 2 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for SGSN (NSEI=256 BVCI=8194): -[L2]> [L3]> - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for BSS (NSEI=4096 BVCI=8194): -[L2]> [L3]> - ---- Change NSEI --- - -Setup NS-VC: NSEI 0x2000(8192) - -NS2 CALLBACK, prim 2, bvci 0x0000 - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for BSS (NSEI=8192 BVCI=0): -23 04 82 00 00 - ---- Setup BVCI 1 --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=8192 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 ---- Setup BVCI 3 --- - -Setup BSSGP: BVCI 0x3002(12290) - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 30 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 30 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 30 02 - -Message for BSS (NSEI=8192 BVCI=0): -[L2]> [L3]> 23 04 82 30 02 - -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 ---- Send message from BSS 1 to SGSN and back, BVCI 1 --- - -PROCESSING (null) from NSEI 8192 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002 - - -Message for SGSN (NSEI=256 BVCI=4098): -[L2]> [L3]> - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002 - - -Message for BSS (NSEI=8192 BVCI=4098): -[L2]> [L3]> - ---- Send message from BSS 1 to SGSN and back, BVCI 2 (should fail) --- - -PROCESSING (null) from NSEI 8192 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for SGSN (NSEI=256 BVCI=8194): -[L2]> [L3]> - -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for BSS (NSEI=4096 BVCI=8194): -[L2]> [L3]> - -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 ---- Send message from BSS 1 to SGSN and back, BVCI 3 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x3002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x3002 - - -Message for SGSN (NSEI=256 BVCI=12290): -[L2]> [L3]> - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x3002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x3002 - - -Message for BSS (NSEI=8192 BVCI=12290): -[L2]> [L3]> - -Gbproxy global: -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 -===== GbProxy test END - diff --git a/tests/testsuite.at b/tests/testsuite.at index d30115e..637d853 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -7,12 +7,6 @@ AT_CHECK([$abs_top_builddir/tests/gprs/gprs_test], [], [expout], [ignore]) AT_CLEANUP -AT_SETUP([gbproxy]) -AT_KEYWORDS([gbproxy]) -cat $abs_srcdir/gbproxy/gbproxy_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/gbproxy/gbproxy_test], [], [expout], [ignore]) -AT_CLEANUP - AT_SETUP([sgsn]) AT_KEYWORDS([sgsn]) AT_CHECK([test "$enable_sgsn_test" != no || exit 77]) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I053aebab6bf5d0ee955f2221bf27925b36140cf3 Gerrit-Change-Number: 21590 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 Dec 7 17:33:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 17:33:28 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Use osmo_tlv_prot_parse() to validate mandatory IEs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21591 ) Change subject: gb_proxy: Use osmo_tlv_prot_parse() to validate mandatory IEs ...................................................................... gb_proxy: Use osmo_tlv_prot_parse() to validate mandatory IEs We recently introduced code to libosmocore which allows us to validate the mandatory IE presence (and length) in a generic way. Let's use it. Change-Id: I0ea3f5f9566d9bf5a8429c3ee748e3e90cda6cd7 Depends: libosmocore.git I7e4226463f3c935134b5c2c737696fbfd1dd5815 --- M src/gbproxy/gb_proxy.c 1 file changed, 45 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/91/21591/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index a90030e..8be67f7 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -104,6 +104,20 @@ return 1; } +/* generate BVC-STATUS message with cause value derived from TLV-parser error */ +static int tx_status_from_tlvp(enum osmo_tlv_parser_error tlv_p_err, struct msgb *orig_msg) +{ + uint8_t bssgp_cause; + switch (tlv_p_err) { + case OSMO_TLVP_ERR_MAND_IE_MISSING: + bssgp_cause = BSSGP_CAUSE_MISSING_MAND_IE; + break; + default: + bssgp_cause = BSSGP_CAUSE_PROTO_ERR_UNSPEC; + } + return bssgp_tx_status(bssgp_cause, NULL, orig_msg); +} + /* strip off the NS header */ static void strip_ns_hdr(struct msgb *msg) { @@ -423,26 +437,34 @@ int data_len = msgb_bssgp_len(msg) - sizeof(*bgph); struct gbproxy_bvc *from_bvc = NULL; struct gprs_ra_id raid; + char log_pfx[32]; int rc; + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/BSS)", nsei); + if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not signalling\n", nsei, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) %s not allowed in signalling BVC\n", - nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, + osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_UL)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) %s not allowed in uplink direction\n", - nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in uplink direction\n", log_pfx, + osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - bssgp_tlv_parse(&tp, bgph->data, data_len); + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, pdu_type, bgph->data, data_len, 0, 0, + DGPRS, log_pfx); + if (rc < 0) { + rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + return tx_status_from_tlvp(rc, msg); + } switch (pdu_type) { case BSSGP_PDUT_SUSPEND: @@ -626,24 +648,27 @@ struct gbproxy_bvc *bvc; uint16_t bvci; struct msgb *msg; + char log_pfx[32]; int rc = 0; int cause; int i; + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)", nsei); + if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BVCI=%05u is not signalling\n", nsei, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) %s not allowed in signalling BVC\n", - nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, + osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_DL)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) %s not allowed in downlink direction\n", - nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, + osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } @@ -651,7 +676,15 @@ /* Update message info */ bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); data_len = msgb_bssgp_len(orig_msg) - sizeof(*bgph); - rc = bssgp_tlv_parse(&tp, bgph->data, data_len); + + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, pdu_type, bgph->data, data_len, 0, 0, + DGPRS, log_pfx); + if (rc < 0) { + rc = tx_status_from_tlvp(rc, msg); + msgb_free(msg); + rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); + return rc; + } switch (pdu_type) { case BSSGP_PDUT_BVC_RESET: -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0ea3f5f9566d9bf5a8429c3ee748e3e90cda6cd7 Gerrit-Change-Number: 21591 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 Dec 7 17:33:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 17:33:29 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Log FSM timeouts References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21592 ) Change subject: gbproxy: Log FSM timeouts ...................................................................... gbproxy: Log FSM timeouts Change-Id: I5c48e42083ab6f8622808457ca3f017adf35cdff --- M src/gbproxy/gb_proxy.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/92/21592/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 8be67f7..ecb74c0 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -989,6 +989,7 @@ return -1; } osmo_clock_gettime(CLOCK_REALTIME, &tp); + osmo_fsm_log_timeouts(true); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21592 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I5c48e42083ab6f8622808457ca3f017adf35cdff Gerrit-Change-Number: 21592 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 Dec 7 17:50:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 17:50:04 +0000 Subject: Change in docker-playground[master]: centos8-build: Use arg OSMOCOM_REPO_MIRROR In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21588 ) Change subject: centos8-build: Use arg OSMOCOM_REPO_MIRROR ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If2aefff04792fe4d215fcc52377bec64d9a1db2d Gerrit-Change-Number: 21588 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 17:50: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 Dec 7 17:55:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 17:55:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Delete gbproxy_test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21590 ) Change subject: gbproxy: Delete gbproxy_test ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I053aebab6bf5d0ee955f2221bf27925b36140cf3 Gerrit-Change-Number: 21590 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 17: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 Mon Dec 7 18:28:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 18:28:47 +0000 Subject: Change in osmo-trx[master]: ipc: Fix wrong reference to BTS in log line References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/21593 ) Change subject: ipc: Fix wrong reference to BTS in log line ...................................................................... ipc: Fix wrong reference to BTS in log line Change-Id: Idd272959e335c46ca88e348dd792e15ddb317d61 --- M Transceiver52M/device/ipc/IPCDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/93/21593/1 diff --git a/Transceiver52M/device/ipc/IPCDevice.cpp b/Transceiver52M/device/ipc/IPCDevice.cpp index a16f723..5ed428e 100644 --- a/Transceiver52M/device/ipc/IPCDevice.cpp +++ b/Transceiver52M/device/ipc/IPCDevice.cpp @@ -793,7 +793,7 @@ INIT_LLIST_HEAD(&master_sk_state.upqueue); rc = osmo_sock_unix_init_ofd(&master_sk_state.conn_bfd, SOCK_SEQPACKET, 0, v.c_str(), OSMO_SOCK_F_CONNECT); if (rc < 0) { - LOGC(DDEV, ERROR) << "Failed to connect to the BTS (" << v << "). " + LOGC(DDEV, ERROR) << "Failed to connect to the IPC device (" << v << "). " << "Retrying...\n"; osmo_timer_setup(&master_sk_state.timer, ipc_sock_timeout, NULL); osmo_timer_schedule(&master_sk_state.timer, 5, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Idd272959e335c46ca88e348dd792e15ddb317d61 Gerrit-Change-Number: 21593 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 Dec 7 18:49:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 18:49:32 +0000 Subject: Change in osmo-trx[master]: ipc-driver-test: Allow setting dir prefix for UD socket References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/21594 ) Change subject: ipc-driver-test: Allow setting dir prefix for UD socket ...................................................................... ipc-driver-test: Allow setting dir prefix for UD socket Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc --- M Transceiver52M/device/ipc/ipc-driver-test.c M Transceiver52M/device/ipc/shm.h 2 files changed, 24 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/94/21594/1 diff --git a/Transceiver52M/device/ipc/ipc-driver-test.c b/Transceiver52M/device/ipc/ipc-driver-test.c index da53463..d8284c7 100644 --- a/Transceiver52M/device/ipc/ipc-driver-test.c +++ b/Transceiver52M/device/ipc/ipc-driver-test.c @@ -49,6 +49,7 @@ #include "ipc_sock.h" #define DEFAULT_SHM_NAME "/osmo-trx-ipc-driver-shm2" +#define IPC_SOCK_PATH_PREFIX "/tmp" static void *tall_ctx; struct ipc_sock_state *global_ipc_sock_state; @@ -63,6 +64,11 @@ static struct ipc_shm_region *decoded_region; +static struct { + int msocknum; + char *ud_prefix_dir; +} cmdline_cfg; + static const struct log_info_cat default_categories[] = { [DMAIN] = { .name = "DMAIN", @@ -185,8 +191,8 @@ chan_info = ipc_prim->u.open_cnf.chan_info; for (i = 0; i < num_chans; i++) { - snprintf(chan_info->chan_ipc_sk_path, sizeof(chan_info->chan_ipc_sk_path), "%s_%d", - IPC_SOCK_PATH_PREFIX, i); + snprintf(chan_info->chan_ipc_sk_path, sizeof(chan_info->chan_ipc_sk_path),"%s/ipc_sock%d_%d", + cmdline_cfg.ud_prefix_dir, cmdline_cfg.msocknum, i); /* FIXME: dynamc chan limit, currently 8 */ if (i < 8) ipc_sock_init(chan_info->chan_ipc_sk_path, &global_ctrl_socks[i], ipc_chan_sock_accept, i); @@ -413,20 +419,20 @@ { printf("ipc-driver-test Usage:\n" " -h --help This message\n" + " -u --unix-sk-dir DIR Existing directory where to create the Master socket\n" " -n --sock-num NR Master socket suffix number NR\n"); } -static int msocknum = 0; - static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; const struct option long_options[] = { { "help", 0, 0, 'h' }, + { "unix-sk-dir", 1, 0, 'u' }, { "sock-num", 1, 0, 'n' }, { 0, 0, 0, 0 } }; - c = getopt_long(argc, argv, "hn:", long_options, &option_index); + c = getopt_long(argc, argv, "hu:n:", long_options, &option_index); if (c == -1) break; @@ -435,9 +441,13 @@ print_help(); exit(0); break; - case 'n': - msocknum = atoi(optarg); + case 'u': + cmdline_cfg.ud_prefix_dir = talloc_strdup(tall_ctx, optarg); break; + case 'n': + cmdline_cfg.msocknum = atoi(optarg); + break; + default: exit(2); break; @@ -452,14 +462,19 @@ int main(int argc, char **argv) { - char ipc_msock_path[sizeof(IPC_SOCK_PATH_PREFIX) + 3]; + char ipc_msock_path[128]; tall_ctx = talloc_named_const(NULL, 0, "OsmoTRX"); msgb_talloc_ctx_init(tall_ctx, 0); osmo_init_logging2(tall_ctx, &log_infox); log_enable_multithread(); handle_options(argc, argv); - snprintf(ipc_msock_path, sizeof(ipc_msock_path), "%s%d", IPC_SOCK_PATH_PREFIX, msocknum); + + if (!cmdline_cfg.ud_prefix_dir) + cmdline_cfg.ud_prefix_dir = talloc_strdup(tall_ctx, IPC_SOCK_PATH_PREFIX); + + + snprintf(ipc_msock_path, sizeof(ipc_msock_path), "%s/ipc_sock%d", cmdline_cfg.ud_prefix_dir, cmdline_cfg.msocknum); LOGP(DMAIN, LOGL_INFO, "Starting %s\n", argv[0]); ipc_sock_init(ipc_msock_path, &global_ipc_sock_state, ipc_sock_accept, 0); diff --git a/Transceiver52M/device/ipc/shm.h b/Transceiver52M/device/ipc/shm.h index fcddd54..46c3add 100644 --- a/Transceiver52M/device/ipc/shm.h +++ b/Transceiver52M/device/ipc/shm.h @@ -79,8 +79,6 @@ ////////////////// // Master socket ////////////////// - -#define IPC_SOCK_PATH_PREFIX "/tmp/ipc_sock" #define IPC_SOCK_API_VERSION 1 /* msg_type */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc Gerrit-Change-Number: 21594 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 Dec 7 19:31:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 19:31:50 +0000 Subject: Change in osmo-trx[master]: ipc: Fix wrong reference to BTS in log line In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21593 ) Change subject: ipc: Fix wrong reference to BTS in log line ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Idd272959e335c46ca88e348dd792e15ddb317d61 Gerrit-Change-Number: 21593 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 19:31: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 Mon Dec 7 19:32:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 19:32:12 +0000 Subject: Change in osmo-trx[master]: ipc-driver-test: Allow setting dir prefix for UD socket In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21594 ) Change subject: ipc-driver-test: Allow setting dir prefix for UD socket ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc Gerrit-Change-Number: 21594 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 19:32: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 Dec 7 19:34:04 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 7 Dec 2020 19:34:04 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21544 ) Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 19:34: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 Dec 7 19:46:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 19:46:04 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Add #defines for [extended] feature bits References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21595 ) Change subject: gsm_08_18.h: Add #defines for [extended] feature bits ...................................................................... gsm_08_18.h: Add #defines for [extended] feature bits Change-Id: I7743cb901988c8fddd91127cfdca6e54b3d44ea8 --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/21595/1 diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 679a08e..0ce28f5 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -321,3 +321,23 @@ BSSGP_CAUSE_DTM_HO_MSC_ERR = 0x4a, BSSGP_CAUSE_INVAL_CSG_CELL = 0x4b, }; + +/* Feature Bitmap (Section 11.3.45) */ +#define BSSGP_FEAT_PFC 0x01 /* Packet Flow Context */ +#define BSSGP_FEAT_CBL 0x02 /* Current Bucket Level */ +#define BSSGP_FEAT_INR 0x04 /* Inter-NSE re-routing */ +#define BSSGP_FEAT_LCS 0x08 /* Location Services */ +#define BSSGP_FEAT_RIM 0x10 /* RAN Inoformation Management */ +#define BSSGP_FEAT_PFC_FC 0x20 /* PFC Flow Control */ +#define BSSGP_FEAT_ERS 0x40 /* Enhanced Radio Status */ +#define BSSGP_FEAT_MBMS 0x80 /* Multimedia Broadcast */ + +/* Extended Feature Bitmap (Section 11.3.84) */ +#define BSSGP_XFEAT_PSHO 0x01 /* PS Handover */ +#define BSSGP_XFEAT_GBIT 0x02 /* Gigabit Interface */ +#define BSSGP_XFEAT_MOCN 0x04 /* Multi-Operator CN */ +#define BSSGP_XFEAT_CSPS 0x08 /* CS/PS coordination enhancements */ +#define BSSGP_XFEAT_ECIoT 0x10 /* EC-GSM-IoT */ +#define BSSGP_XFEAT_DCN 0x20 /* Dedicated CN */ +#define BSSGP_XFEAT_eDRX 0x40 /* eDRX */ +#define BSSGP_XFEAT_MSAD 0x80 /* MS-assisted Dedicated CN selection */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21595 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7743cb901988c8fddd91127cfdca6e54b3d44ea8 Gerrit-Change-Number: 21595 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 Dec 7 19:55:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 7 Dec 2020 19:55:08 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Add #defines for [extended] feature bits In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21595 ) Change subject: gsm_08_18.h: Add #defines for [extended] feature bits ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21595 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7743cb901988c8fddd91127cfdca6e54b3d44ea8 Gerrit-Change-Number: 21595 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 19:55: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 Dec 7 19:55:58 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 7 Dec 2020 19:55:58 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_util: complete bssgp_pdu_strings References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21596 ) Change subject: gprs_bssgp_util: complete bssgp_pdu_strings ...................................................................... gprs_bssgp_util: complete bssgp_pdu_strings The value strings for the BSSGP lack some items, lets make it complete. Change-Id: I94956ca12df7f7ba912da05397b3fb39956277f7 Related: SYS#5103 --- M src/gb/gprs_bssgp_util.c 1 file changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/96/21596/1 diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index da0b103..a4ee926 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -160,6 +160,22 @@ { BSSGP_PDUT_PS_HO_COMPLETE, "PS-HO-COMPLETE" }, { BSSGP_PDUT_PS_HO_CANCEL, "PS-HO-CANCEL" }, { BSSGP_PDUT_PS_HO_COMPLETE_ACK, "PS-HO-COMPLETE-ACK" }, + { BSSGP_PDUT_PERFORM_LOC_REQ, "PERFORM-LOC-REQ" }, + { BSSGP_PDUT_PERFORM_LOC_RESP, "PERFORM-LOC-RESP" }, + { BSSGP_PDUT_PERFORM_LOC_ABORT, "PERFORM-LOC-ABORT" }, + { BSSGP_PDUT_POSITION_COMMAND, "POSITION-COMMAND" }, + { BSSGP_PDUT_POSITION_RESPONSE, "POSITION-RESPONSE" }, + { BSSGP_PDUT_RAN_INFO, "RAN-INFO" }, + { BSSGP_PDUT_RAN_INFO_REQ, "RAN-INFO-REQ" }, + { BSSGP_PDUT_RAN_INFO_ACK, "RAN-INFO-ACK" }, + { BSSGP_PDUT_RAN_INFO_ERROR, "RAN-INFO-ERROR" }, + { BSSGP_PDUT_RAN_INFO_APP_ERROR, "RAN-INFO-APP-ERROR" }, + { BSSGP_PDUT_MBMS_START_REQ, "MBMS-START-REQ" }, + { BSSGP_PDUT_MBMS_START_RESP, "MBMS-START-RESP" }, + { BSSGP_PDUT_MBMS_STOP_REQ, "MBMS-STOP-REQ" }, + { BSSGP_PDUT_MBMS_STOP_RESP, "MBMS-STOP-RESP" }, + { BSSGP_PDUT_MBMS_UPDATE_REQ, "MBMS-UPDATE-REQ" }, + { BSSGP_PDUT_MBMS_UPDATE_RESP, "MBMS-UPDATE-RESP" }, { 0, NULL }, }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I94956ca12df7f7ba912da05397b3fb39956277f7 Gerrit-Change-Number: 21596 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 Dec 7 21:05:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 21:05:19 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21597 ) Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... logging: Introduce DLBSSGP logging constant Historically, BSSGP uses a non-constant, user-configurable integer varieable for the logging sub-system. Let's replace this with a statically-allocated library logging constant. This is required if we want to use the subsystem number in e.g. static initialized for osmo_fsm.log_subsys. Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 --- M include/osmocom/core/logging.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c M src/gb/gprs_bssgp_util.c M src/logging.c 5 files changed, 69 insertions(+), 63 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/21597/1 diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index 418a42e..c7f89de 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -121,7 +121,8 @@ #define DLJIBUF -18 /*!< Osmocom Jitter Buffer */ #define DLRSPRO -19 /*!< Osmocom Remote SIM Protocol */ #define DLNS -20 /*!< Osmocom NS layer */ -#define OSMO_NUM_DLIB 20 /*!< Number of logging sub-systems in libraries */ +#define DLBSSGP -21 /*!< Osmocom BSSGP layer */ +#define OSMO_NUM_DLIB 21 /*!< 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/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 7fb3a30..c62f3ba 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -110,7 +110,7 @@ msgb_nsei(msg) = nsei; msgb_bvci(msg) = 0; /* Signalling */ bgph->pdu_type = BSSGP_PDUT_BVC_RESET; - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-RESET " + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-RESET " "CAUSE=%s\n", bvci, bssgp_cause_str(cause)); msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); @@ -140,7 +140,7 @@ llist_for_each_entry(bctx, &bssgp_bvc_ctxts, list) { if (bctx->nsei == nsei && bctx->bvci != BVCI_SIGNALLING) { - LOGP(DBSSGP, LOGL_DEBUG, "NSEI=%u/BVCI=%u RESET due to %s\n", + LOGP(DLBSSGP, LOGL_DEBUG, "NSEI=%u/BVCI=%u RESET due to %s\n", nsei, bctx->bvci, bssgp_cause_str(cause)); rc = bssgp_tx_bvc_reset(bctx, bctx->bvci, cause); if (rc < 0) @@ -337,7 +337,7 @@ uint16_t bvci; bvci = tlvp_val16be(tp, BSSGP_IE_BVCI); - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx RESET cause=%s\n", bvci, + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RESET cause=%s\n", bvci, bssgp_cause_str(*TLVP_VAL(tp, BSSGP_IE_CAUSE))); /* look-up or create the BTS context for this BVC */ @@ -352,14 +352,14 @@ * informs us about its RAC + Cell ID, so we can create a mapping */ if (bvci != 0 && bvci != 1) { if (!TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESET " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESET " "missing mandatory IE\n", bvci); return -EINVAL; } /* actually extract RAC / CID */ bctx->cell_id = bssgp_parse_cell_id(&bctx->ra_id, TLVP_VAL(tp, BSSGP_IE_CELL_ID)); - LOGP(DBSSGP, LOGL_NOTICE, "Cell %s CI %u on BVCI %u\n", + LOGP(DLBSSGP, LOGL_NOTICE, "Cell %s CI %u on BVCI %u\n", osmo_rai_name(&bctx->ra_id), bctx->cell_id, bvci); } @@ -388,13 +388,13 @@ bvci = tlvp_val16be(tp, BSSGP_IE_BVCI); if (bvci == BVCI_SIGNALLING) { /* 8.3.2: Signalling BVC shall never be blocked */ - LOGP(DBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u " + LOGP(DLBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u " "received block for signalling BVC!?!\n", nsei, msgb_bvci(msg)); return 0; } - LOGP(DBSSGP, LOGL_INFO, "BSSGP Rx BVCI=%u BVC-BLOCK\n", bvci); + LOGP(DLBSSGP, LOGL_INFO, "BSSGP Rx BVCI=%u BVC-BLOCK\n", bvci); ptp_ctx = btsctx_by_bvci_nsei(bvci, nsei); if (!ptp_ctx) @@ -426,13 +426,13 @@ bvci = tlvp_val16be(tp, BSSGP_IE_BVCI); if (bvci == BVCI_SIGNALLING) { /* 8.3.2: Signalling BVC shall never be blocked */ - LOGP(DBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u " + LOGP(DLBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u " "received unblock for signalling BVC!?!\n", nsei, msgb_bvci(msg)); return 0; } - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx BVC-UNBLOCK\n", bvci); + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx BVC-UNBLOCK\n", bvci); ptp_ctx = btsctx_by_bvci_nsei(bvci, nsei); if (!ptp_ctx) @@ -464,12 +464,12 @@ /* extract TLLI and parse TLV IEs */ msgb_tlli(msg) = osmo_ntohl(budh->tlli); - DEBUGP(DBSSGP, "BSSGP TLLI=0x%08x Rx UPLINK-UNITDATA\n", msgb_tlli(msg)); + DEBUGP(DLBSSGP, "BSSGP TLLI=0x%08x Rx UPLINK-UNITDATA\n", msgb_tlli(msg)); /* Cell ID and LLC_PDU are the only mandatory IE */ if (!TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8) || !TLVP_PRESENT(tp, BSSGP_IE_LLC_PDU)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP TLLI=0x%08x Rx UL-UD " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP TLLI=0x%08x Rx UL-UD " "missing mandatory IE\n", msgb_tlli(msg)); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } @@ -499,14 +499,14 @@ if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4) || !TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx SUSPEND " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx SUSPEND " "missing mandatory IE\n", ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); - DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx SUSPEND\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx SUSPEND\n", ns_bvci, tlli); gsm48_parse_ra(&raid, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA)); @@ -541,7 +541,7 @@ if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4 ) || !TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6) || !TLVP_PRES_LEN(tp, BSSGP_IE_SUSPEND_REF_NR, 1)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESUME " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESUME " "missing mandatory IE\n", ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } @@ -549,7 +549,7 @@ tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); suspend_ref = *TLVP_VAL(tp, BSSGP_IE_SUSPEND_REF_NR); - DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx RESUME\n", ns_bvci, tlli); + DEBUGP(DLBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx RESUME\n", ns_bvci, tlli); gsm48_parse_ra(&raid, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA)); @@ -584,14 +584,14 @@ !TLVP_PRES_LEN(tp, BSSGP_IE_LLC_FRAMES_DISCARDED, 1) || !TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_NUM_OCT_AFF, 3)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx LLC DISCARDED " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx LLC DISCARDED " "missing mandatory IE\n", ctx->bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); - DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=%08x Rx LLC DISCARDED\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u TLLI=%08x Rx LLC DISCARDED\n", ctx->bvci, tlli); rate_ctr_inc(&ctx->ctrg->ctr[BSSGP_CTR_DISCARDED]); @@ -616,19 +616,19 @@ enum gprs_bssgp_cause cause; if (!TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS " "missing mandatory IE\n", bvci); cause = BSSGP_CAUSE_PROTO_ERR_UNSPEC; } else { cause = *TLVP_VAL(tp, BSSGP_IE_CAUSE); } - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Rx BVC STATUS, cause=%s\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Rx BVC STATUS, cause=%s\n", bvci, bssgp_cause_str(cause)); if (cause == BSSGP_CAUSE_BVCI_BLOCKED || cause == BSSGP_CAUSE_UNKNOWN_BVCI) { if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) - LOGP(DBSSGP, LOGL_ERROR, + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS cause=%s " "missing conditional BVCI IE\n", bvci, bssgp_cause_str(cause)); @@ -680,7 +680,7 @@ list); if (bssgp_fc_needs_queueing(fc, fcqe->llc_pdu_len)) { - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP-FC: fc_timer_cb() but still " + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP-FC: fc_timer_cb() but still " "not able to send PDU of %u bytes\n", fcqe->llc_pdu_len); /* make sure we re-start the timer */ fc_queue_timer_cfg(fc); @@ -818,7 +818,7 @@ struct timeval time_now; if (llc_pdu_len > fc->bucket_size_max) { - LOGP(DBSSGP, LOGL_NOTICE, "Single PDU (size=%u) is larger " + LOGP(DLBSSGP, LOGL_NOTICE, "Single PDU (size=%u) is larger " "than maximum bucket size (%u)!\n", llc_pdu_len, fc->bucket_size_max); msgb_free(msg); @@ -879,7 +879,7 @@ uint32_t old_leak_rate = bctx->fc->bucket_leak_rate; uint32_t old_r_def_ms = bctx->r_default_ms; - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx Flow Control BVC\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx Flow Control BVC\n", bctx->bvci); if (!TLVP_PRES_LEN(tp, BSSGP_IE_TAG, 1) || @@ -887,7 +887,7 @@ !TLVP_PRES_LEN(tp, BSSGP_IE_BUCKET_LEAK_RATE, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_BMAX_DEFAULT_MS, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_R_DEFAULT_MS,2)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx FC BVC " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx FC BVC " "missing mandatory IE\n", bctx->bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } @@ -902,17 +902,17 @@ bctx->r_default_ms = 100 * tlvp_val16be(tp, BSSGP_IE_R_DEFAULT_MS) / 8; if (old_leak_rate != 0 && bctx->fc->bucket_leak_rate == 0) - LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak " + LOGP(DLBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak " "rate of 0, stopping all DL GPRS!\n"); else if (old_leak_rate == 0 && bctx->fc->bucket_leak_rate != 0) - LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak " + LOGP(DLBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak " "rate of != 0, restarting all DL GPRS!\n"); if (old_r_def_ms != 0 && bctx->r_default_ms == 0) - LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to MS default " + LOGP(DLBSSGP, LOGL_NOTICE, "BSS instructs us to MS default " "bucket leak rate of 0, stopping DL GPRS!\n"); else if (old_r_def_ms == 0 && bctx->r_default_ms != 0) - LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to MS default " + LOGP(DLBSSGP, LOGL_NOTICE, "BSS instructs us to MS default " "bucket leak rate != 0, restarting DL GPRS!\n"); /* reconfigure the timer for flow control based on new values */ @@ -949,13 +949,13 @@ break; case BSSGP_PDUT_RA_CAPABILITY: /* BSS requests RA capability or IMSI */ - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx RA CAPABILITY UPDATE\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RA CAPABILITY UPDATE\n", bctx->bvci); /* FIXME: send GMM_RA_CAPABILITY_UPDATE.ind to GMM */ /* FIXME: send RA_CAPA_UPDATE_ACK */ break; case BSSGP_PDUT_RADIO_STATUS: - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx RADIO STATUS\n", bctx->bvci); + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RADIO STATUS\n", bctx->bvci); /* BSS informs us of some exception */ /* FIXME: send GMM_RADIO_STATUS.ind to GMM */ break; @@ -965,7 +965,7 @@ break; case BSSGP_PDUT_FLOW_CONTROL_MS: /* BSS informs us of available bandwidth to one MS */ - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx Flow Control MS\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx Flow Control MS\n", bctx->bvci); /* FIXME: actually implement flow control */ /* FIXME: Send FLOW_CONTROL_MS_ACK */ @@ -978,7 +978,7 @@ case BSSGP_PDUT_CREATE_BSS_PFC_NACK: case BSSGP_PDUT_MODIFY_BSS_PFC: case BSSGP_PDUT_DELETE_BSS_PFC_ACK: - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type %s not [yet] " + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx PDU type %s not [yet] " "implemented\n", bctx->bvci, bssgp_pdu_str(pdu_type)); rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); break; @@ -989,13 +989,13 @@ case BSSGP_PDUT_RA_CAPA_UPDATE_ACK: case BSSGP_PDUT_FLOW_CONTROL_BVC_ACK: case BSSGP_PDUT_FLOW_CONTROL_MS_ACK: - DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type %s only exists in DL\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u PDU type %s only exists in DL\n", bctx->bvci, bssgp_pdu_str(pdu_type)); bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); rc = -EINVAL; break; default: - DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type %s unknown\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u PDU type %s unknown\n", bctx->bvci, bssgp_pdu_str(pdu_type)); rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); break; @@ -1026,13 +1026,13 @@ break; case BSSGP_PDUT_FLUSH_LL_ACK: /* BSS informs us it has performed LL FLUSH */ - DEBUGP(DBSSGP, "BSSGP Rx BVCI=%u FLUSH LL ACK\n", bvci); + DEBUGP(DLBSSGP, "BSSGP Rx BVCI=%u FLUSH LL ACK\n", bvci); /* FIXME: send NM_FLUSH_LL.res to NM */ break; case BSSGP_PDUT_LLC_DISCARD: /* BSS informs that some LLC PDU's have been discarded */ if (!bctx) { - LOGP(DBSSGP, LOGL_ERROR, + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Rx LLC-DISCARD missing mandatory BVCI\n"); goto err_mand_ie; } @@ -1042,7 +1042,7 @@ /* BSS tells us that BVC shall be blocked */ if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-BLOCK " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Rx BVC-BLOCK " "missing mandatory IE\n"); goto err_mand_ie; } @@ -1051,20 +1051,20 @@ case BSSGP_PDUT_BVC_UNBLOCK: /* BSS tells us that BVC shall be unblocked */ if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-UNBLOCK " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Rx BVC-UNBLOCK " "missing mandatory IE\n"); goto err_mand_ie; } rc = bssgp_rx_bvc_unblock(msg, tp); break; case BSSGP_PDUT_BVC_RESET_ACK: - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx BVC-RESET-ACK\n", bvci); + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx BVC-RESET-ACK\n", bvci); break; case BSSGP_PDUT_BVC_RESET: /* BSS tells us that BVC init is required */ if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-RESET " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Rx BVC-RESET " "missing mandatory IE\n"); goto err_mand_ie; } @@ -1084,13 +1084,13 @@ case BSSGP_PDUT_BVC_BLOCK_ACK: case BSSGP_PDUT_BVC_UNBLOCK_ACK: case BSSGP_PDUT_SGSN_INVOKE_TRACE: - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type %s only exists in DL\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx PDU type %s only exists in DL\n", bvci, bssgp_pdu_str(pdu_type)); bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); rc = -EINVAL; break; default: - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type %s unknown\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx PDU type %s unknown\n", bvci, bssgp_pdu_str(pdu_type)); rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); break; @@ -1128,7 +1128,7 @@ rc = bssgp_tlv_parse(&tp, budh->data, data_len); } if (rc < 0) { - LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", + LOGP(DLBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", bssgp_pdu_str(pdu_type), msgb_hexdump(msg)); if (pdu_type != BSSGP_PDUT_STATUS) return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); @@ -1158,7 +1158,7 @@ * registered if a BVCI is given. */ if (!bctx && bvci != BVCI_SIGNALLING && pdu_type != BSSGP_PDUT_BVC_RESET) { - LOGP(DBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Rejecting PDU type %s for unknown BVCI\n", nsei, bvci, + LOGP(DLBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Rejecting PDU type %s for unknown BVCI\n", nsei, bvci, bssgp_pdu_str(pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &bvci, msg); } @@ -1170,7 +1170,7 @@ else if (bctx) rc = bssgp_rx_ptp(msg, &tp, bctx); else - LOGP(DBSSGP, LOGL_NOTICE, + LOGP(DLBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Cannot handle PDU type %s for unknown BVCI, NS BVCI %u\n", nsei, bvci, bssgp_pdu_str(pdu_type), ns_bvci); @@ -1194,7 +1194,7 @@ /* Identifiers from UP: TLLI, BVCI, NSEI (all in msgb->cb) */ if (bvci <= BVCI_PTM ) { - LOGP(DBSSGP, LOGL_ERROR, "Cannot send DL-UD to BVCI %u\n", + LOGP(DLBSSGP, LOGL_ERROR, "Cannot send DL-UD to BVCI %u\n", bvci); msgb_free(msg); return -EINVAL; @@ -1202,7 +1202,7 @@ bctx = btsctx_by_bvci_nsei(bvci, nsei); if (!bctx) { - LOGP(DBSSGP, LOGL_ERROR, "Cannot send DL-UD to unknown BVCI %u\n", + LOGP(DLBSSGP, LOGL_ERROR, "Cannot send DL-UD to unknown BVCI %u\n", bvci); msgb_free(msg); return -ENODEV; @@ -1353,7 +1353,7 @@ void bssgp_set_log_ss(int ss) { - DBSSGP = ss; + LOGP(DLGLOBAL, LOGL_ERROR, "BSSGP has moved from DGPRS to DLGPRS, please update your code\n"); } /*! diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index 462666a..7ed14c2 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -61,7 +61,7 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx SUSPEND (TLLI=0x%04x)\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx SUSPEND (TLLI=0x%04x)\n", tlli); msgb_nsei(msg) = nsei; msgb_bvci(msg) = 0; /* Signalling */ @@ -81,7 +81,7 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx RESUME (TLLI=0x%04x)\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx RESUME (TLLI=0x%04x)\n", tlli); msgb_nsei(msg) = nsei; msgb_bvci(msg) = 0; /* Signalling */ @@ -102,7 +102,7 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RA-CAPA-UPD (TLLI=0x%04x)\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RA-CAPA-UPD (TLLI=0x%04x)\n", bctx->bvci, tlli); /* set NSEI and BVCI in msgb cb */ @@ -124,7 +124,7 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RADIO-STATUS ", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RADIO-STATUS ", bctx->bvci); /* set NSEI and BVCI in msgb cb */ @@ -140,7 +140,7 @@ static int common_tx_radio_status2(struct msgb *msg, uint8_t cause) { msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, &cause); - LOGPC(DBSSGP, LOGL_NOTICE, "CAUSE=%s\n", bssgp_cause_str(cause)); + LOGPC(DLBSSGP, LOGL_NOTICE, "CAUSE=%s\n", bssgp_cause_str(cause)); return bssgp_ns_send(bssgp_ns_send_data, msg); } @@ -154,7 +154,7 @@ if (!msg) return -ENOMEM; bssgp_msgb_tlli_put(msg, tlli); - LOGPC(DBSSGP, LOGL_NOTICE, "TLLI=0x%08x ", tlli); + LOGPC(DLBSSGP, LOGL_NOTICE, "TLLI=0x%08x ", tlli); return common_tx_radio_status2(msg, cause); } @@ -169,7 +169,7 @@ if (!msg) return -ENOMEM; msgb_tvlv_put(msg, BSSGP_IE_TMSI, 4, (uint8_t *)&_tmsi); - LOGPC(DBSSGP, LOGL_NOTICE, "TMSI=0x%08x ", tmsi); + LOGPC(DLBSSGP, LOGL_NOTICE, "TMSI=0x%08x ", tmsi); return common_tx_radio_status2(msg, cause); } @@ -195,7 +195,7 @@ if (imsi_len > 2) msgb_tvlv_put(msg, BSSGP_IE_IMSI, imsi_len-2, mi+2); #pragma GCC diagnostic pop - LOGPC(DBSSGP, LOGL_NOTICE, "IMSI=%s ", imsi); + LOGPC(DLBSSGP, LOGL_NOTICE, "IMSI=%s ", imsi); return common_tx_radio_status2(msg, cause); } @@ -234,7 +234,7 @@ uint16_t _bvci = osmo_htons(bctx->bvci); uint32_t _oct_aff = osmo_htonl(num_octets & 0xFFFFFF); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx LLC-DISCARDED " + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx LLC-DISCARDED " "TLLI=0x%04x, FRAMES=%u, OCTETS=%u\n", bctx->bvci, tlli, num_frames, num_octets); msgb_nsei(msg) = bctx->nsei; @@ -258,7 +258,7 @@ (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); uint16_t _bvci = osmo_htons(bctx->bvci); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-BLOCK " + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-BLOCK " "CAUSE=%s\n", bctx->bvci, bssgp_cause_str(cause)); msgb_nsei(msg) = bctx->nsei; @@ -279,7 +279,7 @@ (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); uint16_t _bvci = osmo_htons(bctx->bvci); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-UNBLOCK\n", bctx->bvci); + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-UNBLOCK\n", bctx->bvci); msgb_nsei(msg) = bctx->nsei; msgb_bvci(msg) = 0; /* Signalling */ diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index f52121a..3f33b5e 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -545,17 +545,17 @@ cause is either "BVCI blocked" or "BVCI unknown" */ if (cause == BSSGP_CAUSE_UNKNOWN_BVCI || cause == BSSGP_CAUSE_BVCI_BLOCKED) { if (bvci == NULL) - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: " "missing conditional BVCI\n", bssgp_cause_str(cause)); } else { if (bvci != NULL) - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: " "unexpected conditional BVCI\n", bssgp_cause_str(cause)); } - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Tx STATUS, cause=%s\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Tx STATUS, cause=%s\n", bvci ? *bvci : 0, bssgp_cause_str(cause)); msgb_nsei(msg) = msgb_nsei(orig_msg); msgb_bvci(msg) = 0; diff --git a/src/logging.c b/src/logging.c index d60d6e4..0b4c1ff 100644 --- a/src/logging.c +++ b/src/logging.c @@ -238,6 +238,11 @@ .description = "GPRS NS layer", .enabled = 1, .loglevel = LOGL_NOTICE, }, + [INT2IDX(DLBSSGP)] = { + .name = "DLBSSGP", + .description = "GPRS BSSGP layer", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, }; void assert_loginfo(const char *src) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 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 Dec 7 21:05:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 21:05:20 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21598 ) Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... gb: Add beginnings of a new BSSGP implementation Similar to ns2 superseding ns, we now also intoduce a next generation of BSSGP related code to libosmogb. However, this is not aiming to be a full implementation yet, but simply those parts that we currently need from the revamped osmo-gbproxy. The gprs_bssgp2.[ch] differs in two ways from the old code: * it separates message encoding from message transmission * it supports more recent specs / IEs bssgp_bvc_fsm.c is a genric implementation of the BSSGP BVC RESET/BLOCK/UNBLOCK logic with support for both PTP and signaling, both on the SGSN side and the BSS side. Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a --- M include/Makefile.am A include/osmocom/gprs/bssgp_bvc_fsm.h A include/osmocom/gprs/gprs_bssgp2.h M src/gb/Makefile.am A src/gb/bssgp_bvc_fsm.c A src/gb/gprs_bssgp2.c M src/gb/libosmogb.map 7 files changed, 1,055 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/21598/1 diff --git a/include/Makefile.am b/include/Makefile.am index f67e1ad..44b04b4 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -64,6 +64,7 @@ osmocom/ctrl/control_if.h \ osmocom/ctrl/ports.h \ osmocom/gprs/frame_relay.h \ + osmocom/gprs/bssgp_bvc_fsm.h \ osmocom/gprs/gprs_bssgp.h \ osmocom/gprs/gprs_bssgp_bss.h \ osmocom/gprs/gprs_msgb.h \ diff --git a/include/osmocom/gprs/bssgp_bvc_fsm.h b/include/osmocom/gprs/bssgp_bvc_fsm.h new file mode 100644 index 0000000..7c6fdeb --- /dev/null +++ b/include/osmocom/gprs/bssgp_bvc_fsm.h @@ -0,0 +1,61 @@ +#pragma once +#include + +struct gprs_ns2_inst; +struct osmo_fsm_inst; +struct gprs_ra_id; + +enum bssp_ptp_bvc_fsm_state { + BSSGP_BVCFSM_S_NULL, + BSSGP_BVCFSM_S_BLOCKED, + BSSGP_BVCFSM_S_WAIT_RESET_ACK, + BSSGP_BVCFSM_S_UNBLOCKED, +}; + +enum bssgp_ptp_bvc_fsm_event { + /* Rx of BSSGP PDUs from the remote side; 'data' is 'struct tlv_parsed', and + * the assumption is that the caller has already validated all mandatory IEs + * are present and of sufficient length */ + BSSGP_BVCFSM_E_RX_BLOCK, + BSSGP_BVCFSM_E_RX_BLOCK_ACK, + BSSGP_BVCFSM_E_RX_UNBLOCK, + BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, + BSSGP_BVCFSM_E_RX_RESET, + BSSGP_BVCFSM_E_RX_RESET_ACK, + /* Requests of the local user */ + BSSGP_BVCFSM_E_REQ_BLOCK, /* data: uint8_t *cause */ + BSSGP_BVCFSM_E_REQ_UNBLOCK, + BSSGP_BVCFSM_E_REQ_RESET, /* data: uint8_t *cause */ +}; + +struct bssgp_bvc_fsm_ops { + /* call-back notifying the user of a state change */ + void (*state_chg_notification)(uint16_t nsei, uint16_t bvci, int old_state, int new_state, + void *priv); + /* call-back notifying the user of a BVC-RESET event */ + void (*reset_notification)(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv); +}; + +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_sig_bss(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint32_t features); + +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_ptp_bss(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci, + const struct gprs_ra_id *ra_id, uint16_t cell_id); + +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_sig_sgsn(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint32_t features); + +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_ptp_sgsn(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci); + +void bssgp_bvc_fsm_set_ops(struct osmo_fsm_inst *fi, const struct bssgp_bvc_fsm_ops *ops, void *ops_priv); + +bool bssgp_bvc_fsm_is_unblocked(struct osmo_fsm_inst *fi); + +uint8_t bssgp_bvc_fsm_get_block_cause(struct osmo_fsm_inst *fi); + +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); diff --git a/include/osmocom/gprs/gprs_bssgp2.h b/include/osmocom/gprs/gprs_bssgp2.h new file mode 100644 index 0000000..0ab3619 --- /dev/null +++ b/include/osmocom/gprs/gprs_bssgp2.h @@ -0,0 +1,31 @@ +#pragma once +#include + +#include +#include + +struct gprs_ns2_inst; +struct gprs_ra_id; +struct msgb; + +int bssgp2_nsi_tx_ptp(struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci, + struct msgb *msg, uint32_t lsp); + +int bssgp2_nsi_tx_sig(struct gprs_ns2_inst *nsi, uint16_t nsei, struct msgb *msg, uint32_t lsp); + +struct msgb *bssgp2_enc_bvc_block(uint16_t bvci, enum gprs_bssgp_cause cause); + +struct msgb *bssgp2_enc_bvc_block_ack(uint16_t bvci); + +struct msgb *bssgp2_enc_bvc_unblock(uint16_t bvci); + +struct msgb *bssgp2_enc_bvc_unblock_ack(uint16_t bvci); + +struct msgb *bssgp2_enc_bvc_reset(uint16_t bvci, enum gprs_bssgp_cause cause, + 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_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); diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index b140727..ea1cfde 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -26,6 +26,7 @@ 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_bssgp2.c bssgp_bvc_fsm.c \ common_vty.c frame_relay.c endif diff --git a/src/gb/bssgp_bvc_fsm.c b/src/gb/bssgp_bvc_fsm.c new file mode 100644 index 0000000..f54144d --- /dev/null +++ b/src/gb/bssgp_bvc_fsm.c @@ -0,0 +1,719 @@ +/* BSSGP per-BVC Finite State Machine */ +/* (C) 2020 by Harald Welte */ + +/* FIXME: This should probably be moved to libosmogb? */ + +#include +#include + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include "common_vty.h" + +#define S(x) (1 << (x)) + +/* FIXME: Tdef API */ +#define T1 1 +#define T2 2 + +#define T1_SECS 5 /* 1s < T1 < 30s */ +#define T2_SECS 10 /* 1s < T2 < 120s */ + +/* forward declaration */ +static struct osmo_fsm bssgp_bvc_fsm; + +static const struct value_string ptp_bvc_event_names[] = { + { BSSGP_BVCFSM_E_RX_BLOCK, "RX-BVC-BLOCK" }, + { BSSGP_BVCFSM_E_RX_BLOCK_ACK, "RX-BVC-BLOCK-ACK" }, + { BSSGP_BVCFSM_E_RX_UNBLOCK, "RX-BVC-UNBLOCK" }, + { BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, "RX-BVC-UNBLOCK-ACK" }, + { BSSGP_BVCFSM_E_RX_RESET, "RX-BVC-RESET" }, + { BSSGP_BVCFSM_E_RX_RESET_ACK, "RX-BVC-RESET-ACK" }, + { BSSGP_BVCFSM_E_REQ_BLOCK, "REQ-BLOCK" }, + { BSSGP_BVCFSM_E_REQ_UNBLOCK, "REQ-UNBLOCK" }, + { BSSGP_BVCFSM_E_REQ_RESET, "REQ-RESET" }, + { 0, NULL } +}; + +struct bvc_fsm_priv { + /* NS-instance; defining the scope for NSEI below */ + struct gprs_ns2_inst *nsi; + + /* NSEI of the underlying NS Entity */ + uint16_t nsei; + + /* BVCI of this BVC */ + uint16_t bvci; + + /* are we the SGSN (true) or the BSS (false) */ + bool role_sgsn; + + /* BSS side: are we locally marked blocked? */ + bool locally_blocked; + uint8_t block_cause; + + /* cause value of the last outbound BVC-RESET (for re-transmissions) */ + uint8_t last_reset_cause; + + struct { + /* Bit 0..7: Features; Bit 8..15: Extended Features */ + uint32_t advertised; + uint32_t received; + uint32_t negotiated; + } features; + + /* Cell Identification used by BSS when + * transmitting BVC-RESET / BVC-RESET-ACK, or those received + * from BSS in SGSN role */ + struct gprs_ra_id ra_id; + uint16_t cell_id; + + /* call-backs provided by the user */ + const struct bssgp_bvc_fsm_ops *ops; + /* private data pointer passed to each call-back invocation */ + void *ops_priv; +}; + +static int fi_tx_ptp(struct osmo_fsm_inst *fi, struct msgb *msg) +{ + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + LOGPFSM(fi, "Tx BSSGP %s\n", osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + + return bssgp2_nsi_tx_sig(bfp->nsi, bfp->nsei, msg, bfp->bvci); +} + +static int fi_tx_sig(struct osmo_fsm_inst *fi, struct msgb *msg) +{ + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + LOGPFSM(fi, "Tx BSSGP %s\n", osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + + return bssgp2_nsi_tx_sig(bfp->nsi, bfp->nsei, msg, 0); +} + +/* helper function to transmit BVC-RESET with right combination of conditional/optional IEs */ +static void _tx_bvc_reset(struct osmo_fsm_inst *fi, uint8_t cause) +{ + struct bvc_fsm_priv *bfp = fi->priv; + const uint8_t *features = NULL; + const uint8_t *features_ext = NULL; + uint8_t _features[2] = { + (bfp->features.advertised >> 0) & 0xff, + (bfp->features.advertised >> 8) & 0xff, + }; + struct msgb *tx; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + /* transmit BVC-RESET to peer; RA-ID only present for PTP from BSS */ + if (bfp->bvci == 0) { + features = &_features[0]; + features_ext = &_features[1]; + } + tx = bssgp2_enc_bvc_reset(bfp->bvci, cause, + bfp->bvci && !bfp->role_sgsn ? &bfp->ra_id : NULL, + bfp->cell_id, features, features_ext); + fi_tx_sig(fi, tx); +} + +/* helper function to transmit BVC-RESET-ACK with right combination of conditional/optional IEs */ +static void _tx_bvc_reset_ack(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + const uint8_t *features = NULL; + const uint8_t *features_ext = NULL; + uint8_t _features[2] = { + (bfp->features.advertised >> 0) & 0xff, + (bfp->features.advertised >> 8) & 0xff, + }; + struct msgb *tx; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + /* transmit BVC-RESET-ACK to peer; RA-ID only present for PTP from BSS -> SGSN */ + if (bfp->bvci == 0) { + features = &_features[0]; + features_ext = &_features[1]; + } + tx = bssgp2_enc_bvc_reset_ack(bfp->bvci, bfp->bvci && !bfp->role_sgsn ? &bfp->ra_id : NULL, + bfp->cell_id, features, features_ext); + fi_tx_sig(fi, tx); +} + +/* helper function to transmit BVC-STATUS with right combination of conditional/optional IEs */ +static void _tx_status(struct osmo_fsm_inst *fi, enum gprs_bssgp_cause cause, const struct msgb *rx) +{ + struct bvc_fsm_priv *bfp = fi->priv; + struct msgb *tx; + uint16_t *bvci = NULL; + + /* GSM 08.18, 10.4.14.1: The BVCI must be included if (and only if) the + * cause is either "BVCI blocked" or "BVCI unknown" */ + if (cause == BSSGP_CAUSE_UNKNOWN_BVCI || cause == BSSGP_CAUSE_BVCI_BLOCKED) + bvci = &bfp->bvci; + + tx = bssgp2_enc_status(cause, bvci, rx); + + if (msgb_bvci(rx) == 0) + fi_tx_sig(fi, tx); + else + fi_tx_ptp(fi, tx); +} + +/* Update the features by bit-wise AND of advertised + received features */ +static void update_negotiated_features(struct osmo_fsm_inst *fi, const struct tlv_parsed *tp) +{ + struct bvc_fsm_priv *bfp = fi->priv; + uint32_t features_rx = 0; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + if (TLVP_PRES_LEN(tp, BSSGP_IE_FEATURE_BITMAP, 1)) + features_rx |= *TLVP_VAL(tp, BSSGP_IE_FEATURE_BITMAP); + + if (TLVP_PRES_LEN(tp, BSSGP_IE_EXT_FEATURE_BITMAP, 1)) + features_rx |= (*TLVP_VAL(tp, BSSGP_IE_EXT_FEATURE_BITMAP) << 8); + + bfp->features.negotiated = bfp->features.advertised & features_rx; + + LOGPFSML(fi, LOGL_NOTICE, "Updating features: Advertised 0x%04x, Received 0x%04x, Negotiated 0x%04x\n", + bfp->features.advertised, features_rx, bfp->features.negotiated); +} + +/* "tail" of each onenter() handler: Calling the state change notification call-back */ +static void _onenter_tail(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + if (prev_state == fi->state) + return; + + if (bfp->ops && bfp->ops->state_chg_notification) + bfp->ops->state_chg_notification(bfp->nsei, bfp->bvci, prev_state, fi->state, bfp->ops_priv); +} + +static void bssgp_bvc_fsm_null(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + /* we don't really expect anything in this state; all handled via allstate */ + OSMO_ASSERT(0); +} + +static void bssgp_bvc_fsm_blocked_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct bvc_fsm_priv *bfp = fi->priv; + /* signaling BVC can never be blocked */ + OSMO_ASSERT(bfp->bvci != 0); + _onenter_tail(fi, prev_state); +} + +static void bssgp_bvc_fsm_blocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct bvc_fsm_priv *bfp = fi->priv; + struct msgb *rx = NULL, *tx; + const struct tlv_parsed *tp = NULL; + uint8_t cause; + + switch (event) { + case BSSGP_BVCFSM_E_RX_BLOCK_ACK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* If a BVC-BLOCK-ACK PDU is received by a BSS for the signalling BVC, the PDU is ignored. */ + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-BLOCK-ACK on BVCI=0 is illegal\n"); + if (!bfp->role_sgsn) + break; + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + /* stop T1 timer */ + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, 0, 0); + break; + case BSSGP_BVCFSM_E_RX_BLOCK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + cause = *TLVP_VAL(tp, BSSGP_IE_CAUSE); + LOGPFSML(fi, LOGL_NOTICE, "Rx BVC-BLOCK (cause=%s)\n", bssgp_cause_str(cause)); + /* If a BVC-BLOCK PDU is received by an SGSN for a blocked BVC, a BVC-BLOCK-ACK + * PDU shall be returned. */ + if (bfp->role_sgsn) { + /* If a BVC-BLOCK PDU is received by an SGSN for + * the signalling BVC, the PDU is ignored */ + if (bfp->bvci == 0) + break; + tx = bssgp2_enc_bvc_block_ack(bfp->bvci); + fi_tx_sig(fi, tx); + } + break; + case BSSGP_BVCFSM_E_RX_UNBLOCK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + LOGPFSML(fi, LOGL_NOTICE, "Rx BVC-UNBLOCK\n"); + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-UNBLOCK on BVCI=0 is illegal\n"); + /* If BVC-UNBLOCK PDU is received by an SGSN for the signalling BVC, the PDU is ignored.*/ + if (bfp->role_sgsn) + break; + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + if (!bfp->role_sgsn) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-UNBLOCK on BSS is illegal\n"); + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + tx = bssgp2_enc_bvc_unblock_ack(bfp->bvci); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, T1_SECS, T1); + break; + case BSSGP_BVCFSM_E_REQ_UNBLOCK: + if (bfp->role_sgsn) { + LOGPFSML(fi, LOGL_ERROR, "SGSN side cannot initiate BVC unblock\n"); + break; + } + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "BVCI 0 cannot be unblocked\n"); + break; + } + bfp->locally_blocked = false; + tx = bssgp2_enc_bvc_unblock(bfp->bvci); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, 0, 0); + break; + } +} + +/* Waiting for RESET-ACK: Receive PDUs but don't transmit */ +static void bssgp_bvc_fsm_wait_reset_ack(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct bvc_fsm_priv *bfp = fi->priv; + const struct tlv_parsed *tp = NULL; + struct msgb *rx = NULL, *tx; + + switch (event) { + case BSSGP_BVCFSM_E_RX_RESET_ACK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + if (bfp->bvci == 0) + update_negotiated_features(fi, tp); + if (bfp->role_sgsn && bfp->bvci != 0) + bfp->cell_id = bssgp_parse_cell_id(&bfp->ra_id, TLVP_VAL(tp, BSSGP_IE_CELL_ID)); + if (!bfp->role_sgsn && bfp->bvci != 0 && bfp->locally_blocked) { + /* initiate the blocking procedure */ + /* transmit BVC-BLOCK, transition to BLOCKED state and start re-transmit timer */ + tx = bssgp2_enc_bvc_block(bfp->bvci, bfp->block_cause); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, T1_SECS, T1); + } else + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, 0, 0); + break; + } +} + +static void bssgp_bvc_fsm_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct bvc_fsm_priv *bfp = fi->priv; + const struct tlv_parsed *tp = NULL; + struct msgb *rx = NULL, *tx; + + switch (event) { + case BSSGP_BVCFSM_E_RX_UNBLOCK_ACK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* If BVC-UNBLOCK-ACK PDU is received by an BSS for the signalling BVC, the PDU is ignored. */ + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-UNBLOCK-ACK on BVCI=0 is illegal\n"); + if (bfp->bvci == 0) { + if (!bfp->role_sgsn) + break; + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + /* stop T1 timer */ + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, 0, 0); + break; + case BSSGP_BVCFSM_E_RX_UNBLOCK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* If a BVC-UNBLOCK PDU is received by an SGSN for a blocked BVC, a BVC-UNBLOCK-ACK + * PDU shall be returned. */ + if (bfp->role_sgsn) { + /* If a BVC-UNBLOCK PDU is received by an SGSN for + * the signalling BVC, the PDU is ignored */ + if (bfp->bvci == 0) + break; + bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_UNBLOCK_ACK, bfp->nsei, bfp->bvci, 0); + } + break; + case BSSGP_BVCFSM_E_RX_BLOCK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + LOGPFSML(fi, LOGL_NOTICE, "Rx BVC-BLOCK (cause=%s)\n", + bssgp_cause_str(*TLVP_VAL(tp, BSSGP_IE_CAUSE))); + /* If a BVC-BLOCK PDU is received by an SGSN for the signalling BVC, the PDU is ignored */ + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-BLOCK on BVCI=0 is illegal\n"); + if (bfp->role_sgsn) + break; + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + if (!bfp->role_sgsn) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-BLOCK on BSS is illegal\n"); + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + /* transmit BVC-BLOCK-ACK, transition to BLOCKED state */ + tx = bssgp2_enc_bvc_block_ack(bfp->bvci); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, 0, 0); + break; + 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; + } + bfp->locally_blocked = true; + bfp->block_cause = *(uint8_t *)data; + /* transmit BVC-BLOCK, transition to BLOCKED state and start re-transmit timer */ + tx = bssgp2_enc_bvc_block(bfp->bvci, bfp->block_cause); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, T1_SECS, T1); + break; + } +} + +static void bssgp_bvc_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct bvc_fsm_priv *bfp = fi->priv; + uint8_t cause; + const struct tlv_parsed *tp = NULL; + struct msgb *rx = NULL; + + switch (event) { + case BSSGP_BVCFSM_E_REQ_RESET: + bfp->locally_blocked = false; + cause = bfp->last_reset_cause = *(uint8_t *) data; + _tx_bvc_reset(fi, cause); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_WAIT_RESET_ACK, T2_SECS, T2); +#if 0 /* not sure if we really should notify the application if itself has requested the reset? */ + if (bfp->ops && bfp->ops->reset_notification) + bfp->ops->reset_notification(bfp->nsei, bfp->bvci, NULL, 0, cause, bfp->ops_priv); +#endif + break; + case BSSGP_BVCFSM_E_RX_RESET: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + cause = *TLVP_VAL(tp, BSSGP_IE_CAUSE); + if (bfp->role_sgsn && bfp->bvci != 0) + bfp->cell_id = bssgp_parse_cell_id(&bfp->ra_id, TLVP_VAL(tp, BSSGP_IE_CELL_ID)); + LOGPFSML(fi, LOGL_NOTICE, "Rx BVC-RESET (cause=%s)\n", bssgp_cause_str(cause)); + if (bfp->bvci == 0) + update_negotiated_features(fi, tp); + _tx_bvc_reset_ack(fi); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, 0, 0); + if (bfp->ops && bfp->ops->reset_notification) { + bfp->ops->reset_notification(bfp->nsei, bfp->bvci, &bfp->ra_id, bfp->cell_id, + cause, bfp->ops_priv); + } + break; + } +} + +static int bssgp_bvc_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + struct msgb *tx; + + switch (fi->T) { + case T1: + switch (fi->state) { + case BSSGP_BVCFSM_S_BLOCKED: + /* re-transmit BVC-BLOCK */ + tx = bssgp2_enc_bvc_block(bfp->bvci, bfp->block_cause); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, T1_SECS, T1); + break; + case BSSGP_BVCFSM_S_UNBLOCKED: + /* re-transmit BVC-UNBLOCK */ + tx = bssgp2_enc_bvc_unblock(bfp->bvci); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, T1_SECS, T1); + break; + } + break; + case T2: + switch (fi->state) { + case BSSGP_BVCFSM_S_WAIT_RESET_ACK: + /* re-transmit BVC-RESET */ + _tx_bvc_reset(fi, bfp->last_reset_cause); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_WAIT_RESET_ACK, T2_SECS, T2); + break; + case BSSGP_BVCFSM_S_UNBLOCKED: + /* re-transmit BVC-RESET-ACK */ + _tx_bvc_reset_ack(fi); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, T2_SECS, T2); + break; + } + break; + default: + OSMO_ASSERT(0); + break; + } + return 0; +} + + + +static const struct osmo_fsm_state bssgp_bvc_fsm_states[] = { + [BSSGP_BVCFSM_S_NULL] = { + /* initial state from which we must do a RESET */ + .name = "NULL", + .in_event_mask = 0, + .out_state_mask = S(BSSGP_BVCFSM_S_WAIT_RESET_ACK) | + S(BSSGP_BVCFSM_S_UNBLOCKED), + .action = bssgp_bvc_fsm_null, + }, + [BSSGP_BVCFSM_S_BLOCKED] = { + .name = "BLOCKED", + .in_event_mask = S(BSSGP_BVCFSM_E_RX_UNBLOCK) | + S(BSSGP_BVCFSM_E_RX_BLOCK) | + S(BSSGP_BVCFSM_E_RX_BLOCK_ACK) | + S(BSSGP_BVCFSM_E_REQ_UNBLOCK), + .out_state_mask = S(BSSGP_BVCFSM_S_WAIT_RESET_ACK) | + S(BSSGP_BVCFSM_S_UNBLOCKED) | + S(BSSGP_BVCFSM_S_BLOCKED), + .action = bssgp_bvc_fsm_blocked, + .onenter = bssgp_bvc_fsm_blocked_onenter, + }, + [BSSGP_BVCFSM_S_WAIT_RESET_ACK]= { + .name = "WAIT_RESET_ACK", + .in_event_mask = S(BSSGP_BVCFSM_E_RX_RESET_ACK), + .out_state_mask = S(BSSGP_BVCFSM_S_UNBLOCKED) | + S(BSSGP_BVCFSM_S_BLOCKED) | + S(BSSGP_BVCFSM_S_WAIT_RESET_ACK), + .action = bssgp_bvc_fsm_wait_reset_ack, + .onenter = _onenter_tail, + }, + + [BSSGP_BVCFSM_S_UNBLOCKED] = { + .name = "UNBLOCKED", + .in_event_mask = S(BSSGP_BVCFSM_E_RX_BLOCK) | + S(BSSGP_BVCFSM_E_RX_UNBLOCK) | + S(BSSGP_BVCFSM_E_RX_UNBLOCK_ACK) | + S(BSSGP_BVCFSM_E_REQ_BLOCK), + .out_state_mask = S(BSSGP_BVCFSM_S_BLOCKED) | + S(BSSGP_BVCFSM_S_WAIT_RESET_ACK) | + S(BSSGP_BVCFSM_S_UNBLOCKED), + .action = bssgp_bvc_fsm_unblocked, + .onenter = _onenter_tail, + }, +}; + +static struct osmo_fsm bssgp_bvc_fsm = { + .name = "BSSGP-BVC", + .states = bssgp_bvc_fsm_states, + .num_states = ARRAY_SIZE(bssgp_bvc_fsm_states), + .allstate_event_mask = S(BSSGP_BVCFSM_E_REQ_RESET) | + S(BSSGP_BVCFSM_E_RX_RESET), + .allstate_action = bssgp_bvc_fsm_allstate, + .timer_cb = bssgp_bvc_fsm_timer_cb, + .log_subsys = DLBSSGP, + .event_names = ptp_bvc_event_names, +}; + +static struct osmo_fsm_inst * +_bvc_fsm_alloc(void *ctx, struct gprs_ns2_inst *nsi, bool role_sgsn, uint16_t nsei, uint16_t bvci) +{ + struct osmo_fsm_inst *fi; + struct bvc_fsm_priv *bfp; + char idbuf[64]; + + /* TODO: encode our role in the id string? */ + snprintf(idbuf, sizeof(idbuf), "NSE%05u-BVC%05u", nsei, bvci); + + fi = osmo_fsm_inst_alloc(&bssgp_bvc_fsm, ctx, NULL, LOGL_INFO, idbuf); + if (!fi) + return NULL; + + bfp = talloc_zero(fi, struct bvc_fsm_priv); + if (!bfp) { + osmo_fsm_inst_free(fi); + return NULL; + } + fi->priv = bfp; + + bfp->nsi = nsi; + bfp->role_sgsn = role_sgsn; + bfp->nsei = nsei; + bfp->bvci = bvci; + + return fi; +} + +/*! Allocate a SIGNALING-BVC FSM for the BSS role (facing a remote SGSN). + * \param[in] ctx talloc context from which to allocate + * \param[in] nsi NS Instance on which this BVC operates + * \param[in] nsei NS Entity Identifier on which this BVC operates + * \param[in] features Feature [byte 0] and Extended Feature [byte 1] bitmap + * \returns newly-allocated FSM Instance; NULL in case of error */ +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_sig_bss(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint32_t features) +{ + struct osmo_fsm_inst *fi = _bvc_fsm_alloc(ctx, nsi, false, nsei, 0); + struct bvc_fsm_priv *bfp; + + if (!fi) + return NULL; + + bfp = fi->priv; + bfp->features.advertised = features; + + return fi; +} + +/*! Allocate a PTP-BVC FSM for the BSS role (facing a remote SGSN). + * \param[in] ctx talloc context from which to allocate + * \param[in] nsi NS Instance on which this BVC operates + * \param[in] nsei NS Entity Identifier on which this BVC operates + * \param[in] bvci BVCI of this FSM + * \param[in] ra_id Routing Area Identity of the cell (reported to SGSN) + * \param[in] cell_id Cell Identifier of the cell (reported to SGSN) + * \returns newly-allocated FSM Instance; NULL in case of error */ +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_ptp_bss(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, + uint16_t bvci, const struct gprs_ra_id *ra_id, uint16_t cell_id) +{ + struct osmo_fsm_inst *fi; + struct bvc_fsm_priv *bfp; + + OSMO_ASSERT(bvci >= 2); + + fi = _bvc_fsm_alloc(ctx, nsi, false, nsei, bvci); + if (!fi) + return NULL; + + bfp = fi->priv; + bfp->ra_id = *ra_id; + bfp->cell_id = cell_id; + + return fi; +} + +/*! Allocate a SIGNALING-BVC FSM for the SGSN role (facing a remote BSS). + * \param[in] ctx talloc context from which to allocate + * \param[in] nsi NS Instance on which this BVC operates + * \param[in] nsei NS Entity Identifier on which this BVC operates + * \param[in] features Feature [byte 0] and Extended Feature [byte 1] bitmap + * \returns newly-allocated FSM Instance; NULL in case of error */ +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_sig_sgsn(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint32_t features) +{ + struct osmo_fsm_inst *fi = _bvc_fsm_alloc(ctx, nsi, true, nsei, 0); + struct bvc_fsm_priv *bfp; + + if (!fi) + return NULL; + + bfp = fi->priv; + bfp->features.advertised = features; + + return fi; +} + +/*! Allocate a PTP-BVC FSM for the SGSN role (facing a remote BSS). + * \param[in] ctx talloc context from which to allocate + * \param[in] nsi NS Instance on which this BVC operates + * \param[in] nsei NS Entity Identifier on which this BVC operates + * \param[in] bvci BVCI of this FSM + * \returns newly-allocated FSM Instance; NULL in case of error */ +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_ptp_sgsn(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci) +{ + struct osmo_fsm_inst *fi; + + OSMO_ASSERT(bvci >= 2); + + fi = _bvc_fsm_alloc(ctx, nsi, true, nsei, bvci); + if (!fi) + return NULL; + + return fi; +} + +/*! Set the 'operations' callbacks + private data. + * \param[in] fi FSM instance for which the data shall be set + * \param[in] ops BSSGP BVC FSM operations (call-back functions) to register + * \param[in] ops_priv opaque/private data pointer passed through to call-backs */ +void bssgp_bvc_fsm_set_ops(struct osmo_fsm_inst *fi, const struct bssgp_bvc_fsm_ops *ops, void *ops_priv) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + bfp->ops = ops; + bfp->ops_priv = ops_priv; +} + +/*! Return if the given BVC FSM is in UNBLOCKED state. */ +bool bssgp_bvc_fsm_is_unblocked(struct osmo_fsm_inst *fi) +{ + return fi->state == BSSGP_BVCFSM_S_UNBLOCKED; +} + +/*! Determine the cause value why given BVC FSM is blocked. */ +uint8_t bssgp_bvc_fsm_get_block_cause(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + return bfp->block_cause; +} + +/*! Return the advertised features / extended features. */ +uint32_t bssgp_bvc_get_features_advertised(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + return bfp->features.advertised; +} + +/*! Return the received features / extended features. */ +uint32_t bssgp_bvc_get_features_received(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + return bfp->features.received; +} + +/*! Return the negotiated features / extended features. */ +uint32_t bssgp_bvc_get_features_negotiated(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + return bfp->features.negotiated; +} + +static __attribute__((constructor)) void on_dso_load_bvc_fsm(void) +{ + osmo_fsm_register(&bssgp_bvc_fsm); +} diff --git a/src/gb/gprs_bssgp2.c b/src/gb/gprs_bssgp2.c new file mode 100644 index 0000000..ec2199a --- /dev/null +++ b/src/gb/gprs_bssgp2.c @@ -0,0 +1,221 @@ +/* BSSGP2 - second generation of BSSGP library */ +/* (C) 2020 by Harald Welte */ + +#include +#include +#include + +#include +#include + +//#include +#include +#include +#include + + +/*! transmit BSSGP PDU over NS (PTP BVC) + * \param[in] nsi NS Instance through which to transmit + * \param[in] nsei NSEI of NSE through which to transmit + * \param[in] bvci BVCI through which to transmit + * \param[in] msg BSSGP PDU to transmit + * \returns 0 on success; negative on error */ +int bssgp2_nsi_tx_ptp(struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci, + struct msgb *msg, uint32_t lsp) +{ + struct osmo_gprs_ns2_prim nsp = {}; + int rc; + + if (!msg) + return 0; + + nsp.bvci = bvci; + nsp.nsei = nsei; + nsp.u.unitdata.link_selector = lsp; + + osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); + rc = gprs_ns2_recv_prim(nsi, &nsp.oph); + + return rc; +} + +/*! transmit BSSGP PDU over NS (SIGNALING BVC) + * \param[in] nsi NS Instance through which to transmit + * \param[in] nsei NSEI of NSE through which to transmit + * \param[in] msg BSSGP PDU to transmit + * \returns 0 on success; negative on error */ +int bssgp2_nsi_tx_sig(struct gprs_ns2_inst *nsi, uint16_t nsei, struct msgb *msg, uint32_t lsp) +{ + return bssgp2_nsi_tx_ptp(nsi, nsei, 0, msg, lsp); +} + +/*! Encode BSSGP BVC-BLOCK PDU as per TS 48.018 Section 10.4.8. */ +struct msgb *bssgp2_enc_bvc_block(uint16_t bvci, enum gprs_bssgp_cause cause) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_BLOCK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, (uint8_t *) &cause); + + return msg; +} + +/*! Encode BSSGP BVC-BLOCK PDU as per TS 48.018 Section 10.4.9. */ +struct msgb *bssgp2_enc_bvc_block_ack(uint16_t bvci) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_BLOCK_ACK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + + return msg; +} + +/*! Encode BSSGP BVC-UNBLOCK PDU as per TS 48.018 Section 10.4.10. */ +struct msgb *bssgp2_enc_bvc_unblock(uint16_t bvci) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_UNBLOCK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + + return msg; +} + +/*! Encode BSSGP BVC-UNBLOCK-ACK PDU as per TS 48.018 Section 10.4.11. */ +struct msgb *bssgp2_enc_bvc_unblock_ack(uint16_t bvci) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_UNBLOCK_ACK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + + return msg; +} + +/*! Encode BSSGP BVC-RESET PDU as per TS 48.018 Section 10.4.12. + * \param[in] bvci PTP BVCI to encode into the BVCI IE + * \param[in] cause BSSGP Cause value (reason for reset) + * \param[in] ra_id Routing Area ID to be encoded to CELL_ID IE (optional) + * \param[in] cell_id Cell ID to be encoded to CELL_ID IE (only if ra_id is non-NULL) + * \param[in] feat_bm Feature Bitmap (optional) + * \param[in] ext_feat_bm Extended Feature Bitmap (optional) */ +struct msgb *bssgp2_enc_bvc_reset(uint16_t bvci, enum gprs_bssgp_cause cause, + const struct gprs_ra_id *ra_id, uint16_t cell_id, + const uint8_t *feat_bm, const uint8_t *ext_feat_bm) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_RESET; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, (uint8_t *) &cause); + if (ra_id) { + uint8_t bssgp_cid[8]; + bssgp_create_cell_id(bssgp_cid, ra_id, cell_id); + msgb_tvlv_put(msg, BSSGP_IE_CELL_ID, sizeof(bssgp_cid), bssgp_cid); + } + + if (feat_bm) + msgb_tvlv_put(msg, BSSGP_IE_FEATURE_BITMAP, 1, feat_bm); + + if (ext_feat_bm) + msgb_tvlv_put(msg, BSSGP_IE_EXT_FEATURE_BITMAP, 1, feat_bm); + + return msg; +} + +/*! Encode BSSGP BVC-RESET-ACK PDU as per TS 48.018 Section 10.4.13. + * \param[in] bvci PTP BVCI to encode into the BVCI IE + * \param[in] ra_id Routing Area ID to be encoded to CELL_ID IE (optional) + * \param[in] cell_id Cell ID to be encoded to CELL_ID IE (only if ra_id is non-NULL) + * \param[in] feat_bm Feature Bitmap (optional) + * \param[in] ext_feat_bm Extended Feature Bitmap (optional) */ +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 *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_RESET_ACK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + if (ra_id) { + uint8_t bssgp_cid[8]; + bssgp_create_cell_id(bssgp_cid, ra_id, cell_id); + msgb_tvlv_put(msg, BSSGP_IE_CELL_ID, sizeof(bssgp_cid), bssgp_cid); + } + + if (feat_bm) + msgb_tvlv_put(msg, BSSGP_IE_FEATURE_BITMAP, 1, feat_bm); + + if (ext_feat_bm) + msgb_tvlv_put(msg, BSSGP_IE_EXT_FEATURE_BITMAP, 1, feat_bm); + + return msg; +} + +/*! 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) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + + if (!msg) + return NULL; + + 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); + 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)); + + return msg; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 8abac74..e605d27 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -45,6 +45,27 @@ bssgp_vty_init; bssgp_nsi; +bssgp2_nsi_tx_ptp; +bssgp2_nsi_tx_sig; +bssgp2_enc_bvc_block; +bssgp2_enc_bvc_block_ack; +bssgp2_enc_bvc_unblock; +bssgp2_enc_bvc_unblock_ack; +bssgp2_enc_bvc_reset; +bssgp2_enc_bvc_reset_ack; +bssgp2_enc_status; + +bssgp_bvc_fsm_alloc_sig_bss; +bssgp_bvc_fsm_alloc_ptp_bss; +bssgp_bvc_fsm_alloc_sig_sgsn; +bssgp_bvc_fsm_alloc_ptp_sgsn; +bssgp_bvc_fsm_set_ops; +bssgp_bvc_fsm_is_unblocked; +bssgp_bvc_fsm_get_block_cause; +bssgp_bvc_get_features_advertised; +bssgp_bvc_get_features_received; +bssgp_bvc_get_features_negotiated; + osmo_fr_network_alloc; osmo_fr_link_alloc; osmo_fr_link_free; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 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 Dec 7 21:05:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 7 Dec 2020 21:05:21 +0000 Subject: Change in libosmocore[master]: logging: Assing different 8bit colors to built-in subsystems References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21599 ) Change subject: logging: Assing different 8bit colors to built-in subsystems ...................................................................... logging: Assing different 8bit colors to built-in subsystems The 16 ANSI colors we started to use for OpenBSC in 2008 were sufficient for those few sub-systems that occurred in the BSC/NITB. Over time, most sub-systems did not get colors anymore. Let's change that and assign more or less random colors from the 8bit color palette. Change-Id: Ia8c0f91a61fbca0441faf66b3f368f45f886187c --- M src/logging.c 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/99/21599/1 diff --git a/src/logging.c b/src/logging.c index 0b4c1ff..efa108e 100644 --- a/src/logging.c +++ b/src/logging.c @@ -131,6 +131,7 @@ { 0, NULL }, }; +/* 256 color palette see https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit */ #define INT2IDX(x) (-1*(x)-1) static const struct log_info_cat internal_cat[OSMO_NUM_DLIB] = { [INT2IDX(DLGLOBAL)] = { /* -1 becomes 0 */ @@ -138,110 +139,131 @@ .description = "Library-internal global log family", .loglevel = LOGL_NOTICE, .enabled = 1, + .color = "\033[38;5;19m", }, [INT2IDX(DLLAPD)] = { /* -2 becomes 1 */ .name = "DLLAPD", .description = "LAPD in libosmogsm", .loglevel = LOGL_NOTICE, .enabled = 1, + .color = "\033[38;5;21m", }, [INT2IDX(DLINP)] = { .name = "DLINP", .description = "A-bis Intput Subsystem", .loglevel = LOGL_NOTICE, .enabled = 1, + .color = "\033[38;5;23m", }, [INT2IDX(DLMUX)] = { .name = "DLMUX", .description = "A-bis B-Subchannel TRAU Frame Multiplex", .loglevel = LOGL_NOTICE, .enabled = 1, + .color = "\033[38;5;25m", }, [INT2IDX(DLMI)] = { .name = "DLMI", .description = "A-bis Input Driver for Signalling", .enabled = 0, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;27m", }, [INT2IDX(DLMIB)] = { .name = "DLMIB", .description = "A-bis Input Driver for B-Channels (voice)", .enabled = 0, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;29m", }, [INT2IDX(DLSMS)] = { .name = "DLSMS", .description = "Layer3 Short Message Service (SMS)", .enabled = 1, .loglevel = LOGL_NOTICE, .color = OSMO_LOGCOLOR_BRIGHTWHITE, + .color = "\033[38;5;31m", }, [INT2IDX(DLCTRL)] = { .name = "DLCTRL", .description = "Control Interface", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;33m", }, [INT2IDX(DLGTP)] = { .name = "DLGTP", .description = "GPRS GTP library", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;35m", }, [INT2IDX(DLSTATS)] = { .name = "DLSTATS", .description = "Statistics messages and logging", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;37m", }, [INT2IDX(DLGSUP)] = { .name = "DLGSUP", .description = "Generic Subscriber Update Protocol", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;39m", }, [INT2IDX(DLOAP)] = { .name = "DLOAP", .description = "Osmocom Authentication Protocol", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;41m", }, [INT2IDX(DLSS7)] = { .name = "DLSS7", .description = "libosmo-sigtran Signalling System 7", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;43m", }, [INT2IDX(DLSCCP)] = { .name = "DLSCCP", .description = "libosmo-sigtran SCCP Implementation", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;45m", }, [INT2IDX(DLSUA)] = { .name = "DLSUA", .description = "libosmo-sigtran SCCP User Adaptation", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;47m", }, [INT2IDX(DLM3UA)] = { .name = "DLM3UA", .description = "libosmo-sigtran MTP3 User Adaptation", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;49m", }, [INT2IDX(DLMGCP)] = { .name = "DLMGCP", .description = "libosmo-mgcp Media Gateway Control Protocol", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;51m", }, [INT2IDX(DLJIBUF)] = { .name = "DLJIBUF", .description = "libosmo-netif Jitter Buffer", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;53m", }, [INT2IDX(DLRSPRO)] = { .name = "DLRSPRO", .description = "Remote SIM protocol", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;55m", }, [INT2IDX(DLNS)] = { .name = "DLNS", .description = "GPRS NS layer", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;57m", }, [INT2IDX(DLBSSGP)] = { .name = "DLBSSGP", .description = "GPRS BSSGP layer", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;59m", }, }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8c0f91a61fbca0441faf66b3f368f45f886187c Gerrit-Change-Number: 21599 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 Dec 7 21:36:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 7 Dec 2020 21:36:05 +0000 Subject: Change in osmo-gsm-tester[master]: add osmo_vty.py In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 ) Change subject: add osmo_vty.py ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py File src/osmo_gsm_tester/obj/osmo_vty.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/1/src/osmo_gsm_tester/obj/osmo_vty.py at 44 PS1, Line 44: def connect(self): > You sed you'd add but I don't see the comments with (PROTECTED, PUBLIC - INTERNAL API, PUBLIC (test [?] too many irons in the fire, forgot about this sorry. Actually i don't like those PROTECTED, PUBLIC... comments, but if it helps you then ok -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 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: I7c17b143b7c690b8c4105ee7c6272670046fa91d Gerrit-Change-Number: 21504 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 21:36:05 +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 Dec 7 21:45:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 7 Dec 2020 21:45:23 +0000 Subject: Change in osmo-gsm-tester[master]: add osmo_vty.py In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 ) Change subject: add osmo_vty.py ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/3/src/osmo_gsm_tester/obj/osmo_vty.py File src/osmo_gsm_tester/obj/osmo_vty.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504/3/src/osmo_gsm_tester/obj/osmo_vty.py at 64 PS3, Line 64: self.sck = None > is socket closed whenever you set it to None? I'd prefer having an explicitly sck.close() here. the None is just an indicator that the socket is currently not open. socket cleanup should be explicit. i guessed sck.close() needs to happen only after sck.connect() was successful, and otherwise the socket would be implicitly closed from the ConnectionRefusedError. from python3 docs: Sockets are automatically closed when they are garbage-collected, but it is recommended to close() them explicitly, or to use a with statement around them. interesting: socket.close() Mark the socket closed. The underlying system resource (e.g. a file descriptor) is also closed when all file objects from makefile() are closed. and Note close() releases the resource associated with a connection but does not necessarily close the connection immediately. If you want to close the connection in a timely fashion, call shutdown() before close(). i should anyway probably 'except' on anything, not just ConnectionRefusedError. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 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: I7c17b143b7c690b8c4105ee7c6272670046fa91d Gerrit-Change-Number: 21504 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Dec 2020 21:45:23 +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 Dec 7 22:03:32 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 7 Dec 2020 22:03:32 +0000 Subject: Change in osmo-trx[master]: ipc: Fix wrong reference to BTS in log line In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21593 ) Change subject: ipc: Fix wrong reference to BTS in log line ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Idd272959e335c46ca88e348dd792e15ddb317d61 Gerrit-Change-Number: 21593 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 07 Dec 2020 22:03:32 +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 Dec 8 03:07:54 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 08 Dec 2020 03:07:54 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fceee1c37df0_7b1f2ac21068c5fc199775@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: [ 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: 16580 B 16 KB 101.20% [ 162s] 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 [ 162s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 162s] /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: warning: changing start of section .stack by 4 bytes [ 162s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 162s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 162s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 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] [ 153.597028] sysrq: Power Off [ 165s] [ 153.603632] reboot: Power down [ 165s] ### VM INTERACTION END ### [ 165s] [ 165s] lamb60 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 8 03:06:24 UTC 2020. [ 165s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 8 03:37:41 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 08 Dec 2020 03:37:41 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fcef525e9063_7b1f2ac21068c5fc2024f9@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: [ 162s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 162s] [COMPILING libboard/qmod/source/card_pres.c] [ 162s] [COMPILING libboard/qmod/source/wwan_led.c] [ 162s] [COMPILING libboard/qmod/source/i2c.c] [ 162s] [COMPILING libboard/qmod/source/board_qmod.c] [ 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: 16588 B 16 KB 101.25% [ 163s] 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' [ 163s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 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] [ 155.096996] sysrq: Power Off [ 166s] [ 155.105454] reboot: Power down [ 166s] ### VM INTERACTION END ### [ 166s] [ 166s] lamb02 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 8 03:36:24 UTC 2020. [ 166s] -- 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 Dec 8 06:52:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 06:52:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21586 ) Change subject: NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2e5b934e1cf6c6cf982d5ab1dbb32e8920b91071 Gerrit-Change-Number: 21586 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 06:52: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 Dec 8 06:52:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 06:52:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21586 ) Change subject: NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK ...................................................................... NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK Particularly in case both sides initiate a BLOCK or UNBLOCK procedure at almost the same time, it can happen thet we're already in BLOCKED state and receive a late BLOCK-ACK or in UNBLOCKED state and receive a late UNBLOCK-ACK. Let's just silently discard them instaed of generating NS-STATUS which may confuse the peer. Change-Id: I2e5b934e1cf6c6cf982d5ab1dbb32e8920b91071 --- M library/NS_Emulation.ttcnpp 1 file changed, 6 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/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index ab1c136..2ccd399 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -561,6 +561,9 @@ Tns_block.stop; f_change_state(NSVC_S_ALIVE_UNBLOCKED); } + /* tolerate a late NS-BLOCK-ACK from peer */ + [] NSCP.receive(tr_NS_BLOCK_ACK(g_nsvc_config.nsvci)) -> value rf { + } [] Tns_block.timeout { /* repeat unblock transmission */ f_sendUnblock(); @@ -583,6 +586,9 @@ [] NSCP.receive(tr_NS_BLOCK_ACK(g_nsvc_config.nsvci)) -> value rf { Tns_block.stop; } + /* tolerate a late NS-UNBLOCK-ACK from peer */ + [] NSCP.receive(t_NS_UNBLOCK_ACK) -> value rf { + } /* NS-UNITDATA PDU from network to NS-UNITDATA.ind to user */ [] NSCP.receive(tr_NS_UNITDATA(?, ?, ?)) -> value rf { NS_SP.send(ts_NsUdInd(g_config.nsei, g_nsvc_config.nsvci, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2e5b934e1cf6c6cf982d5ab1dbb32e8920b91071 Gerrit-Change-Number: 21586 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 Tue Dec 8 06:54:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 06:54:13 +0000 Subject: Change in libosmocore[master]: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21589 ) Change subject: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21589/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21589/1/src/gb/gprs_ns2_vc_fsm.c at 403 PS1, Line 403: .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), > Let's try to put one per line please, it's much clearer when trying to understand the FSM. this file (which I didn't write) already isn't formatted this way, and this patch just follows the existing style of the surrounding code. Anyone is free to submit a reformat-patch. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc4d960ddad82e3ebbf571d8ff9f24854b52a946 Gerrit-Change-Number: 21589 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 06:54: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 Tue Dec 8 07:03:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:03:30 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant 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/+/21597 to look at the new patch set (#2). Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... logging: Introduce DLBSSGP logging constant Historically, BSSGP uses a non-constant, user-configurable integer varieable for the logging sub-system. Let's replace this with a statically-allocated library logging constant. This is required if we want to use the subsystem number in e.g. static initialized for osmo_fsm.log_subsys. Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 --- M include/osmocom/core/logging.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c M src/gb/gprs_bssgp_util.c M src/logging.c M tests/logging/logging_vty_test.vty 6 files changed, 72 insertions(+), 65 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/21597/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 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 Tue Dec 8 07:19:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:19:10 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation 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/+/21598 to look at the new patch set (#3). Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... gb: Add beginnings of a new BSSGP implementation Similar to ns2 superseding ns, we now also intoduce a next generation of BSSGP related code to libosmogb. However, this is not aiming to be a full implementation yet, but simply those parts that we currently need from the revamped osmo-gbproxy. The gprs_bssgp2.[ch] differs in two ways from the old code: * it separates message encoding from message transmission * it supports more recent specs / IEs bssgp_bvc_fsm.c is a genric implementation of the BSSGP BVC RESET/BLOCK/UNBLOCK logic with support for both PTP and signaling, both on the SGSN side and the BSS side. Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a --- M include/Makefile.am A include/osmocom/gprs/bssgp_bvc_fsm.h A include/osmocom/gprs/gprs_bssgp2.h M src/gb/Makefile.am A src/gb/bssgp_bvc_fsm.c A src/gb/gprs_bssgp2.c M src/gb/libosmogb.map 7 files changed, 1,056 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/21598/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 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 Tue Dec 8 07:30:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:30:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Enable TC_load_sharing_dl based on modulepar; set that in FR... References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21600 ) Change subject: gbproxy: Enable TC_load_sharing_dl based on modulepar; set that in FR test ...................................................................... gbproxy: Enable TC_load_sharing_dl based on modulepar; set that in FR test Change-Id: I96e8b6a1a69148f770476e87c920dc256c1d7379 Related: OS#4520 --- M gbproxy/GBProxy_Tests.fr.cfg M gbproxy/GBProxy_Tests.ttcn 2 files changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/00/21600/1 diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index 7b63125..ececed9 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -12,6 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "127.0.0.1" [MODULE_PARAMETERS] +GBProxy_Tests.mp_enable_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { handle_sns := false diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 01bcb9a..d6c8bb1 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -44,6 +44,7 @@ const integer max_fr_info_size := 1600; modulepar { + boolean mp_enable_bss_load_sharing := false; /* SGSN NS configuration */ NSConfigurations mp_nsconfig_sgsn := { { @@ -2291,7 +2292,7 @@ execute( TC_bvc_reset_sig_from_bss() ); execute( TC_bvc_reset_ptp_from_sgsn() ); execute( TC_bvc_reset_sig_from_sgsn() ); - if (false) { + if (mp_enable_bss_load_sharing) { /* don't enable this by default, as we don't yet have any automatic test setup for FR with 4 NS-VC */ execute( TC_load_sharing_dl() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I96e8b6a1a69148f770476e87c920dc256c1d7379 Gerrit-Change-Number: 21600 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 Dec 8 07:38:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:38:20 +0000 Subject: Change in docker-playground[master]: gbproxy: update ttcn3 configuration to reflect osmo-gbproxy.cfg References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21601 ) Change subject: gbproxy: update ttcn3 configuration to reflect osmo-gbproxy.cfg ...................................................................... gbproxy: update ttcn3 configuration to reflect osmo-gbproxy.cfg In Change-Id I80de01c96185c60fe2de7a8ffa9daed2669658e1 we updated only the osmo-gbproxy.cfg, but noth the GBProxy_Tests.cfg for the test suite, which of course won't work. Change-Id: I35603dc76926d76e57993f7eab1354eea8d25dad Related: SYS#5226 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg 1 file changed, 45 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/01/21601/1 diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index adab61a..e6b9515 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -30,7 +30,7 @@ } GBProxy_Tests.mp_nsconfig_pcu := { { - nsei := 1, + nsei := 2001, role_sgsn := false, handle_sns := false, nsvc := { @@ -68,31 +68,56 @@ nsvci := 4 } } - } -} - -GBProxy_Tests.mp_gbconfigs := { + }, { - nsei := 1, - sgsn_role := false, - bvc := { + nsei := 2002, + role_sgsn := false, + handle_sns := false, + nsvc := { { - bvci := 196, - cell_id := { - ra_id := { - lai := { - mcc_mnc := '262F42'H, - lac := 13135 - }, - rac := 0 - }, - cell_id := 20960 + provider := { + fr := { + netdev := "hdlc5", + dlci := 20 + } }, - depth := BSSGP_DECODE_DEPTH_BSSGP + nsvci := 5 + }, { + provider := { + fr := { + netdev := "hdlc6", + dlci := 21 + } + }, + nsvci := 6 + } + } + }, + { + nsei := 2003, + role_sgsn := false, + handle_sns := false, + nsvc := { + { + provider := { + fr := { + netdev := "hdlc7", + dlci := 22 + } + }, + nsvci := 7 + }, { + provider := { + fr := { + netdev := "hdlc8", + dlci := 23 + } + }, + nsvci := 8 } } } -}; +} [MAIN_CONTROLLER] -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I35603dc76926d76e57993f7eab1354eea8d25dad Gerrit-Change-Number: 21601 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 Dec 8 07:38:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:38:21 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable test of load-sharing when running over FR References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21602 ) Change subject: gbproxy: Enable test of load-sharing when running over FR ...................................................................... gbproxy: Enable test of load-sharing when running over FR Change-Id: I2ce1f67dc8f45f7a62a923e45fb479c4c482eec9 Depends: osmo-ttcn3-hacks.git I96e8b6a1a69148f770476e87c920dc256c1d7379 Related: OS#4520 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/02/21602/1 diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index e6b9515..b363f98 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -12,6 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "172.18.25.10" [MODULE_PARAMETERS] +GBProxy_Tests.mp_enable_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { nsvc := { -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2ce1f67dc8f45f7a62a923e45fb479c4c482eec9 Gerrit-Change-Number: 21602 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 Dec 8 07:39:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:39:20 +0000 Subject: Change in docker-playground[master]: gbproxy: update ttcn3 configuration to reflect osmo-gbproxy.cfg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21601 ) Change subject: gbproxy: update ttcn3 configuration to reflect osmo-gbproxy.cfg ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I35603dc76926d76e57993f7eab1354eea8d25dad Gerrit-Change-Number: 21601 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 07:39: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 Dec 8 07:39:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:39:23 +0000 Subject: Change in docker-playground[master]: gbproxy: update ttcn3 configuration to reflect osmo-gbproxy.cfg In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21601 ) Change subject: gbproxy: update ttcn3 configuration to reflect osmo-gbproxy.cfg ...................................................................... gbproxy: update ttcn3 configuration to reflect osmo-gbproxy.cfg In Change-Id I80de01c96185c60fe2de7a8ffa9daed2669658e1 we updated only the osmo-gbproxy.cfg, but noth the GBProxy_Tests.cfg for the test suite, which of course won't work. Change-Id: I35603dc76926d76e57993f7eab1354eea8d25dad Related: SYS#5226 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg 1 file changed, 45 insertions(+), 20 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 adab61a..e6b9515 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -30,7 +30,7 @@ } GBProxy_Tests.mp_nsconfig_pcu := { { - nsei := 1, + nsei := 2001, role_sgsn := false, handle_sns := false, nsvc := { @@ -68,31 +68,56 @@ nsvci := 4 } } - } -} - -GBProxy_Tests.mp_gbconfigs := { + }, { - nsei := 1, - sgsn_role := false, - bvc := { + nsei := 2002, + role_sgsn := false, + handle_sns := false, + nsvc := { { - bvci := 196, - cell_id := { - ra_id := { - lai := { - mcc_mnc := '262F42'H, - lac := 13135 - }, - rac := 0 - }, - cell_id := 20960 + provider := { + fr := { + netdev := "hdlc5", + dlci := 20 + } }, - depth := BSSGP_DECODE_DEPTH_BSSGP + nsvci := 5 + }, { + provider := { + fr := { + netdev := "hdlc6", + dlci := 21 + } + }, + nsvci := 6 + } + } + }, + { + nsei := 2003, + role_sgsn := false, + handle_sns := false, + nsvc := { + { + provider := { + fr := { + netdev := "hdlc7", + dlci := 22 + } + }, + nsvci := 7 + }, { + provider := { + fr := { + netdev := "hdlc8", + dlci := 23 + } + }, + nsvci := 8 } } } -}; +} [MAIN_CONTROLLER] -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I35603dc76926d76e57993f7eab1354eea8d25dad Gerrit-Change-Number: 21601 Gerrit-PatchSet: 1 Gerrit-Owner: laforge 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 Dec 8 07:39:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:39:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Enable TC_load_sharing_dl based on modulepar; set that in FR... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21600 ) Change subject: gbproxy: Enable TC_load_sharing_dl based on modulepar; set that in FR test ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I96e8b6a1a69148f770476e87c920dc256c1d7379 Gerrit-Change-Number: 21600 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 07:39: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 Dec 8 07:39:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:39:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Enable TC_load_sharing_dl based on modulepar; set that in FR... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21600 ) Change subject: gbproxy: Enable TC_load_sharing_dl based on modulepar; set that in FR test ...................................................................... gbproxy: Enable TC_load_sharing_dl based on modulepar; set that in FR test Change-Id: I96e8b6a1a69148f770476e87c920dc256c1d7379 Related: OS#4520 --- M gbproxy/GBProxy_Tests.fr.cfg M gbproxy/GBProxy_Tests.ttcn 2 files changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index 7b63125..ececed9 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -12,6 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "127.0.0.1" [MODULE_PARAMETERS] +GBProxy_Tests.mp_enable_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { handle_sns := false diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 01bcb9a..d6c8bb1 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -44,6 +44,7 @@ const integer max_fr_info_size := 1600; modulepar { + boolean mp_enable_bss_load_sharing := false; /* SGSN NS configuration */ NSConfigurations mp_nsconfig_sgsn := { { @@ -2291,7 +2292,7 @@ execute( TC_bvc_reset_sig_from_bss() ); execute( TC_bvc_reset_ptp_from_sgsn() ); execute( TC_bvc_reset_sig_from_sgsn() ); - if (false) { + if (mp_enable_bss_load_sharing) { /* don't enable this by default, as we don't yet have any automatic test setup for FR with 4 NS-VC */ execute( TC_load_sharing_dl() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I96e8b6a1a69148f770476e87c920dc256c1d7379 Gerrit-Change-Number: 21600 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 Tue Dec 8 07:39:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 07:39:55 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable test of load-sharing when running over FR In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21602 ) Change subject: gbproxy: Enable test of load-sharing when running over FR ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2ce1f67dc8f45f7a62a923e45fb479c4c482eec9 Gerrit-Change-Number: 21602 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 07:39: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 Dec 8 09:35:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:35:54 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable test of load-sharing when running over FR In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21602 ) Change subject: gbproxy: Enable test of load-sharing when running over FR ...................................................................... gbproxy: Enable test of load-sharing when running over FR Change-Id: I2ce1f67dc8f45f7a62a923e45fb479c4c482eec9 Depends: osmo-ttcn3-hacks.git I96e8b6a1a69148f770476e87c920dc256c1d7379 Related: OS#4520 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg 1 file changed, 1 insertion(+), 0 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 e6b9515..b363f98 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -12,6 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "172.18.25.10" [MODULE_PARAMETERS] +GBProxy_Tests.mp_enable_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { nsvc := { -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2ce1f67dc8f45f7a62a923e45fb479c4c482eec9 Gerrit-Change-Number: 21602 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 Tue Dec 8 09:36:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:36:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSGP_Emulation: Add RIM port to BSSGP_CT In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21470 ) Change subject: BSSGP_Emulation: Add RIM port to BSSGP_CT ...................................................................... BSSGP_Emulation: Add RIM port to BSSGP_CT This port is used for sending/receiving RIM related BSSGP messages. It exists once per BSSGP_CT Component (i.e. once per NSE), as RIM is global for the entire NSE. Change-Id: I04511df5dffbfe19faabf22014acc72b7673b7d6 --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 20 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve dexter: Looks good to me, approved diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index e3ad9fe..0aa27e6 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -237,6 +237,9 @@ * (currently only) SUSPEND/RESUME */ port BSSGP_SP_PT GLOBAL; + /* RAN INFORMATION MGMT */ + port BSSGP_SP_PT RIM; + /* port to a management instance */ port BSSGP_BVC_MGMT_SP_PT MGMT; @@ -305,6 +308,13 @@ {pDU_BSSGP_SGSN_INVOKE_TRACE:=?}, {pDU_BSSGP_OVERLOAD:=?} ); +/* BSSGP messages that should arrive on the RIM port */ +private template PDU_BSSGP tr_RIM := ( + {pDU_BSSGP_RAN_INFORMATION:=?}, {pDU_BSSGP_RAN_INFORMATION_REQUEST:=?}, + {pDU_BSSGP_RAN_INFORMATION_ACK:=?}, {pDU_BSSGP_RAN_INFORMATION_ERROR:=?}, + {pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR:=?} +); + /* We are in BVC_S_UNBLOCKED state */ altstep as_sig_unblocked() runs on BSSGP_CT { var BSSGP_BVC_CT bvc_comp_ref; @@ -329,6 +339,11 @@ [] BSCP.receive(f_BnsUdInd(tr_GLOBAL, 0)) -> value udi { GLOBAL.send(udi.bssgp); } + [] BSCP.receive(f_BnsUdInd(tr_RIM, 0)) -> value udi { + if (RIM.checkstate("Connected")) { + RIM.send(udi.bssgp); + } + } /* Route based on PTP BVCI in payload/IE of signaling PDU */ [] BSCP.receive(f_BnsUdInd(?, 0)) -> value udi { @@ -381,6 +396,11 @@ [] GLOBAL.receive(tr_GLOBAL) -> value bssgp { BSCP.send(f_BnsUdReq(bssgp, 0, 0)); } + + [] RIM.receive(tr_RIM) -> value bssgp { + BSCP.send(f_BnsUdReq(bssgp, 0, 0)); + } + } /* We are in BVC_S_WAIT_NS_ALIVE_UNBLOCKED (only happens in BSS role) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I04511df5dffbfe19faabf22014acc72b7673b7d6 Gerrit-Change-Number: 21470 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Dec 8 09:37:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 09:37:54 +0000 Subject: Change in osmo-trx[master]: ipc: Fix wrong reference to BTS in log line In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21593 ) Change subject: ipc: Fix wrong reference to BTS in log line ...................................................................... ipc: Fix wrong reference to BTS in log line Change-Id: Idd272959e335c46ca88e348dd792e15ddb317d61 --- M Transceiver52M/device/ipc/IPCDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/Transceiver52M/device/ipc/IPCDevice.cpp b/Transceiver52M/device/ipc/IPCDevice.cpp index a16f723..5ed428e 100644 --- a/Transceiver52M/device/ipc/IPCDevice.cpp +++ b/Transceiver52M/device/ipc/IPCDevice.cpp @@ -793,7 +793,7 @@ INIT_LLIST_HEAD(&master_sk_state.upqueue); rc = osmo_sock_unix_init_ofd(&master_sk_state.conn_bfd, SOCK_SEQPACKET, 0, v.c_str(), OSMO_SOCK_F_CONNECT); if (rc < 0) { - LOGC(DDEV, ERROR) << "Failed to connect to the BTS (" << v << "). " + LOGC(DDEV, ERROR) << "Failed to connect to the IPC device (" << v << "). " << "Retrying...\n"; osmo_timer_setup(&master_sk_state.timer, ipc_sock_timeout, NULL); osmo_timer_schedule(&master_sk_state.timer, 5, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Idd272959e335c46ca88e348dd792e15ddb317d61 Gerrit-Change-Number: 21593 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 Tue Dec 8 09:38:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:38:13 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_util: complete bssgp_pdu_strings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21596 ) Change subject: gprs_bssgp_util: complete bssgp_pdu_strings ...................................................................... Patch Set 1: Code-Review+2 it's fine to merge this, but beware that those value_strings are now obsoleted with the more efficient "osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)", see the pending libosmocore patches. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I94956ca12df7f7ba912da05397b3fb39956277f7 Gerrit-Change-Number: 21596 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 09: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 Dec 8 09:38:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 09:38:32 +0000 Subject: Change in docker-playground[master]: centos8-build: Use arg OSMOCOM_REPO_MIRROR In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21588 ) Change subject: centos8-build: Use arg OSMOCOM_REPO_MIRROR ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If2aefff04792fe4d215fcc52377bec64d9a1db2d Gerrit-Change-Number: 21588 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 09: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 Tue Dec 8 09:38:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:38:42 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_util: complete bssgp_pdu_strings In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21596 ) Change subject: gprs_bssgp_util: complete bssgp_pdu_strings ...................................................................... gprs_bssgp_util: complete bssgp_pdu_strings The value strings for the BSSGP lack some items, lets make it complete. Change-Id: I94956ca12df7f7ba912da05397b3fb39956277f7 Related: SYS#5103 --- M src/gb/gprs_bssgp_util.c 1 file changed, 16 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index da0b103..a4ee926 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -160,6 +160,22 @@ { BSSGP_PDUT_PS_HO_COMPLETE, "PS-HO-COMPLETE" }, { BSSGP_PDUT_PS_HO_CANCEL, "PS-HO-CANCEL" }, { BSSGP_PDUT_PS_HO_COMPLETE_ACK, "PS-HO-COMPLETE-ACK" }, + { BSSGP_PDUT_PERFORM_LOC_REQ, "PERFORM-LOC-REQ" }, + { BSSGP_PDUT_PERFORM_LOC_RESP, "PERFORM-LOC-RESP" }, + { BSSGP_PDUT_PERFORM_LOC_ABORT, "PERFORM-LOC-ABORT" }, + { BSSGP_PDUT_POSITION_COMMAND, "POSITION-COMMAND" }, + { BSSGP_PDUT_POSITION_RESPONSE, "POSITION-RESPONSE" }, + { BSSGP_PDUT_RAN_INFO, "RAN-INFO" }, + { BSSGP_PDUT_RAN_INFO_REQ, "RAN-INFO-REQ" }, + { BSSGP_PDUT_RAN_INFO_ACK, "RAN-INFO-ACK" }, + { BSSGP_PDUT_RAN_INFO_ERROR, "RAN-INFO-ERROR" }, + { BSSGP_PDUT_RAN_INFO_APP_ERROR, "RAN-INFO-APP-ERROR" }, + { BSSGP_PDUT_MBMS_START_REQ, "MBMS-START-REQ" }, + { BSSGP_PDUT_MBMS_START_RESP, "MBMS-START-RESP" }, + { BSSGP_PDUT_MBMS_STOP_REQ, "MBMS-STOP-REQ" }, + { BSSGP_PDUT_MBMS_STOP_RESP, "MBMS-STOP-RESP" }, + { BSSGP_PDUT_MBMS_UPDATE_REQ, "MBMS-UPDATE-REQ" }, + { BSSGP_PDUT_MBMS_UPDATE_RESP, "MBMS-UPDATE-RESP" }, { 0, NULL }, }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I94956ca12df7f7ba912da05397b3fb39956277f7 Gerrit-Change-Number: 21596 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 Tue Dec 8 09:40:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:40:18 +0000 Subject: Change in osmo-pcu[master]: Dl TBF: Get rid of LLC UI dummy blocks following other data In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21387 ) Change subject: Dl TBF: Get rid of LLC UI dummy blocks following other data ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifae1a7b2b3dfad8df19585063088ba0df2749c8f Gerrit-Change-Number: 21387 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 08 Dec 2020 09: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 Tue Dec 8 09:40:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 09:40:32 +0000 Subject: Change in libosmocore[master]: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21589 ) Change subject: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21589/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21589/1/src/gb/gprs_ns2_vc_fsm.c at 403 PS1, Line 403: .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), > this file (which I didn't write) already isn't formatted this way, and this patch just follows the e [?] Only some of the lines are wrong, others are good, so I'm asking simply not to make it worse -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc4d960ddad82e3ebbf571d8ff9f24854b52a946 Gerrit-Change-Number: 21589 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 09:40:32 +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 Tue Dec 8 09:40:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:40:35 +0000 Subject: Change in osmo-pcu[master]: Dl TBF: Get rid of LLC UI dummy blocks following other data In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21387 ) Change subject: Dl TBF: Get rid of LLC UI dummy blocks following other data ...................................................................... Dl TBF: Get rid of LLC UI dummy blocks following other data According to: * 3GPP TS 44.060 version 16.0.0 "9.3.1a Delayed release of downlink Temporary Block Flow" * 3GPP TS 44.064 version 16.0.0 "6.4.2.2 Unconfirmed Information (UI) Dummy command" LLC UI Dummy frames are to be used when there no more data to send, only in order to delay the release of a TBF. Hence, while not incorrect per se, makes no sense to send those LLC UI Dummy frames inserted into rlcmac blocks which already contain other LLC frames, since the MS in that case is already being kept active. It only makes sense to send those LLC UI Dummy frames when we have nothing else to send, that is, alone inside a RLCMAC block without other LLC frames. Related: OS#4849 Change-Id: Ifae1a7b2b3dfad8df19585063088ba0df2749c8f --- M src/encoding.cpp M src/encoding.h M src/tbf_dl.cpp M tests/tbf/TbfTest.err 4 files changed, 170 insertions(+), 198 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/encoding.cpp b/src/encoding.cpp index 23e1460..a16962a 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -1397,9 +1397,10 @@ "larger than space (%d) left in block: copy " "only remaining space, and we are done\n", chunk, space); - /* block is filled, so there is no extension */ - if (e_pointer) - *e_pointer |= 0x01; + if (e_pointer) { + /* LLC frame not finished, so there is no extension octet */ + *e_pointer |= 0x02; /* set previous M bit = 1 */ + } /* fill only space */ llc->consume(data, space); if (count_payload) @@ -1438,6 +1439,10 @@ if (delimiter != data) memmove(delimiter + 1, delimiter, data - delimiter); + if (e_pointer) { + *e_pointer &= 0xfe; /* set previous E bit = 0 */ + *e_pointer |= 0x02; /* set previous M bit = 1 */ + } data++; (*offset)++; space--; @@ -1465,12 +1470,16 @@ /* make space for delimiter */ if (delimiter != data) memmove(delimiter + 1, delimiter, data - delimiter); + if (e_pointer) { + *e_pointer &= 0xfe; /* set previous E bit = 0 */ + *e_pointer |= 0x02; /* set previous M bit = 1 */ + } data++; (*offset)++; space--; /* add LI to delimit frame */ li = (struct rlc_li_field *)delimiter; - li->e = 0; /* Extension bit, maybe set later */ + li->e = 1; /* not more extension, maybe set later */ li->m = 0; /* will be set later, if there is more LLC data */ li->li = chunk; /* length of chunk */ rdbi->e = 0; /* 0: extensions present */ @@ -1483,22 +1492,19 @@ space -= chunk; (*offset) += chunk; /* if we have more data and we have space left */ - if (space > 0 && !is_final) { - li->m = 1; /* we indicate more frames to follow */ + if (space > 0 && !is_final) return Encoding::AR_COMPLETED_SPACE_LEFT; - } + /* if we don't have more LLC frames */ if (is_final) { LOGP(DRLCMACDL, LOGL_DEBUG, "-- Final block, so we " "done.\n"); - li->e = 1; /* we cannot extend */ rdbi->cv = 0; return Encoding::AR_COMPLETED_BLOCK_FILLED; } /* we have no space left */ LOGP(DRLCMACDL, LOGL_DEBUG, "-- No space left, so we are " "done.\n"); - li->e = 1; /* we cannot extend */ return Encoding::AR_COMPLETED_BLOCK_FILLED; } @@ -1594,7 +1600,7 @@ space -= 1; /* add LI to delimit frame */ li = (struct rlc_li_field_egprs *)delimiter; - li->e = 1; /* Extension bit, maybe set later */ + li->e = 1; /* not more extension, maybe set later */ li->li = chunk; /* length of chunk */ /* tell previous extension header about the new one */ if (prev_li) @@ -1611,56 +1617,26 @@ space -= chunk; (*offset) += chunk; /* if we have more data and we have space left */ - if (space > 0) { - if (!is_final) + if (!is_final) { + if (space > 0) { return Encoding::AR_COMPLETED_SPACE_LEFT; - + } else { + /* we have no space left */ + LOGP(DRLCMACDL, LOGL_DEBUG, "-- No space left, so we are " + "done.\n"); + return Encoding::AR_COMPLETED_BLOCK_FILLED; + } + } else { /* we don't have more LLC frames */ - /* We will have to add another chunk with filling octets */ - LOGP(DRLCMACDL, LOGL_DEBUG, - "-- There is remaining space (%d): add filling byte chunk\n", - space); - - if (delimiter != data) - memmove(delimiter + 1, delimiter, data - delimiter); - - data += 1; - (*offset) += 1; - space -= 1; - - /* set filling bytes extension */ - li = (struct rlc_li_field_egprs *)delimiter; - li->e = 1; - li->li = 127; - - /* tell previous extension header about the new one */ - if (prev_li) - prev_li->e = 0; - - delimiter++; - (*num_chunks)++; - + LOGP(DRLCMACDL, LOGL_DEBUG, "-- Final block, so we are done.\n"); rdbi->cv = 0; - - LOGP(DRLCMACDL, LOGL_DEBUG, "-- Final block, so we " - "are done.\n"); - - *offset = rdbi->data_len; + if (space > 0) + Encoding::rlc_data_to_dl_append_egprs_li_padding(rdbi, + offset, + num_chunks, + data_block); return Encoding::AR_COMPLETED_BLOCK_FILLED; } - - if (is_final) { - /* we don't have more LLC frames */ - LOGP(DRLCMACDL, LOGL_DEBUG, "-- Final block, so we " - "are done.\n"); - rdbi->cv = 0; - return Encoding::AR_COMPLETED_BLOCK_FILLED; - } - - /* we have no space left */ - LOGP(DRLCMACDL, LOGL_DEBUG, "-- No space left, so we are " - "done.\n"); - return Encoding::AR_COMPLETED_BLOCK_FILLED; } /*! @@ -1697,6 +1673,39 @@ return AR_NEED_MORE_BLOCKS; } +void Encoding::rlc_data_to_dl_append_egprs_li_padding( + const struct gprs_rlc_data_block_info *rdbi, + int *offset, int *num_chunks, uint8_t *data_block) +{ + struct rlc_li_field_egprs *li; + struct rlc_li_field_egprs *prev_li; + uint8_t *delimiter, *data; + + LOGP(DRLCMACDL, LOGL_DEBUG, "Adding LI=127 to signal padding\n"); + + data = data_block + *offset; + delimiter = data_block + *num_chunks; + prev_li = (struct rlc_li_field_egprs *)(*num_chunks ? delimiter - 1 : NULL); + + /* we don't have more LLC frames */ + /* We will have to add another chunk with filling octets */ + + if (delimiter != data) + memmove(delimiter + 1, delimiter, data - delimiter); + + /* set filling bytes extension */ + li = (struct rlc_li_field_egprs *)delimiter; + li->e = 1; + li->li = 127; + + /* tell previous extension header about the new one */ + if (prev_li) + prev_li->e = 0; + + (*num_chunks)++; + *offset = rdbi->data_len; +} + /* * Refer 44.060 version 7.27.0 Release 7 * section 7.1.3.2.1 On receipt of a PACKET RESOURCE REQUEST message diff --git a/src/encoding.h b/src/encoding.h index 5f8496e..da63a61 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -104,4 +104,7 @@ struct gprs_rlc_data_block_info *rdbi, enum CodingScheme cs, gprs_llc *llc, int *offset, int *num_chunks, uint8_t *data, bool is_final, int *count_payload); + static void rlc_data_to_dl_append_egprs_li_padding( + const struct gprs_rlc_data_block_info *rdbi, + int *offset, int *num_chunks, uint8_t *data_block); }; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index ad98510..bb89e81 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -694,9 +694,33 @@ int payload_written = 0; if (m_llc.frame_length() == 0) { - /* nothing to sent - delay the release of the TBF */ + /* It is not clear, when the next real data will + * arrive, so request a DL ack/nack now */ + request_dl_ack(); int space = block_data_len - write_offset; + + if (num_chunks != 0) { + /* Nothing to send, and we already put some data in + * rlcmac data block, we are done */ + LOGPTBFDL(this, LOGL_DEBUG, + "LLC queue completely drained and there's " + "still %d free bytes in rlcmac data block\n", space); + if (mcs_is_edge(cs)) { + /* in EGPRS there's no M bit, so we need + * to flag padding with LI=127 */ + Encoding::rlc_data_to_dl_append_egprs_li_padding(rdbi, + &write_offset, + &num_chunks, + data); + } + break; + } + + /* Nothing to send from upper layers (LLC), but still + * requested to send something to MS to delay the + * release of the TBF. See 3GPP TS 44.060 9.3.1a + * "Delayed release of downlink Temporary Block Flow" */ /* A header will need to by added, so we just need * space-1 octets */ m_llc.put_dummy_frame(space - 1); @@ -705,10 +729,6 @@ if (m_last_dl_drained_fn < 0) m_last_dl_drained_fn = fn; - /* It is not clear, when the next real data will - * arrive, so request a DL ack/nack now */ - request_dl_ack(); - 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)); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index c54c316..fa5fd47 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -416,15 +416,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==0 .. V(S)==20) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new block at BSN 20, CS=CS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Complete DL frame, len=200 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Empty chunk, added LLC dummy command of size 16, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Complete DL frame, len=16 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 20, CS-1): 0a 41 c6 c7 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) LLC queue completely drained and there's still 17 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 20, CS-1): 09 c6 c7 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 20 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Copying data unit 0 (BSN 20) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 20, CS-1): 07 00 28 0a 41 c6 c7 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) msg block (BSN 20, CS-1): 07 00 28 09 c6 c7 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) ack: (BSN=85)"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"(BSN=20) R=ACK I=NACK TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) DL analysis, range=0:21, lost=0, recv=21, skipped=0, bsn=0, info='RRRRRRRRRRRRRRRRRRRRR...........................................' @@ -432,7 +431,7 @@ Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==21 .. V(S)==21) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new dummy block at BSN 21, CS=CS-1 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Empty chunk, added LLC dummy command of size 19, drained_since=4 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Empty chunk, added LLC dummy command of size 19, drained_since=0 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Complete DL frame, len=19 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) data block (BSN 21, CS-1): 4d 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) need_padding 0 spb_status 0 spb 0 (BSN1 21 BSN2 -1) @@ -448,7 +447,7 @@ Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink (V(A)==22 .. V(S)==22) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Sending new dummy block at BSN 22, CS=CS-1 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Empty chunk, added LLC dummy command of size 19, drained_since=112 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Empty chunk, added LLC dummy command of size 19, drained_since=108 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Complete DL frame, len=19 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) changes state from FLOW to FINISHED TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) data block (BSN 22, CS-1): 4d 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b @@ -3433,15 +3432,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 10, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-1): 14 15 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 11 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-1): 14 ff 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-1): 07 00 00 16 28 2a 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-1): 07 00 00 16 28 fe 03 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS @@ -3679,15 +3677,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==24) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 24, CS=MCS-1 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 14, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=14 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 24, MCS-1): 0c 1d 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 15 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 24, MCS-1): 0c ff 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 24 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 24) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 24, MCS-1): 07 00 06 16 18 3a 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 56 56 56 56 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 24, MCS-1): 07 00 06 16 18 fe 03 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -3739,15 +3736,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 16, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=16 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-2): 14 21 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 17 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-2): 14 ff 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-2): 07 00 00 12 28 42 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 56 56 56 56 56 56 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-2): 07 00 00 12 28 fe 03 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS @@ -3935,15 +3931,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==19) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 19, CS=MCS-2 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 18, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=18 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 19, MCS-2): 10 25 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 19 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 19, MCS-2): 10 ff 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 19 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 19) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 19, MCS-2): 07 c0 04 12 20 4a 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 19, MCS-2): 07 c0 04 12 20 fe 03 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -3995,15 +3990,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 25, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=25 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-3): 14 33 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 26 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-3): 14 ff 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-3): 07 00 00 06 28 66 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-3): 07 00 00 06 28 fe 03 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS @@ -4141,27 +4135,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==14) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 14, CS=MCS-3 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 6, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 14, MCS-3): 3f 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 5 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 14, MCS-3): 3e ff 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 14 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 14) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 14, MCS-3): 07 80 03 06 7e 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 00 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=4 mcs_mode_restrict=EGPRS -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==15) mcs_mode_restrict=EGPRS -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 15, CS=MCS-3 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=6 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 34, drained_since=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=34 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 15, MCS-3): 02 45 2b 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 15 BSN2 -1) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 15) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 15, MCS-3): 07 c0 03 06 04 8a 56 86 80 03 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 14, MCS-3): 07 80 03 06 7c fe 03 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -4213,15 +4194,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 32, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=32 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-4): 14 41 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 33 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-4): 14 ff 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-4): 07 00 00 00 28 82 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-4): 07 00 00 00 28 fe 03 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS @@ -4339,15 +4319,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==12) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 12, CS=MCS-4 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 14, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=14 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 12, MCS-4): 38 1d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 15 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 12, MCS-4): 38 ff 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 12 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 12) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 12, MCS-4): 07 00 03 00 70 3a 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 86 80 03 56 56 56 56 56 56 56 56 56 56 56 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 12, MCS-4): 07 00 03 00 70 fe 03 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -4399,15 +4378,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 44, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=44 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-5): 14 59 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 45 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-5): 14 ff 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-5): 07 00 00 08 45 56 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-5): 07 00 00 08 c5 7f 40 40 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS @@ -4505,15 +4483,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 10, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 46, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=46 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 10, MCS-5): 10 5d 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 47 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 10, MCS-5): 10 ff 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 10 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-5): 07 80 02 08 44 57 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-5): 07 80 02 08 c4 7f 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -4565,15 +4542,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 62, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=62 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-6): 14 7d 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 63 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-6): 14 ff 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 00 45 5f 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 00 c5 7f 40 40 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS @@ -4641,27 +4617,14 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==7) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 6, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-6): 89 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 5 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-6): 88 ff 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 7 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 7) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-6): 07 c0 01 40 62 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca 0a -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-6 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=6 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 71, drained_since=5 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=71 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-6): 02 8f 2b 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 -1) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 8) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-6): 07 00 02 80 c0 e3 ca 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-6): 07 c0 01 00 e2 7f 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 c0 ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -4713,16 +4676,15 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-7 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 44, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=44 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-7): 14 59 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 45 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-7): 14 ff 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Restarting at BSN 0, because all blocks have been transmitted (FLOW). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-5): 07 00 00 08 45 56 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-5): 07 00 00 08 c5 7f 40 40 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS @@ -4738,7 +4700,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-7): 07 00 00 02 b8 50 64 05 04 04 04 04 04 04 04 04 04 0c 01 07 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-7): 07 00 00 02 b8 50 fc 07 04 04 04 04 04 04 04 04 04 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-7 @@ -4795,16 +4757,15 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==10) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 10, CS=MCS-7 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 46, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=46 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 10, MCS-7): 10 5d 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 47 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 10, MCS-7): 10 ff 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Restarting at BSN 0, because all blocks have been transmitted (FLOW). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 10 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-5): 07 80 02 08 44 57 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-5): 07 80 02 08 c4 7f 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -4856,9 +4817,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-8 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 56, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=56 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-8): 14 71 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 57 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-8): 14 ff 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Restarting at BSN 0, because all blocks have been transmitted (FLOW). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 1 BSNs @@ -4866,7 +4826,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-8): 07 00 00 00 60 50 c4 05 04 04 04 04 04 04 04 04 04 0c 01 07 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 40 11 17 10 10 10 10 10 10 10 10 10 30 04 1c b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-8): 07 00 00 00 60 50 fc 07 04 04 04 04 04 04 04 04 04 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 40 f1 1f 10 10 10 10 10 10 10 10 10 b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS @@ -4882,7 +4842,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-8): 07 00 00 02 88 50 c4 05 04 04 04 04 04 04 04 04 04 0c 01 07 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-8): 07 00 00 02 88 50 fc 07 04 04 04 04 04 04 04 04 04 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-8 @@ -4926,9 +4886,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-8 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 30, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=30 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-8): 48 3d 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 31 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-8): 48 ff 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Restarting at BSN 0, because all blocks have been transmitted (FLOW). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 1 BSNs @@ -4936,7 +4895,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-8): 07 00 02 00 60 20 f5 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 0c 01 07 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 80 d4 13 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 30 04 1c b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-8): 07 00 02 00 60 20 fd 07 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 80 f4 1f 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -4988,16 +4947,15 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 0, CS=MCS-9 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Dequeue next LLC (len=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 62, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=62 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-9): 14 7d 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 63 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-9): 14 ff 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Restarting at BSN 0, because all blocks have been transmitted (FLOW). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 00 45 5f 40 40 40 40 40 40 40 40 40 c0 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 00 c5 7f 40 40 40 40 40 40 40 40 40 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) appending 512 bytes Received RTS for PDCH: TRX=0 TS=4 FN=8 block_nr=2 scheduling free USF for polling at FN=13 of TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS @@ -5013,7 +4971,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-9): 07 00 00 02 20 50 f4 05 04 04 04 04 04 04 04 04 04 0c 01 07 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-9): 07 00 00 02 20 50 fc 07 04 04 04 04 04 04 04 04 04 ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac ac 14 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 2, CS=MCS-9 @@ -5046,29 +5004,15 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 6, MCS-9): 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 7, CS=MCS-9 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=512 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 6, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-9): 89 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 43 c0 01 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 5 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 7, MCS-9): 88 ff 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 6 BSN2 7) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 6) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 7) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-9): 07 80 01 02 00 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 90 18 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 30 04 1c b0 b2 02 -Scheduling data message at RTS for DL TFI=0 (TRX=0, TS=4) prio=3 mcs_mode_restrict=EGPRS -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==8) mcs_mode_restrict=EGPRS -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 8, CS=MCS-9 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=6 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 71, drained_since=5 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=71 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 8, MCS-9): 02 8f 2b 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Restarting at BSN 0, because all blocks have been transmitted (FLOW). -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 8 BSN2 -1) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 8) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Polling is already scheduled -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-6): 07 00 02 80 c0 e3 ca 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-9): 07 80 01 02 00 05 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 80 f8 1f 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 b0 b2 b2 b2 02 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -5287,16 +5231,15 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-5 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=100 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 10, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-5): 58 15 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 43 c0 01 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 11 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-5): 58 ff 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 1 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=21, TS=4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=21, TS=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-5): 0f 40 00 08 56 05 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 92 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-5): 0f 40 00 08 d6 3f 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 92 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-5) last_mcs(MCS-5) demanded_mcs(MCS-7) cs_trans(MCS-7) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 @@ -5306,7 +5249,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 1) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-7): 07 00 00 02 c0 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc 80 55 81 93 a3 b3 c3 d3 e3 f3 03 14 24 34 44 54 64 74 84 94 a4 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 02 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-7): 07 00 00 02 c0 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc 80 f5 8f 93 a3 b3 c3 d3 e3 f3 03 14 24 34 44 54 64 74 84 94 a4 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 b6 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -5358,16 +5301,15 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==1) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-6 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=100 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 46, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=46 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-6): 34 5d 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 47 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-6): 34 ff 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 1 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=21, TS=4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=21, TS=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-6): 0f 40 00 00 4d 97 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-6): 0f 40 00 00 cd bf d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-6) last_mcs(MCS-6) demanded_mcs(MCS-9) cs_trans(MCS-9) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 @@ -5377,7 +5319,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 1 (BSN 1) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-9): 07 00 00 02 28 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc e0 e4 e8 ec f0 f4 f8 fc 00 05 09 0d 11 15 19 1d 21 25 41 d3 a5 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-9): 07 00 00 02 28 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc e0 e4 e8 ec f0 f4 f8 fc 00 05 09 0d 11 15 19 1d 21 25 41 f3 af b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 b6 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -5424,9 +5366,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-7): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-7 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=100 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 10, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=10 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-7): 58 15 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 43 c0 01 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 11 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-7): 58 ff 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) @@ -5434,7 +5375,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=17, TS=4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=17, TS=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-7): 0f 00 00 02 a0 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc 80 55 81 93 a3 b3 c3 d3 e3 f3 03 14 24 34 44 54 64 74 84 94 a4 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 02 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-7): 0f 00 00 02 a0 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc 80 f5 8f 93 a3 b3 c3 d3 e3 f3 03 14 24 34 44 54 64 74 84 94 a4 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 b6 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-7) last_mcs(MCS-7) demanded_mcs(MCS-5) cs_trans(MCS-5) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 @@ -5448,7 +5389,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 1 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 1) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-5): 07 40 00 08 56 05 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 92 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-5): 07 40 00 08 d6 3f 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 92 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE @@ -5495,9 +5436,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 0, MCS-9): 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Sending new block at BSN 1, CS=MCS-9 (forced) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=100 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Empty chunk, added LLC dummy command of size 46, drained_since=0 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Complete DL frame, len=46 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-9): 34 5d 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 43 c0 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) LLC queue completely drained and there's still 47 free bytes in rlcmac data block +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) data block (BSN 1, MCS-9): 34 ff 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 0 BSN2 1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 2 RLC blocks, 2 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 0) @@ -5505,7 +5445,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled DL Acknowledgement polling on UNKNOWN (FN=17, TS=4) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Scheduled Ack/Nack polling on FN=17, TS=4 -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-9): 0f 00 00 02 00 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc e0 e4 e8 ec f0 f4 f8 fc 00 05 09 0d 11 15 19 1d 21 25 41 d3 a5 b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 36 04 1c b0 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-9): 0f 00 00 02 00 01 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 40 44 48 4c 50 54 58 5c 60 64 68 6c 70 74 78 7c 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc d0 d4 d8 dc e0 e4 e8 ec f0 f4 f8 fc 00 05 09 0d 11 15 19 1d 21 25 41 f3 af b4 c4 d4 e4 f4 04 15 25 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 05 16 26 36 b6 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 b2 02 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink (V(A)==0 .. V(S)==2) mcs_mode_restrict=EGPRS TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) initial_cs_dl(MCS-9) last_mcs(MCS-9) demanded_mcs(MCS-6) cs_trans(MCS-6) arq_type(1) bsn(0) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Resending BSN 0 @@ -5519,7 +5459,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) need_padding 0 spb_status 0 spb 0 (BSN1 1 BSN2 -1) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying 1 RLC blocks, 1 BSNs TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Copying data unit 0 (BSN 1) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-6): 07 40 00 02 4d 97 d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 10 70 c0 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 1, MCS-6): 07 40 00 02 cd bf d2 12 53 93 d3 13 54 94 d4 14 55 95 d5 15 56 96 d6 16 57 97 d7 17 58 98 d8 d8 ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca ca 0a TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifae1a7b2b3dfad8df19585063088ba0df2749c8f Gerrit-Change-Number: 21387 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Dec 8 09:43:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:43:16 +0000 Subject: Change in osmo-bts[master]: power_control: implement BS (Downlink) Power Control In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21447 ) Change subject: power_control: implement BS (Downlink) Power Control ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Gerrit-Change-Number: 21447 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 09: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 Tue Dec 8 09:43:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:43:46 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct bts_power_ctrl_params' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21499 ) Change subject: power_control: clarify units in 'struct bts_power_ctrl_params' ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Gerrit-Change-Number: 21499 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 09:43: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 Dec 8 09:44:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:44:56 +0000 Subject: Change in osmo-bts[master]: power_control: make raise/lower step limitation configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21568 ) Change subject: power_control: make raise/lower step limitation configurable ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/21568/1/include/osmo-bts/bts.h File include/osmo-bts/bts.h: https://gerrit.osmocom.org/c/osmo-bts/+/21568/1/include/osmo-bts/bts.h at 110 PS1, Line 110: as maximum at maximum (also below) https://gerrit.osmocom.org/c/osmo-bts/+/21568/1/include/osmo-bts/bts.h at 111 PS1, Line 111: in the variable name nor the comment really indicate it is about the _step_ size. So maybe make that more clear. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Gerrit-Change-Number: 21568 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 09:44: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 Tue Dec 8 09:45:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:45:08 +0000 Subject: Change in osmo-bts[master]: power_control: implement BS (Downlink) Power Control In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21447 ) Change subject: power_control: implement BS (Downlink) Power Control ...................................................................... power_control: implement BS (Downlink) Power Control We already have MS Power Control, which according to 3GPP 45.008 shall be implemented in the MS to minimize the transmit power in the Uplink direction. The BS Power Control may optionally be implemented by the network side for the same purpose. Using Downlink signal measurements reported by the MS, the BSS (either BSC, or BTS) may control Downlink attenuation in a way that the transmit power remains as low as possible, or remains in a specific range corresponding to good RxLev values on the MS side. This change implements autonomous BS Power Control, that can optionally be enabled by the BSC. BS Power Control re-uses parts of the MS Power Control code, so all parameters can be configured in the same way - via the VTY interface or a configuration file. This basically means that features like hysteresis and EWMA based filtering are also available for BS Power Control. The only difference is that RxQual values higher than 0 would trigger the logic to reduce the current attenuation twice. Note that one of the unit tests ('TC_rxlev_max_min') fails, as the power step limitations for raising and lowering look wrong to me, and the related discussion is still ongoing. Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Related: SYS#4918 --- M .gitignore M include/osmo-bts/gsm_data.h M include/osmo-bts/power_control.h M src/common/l1sap.c M src/common/power_control.c M src/common/rsl.c M src/common/scheduler.c M src/common/tx_power.c M src/common/vty.c M tests/power/Makefile.am A tests/power/bs_power_loop_test.c A tests/power/bs_power_loop_test.err A tests/power/bs_power_loop_test.ok M tests/testsuite.at 14 files changed, 878 insertions(+), 26 deletions(-) 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 22a1bdd..f76bdac 100644 --- a/.gitignore +++ b/.gitignore @@ -64,6 +64,7 @@ tests/tx_power/tx_power_test tests/ta_control/ta_control_test tests/power/ms_power_loop_test +tests/power/bs_power_loop_test tests/testsuite tests/testsuite.log diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 04c6629..6af96fe 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -316,11 +316,9 @@ /* RTP header Marker bit to indicate beginning of speech after pause */ bool rtp_tx_marker; - /* MS power control */ + /* MS/BS power control */ struct lchan_power_ctrl_state ms_power_ctrl; - - /* BTS power reduction (in dB) */ - uint8_t bs_power_red; + struct lchan_power_ctrl_state bs_power_ctrl; struct msgb *pending_rel_ind_msg; diff --git a/include/osmo-bts/power_control.h b/include/osmo-bts/power_control.h index cb566a8..f2e14cf 100644 --- a/include/osmo-bts/power_control.h +++ b/include/osmo-bts/power_control.h @@ -6,3 +6,6 @@ int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm); + +int lchan_bs_pwr_ctrl(struct gsm_lchan *lchan, + const struct gsm48_hdr *gh); diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 2038fba..33d10a5 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1546,6 +1546,7 @@ 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]); } else le = &lchan->lapdm_ch.lapdm_dcch; diff --git a/src/common/power_control.c b/src/common/power_control.c index 3441439..4c4e283 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -209,3 +209,105 @@ return 1; } + + /*! compute the new Downlink attenuation value for the given logical channel. + * \param lchan logical channel for which to compute (and in which to store) new power value. + * \param[in] gh pointer to the beginning of (presumably) a Measurement Report. + */ +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; + 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) + return 0; + /* Check if this is a Measurement Report */ + if (gh->proto_discr != GSM48_PDISC_RR) + return 0; + if (gh->msg_type != GSM48_MT_RR_MEAS_REP) + return 0; + + /* Check if the measurement results are valid */ + if ((gh->data[1] & 0x40) == 0x40) { + LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, + "The measurement results are not valid\n"); + return 0; + } + + /* See 3GPP TS 44.018, section 10.5.2.20 */ + rxqual_full = (gh->data[2] >> 4) & 0x7; + rxqual_sub = (gh->data[2] >> 1) & 0x7; + + rxlev_full = gh->data[0] & 0x3f; + rxlev_sub = gh->data[1] & 0x3f; + + LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, "Rx DL Measurement Report: " + "RXLEV-FULL(%02u), RXQUAL-FULL(%u), " + "RXLEV-SUB(%02u), RXQUAL-SUB(%u), " + "DTx is %s => using %s\n", + rxlev_full, rxqual_full, rxlev_sub, rxqual_sub, + lchan->tch.dtx.dl_active ? "enabled" : "disabled", + lchan->tch.dtx.dl_active ? "SUB" : "FULL"); + + /* If DTx is active on Downlink, use the '-SUB' */ + if (lchan->tch.dtx.dl_active) { + rxqual = rxqual_sub; + rxlev = rxlev_sub; + } else { /* ... otherwise use the '-FULL' */ + rxqual = rxqual_full; + rxlev = rxlev_full; + } + + /* Bit Error Rate > 0 => reduce by 2 */ + if (rxqual > 0) { + 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; + return 1; + } + + /* Calculate a 'delta' for the current attenuation level */ + delta = calc_delta(params, state, rxlev2dbm(rxlev)); + + /* Basic signal transmission / reception formula: + * + * RxLev = TxPwr - (PathLoss + TxAtt) + * + * Here we want to change RxLev at the MS side, so: + * + * RxLev + Delta = TxPwr - (PathLoss + TxAtt) + Delta + * + * The only parameter we can change here is TxAtt, so: + * + * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta + * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) + */ + new = state->current - delta; + if (new > state->max) + new = state->max; + if (new < 0) + new = 0; + + 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, 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, delta); + return 0; + } +} diff --git a/src/common/rsl.c b/src/common/rsl.c index 8760c24..2ebfb32 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1036,8 +1036,8 @@ lchan->tch_mode = 0; memset(&lchan->encr, 0, sizeof(lchan->encr)); memset(&lchan->ho, 0, sizeof(lchan->ho)); - lchan->bs_power_red = 0; memset(&lchan->ms_power_ctrl, 0, sizeof(lchan->ms_power_ctrl)); + memset(&lchan->bs_power_ctrl, 0, sizeof(lchan->bs_power_ctrl)); lchan->rqd_ta = 0; copy_sacch_si_to_lchan(lchan); memset(&lchan->tch, 0, sizeof(lchan->tch)); @@ -1153,11 +1153,16 @@ LOGPLCHAN(lchan, DRSL, LOGL_DEBUG, "rx Channel Activation in state: %s.\n", gsm_lchans_name(lchan->state)); - /* Initialize channel defaults */ + /* Initialize MS Power Control defaults */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(lchan->ts->trx->bts->band, 0); lchan->ms_power_ctrl.current = lchan->ms_power_ctrl.max; lchan->ms_power_ctrl.fixed = true; + /* Initialize BS Power Control defaults */ + lchan->bs_power_ctrl.max = 2 * 15; + lchan->bs_power_ctrl.current = 0; + lchan->bs_power_ctrl.fixed = true; + rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); /* 9.3.3 Activation Type */ @@ -1209,9 +1214,11 @@ return rsl_tx_chan_act_nack(lchan, RSL_ERR_SERV_OPT_UNIMPL); } - lchan->bs_power_red = BS_POWER2DB(*TLVP_VAL(&tp, RSL_IE_BS_POWER)); + lchan->bs_power_ctrl.max = BS_POWER2DB(*TLVP_VAL(&tp, RSL_IE_BS_POWER)); + lchan->bs_power_ctrl.current = lchan->bs_power_ctrl.max; + LOGPLCHAN(lchan, DRSL, LOGL_DEBUG, "BS Power attenuation %u dB\n", - lchan->bs_power_red); + lchan->bs_power_ctrl.current); } /* 9.3.13 MS Power */ @@ -1224,7 +1231,6 @@ if (TLVP_PRES_LEN(&tp, RSL_IE_TIMING_ADVANCE, 1)) lchan->rqd_ta = *TLVP_VAL(&tp, RSL_IE_TIMING_ADVANCE); - /* 9.3.32 BS Power Parameters */ /* 9.3.31 MS Power Parameters */ if (TLVP_PRESENT(&tp, RSL_IE_MS_POWER_PARAM)) { /* Spec explicitly states BTS should only perform @@ -1232,6 +1238,14 @@ * Parameters' IE is present! */ lchan->ms_power_ctrl.fixed = false; } + + /* 9.3.32 BS Power Parameters */ + if (TLVP_PRESENT(&tp, RSL_IE_BS_POWER_PARAM)) { + /* NOTE: it's safer to start from 0 */ + lchan->bs_power_ctrl.current = 0; + lchan->bs_power_ctrl.fixed = false; + } + /* 9.3.16 Physical Context */ /* 9.3.29 SACCH Information */ @@ -1753,7 +1767,7 @@ struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; struct tlv_parsed tp; - uint8_t old_bs_power_red; + uint8_t old, new; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); @@ -1766,18 +1780,24 @@ return rsl_tx_error_report(msg->trx, RSL_ERR_SERV_OPT_UNIMPL, &dch->chan_nr, NULL, msg); } - old_bs_power_red = lchan->bs_power_red; - lchan->bs_power_red = BS_POWER2DB(*TLVP_VAL(&tp, RSL_IE_BS_POWER)); - - LOGPLCHAN(lchan, DRSL, LOGL_INFO, "BS POWER CONTROL Attenuation %d -> %d dB\n", - old_bs_power_red, lchan->bs_power_red); + 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)) { - /* Spec explicitly states BTS should perform autonomous - * BS power control loop in BTS if 'BS Power Parameters' - * IE is present! WE don't support that. */ - return rsl_tx_error_report(msg->trx, RSL_ERR_OPT_IE_ERROR, &dch->chan_nr, NULL, msg); + /* 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; + } else { + lchan->bs_power_ctrl.current = new; + lchan->bs_power_ctrl.fixed = true; + } + + if (lchan->bs_power_ctrl.current != old) { + LOGPLCHAN(lchan, DRSL, LOGL_INFO, "BS POWER CONTROL: " + "attenuation change %u -> %u dB\n", + old, lchan->bs_power_ctrl.current); } return 0; @@ -2975,7 +2995,7 @@ msgb_tlv_put(msg, RSL_IE_UPLINK_MEAS, ie_len, meas_res); lchan->meas.flags &= ~LC_UL_M_F_RES_VALID; } - msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power_red / 2); + msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power_ctrl.current / 2); if (lchan->meas.flags & LC_UL_M_F_L1_VALID) { msgb_tv_fixed_put(msg, RSL_IE_L1_INFO, 2, lchan->meas.l1_info); lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 84918e3..3d780fd 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1237,7 +1237,7 @@ /* BS Power reduction (in dB) per logical channel */ if (l1cs->lchan != NULL) - br->att = l1cs->lchan->bs_power_red; + br->att = l1cs->lchan->bs_power_ctrl.current; /* encrypt */ if (br->burst_len && l1cs->dl_encr_algo) { diff --git a/src/common/tx_power.c b/src/common/tx_power.c index 0741429..348aba5 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -68,7 +68,7 @@ } int get_p_target_mdBm_lchan(const struct gsm_lchan *lchan) { - return get_p_target_mdBm(lchan->ts->trx, lchan->bs_power_red); + return get_p_target_mdBm(lchan->ts->trx, lchan->bs_power_ctrl.current); } /* calculate the actual total output power required, taking into account the @@ -134,7 +134,7 @@ } int get_p_trxout_target_mdBm_lchan(const struct gsm_lchan *lchan) { - return get_p_trxout_target_mdBm(lchan->ts->trx, lchan->bs_power_red); + return get_p_trxout_target_mdBm(lchan->ts->trx, lchan->bs_power_ctrl.current); } diff --git a/src/common/vty.c b/src/common/vty.c index f32f6cd..5d21e58 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1335,10 +1335,13 @@ lchan->state == LCHAN_S_BROKEN ? " Error reason: " : "", lchan->state == LCHAN_S_BROKEN ? lchan->broken_reason : "", VTY_NEWLINE); +#if 0 + /* TODO: print more info about MS/BS Power Control */ vty_out(vty, " BS Power: %d dBm, MS Power: %u dBm%s", lchan->ts->trx->nominal_power - (lchan->ts->trx->max_power_red + lchan->bs_power_red), ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), VTY_NEWLINE); +#endif vty_out(vty, " Channel Mode / Codec: %s%s", gsm48_chan_mode_name(lchan->tch_mode), VTY_NEWLINE); @@ -1380,7 +1383,6 @@ if (lchan->loopback) vty_out(vty, " RTP/PDCH Loopback Enabled%s", VTY_NEWLINE); vty_out(vty, " Radio Link Failure Counter 'S': %d%s", lchan->s, VTY_NEWLINE); - /* TODO: MS Power Control */ } static void lchan_dump_short_vty(struct vty *vty, const struct gsm_lchan *lchan) diff --git a/tests/power/Makefile.am b/tests/power/Makefile.am index d6e1a6b..e428178 100644 --- a/tests/power/Makefile.am +++ b/tests/power/Makefile.am @@ -2,8 +2,12 @@ AM_CFLAGS = -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCODEC_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOSMOTRAU_CFLAGS) LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOCODEC_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) $(LIBOSMOTRAU_LIBS) -noinst_PROGRAMS = ms_power_loop_test -EXTRA_DIST = ms_power_loop_test.ok ms_power_loop_test.err +noinst_PROGRAMS = ms_power_loop_test bs_power_loop_test +EXTRA_DIST = ms_power_loop_test.ok ms_power_loop_test.err \ + bs_power_loop_test.ok bs_power_loop_test.err ms_power_loop_test_SOURCES = ms_power_loop_test.c $(srcdir)/../stubs.c ms_power_loop_test_LDADD = $(top_builddir)/src/common/libbts.a $(LIBOSMOABIS_LIBS) $(LDADD) + +bs_power_loop_test_SOURCES = bs_power_loop_test.c $(srcdir)/../stubs.c +bs_power_loop_test_LDADD = $(top_builddir)/src/common/libbts.a $(LIBOSMOABIS_LIBS) $(LDADD) diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c new file mode 100644 index 0000000..bc6b815 --- /dev/null +++ b/tests/power/bs_power_loop_test.c @@ -0,0 +1,398 @@ +/* + * (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see . + */ + +#include + +#include +#include +#include + +#include +#include +#include +#include + +#define PWR_TEST_RXLEV_TARGET 30 + +#define DL_MEAS_FULL(rxqual, rxlev) \ + .rxqual_full = rxqual, \ + .rxlev_full = rxlev + +#define DL_MEAS_SUB(rxqual, rxlev) \ + .rxqual_sub = rxqual, \ + .rxlev_sub = rxlev + +#define DL_MEAS_FULL_SUB(rxqual, rxlev) \ + { DL_MEAS_FULL(rxqual, rxlev), \ + DL_MEAS_SUB(rxqual, rxlev) } + +#define DL_MEAS_FULL_SUB_INV(rxqual, rxlev) \ + { DL_MEAS_FULL(rxqual, rxlev), \ + DL_MEAS_SUB(rxqual, rxlev), \ + .invalid = true } + +enum power_test_step_type { + PWR_TEST_ST_IND_MEAS = 0, + PWR_TEST_ST_IND_DUMMY, + PWR_TEST_ST_SET_STATE, + PWR_TEST_ST_SET_PARAMS, + PWR_TEST_ST_ENABLE_DTXD, +}; + +struct power_test_step { + /* Instruction to be performed */ + enum power_test_step_type type; + /* Instruction parameters */ + union { + /* Power Control state */ + struct lchan_power_ctrl_state state; + /* Power Control parameters */ + struct bts_power_ctrl_params params; + /* Indicated DL measurements */ + struct { + uint8_t rxqual_full; + uint8_t rxqual_sub; + uint8_t rxlev_full; + uint8_t rxlev_sub; + bool invalid; + } meas; + }; + /* Expected Tx power reduction */ + uint8_t exp_txred; +}; + +static struct gsm_bts *g_bts = NULL; +static struct gsm_bts_trx *g_trx = NULL; + +static void init_test(const char *name) +{ + if (g_trx != NULL) + talloc_free(g_trx); + if (g_bts != NULL) + talloc_free(g_bts); + + g_bts = talloc_zero(tall_bts_ctx, struct gsm_bts); + OSMO_ASSERT(g_bts != NULL); + + INIT_LLIST_HEAD(&g_bts->trx_list); + g_trx = gsm_bts_trx_alloc(g_bts); + OSMO_ASSERT(g_trx != NULL); + + g_bts->dl_power_ctrl.target = rxlev2dbm(PWR_TEST_RXLEV_TARGET); + g_bts->band = GSM_BAND_900; + g_bts->c0 = g_trx; + + printf("\nStarting test case '%s'\n", name); +} + +static void enc_meas_rep(struct gsm48_hdr *gh, + const unsigned int n, + const struct power_test_step *step) +{ + struct gsm48_meas_res *mr = (struct gsm48_meas_res *) gh->data; + + gh->proto_discr = GSM48_PDISC_RR; + gh->msg_type = GSM48_MT_RR_MEAS_REP; + + *mr = (struct gsm48_meas_res) { + .rxlev_full = step->meas.rxlev_full, + .rxlev_sub = step->meas.rxlev_sub, + .rxqual_full = step->meas.rxqual_full, + .rxqual_sub = step->meas.rxqual_sub, + /* NOTE: inversed logic (1 means invalid) */ + .meas_valid = step->meas.invalid, + }; + + printf("#%02u %s() -> Measurement Results (%svalid): " + "RXLEV-FULL(%02u), RXQUAL-FULL(%u), " + "RXLEV-SUB(%02u), RXQUAL-SUB(%u)\n", + n, __func__, step->meas.invalid ? "in" : "", + mr->rxlev_full, mr->rxqual_full, + mr->rxlev_sub, mr->rxqual_sub); +} + +static int exec_power_step(struct gsm_lchan *lchan, + const unsigned int n, + const struct power_test_step *step) +{ + struct gsm48_hdr *gh; + uint8_t old, new; + uint8_t buf[18]; + + gh = (struct gsm48_hdr *) buf; + + switch (step->type) { + case PWR_TEST_ST_SET_STATE: + 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; + 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, step->params.hysteresis, + step->params.pf_algo != BTS_PF_ALGO_NONE ? "en" : "dis"); + g_bts->dl_power_ctrl = step->params; + return 0; /* we're done */ + case PWR_TEST_ST_ENABLE_DTXD: + printf("#%02u %s() <- Enable DTXd\n", n, __func__); + lchan->tch.dtx.dl_active = true; + return 0; /* we're done */ + case PWR_TEST_ST_IND_DUMMY: + printf("#%02u %s() <- Dummy block\n", n, __func__); + memset(buf, 0x2b, sizeof(buf)); + break; + case PWR_TEST_ST_IND_MEAS: + enc_meas_rep(gh, n, step); + break; + } + + printf("#%02u lchan_bs_pwr_ctrl() <- UL SACCH: %s\n", + n, osmo_hexdump(buf, sizeof(buf))); + + old = lchan->bs_power_ctrl.current; + lchan_bs_pwr_ctrl(lchan, gh); + new = lchan->bs_power_ctrl.current; + + printf("#%02u lchan_bs_pwr_ctrl() -> BS power reduction: " + "%u -> %u (expected %u)\n", + n, old, new, step->exp_txred); + + return new != step->exp_txred; +} + +static void exec_power_test(const struct power_test_step *steps, + unsigned int num_steps, + const char *name) +{ + unsigned int n; + int rc = 0; + + init_test(name); + + struct gsm_lchan *lchan = &g_trx->ts[0].lchan[0]; + for (n = 0; n < num_steps; n++) + rc |= exec_power_step(lchan, n, &steps[n]); + + printf("Test case verdict: %s\n", rc ? "FAIL" : "SUCCESS"); +} + +/* Verify that the power remains constant in fixed mode. */ +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 } }, + + /* MS indicates random RxQual/RxLev values, which must be ignored */ + { .meas = DL_MEAS_FULL_SUB(0, 63), .exp_txred = 10 }, + { .meas = DL_MEAS_FULL_SUB(7, 0), .exp_txred = 10 }, + { .meas = DL_MEAS_FULL_SUB(0, 30), .exp_txred = 10 }, + { .meas = DL_MEAS_FULL_SUB(1, 30), .exp_txred = 10 }, + { .meas = DL_MEAS_FULL_SUB(1, 50), .exp_txred = 10 }, +}; + +/* Verify that the power remains constant if RxLev equals the target level. */ +static const struct power_test_step TC_rxlev_target[] = { + /* Initial state: 0 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 0, .max = 2 * 10 } }, + + /* MS indicates RxLev values that match the target level */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET) }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET) }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET) }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET) }, +}; + +/* Verify that the power is gradually reduced/increased to the + * minimum/maximum if the MS reports high/low RxLev values. */ +static const struct power_test_step TC_rxlev_max_min[] = { + /* Initial state: 0 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 0, .max = 2 * 10 } }, + + /* MS indicates high RxLev values (-50 dBm) */ + { .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 */ + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ + + /* MS indicates low RxLev values (-100 dBm) */ + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 12 }, + { .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 */ + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ +}; + +/* 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 */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 0, .max = 2 * 10 } }, + + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET) }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET) }, + + { .type = PWR_TEST_ST_ENABLE_DTXD }, /* DTXd mode */ + + /* MS indicates target RxLev values as 'SUB', and random as 'FULL' */ + { .meas = { DL_MEAS_FULL(7, 0), DL_MEAS_SUB(0, PWR_TEST_RXLEV_TARGET) } }, + { .meas = { DL_MEAS_FULL(3, 30), DL_MEAS_SUB(0, PWR_TEST_RXLEV_TARGET) } }, + { .meas = { DL_MEAS_FULL(0, 63), DL_MEAS_SUB(0, PWR_TEST_RXLEV_TARGET) } }, +}; + +/* Verify that RxQual > 0 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, + .state = { .current = 16, .max = 2 * 10 } }, + + /* MS indicates target RxLev, and no bit errors */ + { .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, 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 }, + + /* Reset state: 16 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 16, .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 }, +}; + +/* Verify that invalid and dummy SACCH blocks are ignored. */ +static const struct power_test_step TC_inval_dummy[] = { + /* Initial state: 16 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 16, .max = 2 * 10 } }, + + /* MS sends invalid measurement results which must be ignored */ + { .meas = DL_MEAS_FULL_SUB_INV(7, 63), .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB_INV(0, 0), .exp_txred = 16 }, + + /* Let's say SMS (SAPI=3) blocks substitute some of the reports */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, + { .type = PWR_TEST_ST_IND_DUMMY, /* not a report */ .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, + { .type = PWR_TEST_ST_IND_DUMMY, /* not a report */ .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, +}; + +/* Verify that small deviations from the target do not trigger any changes. */ +static const struct power_test_step TC_rxlev_hyst[] = { + /* Initial state: 16 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 12, .max = 2 * 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 }, + + /* Enable hysteresis */ + { .type = PWR_TEST_ST_SET_PARAMS, + .params = { + .target = -110 + PWR_TEST_RXLEV_TARGET, + .hysteresis = 3, + } + }, + + /* 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 }, +}; + +/* Verify EWMA based power filtering. */ +static const struct power_test_step TC_rxlev_pf_ewma[] = { + /* Initial state: 20 dB, up to 30 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 16, .max = 2 * 15 } }, + + /* Enable EWMA based power filtering */ + { .type = PWR_TEST_ST_SET_PARAMS, + .params = { + .target = -110 + PWR_TEST_RXLEV_TARGET, /* RxLev 30 */ + .pf_algo = BTS_PF_ALGO_EWMA, + .pf.ewma.alpha = 50, + } + }, + + /* MS indicates target RxLev, power level remains constant */ + { .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 }, + + /* Avg[t] = (0.5 * 26) + (0.5 * 30) = 28, so delta is 2 */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 4), .exp_txred = 14 }, + /* Avg[t] = (0.5 * 26) + (0.5 * 28) = 27, so delta is 3 */ + { .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 }, +}; + +int main(int argc, char **argv) +{ + printf("Testing BS Power loop...\n"); + + tall_bts_ctx = talloc_named_const(NULL, 1, "OsmoBTS context"); + msgb_talloc_ctx_init(tall_bts_ctx, 0); + + osmo_init_logging2(tall_bts_ctx, &bts_log_info); + osmo_stderr_target->categories[DLOOP].loglevel = LOGL_DEBUG; + osmo_stderr_target->categories[DL1C].loglevel = LOGL_DEBUG; + log_set_print_filename(osmo_stderr_target, 0); + log_set_use_color(osmo_stderr_target, 0); + +#define exec_test(test) \ + exec_power_test(test, ARRAY_SIZE(test), #test) + + exec_test(TC_fixed_mode); + exec_test(TC_rxlev_target); + exec_test(TC_rxlev_max_min); /* FIXME */ + + exec_test(TC_dtxd_mode); + exec_test(TC_rxqual_ber); + exec_test(TC_inval_dummy); + + exec_test(TC_rxlev_hyst); + exec_test(TC_rxlev_pf_ewma); + + return 0; +} diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err new file mode 100644 index 0000000..44d996e --- /dev/null +++ b/tests/power/bs_power_loop_test.err @@ -0,0 +1,102 @@ +(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 +(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 +(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 +(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 -> 8 dB (maximum 20 dB, target -80 dBm, delta -8 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 -> 16 dB (maximum 20 dB, target -80 dBm, delta -8 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 -8 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 -8 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 -8 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 -8 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 -8 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 -> 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: 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: 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) 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) 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(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 +(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(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) 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) 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) 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(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) 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 +(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(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(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) 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) 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) 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) 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) 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) 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) 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 +(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(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) 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) 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) diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok new file mode 100644 index 0000000..fe2eb78 --- /dev/null +++ b/tests/power/bs_power_loop_test.ok @@ -0,0 +1,214 @@ +Testing BS Power loop... + +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 +#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 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 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 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) +Test case verdict: SUCCESS + +Starting test case 'TC_rxlev_target' +#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) +#01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#01 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#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: 0 -> 0 (expected 0) +#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 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#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: 0 -> 0 (expected 0) +Test case verdict: SUCCESS + +Starting test case 'TC_rxlev_max_min' +#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 -> 8 (expected 4) +#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: 8 -> 16 (expected 8) +#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: 16 -> 20 (expected 12) +#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: 20 -> 20 (expected 16) +#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: 20 -> 20 (expected 20) +#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) +#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 -> 16 (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: 16 -> 12 (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: 12 -> 8 (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: 8 -> 4 (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: 4 -> 0 (expected 0) +Test case verdict: FAIL + +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) +#01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#01 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#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: 0 -> 0 (expected 0) +#03 exec_power_step() <- Enable DTXd +#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(0) +#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 00 1e 70 00 00 00 00 00 00 00 00 00 00 00 00 00 +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(0) +#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 30 00 00 00 00 00 00 00 00 00 00 00 00 00 +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3f 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +Test case verdict: SUCCESS + +Starting test case 'TC_rxqual_ber' +#00 exec_power_step() <- State (re)set (current 16 dB, max 20 dB) +#01 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#01 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#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) +Test case verdict: SUCCESS + +Starting test case 'TC_inval_dummy' +#00 exec_power_step() <- State (re)set (current 16 dB, max 20 dB) +#01 enc_meas_rep() -> Measurement Results (invalid): RXLEV-FULL(63), RXQUAL-FULL(7), RXLEV-SUB(63), RXQUAL-SUB(7) +#01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3f 7f 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#01 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#02 enc_meas_rep() -> Measurement Results (invalid): RXLEV-FULL(00), RXQUAL-FULL(0), RXLEV-SUB(00), RXQUAL-SUB(0) +#02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 00 40 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(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 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#04 exec_power_step() <- Dummy block +#04 lchan_bs_pwr_ctrl() <- UL SACCH: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 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 exec_power_step() <- Dummy block +#06 lchan_bs_pwr_ctrl() <- UL SACCH: 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#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: 16 -> 16 (expected 16) +Test case verdict: SUCCESS + +Starting test case 'TC_rxlev_hyst' +#00 exec_power_step() <- State (re)set (current 12 dB, max 16 dB) +#01 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0) +#01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1f 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#01 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 13 (expected 13) +#02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0) +#02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1c 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#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) +#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) +#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) +#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) +#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) +#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) +Test case verdict: SUCCESS + +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) +#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(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 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0) +#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1a 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 14 (expected 14) +#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0) +#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1a 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 14 -> 11 (expected 11) +#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0) +#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 23 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#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) +Test case verdict: SUCCESS diff --git a/tests/testsuite.at b/tests/testsuite.at index 0590580..ba5a409 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -38,6 +38,13 @@ AT_CHECK([$abs_top_builddir/tests/power/ms_power_loop_test], [], [expout], [experr]) AT_CLEANUP +AT_SETUP([bs_power_loop]) +AT_KEYWORDS([power]) +cat $abs_srcdir/power/bs_power_loop_test.ok > expout +cat $abs_srcdir/power/bs_power_loop_test.err > experr +AT_CHECK([$abs_top_builddir/tests/power/bs_power_loop_test], [], [expout], [experr]) +AT_CLEANUP + AT_SETUP([tx_power]) AT_KEYWORDS([tx_power]) cat $abs_srcdir/tx_power/tx_power_test.ok > expout -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5b509e71d5f668b6b8b2abf8053c27f2a7c78451 Gerrit-Change-Number: 21447 Gerrit-PatchSet: 5 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 Dec 8 09:45:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:45:09 +0000 Subject: Change in osmo-bts[master]: power_control: cosmetic: fix weird spacing In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21480 ) Change subject: power_control: cosmetic: fix weird spacing ...................................................................... power_control: cosmetic: fix weird spacing Change-Id: Ia5661e82372f958e7cda4041d7b5a1cfb1d64afe --- M src/common/power_control.c 1 file changed, 9 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/common/power_control.c b/src/common/power_control.c index 4c4e283..a8bf031 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -130,11 +130,11 @@ return delta; } - /*! compute the new MS POWER LEVEL communicated to the MS and store it in lchan. - * \param lchan logical channel for which to compute (and in which to store) new power value. - * \param[in] ms_power_lvl MS Power Level received from Uplink L1 SACCH Header in SACCH block. - * \param[in] ul_rssi_dbm Signal level of the received SACCH block, in dBm. - */ +/*! compute the new MS POWER LEVEL communicated to the MS and store it in lchan. + * \param lchan logical channel for which to compute (and in which to store) new power value. + * \param[in] ms_power_lvl MS Power Level received from Uplink L1 SACCH Header in SACCH block. + * \param[in] ul_rssi_dbm Signal level of the received SACCH block, in dBm. + */ int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm) @@ -210,10 +210,10 @@ return 1; } - /*! compute the new Downlink attenuation value for the given logical channel. - * \param lchan logical channel for which to compute (and in which to store) new power value. - * \param[in] gh pointer to the beginning of (presumably) a Measurement Report. - */ +/*! compute the new Downlink attenuation value for the given logical channel. + * \param lchan logical channel for which to compute (and in which to store) new power value. + * \param[in] gh pointer to the beginning of (presumably) a Measurement Report. + */ int lchan_bs_pwr_ctrl(struct gsm_lchan *lchan, const struct gsm48_hdr *gh) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia5661e82372f958e7cda4041d7b5a1cfb1d64afe Gerrit-Change-Number: 21480 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 Tue Dec 8 09:45:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:45:09 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct bts_power_ctrl_params' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21499 ) Change subject: power_control: clarify units in 'struct bts_power_ctrl_params' ...................................................................... power_control: clarify units in 'struct bts_power_ctrl_params' Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Related: SYS#4918 --- M include/osmo-bts/bts.h M src/common/bts.c M src/common/power_control.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/ms_power_loop_test.c 11 files changed, 42 insertions(+), 42 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 3847a26..48f404c 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -104,9 +104,9 @@ /* UL/DL power control parameters */ struct bts_power_ctrl_params { /* Target value to strive to */ - int target; + int target_dbm; /* Tolerated deviation from target */ - int hysteresis; + int hysteresis_db; /* RxLev filtering algorithm */ enum bts_pf_algo pf_algo; /* (Optional) filtering parameters */ diff --git a/src/common/bts.c b/src/common/bts.c index a974b9f..e021864 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -332,8 +332,8 @@ /* Default UL/DL power control parameters */ bts->ul_power_ctrl = bts->dl_power_ctrl = \ (struct bts_power_ctrl_params) { - .target = -75, /* dBm default */ - .hysteresis = 3, /* -78 .. -72 dBm */ + .target_dbm = -75, + .hysteresis_db = 3, /* -78 .. -72 dBm */ .pf_algo = BTS_PF_ALGO_EWMA, .pf = { .ewma = { diff --git a/src/common/power_control.c b/src/common/power_control.c index a8bf031..d458a92 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -113,10 +113,10 @@ /* How many dBs measured power should be increased (+) or decreased (-) * to reach expected power. */ - delta = params->target - rxlev_dbm_avg; + delta = params->target_dbm - rxlev_dbm_avg; /* Tolerate small deviations from 'rx-target' */ - if (abs(delta) <= params->hysteresis) + if (abs(delta) <= params->hysteresis_db) return 0; /* Don't ever change more than PWR_{LOWER,RAISE}_MAX_DBM during one loop @@ -192,7 +192,7 @@ 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); + ul_rssi_dbm, params->target_dbm); return 0; } @@ -201,7 +201,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); + ms_power_lvl, state->max, ul_rssi_dbm, params->target_dbm); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; @@ -301,13 +301,13 @@ 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, delta); + state->current, new, state->max, params->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, delta); + state->current, state->max, params->target_dbm, delta); return 0; } } diff --git a/src/common/vty.c b/src/common/vty.c index 5d21e58..bbb0ba1 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -255,9 +255,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); - if (bts->ul_power_ctrl.hysteresis > 0) - vty_out(vty, " hysteresis %d", bts->ul_power_ctrl.hysteresis); + 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 */ @@ -633,8 +633,8 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.target = atoi(argv[0]); - bts->ul_power_ctrl.hysteresis = 0; + bts->ul_power_ctrl.target_dbm = atoi(argv[0]); + bts->ul_power_ctrl.hysteresis_db = 0; return CMD_SUCCESS; } @@ -650,8 +650,8 @@ { struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.target = atoi(argv[0]); - bts->ul_power_ctrl.hysteresis = atoi(argv[1]); + bts->ul_power_ctrl.target_dbm = atoi(argv[0]); + bts->ul_power_ctrl.hysteresis_db = atoi(argv[1]); return CMD_SUCCESS; } diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index 0fb9d00..4c71790 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -434,7 +434,7 @@ 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; + ? 0.0 : trx->bts->ul_power_ctrl.target_dbm; 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 be0ec30..b62e61c 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -449,7 +449,7 @@ 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; + ? 0.0 : trx->bts->ul_power_ctrl.target_dbm; 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 5f638e6..b79f731 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -429,7 +429,7 @@ 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; + ? 0.0 : trx->bts->ul_power_ctrl.target_dbm; 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 1f2aefb..65edbf0 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -154,7 +154,7 @@ { struct gsm_bts_trx *trx = vty->index; - trx->bts->ul_power_ctrl.target = atoi(argv[0]); + trx->bts->ul_power_ctrl.target_dbm = atoi(argv[0]); return CMD_SUCCESS; } diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 0353064..55a7ee7 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -198,7 +198,7 @@ { vty_out (vty, "'osmotrx ms-power-loop' is deprecated, use 'uplink-power-target' instead%s", VTY_NEWLINE); - g_bts->ul_power_ctrl.target = atoi(argv[0]); + g_bts->ul_power_ctrl.target_dbm = atoi(argv[0]); return CMD_SUCCESS; } diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index bc6b815..2f60cc0 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -95,7 +95,7 @@ g_trx = gsm_bts_trx_alloc(g_bts); OSMO_ASSERT(g_trx != NULL); - g_bts->dl_power_ctrl.target = rxlev2dbm(PWR_TEST_RXLEV_TARGET); + g_bts->dl_power_ctrl.target_dbm = rxlev2dbm(PWR_TEST_RXLEV_TARGET); g_bts->band = GSM_BAND_900; g_bts->c0 = g_trx; @@ -147,7 +147,7 @@ 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, step->params.hysteresis, + 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; return 0; /* we're done */ @@ -326,8 +326,8 @@ /* Enable hysteresis */ { .type = PWR_TEST_ST_SET_PARAMS, .params = { - .target = -110 + PWR_TEST_RXLEV_TARGET, - .hysteresis = 3, + .target_dbm = -110 + PWR_TEST_RXLEV_TARGET, + .hysteresis_db = 3, } }, @@ -347,7 +347,7 @@ /* Enable EWMA based power filtering */ { .type = PWR_TEST_ST_SET_PARAMS, .params = { - .target = -110 + PWR_TEST_RXLEV_TARGET, /* RxLev 30 */ + .target_dbm = -110 + PWR_TEST_RXLEV_TARGET, /* RxLev 30 */ .pf_algo = BTS_PF_ALGO_EWMA, .pf.ewma.alpha = 50, } diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 147c725..4f4f746 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -47,8 +47,8 @@ g_trx->ms_pwr_ctl_soft = true; - g_bts->ul_power_ctrl.target = -75; - g_bts->dl_power_ctrl.target = -75; + g_bts->ul_power_ctrl.target_dbm = -75; + g_bts->dl_power_ctrl.target_dbm = -75; g_bts->band = GSM_BAND_1800; g_bts->c0 = g_trx; @@ -99,7 +99,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, 0, 5); + apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 5); apply_power_test(lchan, -90, 1, 3); apply_power_test(lchan, -90, 1, 2); /* .max is pwr lvl 2 */ @@ -117,7 +117,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, 0, 29); + apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 29); /* Now go down, steps are double size in this direction: */ apply_power_test(lchan, -45, 1, 1); @@ -125,13 +125,13 @@ 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 + 2, 1, 10); - apply_power_test(lchan, g_bts->ul_power_ctrl.target - 2, 1, 9); + 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); /* 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 + 2, 1, 14); + apply_power_test(lchan, g_bts->ul_power_ctrl.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); @@ -215,22 +215,22 @@ lchan = &g_trx->ts[0].lchan[0]; /* Tolerate power deviations in range -80 .. -70 */ - g_bts->ul_power_ctrl.hysteresis = 5; + g_bts->ul_power_ctrl.hysteresis_db = 5; 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, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target + 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target - 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 + 3, 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, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target + 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target - 5, 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, g_bts->ul_power_ctrl.target - 10, 1, 13); + apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 10, 1, 13); } int main(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Gerrit-Change-Number: 21499 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 Dec 8 09:45:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:45:10 +0000 Subject: Change in osmo-bts[master]: power_control: clarify units in 'struct lchan_power_ctrl_state' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21500 ) Change subject: power_control: clarify units in 'struct lchan_power_ctrl_state' ...................................................................... power_control: clarify units in 'struct lchan_power_ctrl_state' Change-Id: I934f2d1e1064eed7587bc5693ef981bf449a1b81 Related: SYS#4918 --- M include/osmo-bts/gsm_data.h 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/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 6af96fe..fdd5ba3 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -161,6 +161,9 @@ 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. */ struct lchan_power_ctrl_state { uint8_t current; uint8_t max; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I934f2d1e1064eed7587bc5693ef981bf449a1b81 Gerrit-Change-Number: 21500 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 Dec 8 09:46:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:46:13 +0000 Subject: Change in osmo-bts[master]: rsl: properly initialize MS/BS Power Control state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21448 ) Change subject: rsl: properly initialize MS/BS Power Control state ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id9719088fc6e9479c13e9b327a3466d9e2810a3a Gerrit-Change-Number: 21448 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 09:46: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 Dec 8 09:46:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 09:46:40 +0000 Subject: Change in osmo-bts[master]: vty: resurrect per-lchan BS/MS Power Control information In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21481 ) Change subject: vty: resurrect per-lchan BS/MS Power Control information ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Gerrit-Change-Number: 21481 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 09:46: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 Dec 8 09:50:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 09:50:17 +0000 Subject: Change in libosmocore[master]: logging: Assing different 8bit colors to built-in subsystems In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21599 ) Change subject: logging: Assing different 8bit colors to built-in subsystems ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8c0f91a61fbca0441faf66b3f368f45f886187c Gerrit-Change-Number: 21599 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 09:50: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 Dec 8 10:30:06 2020 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 8 Dec 2020 10:30:06 +0000 Subject: Change in osmo-trx[master]: ipc-driver-test: Allow setting dir prefix for UD socket In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21594 ) Change subject: ipc-driver-test: Allow setting dir prefix for UD socket ...................................................................... Patch Set 1: Do we still need the socket number? Why not just go for the full path instead? I only did the sock number because I was lazy and it was pretty much my own arcane debug tool, not used by anyone else... -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc Gerrit-Change-Number: 21594 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 10:30:06 +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 Dec 8 10:58:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 10:58:18 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21598 ) Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... Patch Set 3: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21598/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/21598/3//COMMIT_MSG at 18 PS3, Line 18: bssgp_bvc_fsm.c is a genric implementation of the BSSGP BVC generic https://gerrit.osmocom.org/c/libosmocore/+/21598/3/src/gb/bssgp_bvc_fsm.c File src/gb/bssgp_bvc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21598/3/src/gb/bssgp_bvc_fsm.c at 4 PS3, Line 4: /* FIXME: This should probably be moved to libosmogb? */ it's already inlibosmogb right? https://gerrit.osmocom.org/c/libosmocore/+/21598/3/src/gb/bssgp_bvc_fsm.c at 70 PS3, Line 70: uint32_t advertised; not important, but these can really be uint16_t then. https://gerrit.osmocom.org/c/libosmocore/+/21598/3/src/gb/bssgp_bvc_fsm.c at 283 PS3, Line 283: osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, T1_SECS, T1); Not required, but you probably want to move to using osmo_tdef structures and FSM APIs at some point, so that timers are hooked transparently to state changes. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 10:58:18 +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 Dec 8 11:02:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 11:02:15 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Disable libmnl dependency cross-compiling osmo-bts References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21603 ) Change subject: contrib: Disable libmnl dependency cross-compiling osmo-bts ...................................................................... contrib: Disable libmnl dependency cross-compiling osmo-bts Only newest OE SDKs have libmnl added, but we don't need this feature anyway, so let's disable it in order to get builds running fine again. Change-Id: Ief9cbca6e10b1ed6acf6e079f660fc3f7c863c7b --- M contrib/jenkins-build-osmo-bts-oc2g.sh M contrib/jenkins-build-osmo-bts-sysmo.sh 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/03/21603/1 diff --git a/contrib/jenkins-build-osmo-bts-oc2g.sh b/contrib/jenkins-build-osmo-bts-oc2g.sh index 9a02ab0..41eac19 100755 --- a/contrib/jenkins-build-osmo-bts-oc2g.sh +++ b/contrib/jenkins-build-osmo-bts-oc2g.sh @@ -24,7 +24,7 @@ git_url="${prev_git_url}" L1_OC2G_HEADERS="$PWD/oc2g-fw/inc" -build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug +build_repo libosmocore --disable-pcsc --disable-libmnl --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug build_repo libosmo-abis --disable-dahdi build_repo osmo-bts --disable-sysmocom-bts --enable-oc2g --with-oc2g="$L1_OC2G_HEADERS" diff --git a/contrib/jenkins-build-osmo-bts-sysmo.sh b/contrib/jenkins-build-osmo-bts-sysmo.sh index fc528d3..731867f 100755 --- a/contrib/jenkins-build-osmo-bts-sysmo.sh +++ b/contrib/jenkins-build-osmo-bts-sysmo.sh @@ -18,7 +18,7 @@ prefix_real="$DESTDIR$prefix" . "$(dirname "$0")/jenkins-build-common.sh" -build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug +build_repo libosmocore --disable-pcsc --disable-libmnl --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug build_repo libosmo-abis --disable-dahdi build_repo osmo-bts --enable-sysmocom-bts --with-openbsc=$base/openbsc/openbsc/include -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21603 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: Ief9cbca6e10b1ed6acf6e079f660fc3f7c863c7b Gerrit-Change-Number: 21603 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 Dec 8 11:02:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 11:02:26 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Disable libmnl dependency cross-compiling osmo-bts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21603 ) Change subject: contrib: Disable libmnl dependency cross-compiling osmo-bts ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21603 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: Ief9cbca6e10b1ed6acf6e079f660fc3f7c863c7b Gerrit-Change-Number: 21603 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 11:02: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 Dec 8 11:02:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 11:02:28 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Disable libmnl dependency cross-compiling osmo-bts In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21603 ) Change subject: contrib: Disable libmnl dependency cross-compiling osmo-bts ...................................................................... contrib: Disable libmnl dependency cross-compiling osmo-bts Only newest OE SDKs have libmnl added, but we don't need this feature anyway, so let's disable it in order to get builds running fine again. Change-Id: Ief9cbca6e10b1ed6acf6e079f660fc3f7c863c7b --- M contrib/jenkins-build-osmo-bts-oc2g.sh M contrib/jenkins-build-osmo-bts-sysmo.sh 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/contrib/jenkins-build-osmo-bts-oc2g.sh b/contrib/jenkins-build-osmo-bts-oc2g.sh index 9a02ab0..41eac19 100755 --- a/contrib/jenkins-build-osmo-bts-oc2g.sh +++ b/contrib/jenkins-build-osmo-bts-oc2g.sh @@ -24,7 +24,7 @@ git_url="${prev_git_url}" L1_OC2G_HEADERS="$PWD/oc2g-fw/inc" -build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug +build_repo libosmocore --disable-pcsc --disable-libmnl --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug build_repo libosmo-abis --disable-dahdi build_repo osmo-bts --disable-sysmocom-bts --enable-oc2g --with-oc2g="$L1_OC2G_HEADERS" diff --git a/contrib/jenkins-build-osmo-bts-sysmo.sh b/contrib/jenkins-build-osmo-bts-sysmo.sh index fc528d3..731867f 100755 --- a/contrib/jenkins-build-osmo-bts-sysmo.sh +++ b/contrib/jenkins-build-osmo-bts-sysmo.sh @@ -18,7 +18,7 @@ prefix_real="$DESTDIR$prefix" . "$(dirname "$0")/jenkins-build-common.sh" -build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug +build_repo libosmocore --disable-pcsc --disable-libmnl --disable-doxygen --disable-gnutls --disable-detect-tls-gcc-arm-bug build_repo libosmo-abis --disable-dahdi build_repo osmo-bts --enable-sysmocom-bts --with-openbsc=$base/openbsc/openbsc/include -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21603 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: Ief9cbca6e10b1ed6acf6e079f660fc3f7c863c7b Gerrit-Change-Number: 21603 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 8 12:02:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 8 Dec 2020 12:02:13 +0000 Subject: Change in osmo-gsm-tester[master]: log passed tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 ) Change subject: log passed tests ...................................................................... Patch Set 3: it first lists the failures, then the passes -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 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: Ib85a5b90e267c2ed2f844691187ecadc8939b1bb Gerrit-Change-Number: 21509 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12:02: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 Tue Dec 8 12:11:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 12:11:07 +0000 Subject: Change in osmo-bts[master]: rsl: properly initialize MS/BS Power Control state 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/+/21448 to look at the new patch set (#7). Change subject: rsl: properly initialize MS/BS Power Control state ...................................................................... rsl: properly initialize MS/BS Power Control state struct lchan_power_ctrl_state actually contains more fields, which also must be initialized on CHANnel ACTIVation. Change-Id: Id9719088fc6e9479c13e9b327a3466d9e2810a3a Related: SYS#4918 --- M src/common/rsl.c 1 file changed, 10 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/48/21448/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id9719088fc6e9479c13e9b327a3466d9e2810a3a Gerrit-Change-Number: 21448 Gerrit-PatchSet: 7 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 Tue Dec 8 12:14:15 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 12:14:15 +0000 Subject: Change in osmo-bts[master]: power_control: make raise/lower step limitation configurable 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/+/21568 to look at the new patch set (#2). Change subject: power_control: make raise/lower step limitation configurable ...................................................................... power_control: make raise/lower step limitation configurable Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Related: SYS#4918 --- M include/osmo-bts/bts.h M include/osmo-bts/power_control.h M src/common/bts.c 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 M tests/power/ms_power_loop_test.c 8 files changed, 64 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/21568/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Gerrit-Change-Number: 21568 Gerrit-PatchSet: 2 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 Tue Dec 8 12:14:29 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 12:14:29 +0000 Subject: Change in osmo-bts[master]: power_control: make raise/lower step limitation configurable In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21568 ) Change subject: power_control: make raise/lower step limitation configurable ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/21568/1/include/osmo-bts/bts.h File include/osmo-bts/bts.h: https://gerrit.osmocom.org/c/osmo-bts/+/21568/1/include/osmo-bts/bts.h at 110 PS1, Line 110: as maximum > at maximum (also below) Done https://gerrit.osmocom.org/c/osmo-bts/+/21568/1/include/osmo-bts/bts.h at 111 PS1, Line 111: in > the variable name nor the comment really indicate it is about the _step_ size. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Gerrit-Change-Number: 21568 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 12:14:29 +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 Dec 8 12:15:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 12:15:49 +0000 Subject: Change in libosmocore[master]: logging: Assing different 8bit colors to built-in subsystems In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21599 ) Change subject: logging: Assing different 8bit colors to built-in subsystems ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8c0f91a61fbca0441faf66b3f368f45f886187c Gerrit-Change-Number: 21599 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12:15: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 Dec 8 12:18:33 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 12:18:33 +0000 Subject: Change in osmo-bts[master]: rsl: properly initialize MS/BS Power Control state In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21448 ) Change subject: rsl: properly initialize MS/BS Power Control state ...................................................................... rsl: properly initialize MS/BS Power Control state struct lchan_power_ctrl_state actually contains more fields, which also must be initialized on CHANnel ACTIVation. Change-Id: Id9719088fc6e9479c13e9b327a3466d9e2810a3a Related: SYS#4918 --- M src/common/rsl.c 1 file changed, 10 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/rsl.c b/src/common/rsl.c index 2ebfb32..30fa259 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1154,14 +1154,18 @@ gsm_lchans_name(lchan->state)); /* Initialize MS Power Control defaults */ - lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(lchan->ts->trx->bts->band, 0); - lchan->ms_power_ctrl.current = lchan->ms_power_ctrl.max; - lchan->ms_power_ctrl.fixed = true; + 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.max = 2 * 15; - lchan->bs_power_ctrl.current = 0; - lchan->bs_power_ctrl.fixed = true; + 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)); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id9719088fc6e9479c13e9b327a3466d9e2810a3a Gerrit-Change-Number: 21448 Gerrit-PatchSet: 7 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 Tue Dec 8 12:20:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:20:05 +0000 Subject: Change in libosmocore[master]: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21589 ) Change subject: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21589/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21589/1/src/gb/gprs_ns2_vc_fsm.c at 403 PS1, Line 403: .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), > Only some of the lines are wrong, others are good, so I'm asking simply not to make it worse * I don't think we have a general rule about not putting multiple in one line. Infact, IIRC all the orgiinal code I introduced was using multiple per line * whether it's "worse" is IMHO a question of taste It's OK to point out clear violations of [documented, established] coding style. However, pointing out something that is not a universal rule _and_ is not followed in the surrounding code is not OK for me, sorry. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc4d960ddad82e3ebbf571d8ff9f24854b52a946 Gerrit-Change-Number: 21589 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12:20:05 +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 Tue Dec 8 12:20:29 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 12:20:29 +0000 Subject: Change in osmo-gsm-tester[master]: log passed tests In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 ) Change subject: log passed tests ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 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: Ib85a5b90e267c2ed2f844691187ecadc8939b1bb Gerrit-Change-Number: 21509 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12:20: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 Dec 8 12:22:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 12:22:30 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Add #defines for [extended] feature bits In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21595 ) Change subject: gsm_08_18.h: Add #defines for [extended] feature bits ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21595 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7743cb901988c8fddd91127cfdca6e54b3d44ea8 Gerrit-Change-Number: 21595 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12: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 Tue Dec 8 12:24:16 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 12:24:16 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Patch Set 9: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 9 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12:24: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 Dec 8 12:24:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:24:50 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21598 ) Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... Patch Set 3: (3 comments) One of the questions where I don't have a clear feeling about is whether we should prefix also the BBV FSM with bssgp2_ instead of bssgp_. It's not like we had a FSM before, so there is no need to separate a new from an old implementatin in prefix. But then, mayb it makes sense to prefix all symbols introduced around the same time/generation of code with the same prefix? https://gerrit.osmocom.org/c/libosmocore/+/21598/3/src/gb/bssgp_bvc_fsm.c File src/gb/bssgp_bvc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21598/3/src/gb/bssgp_bvc_fsm.c at 4 PS3, Line 4: /* FIXME: This should probably be moved to libosmogb? */ > it's already inlibosmogb right? Ack https://gerrit.osmocom.org/c/libosmocore/+/21598/3/src/gb/bssgp_bvc_fsm.c at 70 PS3, Line 70: uint32_t advertised; > not important, but these can really be uint16_t then. AS you can see, today's spec already utilizes all 16 of those 16 bits. Wait for Rel16 or later defining more bits, and you will be happy we have used an uint32_t here from the start :P https://gerrit.osmocom.org/c/libosmocore/+/21598/3/src/gb/bssgp_bvc_fsm.c at 283 PS3, Line 283: osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, T1_SECS, T1); > Not required, but you probably want to move to using osmo_tdef structures and FSM APIs at some point [?] There's actually a related FIXME in Line 25, thanks. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12:24:50 +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 Dec 8 12:27:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:27:11 +0000 Subject: Change in libosmocore[master]: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21589 ) Change subject: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc4d960ddad82e3ebbf571d8ff9f24854b52a946 Gerrit-Change-Number: 21589 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: Tue, 08 Dec 2020 12:27: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 Dec 8 12:27:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:27:19 +0000 Subject: Change in libosmocore[master]: tlv: Introduce enum with error codes for TLV parser functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21535 ) Change subject: tlv: Introduce enum with error codes for TLV parser functions ...................................................................... Patch Set 9: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0b352792089c5c0c714712d2ea237beb92e1d73f Gerrit-Change-Number: 21535 Gerrit-PatchSet: 9 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12: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 Dec 8 12:27:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:27:24 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21544 ) Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12: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 Tue Dec 8 12:27:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:27:38 +0000 Subject: Change in libosmocore[master]: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21589 ) Change subject: ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state ...................................................................... ns2: Accept NS-UNBLOCK-ACK in UNBLOCKED state if we transition to UNBLOCKED as a result of a locally-generated unblock action, then of course we will receive an inbound UNBLOCK-ACK. Let's avoid error log messages and confusign the peer with NS-STATUS in this case: DLNS DEBUG GPRS-NS2-VC(FR-hdlcnet3-DLCI18-NSEI2001-NSVCI3)[0x612000001720]{UNBLOCKED}: Received Event UNBLOCK_ACK (gprs_ns2_vc_fsm.c:692) DLNS ERROR GPRS-NS2-VC(FR-hdlcnet3-DLCI18-NSEI2001-NSVCI3)[0x612000001720]{UNBLOCKED}: Event UNBLOCK_ACK not permitted (gprs_ns2_vc_fsm.c:692) Change-Id: Icc4d960ddad82e3ebbf571d8ff9f24854b52a946 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) 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 08b6b2d..0f6eeab 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -400,7 +400,7 @@ .onenter = gprs_ns2_st_blocked_onenter, }, [GPRS_NS2_ST_UNBLOCKED] = { - .in_event_mask = S(GPRS_NS2_EV_BLOCK), + .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), .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/+/21589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc4d960ddad82e3ebbf571d8ff9f24854b52a946 Gerrit-Change-Number: 21589 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 Tue Dec 8 12:27:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:27:39 +0000 Subject: Change in libosmocore[master]: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21534 ) Change subject: Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols ...................................................................... Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols This extends our existing TLV parser with the ability to * validate that mandatory IEs of a given message are present * validate that all present IEs are of required minimum length Introducing this generic layer will help us to reduce open-coded imperative verification across virtually all the protocols we implement, as well as add validation to those protocols where we don't properly perform related input validation yet. Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 --- M include/osmocom/gsm/tlv.h M src/gsm/libosmogsm.map M src/gsm/tlv_parser.c 3 files changed, 159 insertions(+), 1 deletion(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index 254c21b..a307b3d 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -620,4 +620,54 @@ int osmo_shift_lv(uint8_t **data, size_t *data_len, uint8_t **value, size_t *value_len); +#define MSG_DEF(name, mand_ies, flags) { name, mand_ies, ARRAY_SIZE(mand_ies), flags } + +struct osmo_tlv_prot_msg_def { + /*! human-readable name of message type (optional) */ + const char *name; + /*! array of mandatory IEs */ + const uint8_t *mand_ies; + /*! number of entries in 'mand_ies' above */ + uint8_t mand_count; + /*! user-defined flags (like uplink/downlink/...) */ + uint32_t flags; +}; +struct osmo_tlv_prot_ie_def { + /*! minimum length of IE value part, in octets */ + uint16_t min_len; + /*! huamn-readable name (optional) */ + const char *name; +}; + +/*! Osmocom TLV protocol definition */ +struct osmo_tlv_prot_def { + /*! human-readable name of protocol */ + const char *name; + /*! TLV parser definition (optional) */ + const struct tlv_definition *tlv_def; + /*! definition of each message (8-bit message type) */ + struct osmo_tlv_prot_msg_def msg_def[256]; + /*! definition of IE for each 8-bit tag */ + struct osmo_tlv_prot_ie_def ie_def[256]; + /*! value_string array of message type names (legacy, if not populated in msg_def) */ + const struct value_string *msgt_names; +}; + +const char *osmo_tlv_prot_msg_name(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type); +const char *osmo_tlv_prot_ie_name(const struct osmo_tlv_prot_def *pdef, uint8_t iei); + +int osmo_tlv_prot_validate_tp(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type, + const struct tlv_parsed *tp, int log_subsys, const char *log_pfx); + +int osmo_tlv_prot_parse(const struct osmo_tlv_prot_def *pdef, + struct tlv_parsed *dec, unsigned int dec_multiples, uint8_t msg_type, + const uint8_t *buf, unsigned int buf_len, uint8_t lv_tag, uint8_t lv_tag2, + int log_subsys, const char *log_pfx); + +static inline uint32_t osmo_tlv_prot_msgt_flags(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type) +{ + return pdef->msg_def[msg_type].flags; +} + + /*! @} */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index f339120..bcded1c 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -580,6 +580,11 @@ osmo_match_shift_tlv; osmo_shift_lv; +osmo_tlv_prot_msg_name; +osmo_tlv_prot_ie_name; +osmo_tlv_prot_validate_tp; +osmo_tlv_prot_parse; + gan_msgt_vals; gan_pdisc_vals; diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 159b42b..24edd0c 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -1,4 +1,4 @@ -/* (C) 2008-2017 by Harald Welte +/* (C) 2008-2020 by Harald Welte * (C) 2016-2017 by sysmocom - s.f.m.c. GmbH * * All Rights Reserved @@ -24,6 +24,7 @@ #include #include #include +#include #include /*! \addtogroup tlv @@ -627,4 +628,106 @@ return -1; } +static __thread char ienamebuf[32]; +static __thread char msgnamebuf[32]; + +/*! get the message name for given msg_type in protocol pdef */ +const char *osmo_tlv_prot_msg_name(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type) +{ + if (pdef->msg_def[msg_type].name) { + return pdef->msg_def[msg_type].name; + } else if (pdef->msgt_names) { + return get_value_string(pdef->msgt_names, msg_type); + } else { + snprintf(msgnamebuf, sizeof(msgnamebuf), "Unknown msg_type 0x%02x", msg_type); + return msgnamebuf; + } +} + +/*! get the IE name for given IEI in protocol pdef */ +const char *osmo_tlv_prot_ie_name(const struct osmo_tlv_prot_def *pdef, uint8_t iei) +{ + if (pdef->ie_def[iei].name) { + return pdef->ie_def[iei].name; + } else { + snprintf(ienamebuf, sizeof(ienamebuf), "Unknown IEI 0x%02x", iei); + return ienamebuf; + } +} + +/*! Validate an already TLV-decoded message against the protocol definition. + * \param[in] pdef protocol definition of given protocol + * \param[in] msg_type message type of the parsed message + * \param[in] tp TLV parser result + * \param[in] log_subsys logging sub-system for log messages + * \param[in] log_pfx prefix for log messages + * \returns 0 in case of success; negative osmo_tlv_parser_error in case of error + */ +int osmo_tlv_prot_validate_tp(const struct osmo_tlv_prot_def *pdef, uint8_t msg_type, + const struct tlv_parsed *tp, int log_subsys, const char *log_pfx) +{ + const struct osmo_tlv_prot_msg_def *msg_def= &pdef->msg_def[msg_type]; + unsigned int num_err = 0; + unsigned int i; + + if (msg_def->mand_ies) { + for (i = 0; i < msg_def->mand_count; i++) { + uint8_t iei = msg_def->mand_ies[i]; + if (!TLVP_PRESENT(tp, iei)) { + LOGP(log_subsys, LOGL_ERROR, "%s %s %s: Missing Mandatory IE: %s\n", + log_pfx, pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), + osmo_tlv_prot_ie_name(pdef, iei)); + num_err++; + } + } + } + + for (i = 0; i < ARRAY_SIZE(tp->lv); i++) { + uint16_t min_len; + + if (!TLVP_PRESENT(tp, i)) + continue; + + min_len = pdef->ie_def[i].min_len; + if (TLVP_LEN(tp, i) < min_len) { + LOGP(log_subsys, LOGL_ERROR, "%s %s %s: Short IE %s: %u < %u\n", log_pfx, + pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), + osmo_tlv_prot_ie_name(pdef, i), TLVP_LEN(tp, i), min_len); + num_err++; + } + } + + return -num_err; +} + +/*! Parse + Validate a TLV-encoded message against the protocol definition. + * \param[in] pdef protocol definition of given protocol + * \param[out] dec caller-allocated pointer to \ref tlv_parsed + * \param[in] dec_multiples length of the tlv_parsed[] in \a dec. + * \param[in] msg_type message type of the parsed message + * \param[in] buf the input data buffer to be parsed + * \param[in] buf_len length of the input data buffer + * \param[in] lv_tag an initial LV tag at the start of the buffer + * \param[in] lv_tag2 a second initial LV tag following the \a lv_tag + * \param[in] log_subsys logging sub-system for log messages + * \param[in] log_pfx prefix for log messages + * \returns 0 in case of success; negative osmo_tlv_parser_error in case of error + */ +int osmo_tlv_prot_parse(const struct osmo_tlv_prot_def *pdef, + struct tlv_parsed *dec, unsigned int dec_multiples, uint8_t msg_type, + const uint8_t *buf, unsigned int buf_len, uint8_t lv_tag, uint8_t lv_tag2, + int log_subsys, const char *log_pfx) +{ + int rc; + + rc = tlv_parse2(dec, dec_multiples, pdef->tlv_def, buf, buf_len, lv_tag, lv_tag2); + if (rc < 0) { + LOGP(log_subsys, LOGL_ERROR, "%s %s %s: TLV parser error %d\n", log_pfx, + pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), rc); + return rc; + } + + return osmo_tlv_prot_validate_tp(pdef, msg_type, dec, log_subsys, log_pfx); +} + /*! @} */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912 Gerrit-Change-Number: 21534 Gerrit-PatchSet: 10 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 Dec 8 12:27:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:27:39 +0000 Subject: Change in libosmocore[master]: tlv: Introduce enum with error codes for TLV parser functions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21535 ) Change subject: tlv: Introduce enum with error codes for TLV parser functions ...................................................................... tlv: Introduce enum with error codes for TLV parser functions Change-Id: I0b352792089c5c0c714712d2ea237beb92e1d73f --- M include/osmocom/gsm/tlv.h M src/gsm/tlv_parser.c 2 files changed, 29 insertions(+), 17 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/gsm/tlv.h b/include/osmocom/gsm/tlv.h index a307b3d..d34b7da 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -40,6 +40,16 @@ /*! maximum length of TLV of one byte length */ #define TVLV_MAX_ONEBYTE 0x7f +/*! error return codes of various TLV parser functions */ +enum osmo_tlv_parser_error { + OSMO_TLVP_ERR_OFS_BEYOND_BUFFER = -1, + OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER = -2, + OSMO_TLVP_ERR_UNKNOWN_TLV_TYPE = -3, + + OSMO_TLVP_ERR_MAND_IE_MISSING = -50, + OSMO_TLVP_ERR_IE_TOO_SHORT = -51, +}; + /*! gross length of a TVLV type field */ static inline uint16_t TVLV_GROSS_LEN(uint16_t len) { diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 24edd0c..7930d64 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -266,24 +266,24 @@ case TLV_TYPE_TLV: tlv: /* GSM TS 04.07 11.2.4: Type 4 TLV */ if (buf + 1 > buf + buf_len) - return -1; + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+2; *o_len = *(buf+1); len = *o_len + 2; if (len > buf_len) - return -2; + 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+1) & 0x80) { /* like TL16Vbut without highest bit of len */ if (2 > buf_len) - return -1; + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+3; *o_len = (*(buf+1) & 0x7F) << 8 | *(buf+2); len = *o_len + 3; if (len > buf_len) - return -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; } else { /* like TLV */ goto tlv; @@ -293,26 +293,26 @@ if (*(buf+1) & 0x80) { /* like TLV, but without highest bit of len */ if (buf + 1 > buf + buf_len) - return -1; + 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 -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; } /* like TL16V, fallthrough */ case TLV_TYPE_TL16V: if (2 > buf_len) - return -1; + 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 -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; default: - return -3; + return OSMO_TLVP_ERR_UNKNOWN_TLV_TYPE; } return len; @@ -370,12 +370,12 @@ const uint8_t *val; uint16_t parsed_len; if (ofs > buf_len) - return -1; + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; val = &buf[ofs+1]; len = buf[ofs]; parsed_len = len + 1; if (ofs + parsed_len > buf_len) - return -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; num_parsed++; ofs += parsed_len; /* store the resulting val and len */ @@ -391,12 +391,12 @@ const uint8_t *val; uint16_t parsed_len; if (ofs > buf_len) - return -1; + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; val = &buf[ofs+1]; len = buf[ofs]; parsed_len = len + 1; if (ofs + parsed_len > buf_len) - return -2; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; num_parsed++; ofs += parsed_len; /* store the resulting val and len */ @@ -667,7 +667,7 @@ const struct tlv_parsed *tp, int log_subsys, const char *log_pfx) { const struct osmo_tlv_prot_msg_def *msg_def= &pdef->msg_def[msg_type]; - unsigned int num_err = 0; + unsigned int err = 0; unsigned int i; if (msg_def->mand_ies) { @@ -677,7 +677,8 @@ LOGP(log_subsys, LOGL_ERROR, "%s %s %s: Missing Mandatory IE: %s\n", log_pfx, pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), osmo_tlv_prot_ie_name(pdef, iei)); - num_err++; + if (!err) + err = OSMO_TLVP_ERR_MAND_IE_MISSING; } } } @@ -693,11 +694,12 @@ LOGP(log_subsys, LOGL_ERROR, "%s %s %s: Short IE %s: %u < %u\n", log_pfx, pdef->name, osmo_tlv_prot_msg_name(pdef, msg_type), osmo_tlv_prot_ie_name(pdef, i), TLVP_LEN(tp, i), min_len); - num_err++; + if (!err) + err = OSMO_TLVP_ERR_IE_TOO_SHORT; } } - return -num_err; + return err; } /*! Parse + Validate a TLV-encoded message against the protocol definition. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0b352792089c5c0c714712d2ea237beb92e1d73f Gerrit-Change-Number: 21535 Gerrit-PatchSet: 10 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 Tue Dec 8 12:27:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:27:40 +0000 Subject: Change in libosmocore[master]: bssgp: Add osmo_tlv_prot_def for BSSGP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21544 ) Change subject: bssgp: Add osmo_tlv_prot_def for BSSGP ...................................................................... bssgp: Add osmo_tlv_prot_def for BSSGP Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 --- M include/osmocom/gprs/gprs_bssgp.h M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 3 files changed, 317 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved dexter: 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 e962b44..dc2a8d0 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -12,8 +12,21 @@ #include /* gprs_bssgp_util.c */ -typedef int (*bssgp_bvc_send)(void *ctx, struct msgb *msg); +#define BSSGP_PDUF_UL 0x0001 /* PDU may occur in uplink */ +#define BSSGP_PDUF_DL 0x0002 /* PDU may occur in downlink */ +#define BSSGP_PDUF_SIG 0x0004 /* PDU may occur on Signaling BVC */ +#define BSSGP_PDUF_PTP 0x0008 /* PDU may occur on PTP BVC */ +#define BSSGP_PDUF_PTM 0x0010 /* PDU may occur on PTM BVC */ + +extern const struct osmo_tlv_prot_def osmo_pdef_bssgp; + +/*! return the PDU type flags (UL/DL/SIG/PTP/PTM) of specified PDU type */ +static inline uint32_t bssgp_pdu_type_flags(uint8_t pdu_type) { + return osmo_tlv_prot_msgt_flags(&osmo_pdef_bssgp, pdu_type); +} + +typedef int (*bssgp_bvc_send)(void *ctx, struct msgb *msg); extern struct gprs_ns_inst *bssgp_nsi; void bssgp_set_bssgp_callback(bssgp_bvc_send ns_send, void *data); struct msgb *bssgp_msgb_alloc(void); diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index a4ee926..8342d7c 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -179,6 +179,307 @@ { 0, NULL }, }; +static const uint8_t dl_ud_ies[] = { BSSGP_IE_PDU_LIFETIME }; +static const uint8_t ul_ud_ies[] = { BSSGP_IE_CELL_ID }; +static const uint8_t ra_cap_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_MS_RADIO_ACCESS_CAP }; +static const uint8_t dl_mb_ud_ies[] = { BSSGP_IE_PDU_LIFETIME, BSSGP_IE_TMGI, BSSGP_IE_LLC_PDU }; +static const uint8_t ul_mb_ud_ies[] = { BSSGP_IE_PDU_LIFETIME, BSSGP_IE_TMGI, BSSGP_IE_LLC_PDU }; +static const uint8_t pag_ps_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_QOS_PROFILE }; +static const uint8_t pag_cs_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_DRX_PARAMS }; +static const uint8_t ra_cap_upd_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }; +static const uint8_t ra_cap_upd_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_RA_CAP_UPD_CAUSE }; +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 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 }; +static const uint8_t d_pag_ps_ies[] = { BSSGP_IE_IMSI }; +static const uint8_t d_pag_ps_resp_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_T_UNTIL_NEXT_PAGING }; +static const uint8_t d_pag_ps_rej_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_T_UNTIL_NEXT_PAGING }; +static const uint8_t ms_reg_enq_ies[] = { BSSGP_IE_IMSI }; +static const uint8_t ms_reg_enq_res_ies[] = { BSSGP_IE_IMSI }; +static const uint8_t flush_ll_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_BVCI }; +static const uint8_t flush_ll_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_FLUSH_ACTION }; +static const uint8_t llc_disc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_LLC_FRAMES_DISCARDED, BSSGP_IE_BVCI, + BSSGP_IE_NUM_OCT_AFF }; +static const uint8_t fc_bvc_ies[] = { BSSGP_IE_TAG, BSSGP_IE_BVC_BUCKET_SIZE, BSSGP_IE_BUCKET_LEAK_RATE, + BSSGP_IE_BMAX_DEFAULT_MS, BSSGP_IE_R_DEFAULT_MS }; +static const uint8_t fc_bvc_ack_ies[] = { BSSGP_IE_TAG }; +static const uint8_t fc_ms_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_MS_BUCKET_SIZE, + BSSGP_IE_BUCKET_LEAK_RATE }; +static const uint8_t fc_ms_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }; +static const uint8_t block_ies[] = { BSSGP_IE_BVCI, BSSGP_IE_CAUSE }; +static const uint8_t block_ack_ies[] = { BSSGP_IE_BVCI }; +static const uint8_t unblock_ies[] = { BSSGP_IE_BVCI }; +static const uint8_t unblock_ack_ies[] = { BSSGP_IE_BVCI }; +static const uint8_t reset_ies[] = { BSSGP_IE_BVCI, BSSGP_IE_CAUSE }; +static const uint8_t reset_ack_ies[] = { BSSGP_IE_BVCI }; +static const uint8_t status_ies[] = { BSSGP_IE_CAUSE }; +static const uint8_t inv_trc_ies[] = { BSSGP_IE_TRACE_TYPE, BSSGP_IE_TRACE_REFERENC }; +static const uint8_t dl_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }; +static const uint8_t crt_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, + BSSGP_IE_PACKET_FLOW_TIMER, BSSGP_IE_AGG_BSS_QOS_PROFILE }; +static const uint8_t crt_bss_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, + BSSGP_IE_AGG_BSS_QOS_PROFILE }; +static const uint8_t crt_bss_pfc_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }; +static const uint8_t mod_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, + BSSGP_IE_AGG_BSS_QOS_PROFILE }; +static const uint8_t mod_bss_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, + BSSGP_IE_PACKET_FLOW_TIMER, BSSGP_IE_AGG_BSS_QOS_PROFILE }; +static const uint8_t del_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }; +static const uint8_t del_bss_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }; +static const uint8_t fc_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_PFC_FLOW_CTRL_PARAMS }; +static const uint8_t fc_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }; +static const uint8_t del_bss_pfc_req_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }; +static const uint8_t ps_ho_required_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE, BSSGP_IE_CELL_ID, + BSSGP_IE_ACTIVE_PFC_LIST }; +static const uint8_t ps_ho_required_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_LIST_OF_SETUP_PFC }; +static const uint8_t ps_ho_required_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE }; +static const uint8_t ps_ho_request_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_IMSI, BSSGP_IE_CAUSE, + BSSGP_IE_CELL_ID, BSSGP_IE_SBSS_TO_TBSS_TR_CONT, + BSSGP_IE_PFC_TO_BE_SETUP_LIST }; +static const uint8_t ps_ho_request_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_LIST_OF_SETUP_PFC, + BSSGP_IE_TBSS_TO_SBSS_TR_CONT }; +static const uint8_t ps_ho_request_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE }; +static const uint8_t ps_ho_compl_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_IMSI }; +static const uint8_t ps_ho_cancel_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE, BSSGP_IE_CELL_ID }; +static const uint8_t ps_ho_compl_ack_ies[] = { BSSGP_IE_TLLI }; +static const uint8_t overload_ies[] = { BSSGP_IE_PRIO_CLASS_IND }; +static const uint8_t rinfo_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_RIM_CONTAINER }; +static const uint8_t rinfo_req_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_REQ_RIM_CONTAINER }; +static const uint8_t rinfo_ack_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_ACK_RIM_CONTAINER }; +static const uint8_t rinfo_err_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_ERROR_RIM_COINTAINER }; +static const uint8_t rinfo_aerr_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_APP_ERROR_RIM_CONT }; + +#define DL BSSGP_PDUF_DL +#define UL BSSGP_PDUF_UL +#define SIG BSSGP_PDUF_SIG +#define PTP BSSGP_PDUF_PTP +#define PTM BSSGP_PDUF_PTM + +const struct osmo_tlv_prot_def osmo_pdef_bssgp = { + .name = "BSSGP", + .tlv_def = &tvlv_att_def, + .msg_def = { + [BSSGP_PDUT_DL_UNITDATA] = MSG_DEF("DL-UNITDATA", dl_ud_ies, DL|PTP), + [BSSGP_PDUT_UL_UNITDATA] = MSG_DEF("UL-UNITDATA", ul_ud_ies, UL|PTP), + [BSSGP_PDUT_RA_CAPABILITY] = MSG_DEF("RA-CAPABILITY", ra_cap_ies, DL|PTP), + [BSSGP_PDUT_DL_MMBS_UNITDATA] = MSG_DEF("DL-MBMS-UNITDATA", dl_mb_ud_ies, DL|PTM), + [BSSGP_PDUT_UL_MMBS_UNITDATA] = MSG_DEF("UL-MBMS-UNITDATA", ul_mb_ud_ies, UL|PTM), + [BSSGP_PDUT_PAGING_PS] = MSG_DEF("PAGING-PS", pag_ps_ies, DL|PTP|SIG), + [BSSGP_PDUT_PAGING_CS] = MSG_DEF("PAGING-CS", pag_cs_ies, DL|PTP|SIG), + [BSSGP_PDUT_RA_CAPA_UDPATE] = MSG_DEF("RA-CAPABILITY-UPDATE", ra_cap_upd_ies, UL|PTP), + [BSSGP_PDUT_RA_CAPA_UPDATE_ACK] = MSG_DEF("RA-CAPABILITY-UPDATE-ACK", ra_cap_upd_ack_ies, DL|PTP), + [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_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), + [BSSGP_PDUT_DUMMY_PAGING_PS] = MSG_DEF("DUMMY-PAGING-PS", d_pag_ps_ies, DL|SIG|PTP), + [BSSGP_PDUT_DUMMY_PAGING_PS_RESP] = MSG_DEF("DUMMY-PAGING-PS-RESP", d_pag_ps_resp_ies, UL|SIG|PTP), + [BSSGP_PDUT_PAGING_PS_REJECT] = MSG_DEF("PAGING-PS-REJ", d_pag_ps_rej_ies, UL|SIG|PTP), + [BSSGP_PDUT_MS_REGISTR_ENQ] = MSG_DEF("MS-REGISRATION-ENQ", ms_reg_enq_ies, UL|SIG), + [BSSGP_PDUT_MS_REGISTR_ENQ_RESP] = MSG_DEF("MS-REGISRATION-ENQ-RESP", ms_reg_enq_res_ies, DL|SIG), + [BSSGP_PDUT_FLUSH_LL] = MSG_DEF("FLUSH-LL", flush_ll_ies, DL|SIG), + [BSSGP_PDUT_FLUSH_LL_ACK] = MSG_DEF("FLUSH-LL-ACK", flush_ll_ack_ies, UL|SIG), + [BSSGP_PDUT_LLC_DISCARD] = MSG_DEF("LLC-DISCARDED", llc_disc_ies, UL|SIG), + [BSSGP_PDUT_FLOW_CONTROL_BVC] = MSG_DEF("FC-BVC", fc_bvc_ies, UL|PTP), + [BSSGP_PDUT_FLOW_CONTROL_BVC_ACK] = MSG_DEF("FC-BVC-ACK", fc_bvc_ack_ies, DL|PTP), + [BSSGP_PDUT_FLOW_CONTROL_MS] = MSG_DEF("FC-MS", fc_ms_ies, UL|PTP), + [BSSGP_PDUT_FLOW_CONTROL_MS_ACK] = MSG_DEF("FC-MS-ACK", fc_ms_ack_ies, DL|PTP), + [BSSGP_PDUT_BVC_BLOCK] = MSG_DEF("BVC-BLOCK", block_ies, UL|SIG), + [BSSGP_PDUT_BVC_BLOCK_ACK] = MSG_DEF("BVC-BLOCK-ACK", block_ack_ies, DL|SIG), + [BSSGP_PDUT_BVC_UNBLOCK] = MSG_DEF("BVC-UNBLOCK", unblock_ies, UL|SIG), + [BSSGP_PDUT_BVC_UNBLOCK_ACK] = MSG_DEF("BVC-UNBLOCK-ACK", unblock_ack_ies, DL|SIG), + [BSSGP_PDUT_BVC_RESET] = MSG_DEF("BVC-RESET", reset_ies, UL|DL|SIG|PTP), + [BSSGP_PDUT_BVC_RESET_ACK] = MSG_DEF("BVC-RESET-ACK", reset_ack_ies, UL|DL|SIG|PTP), + [BSSGP_PDUT_STATUS] = MSG_DEF("STATUS", status_ies, UL|DL|PTP|SIG|PTM), + [BSSGP_PDUT_SGSN_INVOKE_TRACE] = MSG_DEF("SGSN-INVOKE-TRACE", inv_trc_ies, DL|SIG), + [BSSGP_PDUT_DOWNLOAD_BSS_PFC] = MSG_DEF("DOWNLOAD-BSS-PFC", dl_bss_pfc_ies, UL|PTP), + [BSSGP_PDUT_CREATE_BSS_PFC] = MSG_DEF("CREATE-BSS-PFC", crt_bss_pfc_ies, DL|PTP), + [BSSGP_PDUT_CREATE_BSS_PFC_ACK] = MSG_DEF("CREATE-BSS-PFC-ACK", crt_bss_pfc_ack_ies, UL|PTP), + [BSSGP_PDUT_CREATE_BSS_PFC_NACK] = MSG_DEF("CREATE-BSS-PFC-NACK", crt_bss_pfc_nack_ies, UL|PTP), + [BSSGP_PDUT_MODIFY_BSS_PFC] = MSG_DEF("MODIFY-BSS-PFC", mod_bss_pfc_ies, DL|PTP), + [BSSGP_PDUT_MODIFY_BSS_PFC_ACK] = MSG_DEF("MODIFY-BSS-PFC-ACK", mod_bss_pfc_ack_ies, UL|PTP), + [BSSGP_PDUT_DELETE_BSS_PFC] = MSG_DEF("DELETE-BSS-PFC", del_bss_pfc_ies, DL|PTP), + [BSSGP_PDUT_DELETE_BSS_PFC_ACK] = MSG_DEF("DELETE-BSS-PFC-ACK", del_bss_pfc_ack_ies, UL|PTP), + [BSSGP_PDUT_FLOW_CONTROL_PFC] = MSG_DEF("FC-PFC", fc_pfc_ies, UL|PTP), + [BSSGP_PDUT_FLOW_CONTROL_PFC_ACK] = MSG_DEF("FC-PFC-ACK", fc_pfc_ack_ies, DL|PTP), + [BSSGP_PDUT_DELETE_BSS_PFC_REQ] = MSG_DEF("DELETE-BSS-PFC-REQ", del_bss_pfc_req_ies, UL|PTP), + [BSSGP_PDUT_PS_HO_REQUIRED] = MSG_DEF("PS-HO-REQUIRED", ps_ho_required_ies, UL|PTP), + [BSSGP_PDUT_PS_HO_REQUIRED_ACK] = MSG_DEF("PS-HO-REQUIRED-ACK", ps_ho_required_ack_ies, DL|PTP), + [BSSGP_PDUT_PS_HO_REQUIRED_NACK] = MSG_DEF("PS-HO-REQUIRED-NACK", ps_ho_required_nack_ies, DL|PTP), + [BSSGP_PDUT_PS_HO_REQUEST] = MSG_DEF("PS-HO-REQUEST", ps_ho_request_ies, DL|PTP), + [BSSGP_PDUT_PS_HO_REQUEST_ACK] = MSG_DEF("PS-HO-REQUEST-ACK", ps_ho_request_ack_ies, UL|PTP), + [BSSGP_PDUT_PS_HO_REQUEST_NACK] = MSG_DEF("PS-HO-REQUEST-NACK", ps_ho_request_nack_ies, UL|PTP), + [BSSGP_PDUT_PS_HO_COMPLETE] = MSG_DEF("PS-HO-COMPLETE", ps_ho_compl_ies, UL|PTP), + [BSSGP_PDUT_PS_HO_CANCEL] = MSG_DEF("PS-HO-CANCEL", ps_ho_cancel_ies, UL|PTP), + [BSSGP_PDUT_PS_HO_COMPLETE_ACK] = MSG_DEF("PS-HO-COMPLETE-ACK", ps_ho_compl_ack_ies, DL|PTP), + [BSSGP_PDUT_OVERLOAD] = MSG_DEF("OVERLOAD", overload_ies, DL|SIG), + /* TODO: Messages on LCS SAP */ + /* Messages on RIM SAP */ + [BSSGP_PDUT_RAN_INFO] = MSG_DEF("RAN-INFORMATION", rinfo_ies, DL|UL|SIG), + [BSSGP_PDUT_RAN_INFO_REQ] = MSG_DEF("RAN-INFORMATION-REQUEST", rinfo_req_ies, DL|UL|SIG), + [BSSGP_PDUT_RAN_INFO_ACK] = MSG_DEF("RAN-INFORMATION-ACK", rinfo_ack_ies, DL|UL|SIG), + [BSSGP_PDUT_RAN_INFO_ERROR] = MSG_DEF("RAN-INFORMATION-ERROR", rinfo_err_ies, DL|UL|SIG), + [BSSGP_PDUT_RAN_INFO_APP_ERROR] = MSG_DEF("RAN-INFORMATION-APP-ERROR", rinfo_aerr_ies, DL|UL|SIG), + /* TODO: Messages on MBMS SAP */ + }, + .ie_def = { + [BSSGP_IE_ALIGNMENT] = { 0, "Alignment Octets" }, + [BSSGP_IE_BMAX_DEFAULT_MS] = { 2, "Bmax default MS" }, + [BSSGP_IE_BSS_AREA_ID] = { 1, "BSS Area Indication" }, + [BSSGP_IE_BUCKET_LEAK_RATE] = { 2, "Bucket Leak Rate (R)" }, + [BSSGP_IE_BVC_BUCKET_SIZE] = { 2, "BVC Bucket Size" }, + [BSSGP_IE_BVCI] = { 2, "BVCI" }, + [BSSGP_IE_BVC_MEASUREMENT] = {2, "BVC Measurement" }, + [BSSGP_IE_CAUSE] = { 1, "Cause" }, + [BSSGP_IE_CELL_ID] = { 8, "Cell Identifier" }, + [BSSGP_IE_CHAN_NEEDED] = { 1, "Channel Needed" }, + [BSSGP_IE_DRX_PARAMS] = { 2, "DRX Parameters" }, + [BSSGP_IE_EMLPP_PRIO] = { 3, "eMLPP Priority" }, + [BSSGP_IE_FLUSH_ACTION] = { 1, "Flush Action" }, + [BSSGP_IE_IMSI] = { 1, "Mobile Identity" }, + [BSSGP_IE_LLC_PDU] = { 0, "LLC-PDU" }, + [BSSGP_IE_LLC_FRAMES_DISCARDED] = { 1, "LLC Frames Discarded" }, + [BSSGP_IE_LOCATION_AREA] = { 5, "Location Area" }, + [BSSGP_IE_LSA_ID_LIST] = { 3, "LSA Identifier List" }, + [BSSGP_IE_LSA_INFORMATION] = { 5, "LSA Information" }, + [BSSGP_IE_MOBILE_ID] = { 1, "Mobile Identity" }, + [BSSGP_IE_MS_BUCKET_SIZE] = { 2, "MS Bucket Size" }, + [BSSGP_IE_MS_RADIO_ACCESS_CAP] = { 1, "MS Radio Access Capability" }, + [BSSGP_IE_OMC_ID] = { 1, "OMC Id" }, + [BSSGP_IE_PDU_IN_ERROR] = { 0, "PDU In Error" }, + [BSSGP_IE_PDU_LIFETIME] = { 2, "PDU Lifetime" }, + [BSSGP_IE_PRIORITY] = { 1, "Priority" }, + [BSSGP_IE_QOS_PROFILE] = { 3, "QoS Profile" }, + [BSSGP_IE_RADIO_CAUSE] = { 1, "Radio Cause" }, + [BSSGP_IE_RA_CAP_UPD_CAUSE] = { 1, "RA-Cap-UPD-Cause" }, + [BSSGP_IE_ROUTEING_AREA] = { 6, "Routeing Area" }, + [BSSGP_IE_R_DEFAULT_MS] = { 2, "R_default_MS" }, + [BSSGP_IE_SUSPEND_REF_NR] = { 1, "Suspend Reference Number" }, + [BSSGP_IE_TAG] = { 1, "Tag" }, + [BSSGP_IE_TLLI] = { 4, "TLLI" }, + [BSSGP_IE_TMSI] = { 4, "TMSI" }, + [BSSGP_IE_TRACE_REFERENC] = { 2, "Trace Reference" }, + [BSSGP_IE_TRACE_TYPE] = { 1, "Trace Type" }, + [BSSGP_IE_TRANSACTION_ID] = { 2, "Transaction Id" }, + [BSSGP_IE_TRIGGER_ID] = { 1, "Trigger Id" }, + [BSSGP_IE_NUM_OCT_AFF] = { 3, "Number of octets affected" }, + [BSSGP_IE_PACKET_FLOW_ID] = { 1, "Packet Flow Identifier (PFI)" }, + [BSSGP_IE_AGG_BSS_QOS_PROFILE] = { 14, "Aggregate BSS QoS Profile" }, + [BSSGP_IE_PACKET_FLOW_TIMER] = { 1, "GPRS Timer" }, + [BSSGP_IE_FEATURE_BITMAP] = { 1, "Feature Bitmap" }, + [BSSGP_IE_BUCKET_FULL_RATIO] = { 1, "Bucket Full Ratio" }, + [BSSGP_IE_SERVICE_UTRAN_CCO] = { 1, "Service UTRAN COO" }, + [BSSGP_IE_NSEI] = { 2, "NSEI" }, + [BSSGP_IE_RRLP_APDU] = { 1, "RLLP APDU" }, + [BSSGP_IE_LCS_QOS] = { 4, "LCS QoS" }, + [BSSGP_IE_LCS_CLIENT_TYPE] = { 1, "LCS Client Type" }, + [BSSGP_IE_REQUESTED_GPS_AST_DATA] = { 4, "Requested GPS Assistance Data" }, + [BSSGP_IE_LOCATION_TYPE] = { 2, "Location Type" }, + [BSSGP_IE_LOCATION_ESTIMATE] = { 1, "Location Estimate" }, + [BSSGP_IE_POSITIONING_DATA] = { 1, "Positioning Data" }, + [BSSGP_IE_DECIPHERING_KEYS] = { 15, "Deciphering Keys" }, + [BSSGP_IE_LCS_PRIORITY] = { 1, "LCS Priority" }, + [BSSGP_IE_LCS_CAUSE] = { 1, "LCS Cause" }, + [BSSGP_IE_LCS_CAPABILITY] = { 1, "LCS Capability" }, + [BSSGP_IE_RRLP_FLAGS] = { 1, "RRLP Flags" }, + [BSSGP_IE_RIM_APP_IDENTITY] = { 1, "RIM Application Identity" }, + [BSSGP_IE_RIM_SEQ_NR] = { 4, "RIM Sequence Number" }, + [BSSGP_IE_RIM_REQ_APP_CONTAINER] = { 12, "RIM-REQUEST RIM Container" }, + [BSSGP_IE_RAN_INFO_APP_CONTAINER] = { 12, "RAN-INFORMATION RIM Container" }, + [BSSGP_IE_RI_ACK_RIM_CONTAINER] = { 9, "RAN-INFORMATION-ACK RIM Container" }, + [BSSGP_IE_RI_ERROR_RIM_COINTAINER] = { 9, "RAN-INFOIRMATION-ERROR RIM Container" }, + [BSSGP_IE_RI_APP_ERROR_RIM_CONT] = { 14, "RAN-INFORMATION-APP-ERROR RIM Container" }, + [BSSGP_IE_RIM_PDU_INDICATIONS] = { 1, "RIM PDU Indications" }, + [BSSGP_IE_RIM_PROTOCOL_VERSION] = { 1, "RIM Protocol Version Number" }, + [BSSGP_IE_PFC_FLOW_CTRL_PARAMS] = { 7, "PFC FLow Control Parameters" }, + [BSSGP_IE_GLOBAL_CN_ID] = { 5, "Global CN-Id" }, + [BSSGP_IE_RIM_ROUTING_INFO] = { 1, "RIM Routing Information" }, + [BSSGP_IE_MBMS_SESSION_ID] = { 0, "MBMS Session Identity" }, + [BSSGP_IE_MBMS_SESSION_DURATION] = { 0, "MBMS Session Duration" }, + [BSSGP_IE_MBMS_SA_ID_LIST] = { 3, "MBMS Service Area Identity List" }, + [BSSGP_IE_MBMS_RESPONSE] = { 1, "MBMS Response" }, + [BSSGP_IE_MBMS_RA_LIST] = { 9, "MBMS Routing Area List" }, + [BSSGP_IE_MBMS_SESSION_INFO] = { 1, "MBMS Session Information" }, + [BSSGP_IE_TMGI] = { 6, "TMGI" }, + [BSSGP_IE_MBMS_STOP_CAUSE] = { 1, "MBM Stop Cause" }, + [BSSGP_IE_SBSS_TO_TBSS_TR_CONT] = { 7, "Source BSS to Target BSS Transparent Container" }, + [BSSGP_IE_TBSS_TO_SBSS_TR_CONT] = { 0, "Target BSS to Source BSS Transparent Container" }, + [BSSGP_IE_NAS_CONT_FOR_PS_HO] = { 0, "NAS container for PS Handover" }, + [BSSGP_IE_PFC_TO_BE_SETUP_LIST] = { 9, "PFCs to be set-up list" }, + [BSSGP_IE_LIST_OF_SETUP_PFC] = { 1, "List of set-up PFCs" }, + [BSSGP_IE_EXT_FEATURE_BITMAP] = { 1, "Extended Feature Bitmap" }, + [BSSGP_IE_SRC_TO_TGT_TR_CONT] = { 0, "Source to Target Transparent Container" }, + [BSSGP_IE_TGT_TO_SRC_TR_CONT] = { 0, "Target to Source Transparent Container" }, + [BSSGP_IE_NC_ID] = { 8, "RNC Identifier" }, + [BSSGP_IE_PAGE_MODE] = { 1, "Page Mode" }, + [BSSGP_IE_CONTAINER_ID] = { 1, "Container ID" }, + [BSSGP_IE_GLOBAL_TFI] = { 1, "Global TFI" }, + [BSSGP_IE_IMEI] = { 1, "IMEI" }, + [BSSGP_IE_TIME_TO_MBMS_DATA_XFR] = { 1, "Time to MBMS Data Transfer" }, + [BSSGP_IE_MBMS_SESSION_REP_NR] = { 1, "MBMS Session Repetition Number" }, + [BSSGP_IE_INTER_RAT_HO_INFO] = { 0, "Inter RAT Handover Info" }, + [BSSGP_IE_PS_HO_COMMAND] = { 0, "PS Handover Command" }, + [BSSGP_IE_PS_HO_INDICATIONS] = { 1, "PS Handover Indications" }, + [BSSGP_IE_SI_PSI_CONTAINER] = { 1, "SI/PSI Container" }, + [BSSGP_IE_ACTIVE_PFC_LIST] = { 2, "Active PFCs List" }, + [BSSGP_IE_VELOCITY_DATA] = { 0, "Velocity Data" }, + [BSSGP_IE_DTM_HO_COMMAND] = { 0, "DTM Handover Command" }, + [BSSGP_IE_CS_INDICATION] = { 1, "CS Indication" }, + [BSSGP_IE_RQD_GANNS_AST_DATA] = { 0, "Requested GANSS Assistance Data" }, + [BSSGP_IE_GANSS_LOCATION_TYPE] = { 1, "GANSS Location Type" }, + [BSSGP_IE_GANSS_POSITIONING_DATA] = { 0, "GANSS Positioning Data" }, + [BSSGP_IE_FLOW_CTRL_GRANULARITY] = { 1, "Flow Control Granularity" }, + [BSSGP_IE_ENB_ID] = { 6, "eNB Identifier" }, + [BSSGP_IE_EUTRAN_IRAT_HO_INFO] = { 0, "E-UTRAN Inter RAT Handover Info" }, + [BSSGP_IE_SUB_PID4RAT_FREQ_PRIO] = { 1, "Subscriber Profile ID for RAT/Frequency priority" }, + [BSSGP_IE_REQ4IRAT_HO_INFO] = { 1, "Request for Inter-RAT Handover Info" }, + [BSSGP_IE_RELIABLE_IRAT_HO_INFO] = { 1, "Reliable Inter-RAT Handover Info" }, + [BSSGP_IE_SON_TRANSFER_APP_ID] = { 0, "SON Transfer Application Identity" }, + [BSSGP_IE_CSG_ID] = { 5, "CSG Identifier" }, + [BSSGP_IE_TAC] = { 3, "Tracking Area Code" }, + [BSSGP_IE_REDIRECT_ATTEMPT_FLAG] = { 1, "Redirect Attempt Flag" }, + [BSSGP_IE_REDIRECTION_INDICATION] = { 1, "Redirection Indication" }, + [BSSGP_IE_REDIRECTION_COMPLETED] = { 1, "Redirection Completed" }, + [BSSGP_IE_UNCONF_SEND_STATE_VAR] = { 2, "Unconfirmed send state variable" }, + [BSSGP_IE_IRAT_MEASUREMENT_CONF] = { 10, "IRAT Measurement Configuration" }, + [BSSGP_IE_SCI] = { 1, "SCI" }, + [BSSGP_IE_GGSN_PGW_LOCATION] = { 1, "GGSN/P-GW Location" }, + [BSSGP_IE_SELECTED_PLMN_ID] = { 3, "Selected PLMN ID" }, + [BSSGP_IE_PRIO_CLASS_IND] = { 1, "Priority Class Indication" }, + [BSSGP_IE_SOURCE_CELL_ID] = { 6, "Source Cell ID" }, + [BSSGP_IE_IRAT_MEAS_CFG_E_EARFCN] = { 10, "IRAT Measurement Configuration (extended E-ARFCNs)" }, + [BSSGP_IE_EDRX_PARAMETERS] = { 1, "eDRX Parameters" }, + [BSSGP_IE_T_UNTIL_NEXT_PAGING] = { 2, "Time Until Next Paging Occasion" }, + [BSSGP_IE_COVERAGE_CLASS] = { 1, "Coverage Class" }, + [BSSGP_IE_PAGING_ATTEMPT_INFO] = { 1, "Paging Attempt Information" }, + [BSSGP_IE_EXCEPTION_REPORT_FLAG] = { 1, "Exception Report Flag" }, + [BSSGP_IE_OLD_RA_ID] = { 6, "Old Routing Area Identification" }, + [BSSGP_IE_ATTACH_IND] = { 1, "Attach Indicator" }, + [BSSGP_IE_PLMN_ID] = { 3, "PLMN Identity" }, + [BSSGP_IE_MME_QUERY] = { 1, "MME Query" }, + [BSSGP_IE_SGSN_GROUP_ID] = { 3, "SGSN Group Identity" }, + [BSSGP_IE_ADDITIONAL_PTMSI] = { 4, "Additional P-TMSI" }, + [BSSGP_IE_UE_USAGE_TYPE] = { 1, "UE Usage Type" }, + [BSSGP_IE_MLAT_TIMER] = { 1, "Multilateration Timer" }, + [BSSGP_IE_MLAT_TA] = { 2, "Multilateration Timing Advance" }, + [BSSGP_IE_MS_SYNC_ACCURACY] = { 1, "MS Sync Accuracy" }, + [BSSGP_IE_BTS_RX_ACCURACY_LVL] = { 1, "BTS Reception Accuracy Level" }, + [BSSGP_IE_TA_REQ] = { 1, "Timing Advance Request (TAR)" }, + }, +}; + +#undef DL +#undef UL +#undef SIG +#undef PTP +#undef PTM + + const char *bssgp_cause_str(enum gprs_bssgp_cause cause) { return get_value_string(bssgp_cause_strings, cause); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 2c4e897..8abac74 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -149,5 +149,7 @@ btsctx_by_bvci_nsei; btsctx_by_raid_cid; +osmo_pdef_bssgp; + local: *; }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e4226463f3c935134b5c2c737696fbfd1dd5815 Gerrit-Change-Number: 21544 Gerrit-PatchSet: 9 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Dec 8 12:27:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 12:27:41 +0000 Subject: Change in libosmocore[master]: gsm_08_18.h: Add #defines for [extended] feature bits In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21595 ) Change subject: gsm_08_18.h: Add #defines for [extended] feature bits ...................................................................... gsm_08_18.h: Add #defines for [extended] feature bits Change-Id: I7743cb901988c8fddd91127cfdca6e54b3d44ea8 --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 20 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 679a08e..0ce28f5 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -321,3 +321,23 @@ BSSGP_CAUSE_DTM_HO_MSC_ERR = 0x4a, BSSGP_CAUSE_INVAL_CSG_CELL = 0x4b, }; + +/* Feature Bitmap (Section 11.3.45) */ +#define BSSGP_FEAT_PFC 0x01 /* Packet Flow Context */ +#define BSSGP_FEAT_CBL 0x02 /* Current Bucket Level */ +#define BSSGP_FEAT_INR 0x04 /* Inter-NSE re-routing */ +#define BSSGP_FEAT_LCS 0x08 /* Location Services */ +#define BSSGP_FEAT_RIM 0x10 /* RAN Inoformation Management */ +#define BSSGP_FEAT_PFC_FC 0x20 /* PFC Flow Control */ +#define BSSGP_FEAT_ERS 0x40 /* Enhanced Radio Status */ +#define BSSGP_FEAT_MBMS 0x80 /* Multimedia Broadcast */ + +/* Extended Feature Bitmap (Section 11.3.84) */ +#define BSSGP_XFEAT_PSHO 0x01 /* PS Handover */ +#define BSSGP_XFEAT_GBIT 0x02 /* Gigabit Interface */ +#define BSSGP_XFEAT_MOCN 0x04 /* Multi-Operator CN */ +#define BSSGP_XFEAT_CSPS 0x08 /* CS/PS coordination enhancements */ +#define BSSGP_XFEAT_ECIoT 0x10 /* EC-GSM-IoT */ +#define BSSGP_XFEAT_DCN 0x20 /* Dedicated CN */ +#define BSSGP_XFEAT_eDRX 0x40 /* eDRX */ +#define BSSGP_XFEAT_MSAD 0x80 /* MS-assisted Dedicated CN selection */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21595 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7743cb901988c8fddd91127cfdca6e54b3d44ea8 Gerrit-Change-Number: 21595 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 Tue Dec 8 12:31:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 12:31:24 +0000 Subject: Change in libosmocore[master]: (WIP) libosmogsm: introduce message definition and verification helpers In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/11105 ) Change subject: (WIP) libosmogsm: introduce message definition and verification helpers ...................................................................... Abandoned See https://gerrit.osmocom.org/c/libosmocore/+/21534. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/11105 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idef83b0c53b17503a64d7ab7422184ca4b60be57 Gerrit-Change-Number: 11105 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Dec 8 12:32:08 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 08 Dec 2020 12:32:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5fcf725ea3545_1a9f2b29ace866001858e9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Tumbleweed/i586 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Tumbleweed/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 131s] (cd ../../src && make libosmo-rspro.la) [ 131s] make[4]: Entering directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 131s] make[4]: 'libosmo-rspro.la' is up to date. [ 131s] make[4]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 131s] In file included from rest_api.c:7: [ 131s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 131s] 49 | #include [ 131s] | ^~~~~~~~ [ 131s] compilation terminated. [ 131s] make[3]: *** [Makefile:461: rest_api.o] Error 1 [ 131s] make[3]: *** Waiting for unfinished jobs.... [ 132s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 132s] make[2]: *** [Makefile:542: all-recursive] Error 1 [ 132s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 132s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 132s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 132s] make: *** [Makefile:406: all] Error 2 [ 132s] error: Bad exit status from /var/tmp/rpm-tmp.y1yyQ1 (%build) [ 132s] [ 132s] [ 132s] RPM build errors: [ 132s] Bad exit status from /var/tmp/rpm-tmp.y1yyQ1 (%build) [ 132s] ### VM INTERACTION START ### [ 135s] [ 109.986185] sysrq: Power Off [ 135s] [ 109.994904] reboot: Power down [ 135s] ### VM INTERACTION END ### [ 135s] [ 135s] lamb58 failed "build osmo-remsim.spec" at Tue Dec 8 12:31:59 UTC 2020. [ 135s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 8 12:33:34 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 08 Dec 2020 12:33:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fcf72b6a9532_1a9f2b29ace8660018649d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 98s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o remsim_server.o remsim_server.c [ 98s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rspro_server.o rspro_server.c [ 98s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rest_api.o rest_api.c [ 98s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rspro_util.o `test -f '../rspro_util.c' || echo './'`../rspro_util.c [ 98s] In file included from rest_api.c:7: [ 98s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 98s] 49 | #include [ 98s] | ^~~~~~~~ [ 98s] compilation terminated. [ 98s] make[3]: *** [Makefile:461: rest_api.o] Error 1 [ 98s] make[3]: *** Waiting for unfinished jobs.... [ 99s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 99s] make[2]: *** [Makefile:542: all-recursive] Error 1 [ 99s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 99s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 99s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 99s] make: *** [Makefile:406: all] Error 2 [ 99s] error: Bad exit status from /var/tmp/rpm-tmp.7TRtC6 (%build) [ 99s] [ 99s] [ 99s] RPM build errors: [ 99s] Bad exit status from /var/tmp/rpm-tmp.7TRtC6 (%build) [ 99s] ### VM INTERACTION START ### [ 102s] [ 84.403422] sysrq: Power Off [ 102s] [ 84.405151] reboot: Power down [ 102s] ### VM INTERACTION END ### [ 102s] [ 102s] obs-arm-8 failed "build osmo-remsim.spec" at Tue Dec 8 12:33:26 UTC 2020. [ 102s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 8 12:33:51 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 08 Dec 2020 12:33:51 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <5fcf72b8c6b56_1a9f2b29ace86600186625@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Leap_15.1_ARM/aarch64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Leap_15.1_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 105s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o remsim_server.o remsim_server.c [ 105s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rspro_server.o rspro_server.c [ 105s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rest_api.o rest_api.c [ 105s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rspro_util.o `test -f '../rspro_util.c' || echo './'`../rspro_util.c [ 105s] In file included from rest_api.c:7:0: [ 105s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 105s] #include [ 105s] ^~~~~~~~ [ 105s] compilation terminated. [ 105s] make[3]: *** [Makefile:451: rest_api.o] Error 1 [ 105s] make[3]: *** Waiting for unfinished jobs.... [ 106s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 106s] make[2]: *** [Makefile:534: all-recursive] Error 1 [ 106s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 106s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 106s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 106s] make: *** [Makefile:406: all] Error 2 [ 106s] error: Bad exit status from /var/tmp/rpm-tmp.yim6o9 (%build) [ 106s] [ 106s] [ 106s] RPM build errors: [ 106s] Bad exit status from /var/tmp/rpm-tmp.yim6o9 (%build) [ 106s] ### VM INTERACTION START ### [ 109s] [ 94.362218] sysrq: SysRq : Power Off [ 109s] [ 94.363713] reboot: Power down [ 109s] ### VM INTERACTION END ### [ 109s] [ 109s] obs-arm-9 failed "build osmo-remsim.spec" at Tue Dec 8 12:33:32 UTC 2020. [ 109s] -- 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 Dec 8 12:35:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 8 Dec 2020 12:35:23 +0000 Subject: Change in osmo-gsm-tester[master]: process: add get_output_mark() and grep_output() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 ) Change subject: process: add get_output_mark() and grep_output() ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512/2/src/osmo_gsm_tester/core/process.py File src/osmo_gsm_tester/core/process.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512/2/src/osmo_gsm_tester/core/process.py at 388 PS2, Line 388: def get_stdout_mark(self): > Can you write here an example on how to use the get_output_mark() API? [?] Typically i get a mark, and after that start the actions that i want to see a log of -- no race problem. get_output_mark() returns the length of the log currently. Later, get_output(since_mark=...) returns the log since that start marker. adding an example. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 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: Ib6569f7486e9d961bd79a5f24232e58d053667a1 Gerrit-Change-Number: 21512 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12:35:23 +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 Tue Dec 8 12:42:17 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 8 Dec 2020 12:42:17 +0000 Subject: Change in osmo-gsm-tester[master]: add test.report_fragment() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 ) Change subject: add test.report_fragment() ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/3//COMMIT_MSG at 14 PS3, Line 14: handover.py__01_bts0_started PASSED > The separator is / instead of __ now right? thx https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/3/src/osmo_gsm_tester/core/test.py File src/osmo_gsm_tester/core/test.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516/3/src/osmo_gsm_tester/core/test.py at 171 PS3, Line 171: if isinstance(lt, log.FileLogTarget): > This looks not related to this commit? Is it a separate fix? thx -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 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: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 Gerrit-Change-Number: 21516 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12:42: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 Tue Dec 8 12:53:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 8 Dec 2020 12:53:22 +0000 Subject: Change in osmo-gsm-tester[master]: add handover_2G suite, with handover.py test In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 ) Change subject: add handover_2G suite, with handover.py test ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py File sysmocom/suites/handover_2G/handover.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523/2/sysmocom/suites/handover_2G/handover.py at 91 PS2, Line 91: with bsc.ctrl() as bsc_ctrl: > BTW, I'd do that ofc inside the obj class, so test doesn't need to care about those details. [?] that's a good alternative, yes. Since my last comment I also considered simply *always* opening a CTRL and VTY connection. In defense of the 'with' statement: the point of 'with' is to un-use an object no matter how that 'with' block is exited, be it an exception or plain being done with it. It is a simplification of the 'try: ... finally:' pattern. 'with' is usually very nice, lean+powerful, imho, but i accept that you prefer less indent in test scripts (though it's a cosmetic that we don't even mention in most code) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 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: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 Gerrit-Change-Number: 21523 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 12:53:22 +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 admin at opensuse.org Tue Dec 8 14:03:15 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 08 Dec 2020 14:03:15 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fcf87aec8fa0_1a9f2b29ace86600211474@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 77s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o remsim_server.o remsim_server.c [ 77s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rspro_server.o rspro_server.c [ 77s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rest_api.o rest_api.c [ 77s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rspro_util.o `test -f '../rspro_util.c' || echo './'`../rspro_util.c [ 77s] In file included from rest_api.c:7: [ 77s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 77s] 49 | #include [ 77s] | ^~~~~~~~ [ 77s] compilation terminated. [ 77s] make[3]: *** [Makefile:461: rest_api.o] Error 1 [ 77s] make[3]: *** Waiting for unfinished jobs.... [ 77s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 77s] make[2]: *** [Makefile:542: all-recursive] Error 1 [ 77s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 77s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 77s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 77s] make: *** [Makefile:406: all] Error 2 [ 77s] error: Bad exit status from /var/tmp/rpm-tmp.YYfHuZ (%build) [ 77s] [ 77s] [ 77s] RPM build errors: [ 77s] Bad exit status from /var/tmp/rpm-tmp.YYfHuZ (%build) [ 77s] ### VM INTERACTION START ### [ 80s] [ 65.510997] sysrq: Power Off [ 80s] [ 65.514130] reboot: Power down [ 80s] ### VM INTERACTION END ### [ 80s] [ 80s] cloud124 failed "build osmo-remsim.spec" at Tue Dec 8 14:03:13 UTC 2020. [ 80s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 8 14:03:15 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 08 Dec 2020 14:03:15 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5fcf87af8e5f2_1a9f2b29ace8660021159@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Leap_15.1/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Leap_15.1/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 56s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rest_api.o rest_api.c [ 56s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rspro_util.o `test -f '../rspro_util.c' || echo './'`../rspro_util.c [ 56s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o slotmap.o `test -f '../slotmap.c' || echo './'`../slotmap.c [ 56s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o debug.o `test -f '../debug.c' || echo './'`../debug.c [ 56s] In file included from rest_api.c:7:0: [ 56s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 56s] #include [ 56s] ^~~~~~~~ [ 56s] compilation terminated. [ 56s] make[3]: *** [Makefile:451: rest_api.o] Error 1 [ 56s] make[3]: *** Waiting for unfinished jobs.... [ 56s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 56s] make[2]: *** [Makefile:534: all-recursive] Error 1 [ 56s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 56s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 56s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 56s] make: *** [Makefile:406: all] Error 2 [ 56s] error: Bad exit status from /var/tmp/rpm-tmp.9wqtDw (%build) [ 56s] [ 56s] [ 56s] RPM build errors: [ 56s] Bad exit status from /var/tmp/rpm-tmp.9wqtDw (%build) [ 56s] ### VM INTERACTION START ### [ 59s] [ 51.881598] sysrq: SysRq : Power Off [ 59s] [ 51.884748] reboot: Power down [ 59s] ### VM INTERACTION END ### [ 59s] [ 59s] sheep87 failed "build osmo-remsim.spec" at Tue Dec 8 14:02:43 UTC 2020. [ 59s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 8 14:12:19 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 08 Dec 2020 14:12:19 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <5fcf8a1f969f4_1a9f2b29ace86600219651@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Leap_15.2/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Leap_15.2/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 191s] (cd ../../src && make libosmo-rspro.la) [ 191s] make[4]: Entering directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 191s] make[4]: 'libosmo-rspro.la' is up to date. [ 191s] make[4]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 191s] In file included from rest_api.c:7:0: [ 191s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 191s] #include [ 191s] ^~~~~~~~ [ 191s] compilation terminated. [ 191s] make[3]: *** [Makefile:451: rest_api.o] Error 1 [ 191s] make[3]: *** Waiting for unfinished jobs.... [ 191s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 191s] make[2]: *** [Makefile:534: all-recursive] Error 1 [ 191s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 191s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 191s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 191s] make: *** [Makefile:406: all] Error 2 [ 191s] error: Bad exit status from /var/tmp/rpm-tmp.RAXf0k (%build) [ 191s] [ 191s] [ 191s] RPM build errors: [ 191s] Bad exit status from /var/tmp/rpm-tmp.RAXf0k (%build) [ 191s] ### VM INTERACTION START ### [ 195s] [ 157.938825] sysrq: Power Off [ 195s] [ 157.995682] reboot: Power down [ 195s] ### VM INTERACTION END ### [ 195s] [ 195s] lamb13 failed "build osmo-remsim.spec" at Tue Dec 8 14:12:08 UTC 2020. [ 195s] -- 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 Dec 8 14:41:55 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 14:41:55 +0000 Subject: Change in osmo-trx[master]: vty: fix swapped documentation for 'filler type' command References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/21604 ) Change subject: vty: fix swapped documentation for 'filler type' command ...................................................................... vty: fix swapped documentation for 'filler type' command vty_cmd_string_from_valstr() expands the given 'struct value_string' sequentionally, so the order of entries in both filler_{types,docs} shall match (regardless of the value assigned). Change-Id: Ieb3bbc4fb30f303c47555ca77d03a9e965bc72b5 --- M CommonLibs/trx_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/04/21604/1 diff --git a/CommonLibs/trx_vty.c b/CommonLibs/trx_vty.c index e672928..0bb83fe 100644 --- a/CommonLibs/trx_vty.c +++ b/CommonLibs/trx_vty.c @@ -68,8 +68,8 @@ }; static const struct value_string filler_docs[] = { - { FILLER_ZERO, "Send an empty burst (default)" }, { FILLER_DUMMY, "Send a Dummy Burst on C0 (TRX0) and empty burst on other channels" }, + { FILLER_ZERO, "Send an empty burst (default)" }, { FILLER_NORM_RAND, "Send a GMSK modulated Normal Burst with random bits (spectrum mask testing)" }, { FILLER_EDGE_RAND, "Send an 8-PSK modulated Normal Burst with random bits (spectrum mask testing)" }, { FILLER_ACCESS_RAND, "Send an Access Burst with random bits (Rx/Tx alignment testing)" }, -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ieb3bbc4fb30f303c47555ca77d03a9e965bc72b5 Gerrit-Change-Number: 21604 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 Dec 8 14:58:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 14:58:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21605 ) Change subject: bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations ...................................................................... bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations Change-Id: I903ede1c78e103d24a93f2e6b0e1acd136405099 --- M bts/expected-results.xml 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/05/21605/1 diff --git a/bts/expected-results.xml b/bts/expected-results.xml index a50cf6d..4fd704c 100644 --- a/bts/expected-results.xml +++ b/bts/expected-results.xml @@ -157,6 +157,16 @@ + + + + + + + + + + -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I903ede1c78e103d24a93f2e6b0e1acd136405099 Gerrit-Change-Number: 21605 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 Dec 8 15:06:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 15:06:10 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation 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/+/21598 to look at the new patch set (#4). Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... gb: Add beginnings of a new BSSGP implementation Similar to ns2 superseding ns, we now also intoduce a next generation of BSSGP related code to libosmogb. However, this is not aiming to be a full implementation yet, but simply those parts that we currently need from the revamped osmo-gbproxy. The gprs_bssgp2.[ch] differs in two ways from the old code: * it separates message encoding from message transmission * it supports more recent specs / IEs bssgp_bvc_fsm.c is a genric implementation of the BSSGP BVC RESET/BLOCK/UNBLOCK logic with support for both PTP and signaling, both on the SGSN side and the BSS side. Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a --- M include/Makefile.am A include/osmocom/gprs/bssgp_bvc_fsm.h A include/osmocom/gprs/gprs_bssgp2.h M src/gb/Makefile.am A src/gb/bssgp_bvc_fsm.c A src/gb/gprs_bssgp2.c M src/gb/libosmogb.map 7 files changed, 1,100 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/21598/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 4 Gerrit-Owner: laforge 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 Dec 8 16:11:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 16:11:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21606 ) Change subject: bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now ...................................................................... bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now Change-Id: I872111dae761bda038d2e881ab5f4e6b7f52ec90 --- M bts/expected-results.xml 1 file changed, 1 insertion(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/06/21606/1 diff --git a/bts/expected-results.xml b/bts/expected-results.xml index 4fd704c..6142e40 100644 --- a/bts/expected-results.xml +++ b/bts/expected-results.xml @@ -16,12 +16,7 @@ BTS_Tests.ttcn:MASKED TC_sacch_chan_act_ho_async testcase - - "BTS_Tests.ttcn:MASKED : Unexpected RSL message received" - BTS_Tests.ttcn:MASKED BTS_Tests control part - BTS_Tests.ttcn:MASKED TC_sacch_chan_act_ho_sync testcase - - + -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I872111dae761bda038d2e881ab5f4e6b7f52ec90 Gerrit-Change-Number: 21606 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 Dec 8 16:39:45 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 16:39:45 +0000 Subject: Change in osmo-bsc[master]: nm_gprs_nsvc_fsm: allow DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21607 ) Change subject: nm_gprs_nsvc_fsm: allow DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED ...................................................................... nm_gprs_nsvc_fsm: allow DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED It would make more sense check the current state before asking for transition to DISABLED_NOTINSTALLED, however all other NM FSMs seem to allow DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED transition. Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Related: OS#4901 --- M src/osmo-bsc/nm_gprs_nsvc_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/21607/1 diff --git a/src/osmo-bsc/nm_gprs_nsvc_fsm.c b/src/osmo-bsc/nm_gprs_nsvc_fsm.c index 2a57ada..7a7ab8d 100644 --- a/src/osmo-bsc/nm_gprs_nsvc_fsm.c +++ b/src/osmo-bsc/nm_gprs_nsvc_fsm.c @@ -317,6 +317,7 @@ X(NM_EV_FEATURE_NEGOTIATED) | X(NM_EV_STATE_CHG_REP), .out_state_mask = + X(NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_GPRS_NSVC_ST_OP_DISABLED_DEPENDENCY) | X(NM_GPRS_NSVC_ST_OP_DISABLED_OFFLINE) | X(NM_GPRS_NSVC_ST_OP_ENABLED), -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Gerrit-Change-Number: 21607 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 Dec 8 17:37:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 17:37:25 +0000 Subject: Change in osmo-bts[master]: power_control: make raise/lower step limitation configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21568 ) Change subject: power_control: make raise/lower step limitation configurable ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Gerrit-Change-Number: 21568 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 17:37: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 Dec 8 17:42:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 17:42:06 +0000 Subject: Change in osmo-trx[master]: vty: fix swapped documentation for 'filler type' command In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21604 ) Change subject: vty: fix swapped documentation for 'filler type' command ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ieb3bbc4fb30f303c47555ca77d03a9e965bc72b5 Gerrit-Change-Number: 21604 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 17:42: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 Dec 8 17:42:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 17:42:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21605 ) Change subject: bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I903ede1c78e103d24a93f2e6b0e1acd136405099 Gerrit-Change-Number: 21605 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 17:42: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 Dec 8 17:45:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 17:45:57 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21598 ) Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 17:45: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 Dec 8 17:46:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 17:46:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21606 ) Change subject: bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I872111dae761bda038d2e881ab5f4e6b7f52ec90 Gerrit-Change-Number: 21606 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 17:46: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 Dec 8 17:48:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 8 Dec 2020 17:48:35 +0000 Subject: Change in osmo-bsc[master]: nm_gprs_nsvc_fsm: allow DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21607 ) Change subject: nm_gprs_nsvc_fsm: allow DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED ...................................................................... Patch Set 1: Code-Review+1 See https://osmocom.org/issues/4831 It's also happening in other FSMs. It would be great if you could make sure all FSMs are fixed the same way in the same commit. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Gerrit-Change-Number: 21607 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 17:48: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 Dec 8 18:02:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 18:02:44 +0000 Subject: Change in osmo-bsc[master]: nm_gprs_nsvc_fsm: allow DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21607 ) Change subject: nm_gprs_nsvc_fsm: allow DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21607/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/21607/1//COMMIT_MSG at 9 PS1, Line 9: would make more sense check the current state I'll better implement this. https://gerrit.osmocom.org/c/osmo-bsc/+/21607/1//COMMIT_MSG at 10 PS1, Line 10: all other NM FSMs seem : to allow This is incorrect. I just checked, and this is only the case for nm_channel_fsm. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Gerrit-Change-Number: 21607 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 18:02:44 +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 Dec 8 18:29:18 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 18:29:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests_OML: add new test case TC_ipa_rsl_connect_nack References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21608 ) Change subject: BTS_Tests_OML: add new test case TC_ipa_rsl_connect_nack ...................................................................... BTS_Tests_OML: add new test case TC_ipa_rsl_connect_nack Currently osmo-bts seems to be sending IPA RSL Connect ACK unconditionally, even if the remote peer is not reachable. Change-Id: Ibfa58f670401907801f610578dd9b4ebf155a83a --- M bts/BTS_Tests_OML.ttcn 1 file changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/08/21608/1 diff --git a/bts/BTS_Tests_OML.ttcn b/bts/BTS_Tests_OML.ttcn index 396ed38..6770dab 100644 --- a/bts/BTS_Tests_OML.ttcn +++ b/bts/BTS_Tests_OML.ttcn @@ -589,6 +589,30 @@ } } +/* Make sure that the IUT sends RSL Connect NACK when the remote is not reachable. */ +testcase TC_ipa_rsl_connect_nack() runs on BSC_OML_CT { + timer T := 2.0; + + f_init_oml(testcasename()); + + /* Most likely, nobody is listening to this port */ + OML.send(ts_OML_IPA_RslConnect(0, 65535)); + + T.start; + alt { + [] OML.receive(tr_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT_NACK)) { + setverdict(pass); + } + [] OML.receive(tr_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT_ACK)) { + setverdict(fail, "RSL Connect ACK is not expected"); + } + [] OML.receive { repeat; } + [] T.timeout { + setverdict(fail, "Timeout waiting for RSL Connect NACK"); + } + } +} + control { execute( TC_wrong_mdisc() ); @@ -606,6 +630,7 @@ execute( TC_ts_opstart() ); execute( TC_ts_opstart_noattr() ); execute( TC_initial_state_reports() ); + execute( TC_ipa_rsl_connect_nack() ); } /* BTS: -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibfa58f670401907801f610578dd9b4ebf155a83a Gerrit-Change-Number: 21608 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 Dec 8 20:38:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 20:38:07 +0000 Subject: Change in libosmocore[master]: tlv.h: Add msgb_tvlv_put_{16,32}be() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21609 ) Change subject: tlv.h: Add msgb_tvlv_put_{16,32}be() ...................................................................... tlv.h: Add msgb_tvlv_put_{16,32}be() Those routines are very useful when puzzling together BSSGP messages with 16-bit and 32bit sized IEs. Change-Id: I033f9a708c9d7ffad91336178231dc66233e1693 --- M include/osmocom/gsm/tlv.h 1 file changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/09/21609/1 diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index d34b7da..fe057f4 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -278,6 +279,20 @@ return tvlv_put(buf, tag, len, val); } +/*! put (append) a TvLV field containing a big-endian 16bit value to msgb. */ +static inline uint8_t *msgb_tvlv_put_16be(struct msgb *msg, uint8_t tag, uint16_t val) +{ + uint16_t val_be = osmo_htons(val); + return msgb_tvlv_put(msg, tag, 2, (const uint8_t *)&val_be); +} + +/*! put (append) a TvLV field containing a big-endian 16bit value to msgb. */ +static inline uint8_t *msgb_tvlv_put_32be(struct msgb *msg, uint8_t tag, uint32_t val) +{ + uint32_t val_be = osmo_htonl(val); + return msgb_tvlv_put(msg, tag, 4, (const uint8_t *)&val_be); +} + /*! put (append) a vTvLV field to \ref msgb */ static inline uint8_t *msgb_vtvlv_gan_put(struct msgb *msg, uint16_t tag, uint16_t len, const uint8_t *val) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I033f9a708c9d7ffad91336178231dc66233e1693 Gerrit-Change-Number: 21609 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 Dec 8 20:38:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 20:38:08 +0000 Subject: Change in libosmocore[master]: bssgp2: Encoding + Decoding functions for BVC and MS flow control References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21610 ) Change subject: bssgp2: Encoding + Decoding functions for BVC and MS flow control ...................................................................... bssgp2: Encoding + Decoding functions for BVC and MS flow control Change-Id: I9c89bb1c03550930c07aad7ff8f67129ee7a6320 Related: OS#4891 --- M include/osmocom/gprs/gprs_bssgp2.h M include/osmocom/gprs/protocol/gsm_08_18.h M src/gb/gprs_bssgp2.c M src/gb/libosmogb.map 4 files changed, 259 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/21610/1 diff --git a/include/osmocom/gprs/gprs_bssgp2.h b/include/osmocom/gprs/gprs_bssgp2.h index 0ab3619..bf814cb 100644 --- a/include/osmocom/gprs/gprs_bssgp2.h +++ b/include/osmocom/gprs/gprs_bssgp2.h @@ -4,10 +4,41 @@ #include #include +struct bssgp2_flow_ctrl; struct gprs_ns2_inst; struct gprs_ra_id; struct msgb; +struct bssgp2_flow_ctrl { + uint8_t tag; + /* maximum bucket size (Bmax) in bytes */ + uint64_t bucket_size_max; + /*! bucket leak rate in _bytes_ per second */ + uint64_t bucket_leak_rate; + /* percentage how full the given bucket is */ + uint8_t bucket_full_ratio; + bool bucket_full_ratio_present; + union { + /*! FC-BVC specifi members */ + struct { + /*! default maximum bucket size per MS in bytes */ + uint64_t bmax_default_ms; + /*! default bucket leak rate (R) for MS flow control bucket */ + uint64_t r_default_ms; + + /*! average milliseconds of queueing delay for a BVC */ + uint32_t measurement; + bool measurement_present; + } bvc; + /*! FC-MS specifi members */ + struct { + /*! TLLI of the MS */ + uint32_t tlli; + } ms; + } u; +}; + + int bssgp2_nsi_tx_ptp(struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci, struct msgb *msg, uint32_t lsp); @@ -29,3 +60,11 @@ 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); + + +int bssgp2_dec_fc_bvc(struct bssgp2_flow_ctrl *fc, const struct tlv_parsed *tp); +struct msgb *bssgp2_enc_fc_bvc(const struct bssgp2_flow_ctrl *fc, enum bssgp_fc_granularity *gran); +struct msgb *bssgp2_enc_fc_bvc_ack(uint8_t tag); +int bssgp2_dec_fc_ms(struct bssgp2_flow_ctrl *fc, struct tlv_parsed *tp); +struct msgb *bssgp2_enc_fc_ms(const struct bssgp2_flow_ctrl *fc, enum bssgp_fc_granularity *gran); +struct msgb *bssgp2_enc_fc_ms_ack(uint32_t tlli, uint8_t tag); diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 0ce28f5..466b0c5 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -341,3 +341,11 @@ #define BSSGP_XFEAT_DCN 0x20 /* Dedicated CN */ #define BSSGP_XFEAT_eDRX 0x40 /* eDRX */ #define BSSGP_XFEAT_MSAD 0x80 /* MS-assisted Dedicated CN selection */ + +/* Flow Control Granularity (Section 11.3.102) */ +enum bssgp_fc_granularity { + BSSGP_FC_GRAN_100 = 0, + BSSGP_FC_GRAN_1000 = 1, + BSSGP_FC_GRAN_10000 = 2, + BSSGP_FC_GRAN_100000 = 3, +}; diff --git a/src/gb/gprs_bssgp2.c b/src/gb/gprs_bssgp2.c index ec2199a..70d5bba 100644 --- a/src/gb/gprs_bssgp2.c +++ b/src/gb/gprs_bssgp2.c @@ -219,3 +219,209 @@ return msg; } + +static const unsigned int bssgp_fc_gran_tbl[] = { + [BSSGP_FC_GRAN_100] = 100, + [BSSGP_FC_GRAN_1000] = 1000, + [BSSGP_FC_GRAN_10000] = 10000, + [BSSGP_FC_GRAN_100000] = 100000, +}; + +/*! Decode a FLOW-CONTROL-BVC PDU as per TS 48.018 Section 10.4.4. + * \param[out] fc caller-allocated memory for parsed output + * \param[in] tp pre-parsed TLVs; caller must ensure mandatory IE presence/length + * \returns 0 on success; negative in case of error */ +int bssgp2_dec_fc_bvc(struct bssgp2_flow_ctrl *fc, const struct tlv_parsed *tp) +{ + unsigned int granularity = 100; + + /* optional "Flow Control Granularity IE" (11.3.102); applies to + * bucket_size_max, bucket_leak_rate and PFC FC params IE */ + if (TLVP_PRESENT(tp, BSSGP_IE_FLOW_CTRL_GRANULARITY)) { + uint8_t gran = *TLVP_VAL(tp, BSSGP_IE_FLOW_CTRL_GRANULARITY); + granularity = bssgp_fc_gran_tbl[gran & 3]; + } + + /* mandatory IEs */ + fc->tag = *TLVP_VAL(tp, BSSGP_IE_TAG); + fc->bucket_size_max = granularity * tlvp_val16be(tp, BSSGP_IE_BVC_BUCKET_SIZE); + fc->bucket_leak_rate = (granularity * tlvp_val16be(tp, BSSGP_IE_BUCKET_LEAK_RATE)) / 8; + fc->u.bvc.bmax_default_ms = granularity * tlvp_val16be(tp, BSSGP_IE_BMAX_DEFAULT_MS); + fc->u.bvc.r_default_ms = (granularity * tlvp_val16be(tp, BSSGP_IE_R_DEFAULT_MS)) / 8; + + /* optional / conditional */ + if (TLVP_PRESENT(tp, BSSGP_IE_BUCKET_FULL_RATIO)) { + fc->bucket_full_ratio_present = true; + fc->bucket_full_ratio = *TLVP_VAL(tp, BSSGP_IE_BUCKET_FULL_RATIO); + } else { + fc->bucket_full_ratio_present = false; + } + + if (TLVP_PRESENT(tp, BSSGP_IE_BVC_MEASUREMENT)) { + uint16_t val = tlvp_val16be(tp, BSSGP_IE_BVC_MEASUREMENT); + fc->u.bvc.measurement_present = true; + /* convert from centi-seconds to milli-seconds */ + if (val == 0xffff) + fc->u.bvc.measurement = 0xffffffff; + else + fc->u.bvc.measurement = val * 10; + } else { + fc->u.bvc.measurement_present = false; + } + + return 0; + +} + +/*! Encode a FLOW-CONTROL-BVC PDU as per TS 48.018 Section 10.4.4. + * \param[in] fc structure describing to-be-encoded FC parameters + * \param[in] gran if non-NULL: Encode using specified unit granularity + * \returns encoded PDU or NULL in case of error */ +struct msgb *bssgp2_enc_fc_bvc(const struct bssgp2_flow_ctrl *fc, enum bssgp_fc_granularity *gran) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + unsigned int granularity = 100; + + if (gran) + granularity = bssgp_fc_gran_tbl[*gran & 3]; + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC; + + msgb_tvlv_put(msg, BSSGP_IE_TAG, 1, &fc->tag); + msgb_tvlv_put_16be(msg, BSSGP_IE_BVC_BUCKET_SIZE, fc->bucket_size_max / granularity); + msgb_tvlv_put_16be(msg, BSSGP_IE_BUCKET_LEAK_RATE, fc->bucket_leak_rate * 8 / granularity); + msgb_tvlv_put_16be(msg, BSSGP_IE_BMAX_DEFAULT_MS, fc->u.bvc.bmax_default_ms / granularity); + msgb_tvlv_put_16be(msg, BSSGP_IE_R_DEFAULT_MS, fc->u.bvc.r_default_ms * 8 / granularity); + + if (fc->bucket_full_ratio_present) + msgb_tvlv_put(msg, BSSGP_IE_BUCKET_FULL_RATIO, 1, &fc->bucket_full_ratio); + + if (fc->u.bvc.measurement_present) { + uint16_t val; + /* convert from ms to cs */ + if (fc->u.bvc.measurement == 0xffffffff) + val = 0xffff; + else + val = fc->u.bvc.measurement / 10; + msgb_tvlv_put_16be(msg, BSSGP_IE_BVC_MEASUREMENT, val); + } + + if (gran) { + uint8_t val = *gran & 3; + msgb_tvlv_put(msg, BSSGP_IE_FLOW_CTRL_GRANULARITY, 1, &val); + } + + return msg; +} + +/*! Encode a FLOW-CONTROL-BVC-ACK PDU as per TS 48.018 Section 10.4.4. + * \param[in] tag the tag IE value to encode + * \returns encoded PDU or NULL in case of error */ +struct msgb *bssgp2_enc_fc_bvc_ack(uint8_t tag) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC_ACK; + + msgb_tvlv_put(msg, BSSGP_IE_TAG, 1, &tag); + + return msg; +} + +/*! Decode a FLOW-CONTROL-MS PDU as per TS 48.018 Section 10.4.6. + * \param[out] fc caller-allocated memory for parsed output + * \param[in] tp pre-parsed TLVs; caller must ensure mandatory IE presence/length + * \returns 0 on success; negative in case of error */ +int bssgp2_dec_fc_ms(struct bssgp2_flow_ctrl *fc, struct tlv_parsed *tp) +{ + unsigned int granularity = 100; + + /* optional "Flow Control Granularity IE" (11.3.102); applies to + * bucket_size_max, bucket_leak_rate and PFC FC params IE */ + if (TLVP_PRESENT(tp, BSSGP_IE_FLOW_CTRL_GRANULARITY)) { + uint8_t gran = *TLVP_VAL(tp, BSSGP_IE_FLOW_CTRL_GRANULARITY); + granularity = bssgp_fc_gran_tbl[gran & 3]; + } + + /* mandatory IEs */ + fc->u.ms.tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); + fc->tag = *TLVP_VAL(tp, BSSGP_IE_TAG); + fc->bucket_size_max = granularity * tlvp_val16be(tp, BSSGP_IE_MS_BUCKET_SIZE); + fc->bucket_leak_rate = (granularity * tlvp_val16be(tp, BSSGP_IE_BUCKET_LEAK_RATE)) / 8; + + /* optional / conditional */ + if (TLVP_PRESENT(tp, BSSGP_IE_BUCKET_FULL_RATIO)) { + fc->bucket_full_ratio_present = true; + fc->bucket_full_ratio = *TLVP_VAL(tp, BSSGP_IE_BUCKET_FULL_RATIO); + } else { + fc->bucket_full_ratio_present = false; + } + + return 0; +} + +/*! Encode a FLOW-CONTROL-MS PDU as per TS 48.018 Section 10.4.6. + * \param[in] fc structure describing to-be-encoded FC parameters + * \param[in] gran if non-NULL: Encode using specified unit granularity + * \returns encoded PDU or NULL in case of error */ +struct msgb *bssgp2_enc_fc_ms(const struct bssgp2_flow_ctrl *fc, enum bssgp_fc_granularity *gran) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + unsigned int granularity = 100; + + if (gran) + granularity = bssgp_fc_gran_tbl[*gran & 3]; + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_MS; + + msgb_tvlv_put_32be(msg, BSSGP_IE_TLLI, fc->u.ms.tlli); + msgb_tvlv_put(msg, BSSGP_IE_TAG, 1, &fc->tag); + msgb_tvlv_put_16be(msg, BSSGP_IE_MS_BUCKET_SIZE, fc->bucket_size_max / granularity); + msgb_tvlv_put_16be(msg, BSSGP_IE_BUCKET_LEAK_RATE, fc->bucket_leak_rate * 8 / granularity); + + if (fc->bucket_full_ratio_present) + msgb_tvlv_put(msg, BSSGP_IE_BUCKET_FULL_RATIO, 1, &fc->bucket_full_ratio); + + if (gran) { + uint8_t val = *gran & 3; + msgb_tvlv_put(msg, BSSGP_IE_FLOW_CTRL_GRANULARITY, 1, &val); + } + + return msg; +} + +/*! Encode a FLOW-CONTROL-BVC-ACK PDU as per TS 48.018 Section 10.4.7. + * \param[in] tlli the TLLI IE value to encode + * \param[in] tag the tag IE value to encode + * \returns encoded PDU or NULL in case of error */ +struct msgb *bssgp2_enc_fc_ms_ack(uint32_t tlli, uint8_t tag) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC_ACK; + + msgb_tvlv_put_32be(msg, BSSGP_IE_TLLI, tlli); + msgb_tvlv_put(msg, BSSGP_IE_TAG, 1, &tag); + + return msg; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index e605d27..f8ad901 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -47,12 +47,18 @@ bssgp2_nsi_tx_ptp; bssgp2_nsi_tx_sig; +bssgp2_dec_fc_bvc; +bssgp2_dec_fc_ms; bssgp2_enc_bvc_block; bssgp2_enc_bvc_block_ack; bssgp2_enc_bvc_unblock; bssgp2_enc_bvc_unblock_ack; bssgp2_enc_bvc_reset; bssgp2_enc_bvc_reset_ack; +bssgp2_enc_fc_bvc; +bssgp2_enc_fc_bvc_ack; +bssgp2_enc_fc_ms; +bssgp2_enc_fc_ms_ack; bssgp2_enc_status; bssgp_bvc_fsm_alloc_sig_bss; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9c89bb1c03550930c07aad7ff8f67129ee7a6320 Gerrit-Change-Number: 21610 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 Dec 8 20:38:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 20:38:09 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21611 ) Change subject: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support ...................................................................... bssgp_bvc_fsm: Add basic BVC flow control rx/tx support The FSM doesn't actually implement the flow control logic, it only decodes / dispatches and encodes messages. Change-Id: Ie59be6761177c43456898be9148727f15861a622 --- M include/osmocom/gprs/bssgp_bvc_fsm.h M src/gb/bssgp_bvc_fsm.c 2 files changed, 41 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/11/21611/1 diff --git a/include/osmocom/gprs/bssgp_bvc_fsm.h b/include/osmocom/gprs/bssgp_bvc_fsm.h index 7c6fdeb..e69c205 100644 --- a/include/osmocom/gprs/bssgp_bvc_fsm.h +++ b/include/osmocom/gprs/bssgp_bvc_fsm.h @@ -4,6 +4,7 @@ struct gprs_ns2_inst; struct osmo_fsm_inst; struct gprs_ra_id; +struct bssgp2_flow_ctrl; enum bssp_ptp_bvc_fsm_state { BSSGP_BVCFSM_S_NULL, @@ -22,10 +23,13 @@ BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, BSSGP_BVCFSM_E_RX_RESET, BSSGP_BVCFSM_E_RX_RESET_ACK, + BSSGP_BVCFSM_E_RX_FC_BVC, + BSSGP_BVCFSM_E_RX_FC_BVC_ACK, /* Requests of the local user */ BSSGP_BVCFSM_E_REQ_BLOCK, /* data: uint8_t *cause */ 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 */ }; struct bssgp_bvc_fsm_ops { @@ -35,6 +39,7 @@ /* call-back notifying the user of a BVC-RESET event */ void (*reset_notification)(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, uint16_t cell_id, uint8_t cause, void *priv); + void (*rx_fc_bvc)(uint16_t nsei, uint16_t bvci, const struct bssgp2_flow_ctrl *fc, void *priv); }; struct osmo_fsm_inst * diff --git a/src/gb/bssgp_bvc_fsm.c b/src/gb/bssgp_bvc_fsm.c index a0e4b01..2224eba 100644 --- a/src/gb/bssgp_bvc_fsm.c +++ b/src/gb/bssgp_bvc_fsm.c @@ -86,6 +86,8 @@ { BSSGP_BVCFSM_E_REQ_BLOCK, "REQ-BLOCK" }, { BSSGP_BVCFSM_E_REQ_UNBLOCK, "REQ-UNBLOCK" }, { BSSGP_BVCFSM_E_REQ_RESET, "REQ-RESET" }, + { BSSGP_BVCFSM_E_RX_FC_BVC, "RX-FLOW-CONTROL-BVC" }, + { BSSGP_BVCFSM_E_RX_FC_BVC_ACK, "RX-FLOW-CONTROL-BVC-ACK" }, { 0, NULL } }; @@ -114,6 +116,8 @@ uint32_t advertised; uint32_t received; uint32_t negotiated; + /* only used if BSSGP_XFEAT_GBIT is negotiated */ + enum bssgp_fc_granularity fc_granularity; } features; /* Cell Identification used by BSS when @@ -372,9 +376,11 @@ static void bssgp_bvc_fsm_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) { + struct bssgp2_flow_ctrl rx_fc, *tx_fc; struct bvc_fsm_priv *bfp = fi->priv; const struct tlv_parsed *tp = NULL; struct msgb *rx = NULL, *tx; + int rc; switch (event) { case BSSGP_BVCFSM_E_RX_UNBLOCK_ACK: @@ -440,6 +446,33 @@ fi_tx_sig(fi, tx); osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, T1_SECS, T1); break; + case BSSGP_BVCFSM_E_RX_FC_BVC: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* we assume osmo_tlv_prot_* has been used before calling here to ensure this */ + OSMO_ASSERT(bfp->role_sgsn); + rc = bssgp2_dec_fc_bvc(&rx_fc, tp); + if (rc < 0) { + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + if (bfp->ops->rx_fc_bvc) + bfp->ops->rx_fc_bvc(bfp->nsei, bfp->bvci, &rx_fc, bfp->ops_priv); + tx = bssgp2_enc_fc_bvc_ack(rx_fc.tag); + fi_tx_sig(fi, tx); + break; + case BSSGP_BVCFSM_E_RX_FC_BVC_ACK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* we assume osmo_tlv_prot_* has been used before calling here to ensure this */ + OSMO_ASSERT(!bfp->role_sgsn); + break; + case BSSGP_BVCFSM_E_REQ_FC_BVC: + tx_fc = data; + tx = bssgp2_enc_fc_bvc(tx_fc, bfp->features.negotiated & (BSSGP_XFEAT_GBIT << 8) ? + &bfp->features.fc_granularity : NULL); + fi_tx_sig(fi, tx); + break; } } @@ -561,7 +594,9 @@ .in_event_mask = S(BSSGP_BVCFSM_E_RX_BLOCK) | S(BSSGP_BVCFSM_E_RX_UNBLOCK) | S(BSSGP_BVCFSM_E_RX_UNBLOCK_ACK) | - S(BSSGP_BVCFSM_E_REQ_BLOCK), + S(BSSGP_BVCFSM_E_REQ_BLOCK) | + S(BSSGP_BVCFSM_E_RX_FC_BVC) | + S(BSSGP_BVCFSM_E_RX_FC_BVC_ACK), .out_state_mask = S(BSSGP_BVCFSM_S_BLOCKED) | S(BSSGP_BVCFSM_S_WAIT_RESET_ACK) | S(BSSGP_BVCFSM_S_UNBLOCKED), -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie59be6761177c43456898be9148727f15861a622 Gerrit-Change-Number: 21611 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 Dec 8 21:18:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:18:01 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Add basic BVC flow control rx/tx 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/libosmocore/+/21611 to look at the new patch set (#2). Change subject: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support ...................................................................... bssgp_bvc_fsm: Add basic BVC flow control rx/tx support The FSM doesn't actually implement the flow control logic, it only decodes / dispatches and encodes messages. Change-Id: Ie59be6761177c43456898be9148727f15861a622 --- M include/osmocom/gprs/bssgp_bvc_fsm.h M src/gb/bssgp_bvc_fsm.c 2 files changed, 43 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/11/21611/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie59be6761177c43456898be9148727f15861a622 Gerrit-Change-Number: 21611 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 Tue Dec 8 21:27:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:27:56 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation 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/+/21598 to look at the new patch set (#6). Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... gb: Add beginnings of a new BSSGP implementation Similar to ns2 superseding ns, we now also intoduce a next generation of BSSGP related code to libosmogb. However, this is not aiming to be a full implementation yet, but simply those parts that we currently need from the revamped osmo-gbproxy. The gprs_bssgp2.[ch] differs in two ways from the old code: * it separates message encoding from message transmission * it supports more recent specs / IEs bssgp_bvc_fsm.c is a genric implementation of the BSSGP BVC RESET/BLOCK/UNBLOCK logic with support for both PTP and signaling, both on the SGSN side and the BSS side. Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a --- M include/Makefile.am A include/osmocom/gprs/bssgp_bvc_fsm.h A include/osmocom/gprs/gprs_bssgp2.h M src/gb/Makefile.am A src/gb/bssgp_bvc_fsm.c A src/gb/gprs_bssgp2.c M src/gb/libosmogb.map 7 files changed, 1,100 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/21598/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 6 Gerrit-Owner: laforge 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 Dec 8 21:27:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:27:56 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Add basic BVC flow control rx/tx 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/libosmocore/+/21611 to look at the new patch set (#3). Change subject: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support ...................................................................... bssgp_bvc_fsm: Add basic BVC flow control rx/tx support The FSM doesn't actually implement the flow control logic, it only decodes / dispatches and encodes messages. Change-Id: Ie59be6761177c43456898be9148727f15861a622 --- M include/osmocom/gprs/bssgp_bvc_fsm.h M src/gb/bssgp_bvc_fsm.c 2 files changed, 43 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/11/21611/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie59be6761177c43456898be9148727f15861a622 Gerrit-Change-Number: 21611 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 Tue Dec 8 21:50:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:50:32 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Add basic BVC flow control rx/tx 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/libosmocore/+/21611 to look at the new patch set (#4). Change subject: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support ...................................................................... bssgp_bvc_fsm: Add basic BVC flow control rx/tx support The FSM doesn't actually implement the flow control logic, it only decodes / dispatches and encodes messages. Related: OS#4891 Change-Id: Ie59be6761177c43456898be9148727f15861a622 --- M include/osmocom/gprs/bssgp_bvc_fsm.h M src/gb/bssgp_bvc_fsm.c 2 files changed, 43 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/11/21611/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie59be6761177c43456898be9148727f15861a622 Gerrit-Change-Number: 21611 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 Tue Dec 8 21:58:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:58:43 +0000 Subject: Change in osmo-sgsn[master]: WIP: gbproxy rewrite References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 ) Change subject: WIP: gbproxy rewrite ...................................................................... WIP: gbproxy rewrite Rewrite of a large part of osmo-gbproxy in order to prepare for SGSN pool support. The amount of changes are of such fundamental nature that it doesn't make sense to try to split this into hundreds of individual changesets. Related: OS#4472 Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 6 files changed, 867 insertions(+), 479 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/12/21612/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index ac03a11..e61b991 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -48,19 +49,43 @@ /* global gb-proxy configuration */ struct gbproxy_config { - /* parsed from config file */ - uint16_t nsip_sgsn_nsei; - /* NS instance of libosmogb */ struct gprs_ns2_inst *nsi; /* Linked list of all BSS side Gb peers */ DECLARE_HASHTABLE(bss_nses, 8); + /* hash table of all SGSN-side Gb peers */ + DECLARE_HASHTABLE(sgsn_nses, 8); + + /* hash table of all gbproxy_cell */ + DECLARE_HASHTABLE(cells, 8); + /* Counter */ struct rate_ctr_group *ctrg; }; +/* One Cell within the BSS: Links BSS-side BVC to SGSN-side BVCs */ +struct gbproxy_cell { + /* linked to gbproxy_config.cells hashtable */ + struct hlist_node list; + + /* point back to the config */ + struct gbproxy_config *cfg; + + /* BVCI of PTP BVCs associated to this cell */ + uint16_t bvci; + + /* Routing Area that this BVC is part of (raw 04.08 encoding) */ + uint8_t ra[6]; + + /* pointer to the BSS-side BVC */ + struct gbproxy_bvc *bss_bvc; + + /* pointers to SGSN-side BVC (one for each pool member) */ + struct gbproxy_bvc *sgsn_bvc[16]; +}; + /* One BVC inside an NSE */ struct gbproxy_bvc { /* linked to gbproxy_nse.bvcs */ @@ -75,11 +100,14 @@ /* Routing Area that this BVC is part of (raw 04.08 encoding) */ uint8_t ra[6]; - /* true if this BVC is blocked */ - bool blocked; - /* Counter */ struct rate_ctr_group *ctrg; + + /* the cell to which this BVC belongs */ + struct gbproxy_cell *cell; + + /* per-BVC FSM instance */ + struct osmo_fsm_inst *fi; }; /* one NS Entity that we interact with (BSS/PCU) */ @@ -93,19 +121,24 @@ /* NSEI of the NSE */ uint16_t nsei; + /* Are we facing towards a SGSN (true) or BSS (false) */ + bool sgsn_facing; + /* List of all BVCs in this NSE */ DECLARE_HASHTABLE(bvcs, 10); }; /* Convenience logging macros for NSE/BVC */ #define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ - LOGP(SUBSYS, LEVEL, "NSE(%05u/BSS) " FMT, (NSE)->nsei, ## ARGS) + LOGP(SUBSYS, LEVEL, "NSE(%05u/%s) " FMT, (NSE)->nsei, \ + (NSE)->sgsn_facing ? "SGSN" : "BSS", ## ARGS) #define LOGPNSE(NSE, LEVEL, FMT, ARGS...) \ LOGPNSE_CAT(NSE, DGPRS, LEVEL, FMT, ## ARGS) #define LOGPBVC_CAT(BVC, SUBSYS, LEVEL, FMT, ARGS...) \ - LOGP(SUBSYS, LEVEL, "NSE(%05u/BSS)-BVC(%05u/%s) " FMT, (BVC)->nse->nsei, (BVC)->bvci, \ - (BVC)->blocked ? "BLOCKED" : "UNBLOCKED", ## ARGS) + LOGP(SUBSYS, LEVEL, "NSE(%05u/%s)-BVC(%05u/%s) " FMT, (BVC)->nse->nsei, \ + (BVC)->nse->sgsn_facing ? "SGSN" : "BSS", (BVC)->bvci, \ + osmo_fsm_inst_state_name((BVC)->fi), ## ARGS) #define LOGPBVC(BVC, LEVEL, FMT, ARGS...) \ LOGPBVC_CAT(BVC, DGPRS, LEVEL, FMT, ## ARGS) @@ -133,21 +166,23 @@ void gbprox_reset(struct gbproxy_config *cfg); /* Peer handling */ -struct gbproxy_bvc *gbproxy_bvc_by_bvci( - struct gbproxy_config *cfg, uint16_t bvci); -struct gbproxy_bvc *gbproxy_bvc_by_nsei( - struct gbproxy_config *cfg, uint16_t nsei); -struct gbproxy_bvc *gbproxy_bvc_by_rai( - struct gbproxy_config *cfg, const uint8_t *ra); +#define NSE_F_SGSN 0x0001 +#define NSE_F_BSS 0x0002 + +struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_nse *nse, uint16_t bvci); struct gbproxy_bvc *gbproxy_bvc_alloc(struct gbproxy_nse *nse, uint16_t bvci); void gbproxy_bvc_free(struct gbproxy_bvc *bvc); -void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse); -int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci); +int gbproxy_cleanup_bvcs(struct gbproxy_nse *nse, uint16_t bvci); + +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); +void gbproxy_cell_free(struct gbproxy_cell *cell); +bool gbproxy_cell_add_sgsn_bvc(struct gbproxy_cell *cell, struct gbproxy_bvc *bvc); /* NSE handling */ -struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei); +struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing); void gbproxy_nse_free(struct gbproxy_nse *nse); -struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei); -struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei); +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); #endif diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index ecb74c0..a920906 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1,6 +1,6 @@ /* NS-over-IP proxy */ -/* (C) 2010 by Harald Welte +/* (C) 2010-2020 by Harald Welte * (C) 2010-2013 by On-Waves * (C) 2013 by Holger Hans Peter Freyther * All Rights Reserved @@ -41,6 +41,7 @@ #include #include #include +#include #include @@ -80,30 +81,8 @@ static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_bvc *bvc, uint16_t ns_bvci); -static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, - uint16_t ns_bvci, uint16_t sgsn_nsei); -static int gbproxy_is_sgsn_nsei(struct gbproxy_config *cfg, uint16_t nsei) -{ - return nsei == cfg->nsip_sgsn_nsei; -} - -static int check_bvc_nsei(struct gbproxy_bvc *bvc, uint16_t nsei) -{ - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - - if (bvc->nse->nsei != nsei) { - LOGPBVC(bvc, LOGL_NOTICE, "Peer entry doesn't match current NSEI " - "via NSE(%05u/BSS)\n", nsei); - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_INV_NSEI]); - return 0; - } - - return 1; -} - /* generate BVC-STATUS message with cause value derived from TLV-parser error */ static int tx_status_from_tlvp(enum osmo_tlv_parser_error tlv_p_err, struct msgb *orig_msg) { @@ -125,6 +104,7 @@ msgb_pull(msg, strip_len); } +#if 0 /* feed a message down the NS-VC associated with the specified bvc */ static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei) @@ -150,6 +130,7 @@ rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_TX_ERR_SGSN]); return rc; } +#endif /* feed a message down the NSE */ static int gbprox_relay2nse(struct msgb *old_msg, struct gbproxy_nse *nse, @@ -208,198 +189,456 @@ return rc; } -static int block_unblock_bvc(struct gbproxy_config *cfg, uint16_t ptp_bvci, uint8_t pdu_type) -{ - struct gbproxy_bvc *bvc; - - bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", - ptp_bvci); - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); - return -ENOENT; - } - - switch (pdu_type) { - case BSSGP_PDUT_BVC_BLOCK_ACK: - bvc->blocked = true; - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_BLOCKED]); - break; - case BSSGP_PDUT_BVC_UNBLOCK_ACK: - bvc->blocked = false; - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_UNBLOCKED]); - break; - default: - break; - } - return 0; -} - -/* Send a message to a bvc identified by ptp_bvci but using ns_bvci - * in the NS hdr */ -static int gbprox_relay2bvci(struct gbproxy_config *cfg, struct msgb *msg, uint16_t ptp_bvci, - uint16_t ns_bvci) -{ - struct gbproxy_bvc *bvc; - - bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", - ptp_bvci); - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); - return -ENOENT; - } - - return gbprox_relay2peer(msg, bvc, ns_bvci); -} - int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { return 0; } + +/*********************************************************************** + * PTP BVC handling + ***********************************************************************/ + +/* route an uplink message on a PTP-BVC to a SGSN using the TLLI */ +static int gbprox_bss2sgsn_tlli(struct gbproxy_cell *cell, struct msgb *msg, uint32_t tlli, + bool sig_bvci) +{ + struct gbproxy_bvc *sgsn_bvc; + unsigned int i; + + /* FIXME: derive NRI from TLLI */ + /* FIXME: find the SGSN for that NRI */ + + /* HACK: we currently simply pick the first SGSN we find */ + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + sgsn_bvc = cell->sgsn_bvc[i]; + if (sgsn_bvc) + return gbprox_relay2peer(msg, sgsn_bvc, sig_bvci ? 0 : sgsn_bvc->bvci); + } + return 0; +} + +static int gbprox_bss2sgsn_null_nri(struct gbproxy_cell *cell, struct msgb *msg) +{ + struct gbproxy_bvc *sgsn_bvc; + unsigned int i; + + /* FIXME: find the SGSN for that NRI */ + + /* HACK: we currently simply pick the first SGSN we find */ + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + sgsn_bvc = cell->sgsn_bvc[i]; + if (sgsn_bvc) + return gbprox_relay2peer(msg, sgsn_bvc, sgsn_bvc->bvci); + } + return 0; +} + + /* Receive an incoming PTP message from a BSS-side NS-VC */ -static int gbprox_rx_ptp_from_bss(struct gbproxy_config *cfg, - struct msgb *msg, uint16_t nsei, - uint16_t ns_bvci) +static int gbprox_rx_ptp_from_bss(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - struct gbproxy_bvc *bvc; + const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); + struct gbproxy_bvc *bss_bvc; + struct tlv_parsed tp; + char log_pfx[32]; + uint32_t tlli; + int rc; + + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/BSS)-BVC(%05u/??)", nse->nsei, ns_bvci); + + LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); if (ns_bvci == 0 && ns_bvci == 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not PTP\n", nsei, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not PTP\n", log_pfx, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_PTP)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in PTP BVC\n", - nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in PTP BVC\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_UL)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in uplink direction\n", - nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in uplink direction\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find bvc " - "for PTP message from NSE(%05u/BSS), " - "discarding message\n", - ns_bvci, nsei); - return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, - &ns_bvci, msg); + bss_bvc = gbproxy_bvc_by_bvci(nse, ns_bvci); + if (!bss_bvc) { + LOGP(DGPRS, LOGL_NOTICE, "%s %s - Didn't find BVC for PTP message, discarding\n", + log_pfx, pdut_name); + return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &ns_bvci, msg); } - /* TODO: Should we discard this message if the check fails */ - check_bvc_nsei(bvc, nsei); + /* UL_UNITDATA has a different header than all other uplink PDUs */ + if (bgph->pdu_type == BSSGP_PDUT_UL_UNITDATA) { + const struct bssgp_ud_hdr *budh = (struct bssgp_ud_hdr *) msgb_bssgph(msg); + if (msgb_bssgp_len(msg) < sizeof(*budh)) + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, bgph->pdu_type, budh->data, + msgb_bssgp_len(msg) - sizeof(*budh), 0, 0, DGPRS, log_pfx); + /* populate TLLI from the fixed headser into the TLV-parsed array so later code + * doesn't have to worry where the TLLI came from */ + tp.lv[BSSGP_IE_TLLI].len = 4; + tp.lv[BSSGP_IE_TLLI].val = (const uint8_t *) &budh->tlli; + } else { + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, bgph->pdu_type, bgph->data, + msgb_bssgp_len(msg) - sizeof(*bgph), 0, 0, DGPRS, log_pfx); + } + if (rc < 0) { + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + return tx_status_from_tlvp(rc, msg); + } - return gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn_nsei); + switch (bgph->pdu_type) { + case BSSGP_PDUT_UL_UNITDATA: + case BSSGP_PDUT_RA_CAPA_UPDATE: + case BSSGP_PDUT_FLOW_CONTROL_MS: + case BSSGP_PDUT_DOWNLOAD_BSS_PFC: + case BSSGP_PDUT_CREATE_BSS_PFC_ACK: + case BSSGP_PDUT_CREATE_BSS_PFC_NACK: + case BSSGP_PDUT_MODIFY_BSS_PFC_ACK: + case BSSGP_PDUT_DELETE_BSS_PFC_ACK: + case BSSGP_PDUT_FLOW_CONTROL_PFC: + case BSSGP_PDUT_DELETE_BSS_PFC_REQ: + case BSSGP_PDUT_PS_HO_REQUIRED: + case BSSGP_PDUT_PS_HO_REQUEST_ACK: + case BSSGP_PDUT_PS_HO_REQUEST_NACK: + case BSSGP_PDUT_PS_HO_COMPLETE: + case BSSGP_PDUT_PS_HO_CANCEL: + /* We can route based on TLLI-NRI */ + tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + break; + case BSSGP_PDUT_RADIO_STATUS: + if (TLVP_PRESENT(&tp, BSSGP_IE_TLLI)) { + tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + } 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)); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + } else if (TLVP_PRESENT(&tp, BSSGP_IE_IMSI)) { + rc = gbprox_bss2sgsn_null_nri(bss_bvc->cell, msg); + } else + LOGPBVC(bss_bvc, LOGL_ERROR, "Rx RADIO-STATUS without any of the conditional IEs\n"); + 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); + break; + case BSSGP_PDUT_FLOW_CONTROL_BVC: + /* TODO: Implement via FSM */ + //rc = osmo_fsm_inst_dispatch(bss_bvc->fi, FIXME, &tp); + LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); + break; + case BSSGP_PDUT_STATUS: + /* TODO: Implement by inspecting the contained PDU */ + if (!TLVP_PRESENT(&tp, BSSGP_IE_PDU_IN_ERROR)) + break; + LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); + break; + } + + return 0; } /* Receive an incoming PTP message from a SGSN-side NS-VC */ -static int gbprox_rx_ptp_from_sgsn(struct gbproxy_config *cfg, - struct msgb *msg, uint16_t nsei, - uint16_t ns_bvci) +static int gbprox_rx_ptp_from_sgsn(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - struct gbproxy_bvc *bvc; + const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); + struct gbproxy_bvc *sgsn_bvc, *bss_bvc; + char log_pfx[32]; + + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)-BVC(%05u/??)", nse->nsei, ns_bvci); + + LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); if (ns_bvci == 0 && ns_bvci == 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not PTP\n", nsei, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s BVCI is not PTP\n", log_pfx); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_PTP)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in PTP BVC\n", - nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in PTP BVC\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_DL)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in downlink direction\n", - nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find bvc for " - "for message from NSE(%05u/SGSN)\n", - ns_bvci, nsei); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_INV_BVCI]); - return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, - &ns_bvci, msg); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, ns_bvci); + if (!sgsn_bvc) { + LOGP(DGPRS, LOGL_NOTICE, "%s %s - Didn't find BVC for for PTP message, discarding\n", + log_pfx, pdut_name); + rate_ctr_inc(&nse->cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_BVCI]); + return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &ns_bvci, msg); } - if (bvc->blocked) { - LOGPBVC(bvc, LOGL_NOTICE, "Dropping PDU for " - "blocked BVC via NSE(%05u/SGSN)\n", nsei); - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); + if (!bssgp_bvc_fsm_is_unblocked(sgsn_bvc->fi)) { + LOGPBVC(sgsn_bvc, LOGL_NOTICE, "Rx %s: Dropping on blocked BVC\n", pdut_name); + rate_ctr_inc(&sgsn_bvc->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); return bssgp_tx_status(BSSGP_CAUSE_BVCI_BLOCKED, &ns_bvci, msg); } + OSMO_ASSERT(sgsn_bvc->cell); + bss_bvc = sgsn_bvc->cell->bss_bvc; - return gbprox_relay2peer(msg, bvc, ns_bvci); + return gbprox_relay2peer(msg, bss_bvc, bss_bvc->bvci); } -/* process a BVC-RESET message from the BSS side */ -static int gbprox_rx_bvc_reset_from_bss(struct gbproxy_config *cfg, struct msgb *msg, - uint16_t nsei, struct tlv_parsed *tp) -{ - struct gbproxy_bvc *from_bvc = NULL; - uint16_t bvci; +/*********************************************************************** + * BVC FSM call-backs + ***********************************************************************/ - if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); - return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); +/* helper function to dispatch a FSM event to all SGSN-side BVC FSMs of a cell */ +static void dispatch_to_all_sgsn_bvc(struct gbproxy_cell *cell, uint32_t event, void *priv) +{ + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + struct gbproxy_bvc *sgsn_bvc = cell->sgsn_bvc[i]; + if (!sgsn_bvc) + continue; + osmo_fsm_inst_dispatch(sgsn_bvc->fi, event, priv); + } +} + +/* BVC FSM informs us about a BSS-side reset of the signaling BVC */ +static void bss_sig_bvc_reset_notif(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv) +{ + struct gbproxy_bvc *sig_bvc = priv; + struct gbproxy_nse *nse = sig_bvc->nse; + struct gbproxy_bvc *ptp_bvc; + unsigned int i; + + /* BLOCK all SGSN-side PTP BVC within this NSE */ + hash_for_each(nse->bvcs, i, ptp_bvc, list) { + if (ptp_bvc == sig_bvc) + continue; + OSMO_ASSERT(ptp_bvc->cell); + + dispatch_to_all_sgsn_bvc(ptp_bvc->cell, BSSGP_BVCFSM_E_REQ_BLOCK, &cause); } - bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); - LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); + /* Delete all BSS-side PTP BVC within this NSE */ + gbproxy_cleanup_bvcs(nse, 0); + + /* TODO: we keep the "CELL" around for now, re-connecting it to + * any (later) new PTP-BVC for that BVCI. Not sure if that's the + * best idea ? */ +} + +/* forward declaration */ +static const struct bssgp_bvc_fsm_ops sgsn_ptp_bvc_fsm_ops; + +static const struct bssgp_bvc_fsm_ops bss_sig_bvc_fsm_ops = { + .reset_notification = bss_sig_bvc_reset_notif, +}; + +/* BVC FSM informs us about a BSS-side reset of a PTP BVC */ +static void bss_ptp_bvc_reset_notif(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv) +{ + struct gbproxy_bvc *bvc = priv; + struct gbproxy_config *cfg = bvc->nse->cfg; + unsigned int i; + + OSMO_ASSERT(bvci != 0); + + if (!bvc->cell) { + /* see if we have a CELL dangling around */ + bvc->cell = gbproxy_cell_by_bvci(cfg, bvci); + if (bvc->cell) { + /* the CELL already exists. This means either it * was created before at an + * earlier PTP BVC-RESET, or that there are non-unique BVCIs and hence a + * malconfiguration */ + if (bvc->cell->bss_bvc) { + LOGPBVC(bvc, LOGL_NOTICE, "Rx BVC-RESET via this NSE, but CELL already " + "has BVC on NSEI=%05u\n", bvc->cell->bss_bvc->nse->nsei); + LOGPBVC(bvc->cell->bss_bvc, LOGL_NOTICE, "Destroying due to conflicting " + "BVCI configuration (new NSEI=%05u)!\n", bvc->nse->nsei); + gbproxy_bvc_free(bvc->cell->bss_bvc); + } + bvc->cell->bss_bvc = bvc; + } + } + + if (!bvc->cell) { + struct gbproxy_nse *sgsn_nse; + /* if we end up here, it means this is the first time we received a BVC-RESET + * for this BVC. We need to create the 'cell' data structure and the SGSN-side + * BVC counterparts */ + + bvc->cell = gbproxy_cell_alloc(cfg, bvci); + OSMO_ASSERT(bvc->cell); + + /* link us to the cell and vice-versa */ + bvc->cell->bss_bvc = bvc; + + /* allocate the SGSN-side BVCs within the cell, and reset them */ + hash_for_each(cfg->sgsn_nses, i, sgsn_nse, list) { + struct gbproxy_bvc *sgsn_bvc = gbproxy_bvc_by_bvci(sgsn_nse, bvci); + if (sgsn_bvc) + OSMO_ASSERT(!sgsn_bvc->cell); + + if (!sgsn_bvc) { + sgsn_bvc = gbproxy_bvc_alloc(sgsn_nse, bvci); + OSMO_ASSERT(sgsn_bvc); + + sgsn_bvc->cell = bvc->cell; + sgsn_bvc->fi = bssgp_bvc_fsm_alloc_ptp_bss(sgsn_bvc, cfg->nsi, sgsn_nse->nsei, + bvci, ra_id, cell_id); + OSMO_ASSERT(sgsn_bvc->fi); + bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); + + gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); + } else { + OSMO_ASSERT(sgsn_bvc->cell == bvc->cell); + } + } + } + + /* Trigger outbound BVC-RESET procedure toward each SGSN */ + dispatch_to_all_sgsn_bvc(bvc->cell, BSSGP_BVCFSM_E_REQ_RESET, &cause); +} + +/* BVC FSM informs us about a BSS-side FSM state change */ +static void bss_ptp_bvc_state_chg_notif(uint16_t nsei, uint16_t bvci, int old_state, int state, void *priv) +{ + struct gbproxy_bvc *bvc = priv; + struct gbproxy_cell *cell = bvc->cell; + uint8_t cause = bssgp_bvc_fsm_get_block_cause(bvc->fi); + + /* we have just been created but due to callback ordering the cell is not associated */ + if (!cell) + return; + + switch (state) { + case BSSGP_BVCFSM_S_BLOCKED: + /* block the corresponding SGSN-side PTP BVCs */ + dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_BLOCK, &cause); + break; + case BSSGP_BVCFSM_S_UNBLOCKED: + /* unblock the corresponding SGSN-side PTP BVCs */ + dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_UNBLOCK, NULL); + break; + } +} + +static const struct bssgp_bvc_fsm_ops bss_ptp_bvc_fsm_ops = { + .reset_notification = bss_ptp_bvc_reset_notif, + .state_chg_notification = bss_ptp_bvc_state_chg_notif, +}; + +/* BVC FSM informs us about a SGSN-side reset of a PTP BVC */ +static void sgsn_ptp_bvc_reset_notif(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv) +{ + struct gbproxy_bvc *bvc = priv; + + if (!bvc->cell) { + LOGPBVC(bvc, LOGL_ERROR, "RESET of PTP BVC on SGSN side for which we have no BSS?\n"); + return; + } + + OSMO_ASSERT(bvc->cell->bss_bvc); + + /* request reset of BSS-facing PTP-BVC */ + osmo_fsm_inst_dispatch(bvc->cell->bss_bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); +} + +static const struct bssgp_bvc_fsm_ops sgsn_ptp_bvc_fsm_ops = { + .reset_notification = sgsn_ptp_bvc_reset_notif, +}; + +/* BVC FSM informs us about a SGSN-side reset of the signaling BVC */ +static void sgsn_sig_bvc_reset_notif(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv) +{ + struct gbproxy_bvc *bvc = priv; + struct gbproxy_config *cfg = bvc->nse->cfg; + struct gbproxy_nse *bss_nse; + unsigned int i; + + /* delete all SGSN-side PTP BVC for this SGSN */ + gbproxy_cleanup_bvcs(bvc->nse, 0); + /* FIXME: what to do about the cells? */ + /* FIXME: do we really want to RESET all signaling BVC on the BSS and affect all other SGSN? */ + + /* we need to trigger generating a reset procedure towards each BSS side signaling BVC */ + hash_for_each(cfg->bss_nses, i, bss_nse, list) { + struct gbproxy_bvc *bss_bvc = gbproxy_bvc_by_bvci(bss_nse, 0); + if (!bss_bvc) { + LOGPNSE(bss_nse, LOGL_ERROR, "Doesn't have BVC with BVCI=0 ?!?\n"); + continue; + } + osmo_fsm_inst_dispatch(bss_bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); + } +} + +const struct bssgp_bvc_fsm_ops sgsn_sig_bvc_fsm_ops = { + .reset_notification = sgsn_sig_bvc_reset_notif, +}; + +/*********************************************************************** + * Signaling BVC handling + ***********************************************************************/ + +/* process a BVC-RESET message from the BSS side */ +static int rx_bvc_reset_from_bss(struct gbproxy_nse *nse, struct msgb *msg, struct tlv_parsed *tp) +{ + struct gbproxy_bvc *from_bvc = NULL; + uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + uint32_t features = 0; // FIXME: make configurable + + LOGPNSE(nse, LOGL_INFO, "Rx BVC-RESET (BVCI=%05u)\n", bvci); + if (bvci == 0) { /* If we receive a BVC reset on the signalling endpoint, we * don't want the SGSN to reset, as the signalling endpoint * is common for all point-to-point BVCs (and thus all BTS) */ - /* Ensure the NSE bvc is there and clear all PtP BVCs */ - struct gbproxy_nse *nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); - bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); - return 0; - } - - gbproxy_cleanup_bvcs(cfg, nsei, 0); - - /* FIXME: only do this if SGSN is alive! */ - LOGPNSE(nse, LOGL_INFO, "Tx fake BVC RESET ACK of BVCI=0\n"); - bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); - return 0; - } else { - from_bvc = gbproxy_bvc_by_bvci(cfg, bvci); + from_bvc = gbproxy_bvc_by_bvci(nse, 0); if (!from_bvc) { - struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " - "BVCI=%05u\n", nsei, bvci); - bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); - return 0; + from_bvc = gbproxy_bvc_alloc(nse, 0); + OSMO_ASSERT(from_bvc); + from_bvc->fi = bssgp_bvc_fsm_alloc_sig_sgsn(from_bvc, nse->cfg->nsi, nse->nsei, features); + if (!from_bvc->fi) { + LOGPNSE(nse, LOGL_ERROR, "Cannot allocate SIG-BVC FSM\n"); + gbproxy_bvc_free(from_bvc); + return -ENOMEM; } + bssgp_bvc_fsm_set_ops(from_bvc->fi, &bss_sig_bvc_fsm_ops, from_bvc); + } + } else { + from_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!from_bvc) { /* if a PTP-BVC is reset, and we don't know that * PTP-BVCI yet, we should allocate a new bvc */ from_bvc = gbproxy_bvc_alloc(nse, bvci); OSMO_ASSERT(from_bvc); - LOGPBVC(from_bvc, LOGL_INFO, "Allocated new bvc\n"); + from_bvc->fi = bssgp_bvc_fsm_alloc_ptp_sgsn(from_bvc, nse->cfg->nsi, + nse->nsei, bvci); + if (!from_bvc->fi) { + LOGPNSE(nse, LOGL_ERROR, "Cannot allocate SIG-BVC FSM\n"); + gbproxy_bvc_free(from_bvc); + return -ENOMEM; + } + bssgp_bvc_fsm_set_ops(from_bvc->fi, &bss_ptp_bvc_fsm_ops, from_bvc); } - +#if 0 /* Could have moved to a different NSE */ if (!check_bvc_nsei(from_bvc, nsei)) { LOGPBVC(from_bvc, LOGL_NOTICE, "moving bvc to NSE(%05u)\n", nsei); - struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); + struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei, false); if (!nse_new) { LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " "BVCI=%05u\n", bvci, nsei); @@ -410,7 +649,8 @@ /* Move bvc to different NSE */ gbproxy_bvc_move(from_bvc, nse_new); } - +#endif + /* FIXME: do we need this, if it happens within FSM? */ if (TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { struct gprs_ra_id raid; /* We have a Cell Identifier present in this @@ -422,126 +662,158 @@ LOGPBVC(from_bvc, LOGL_INFO, "Cell ID %s\n", osmo_rai_name(&raid)); } } - /* continue processing / relaying to SGSN[s] */ - return 1; + /* hand into FSM for further processing */ + osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_RESET, msg); + return 0; } /* Receive an incoming signalling message from a BSS-side NS-VC */ -static int gbprox_rx_sig_from_bss(struct gbproxy_config *cfg, - struct msgb *msg, uint16_t nsei, - uint16_t ns_bvci) +static int gbprox_rx_sig_from_bss(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - struct tlv_parsed tp; uint8_t pdu_type = bgph->pdu_type; + const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); + struct tlv_parsed tp; int data_len = msgb_bssgp_len(msg) - sizeof(*bgph); struct gbproxy_bvc *from_bvc = NULL; - struct gprs_ra_id raid; char log_pfx[32]; + uint16_t ptp_bvci; + uint32_t tlli; int rc; - snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/BSS)", nsei); + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/BSS)-BVC(%05u/??)", nse->nsei, ns_bvci); + + LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s %s BVCI=%05u is not signalling\n", log_pfx, pdut_name, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { - LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, - osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_UL)) { - LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in uplink direction\n", log_pfx, - osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in uplink direction\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, pdu_type, bgph->data, data_len, 0, 0, DGPRS, log_pfx); if (rc < 0) { - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); return tx_status_from_tlvp(rc, msg); } + /* hack to get both msg + tlv_parsed passed via osmo_fsm_inst_dispatch */ + msgb_bcid(msg) = (void *)&tp; + /* special case handling for some PDU types */ switch (pdu_type) { - case BSSGP_PDUT_SUSPEND: - case BSSGP_PDUT_RESUME: - /* We implement RAI snooping during SUSPEND/RESUME, since it - * establishes a relationsip between BVCI/bvc and the routeing - * area identification. The snooped information is then used - * for routing the {SUSPEND,RESUME}_[N]ACK back to the correct - * BSSGP */ - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) - goto err_mand_ie; - from_bvc = gbproxy_bvc_by_nsei(cfg, nsei); + 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)); + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); if (!from_bvc) goto err_no_bvc; - memcpy(from_bvc->ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), - sizeof(from_bvc->ra)); + return osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_RESET_ACK, msg); + case BSSGP_PDUT_BVC_BLOCK: + ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); + if (!from_bvc) + goto err_no_bvc; + return osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_BLOCK, msg); + case BSSGP_PDUT_BVC_UNBLOCK: + ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); + if (!from_bvc) + goto err_no_bvc; + 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. */ +#if 0 + /* TODO: Validate the RAI for consistency with the RAI + * we expect for any of the BVC within this BSS side NSE */ + memcpy(ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), sizeof(from_bvc->ra)); gsm48_parse_ra(&raid, from_bvc->ra); - LOGPBVC(from_bvc, LOGL_INFO, "BSSGP SUSPEND/RESUME " - "RAI snooping: RAI %s\n", - osmo_rai_name(&raid)); - /* FIXME: This only supports one BSS per RA */ +#endif break; - case BSSGP_PDUT_BVC_RESET: - rc = gbprox_rx_bvc_reset_from_bss(cfg, msg, nsei, &tp); - /* if function retruns 0, we terminate processing here */ - if (rc == 0) - return 0; + 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 */ + 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: + /* FIXME: route based in RIM Routing IE */ + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + break; + case BSSGP_PDUT_LLC_DISCARD: + case BSSGP_PDUT_FLUSH_LL_ACK: + /* route based on BVCI + TLLI */ + ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); + if (!from_bvc) + goto err_no_bvc; + gbprox_bss2sgsn_tlli(from_bvc->cell, msg, tlli, true); + break; + default: + LOGPNSE(nse, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); break; } - return gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn_nsei); + return rc; err_no_bvc: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) cannot find bvc based on NSEI\n", - nsei); - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_NSEI]); + LOGPNSE(nse, LOGL_ERROR, "Rx %s: cannot find BVC for BVCI=%05u\n", pdut_name, ptp_bvci); + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_NSEI]); return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); -err_mand_ie: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) missing mandatory RA IE\n", - nsei); - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); - return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } /* Receive paging request from SGSN, we need to relay to proper BSS */ -static int gbprox_rx_paging(struct gbproxy_config *cfg, struct msgb *msg, struct tlv_parsed *tp, - uint32_t nsei, uint16_t ns_bvci) +static int gbprox_rx_paging(struct gbproxy_nse *nse, struct msgb *msg, const char *pdut_name, + struct tlv_parsed *tp, uint16_t ns_bvci) { - struct gbproxy_nse *nse; - struct gbproxy_bvc *bvc; + struct gbproxy_config *cfg = nse->cfg; + struct gbproxy_bvc *sgsn_bvc, *bss_bvc; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; int i, j; /* FIXME: Handle paging logic to only page each matching NSE */ - LOGP(DGPRS, LOGL_INFO, "NSE(%05u/SGSN) BSSGP PAGING\n", - nsei); if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; - bvc = gbproxy_bvc_by_bvci(cfg, bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP PAGING: " - "unable to route: BVCI=%05u unknown\n", nsei, bvci); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) { + LOGPNSE(nse, LOGL_NOTICE, "Rx %s: unable to route: BVCI=%05u unknown\n", + pdut_name, bvci); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } - LOGPBVC(bvc, LOGL_INFO, "routing by BVCI\n"); - return gbprox_relay2peer(msg, bvc, ns_bvci); + LOGPBVC(sgsn_bvc, LOGL_INFO, "Rx %s: routing by BVCI\n", pdut_name); + return gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; /* 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, bvc, list) { - if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { - LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); - gbprox_relay2peer(msg, bvc, ns_bvci); + hash_for_each(nse->bvcs, j, bss_bvc, list) { + if (!memcmp(bss_bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { + LOGPNSE(nse, LOGL_INFO, "Rx %s: routing to NSE (RAI match)\n", + pdut_name); + gbprox_relay2peer(msg, bss_bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; @@ -552,10 +824,11 @@ errctr = GBPROX_GLOB_CTR_INV_LAI; /* 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, bvc, list) { - if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { - LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); - gbprox_relay2peer(msg, bvc, ns_bvci); + hash_for_each(nse->bvcs, j, bss_bvc, list) { + if (!memcmp(bss_bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { + LOGPNSE(nse, LOGL_INFO, "Rx %s: routing to NSE (LAI match)\n", + pdut_name); + gbprox_relay2peer(msg, bss_bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; @@ -565,23 +838,21 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* 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, bvc, list) { - LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); - gbprox_relay2peer(msg, bvc, ns_bvci); + hash_for_each(nse->bvcs, j, bss_bvc, list) { + LOGPNSE(nse, LOGL_INFO, "Rx %s:routing to NSE (broadcast)\n", pdut_name); + gbprox_relay2peer(msg, bss_bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; } } } else { - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BSSGP PAGING: " - "unable to route, missing IE\n", nsei); + LOGPNSE(nse, LOGL_ERROR, "BSSGP PAGING: unable to route, missing IE\n"); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); } if (n_nses == 0) { - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BSSGP PAGING: " - "unable to route, no destination found\n", nsei); + LOGPNSE(nse, LOGL_ERROR, "BSSGP PAGING: unable to route, no destination found\n"); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } @@ -589,63 +860,41 @@ } /* Receive an incoming BVC-RESET message from the SGSN */ -static int rx_reset_from_sgsn(struct gbproxy_config *cfg, - struct msgb *orig_msg, - struct msgb *msg, struct tlv_parsed *tp, - uint32_t nsei, uint16_t ns_bvci) +static int rx_bvc_reset_from_sgsn(struct gbproxy_nse *nse, struct msgb *msg, struct tlv_parsed *tp, + uint16_t ns_bvci) { - struct gbproxy_nse *nse; - struct gbproxy_bvc *bvc; - uint16_t ptp_bvci; - int i, j; + uint16_t ptp_bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + struct gbproxy_bvc *from_bvc; - if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); - return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, - NULL, orig_msg); - } - ptp_bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + LOGPNSE(nse, LOGL_INFO, "Rx BVC-RESET (BVCI=%05u)\n", ptp_bvci); - if (ptp_bvci >= 2) { - /* A reset for a PTP BVC was received, forward it to its - * respective bvc */ - bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BVCI=%05u: Cannot find BSS\n", - nsei, ptp_bvci); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_INV_BVCI]); - return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, - &ptp_bvci, orig_msg); + if (ptp_bvci == 0) { + from_bvc = gbproxy_bvc_by_bvci(nse, 0); + OSMO_ASSERT(from_bvc); + osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_RESET, msg); + } else { + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); + if (!from_bvc) { + LOGPNSE(nse, LOGL_ERROR, "Rx BVC-RESET BVCI=%05u: Cannot find BVC\n", ptp_bvci); + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); + return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &ptp_bvci, msg); } - return gbprox_relay2peer(msg, bvc, ns_bvci); - } - - /* A reset for the Signalling entity has been received - * from the SGSN. As the signalling BVCI is shared - * among all the BSS's that we multiplex, it needs to - * be relayed */ - hash_for_each(cfg->bss_nses, i, nse, list) { - hash_for_each(nse->bvcs, j, bvc, list) - gbprox_relay2peer(msg, bvc, ns_bvci); + osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_RESET, msg); } return 0; } /* Receive an incoming signalling message from the SGSN-side NS-VC */ -static int gbprox_rx_sig_from_sgsn(struct gbproxy_config *cfg, - struct msgb *orig_msg, uint32_t nsei, - uint16_t ns_bvci) +static int gbprox_rx_sig_from_sgsn(struct gbproxy_nse *nse, struct msgb *orig_msg, uint16_t ns_bvci) { - struct bssgp_normal_hdr *bgph = - (struct bssgp_normal_hdr *) msgb_bssgph(orig_msg); - struct tlv_parsed tp; + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(orig_msg); uint8_t pdu_type = bgph->pdu_type; + const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); + struct gbproxy_config *cfg = nse->cfg; + struct gbproxy_bvc *sgsn_bvc; + struct tlv_parsed tp; int data_len; - struct gbproxy_nse *nse; - struct gbproxy_bvc *bvc; uint16_t bvci; struct msgb *msg; char log_pfx[32]; @@ -653,7 +902,9 @@ int cause; int i; - snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)", nsei); + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)-BVC(%05u/??)", nse->nsei, ns_bvci); + + LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); if (ns_bvci != 0 && ns_bvci != 1) { LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); @@ -661,14 +912,12 @@ } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { - LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, - osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_DL)) { - LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, - osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } @@ -685,52 +934,62 @@ rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); return rc; } + /* hack to get both msg + tlv_parsed passed via osmo_fsm_inst_dispatch */ + msgb_bcid(msg) = (void *)&tp; switch (pdu_type) { case BSSGP_PDUT_BVC_RESET: - rc = rx_reset_from_sgsn(cfg, msg, orig_msg, &tp, nsei, ns_bvci); + /* resolve or create ggbproxy_bvc + handle in BVC-FSM */ + bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + rc = rx_bvc_reset_from_sgsn(nse, msg, &tp, ns_bvci); break; case BSSGP_PDUT_BVC_RESET_ACK: - /* simple case: BVCI IE is mandatory */ - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) - goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - if (bvci == BVCI_SIGNALLING) { - /* TODO: Reset all PTP BVCIs */ - } else { - rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); - } + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) + goto err_no_bvc; + rc = osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_RESET_ACK, msg); + break; + case BSSGP_PDUT_BVC_BLOCK_ACK: + bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) + goto err_no_bvc; + rc = osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_BLOCK_ACK, msg); + break; + case BSSGP_PDUT_BVC_UNBLOCK_ACK: + bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) + goto err_no_bvc; + rc = osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, msg); break; case BSSGP_PDUT_FLUSH_LL: /* simple case: BVCI IE is mandatory */ - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) - goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) + goto err_no_bvc; + if (sgsn_bvc->cell && sgsn_bvc->cell->bss_bvc) + rc = gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); break; case BSSGP_PDUT_PAGING_PS: case BSSGP_PDUT_PAGING_CS: /* process the paging request (LAI/RAI lookup) */ - rc = gbprox_rx_paging(cfg, msg, &tp, nsei, ns_bvci); + rc = gbprox_rx_paging(nse, msg, pdut_name, &tp, ns_bvci); break; case BSSGP_PDUT_STATUS: /* Some exception has occurred */ - LOGP(DGPRS, LOGL_NOTICE, - "NSE(%05u/SGSN) BSSGP STATUS ", nsei); - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_CAUSE, 1)) { - LOGPC(DGPRS, LOGL_NOTICE, "\n"); - goto err_mand_ie; - } cause = *TLVP_VAL(&tp, BSSGP_IE_CAUSE); - LOGPC(DGPRS, LOGL_NOTICE, - "cause=0x%02x(%s) ", *TLVP_VAL(&tp, BSSGP_IE_CAUSE), + LOGPNSE(nse, LOGL_NOTICE, "Rx STATUS cause=0x%02x(%s) ", cause, bssgp_cause_str(cause)); if (TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) { bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); LOGPC(DGPRS, LOGL_NOTICE, "BVCI=%05u\n", bvci); - - if (cause == BSSGP_CAUSE_UNKNOWN_BVCI) - rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + /* don't send STATUS in response to STATUS if !bvc */ + if (sgsn_bvc && sgsn_bvc->cell && sgsn_bvc->cell->bss_bvc) + rc = gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); } else LOGPC(DGPRS, LOGL_NOTICE, "\n"); break; @@ -739,46 +998,30 @@ case BSSGP_PDUT_SUSPEND_NACK: case BSSGP_PDUT_RESUME_ACK: case BSSGP_PDUT_RESUME_NACK: - /* RAI IE is mandatory */ - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) - goto err_mand_ie; - bvc = gbproxy_bvc_by_rai(cfg, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA)); - if (!bvc) - goto err_no_bvc; - rc = gbprox_relay2peer(msg, bvc, ns_bvci); - break; - case BSSGP_PDUT_BVC_BLOCK_ACK: - case BSSGP_PDUT_BVC_UNBLOCK_ACK: - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) - goto err_mand_ie; - bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - if (bvci == 0) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP " - "%sBLOCK_ACK for signalling BVCI ?!?\n", nsei, - pdu_type == BSSGP_PDUT_BVC_UNBLOCK_ACK ? "UN":""); - /* TODO: should we send STATUS ? */ - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_INV_BVCI]); - } else { - /* Mark BVC as (un)blocked */ - block_unblock_bvc(cfg, bvci, pdu_type); - } - rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); + /* 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 */ break; case BSSGP_PDUT_SGSN_INVOKE_TRACE: case BSSGP_PDUT_OVERLOAD: - LOGP(DGPRS, LOGL_DEBUG, - "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); + LOGPNSE(nse, LOGL_DEBUG, "Rx %s: broadcasting\n", pdut_name); /* broadcast to all BSS-side bvcs */ hash_for_each(cfg->bss_nses, i, nse, list) { gbprox_relay2nse(msg, nse, 0); } 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: + /* FIXME: route based in RIM Routing IE */ + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, orig_msg); + break; default: - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP PDU type %s not supported\n", nsei, - bssgp_pdu_str(pdu_type)); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); + LOGPNSE(nse, LOGL_NOTICE, "Rx %s: Not supported\n", pdut_name); + rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); break; } @@ -786,21 +1029,19 @@ msgb_free(msg); return rc; -err_mand_ie: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) missing mandatory IE\n", - nsei); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); - msgb_free(msg); - return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, orig_msg); + err_no_bvc: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) cannot find bvc based on RAI\n", - nsei); + LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC\n", pdut_name); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_RAI]); msgb_free(msg); return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, orig_msg); } + +/*********************************************************************** + * libosmogb NS/BSSGP integration + ***********************************************************************/ + int gbprox_bssgp_send_cb(void *ctx, struct msgb *msg) { int rc; @@ -820,34 +1061,36 @@ /* Main input function for Gb proxy */ int gbprox_rcvmsg(void *ctx, struct msgb *msg) { - int rc; - uint16_t nsei = msgb_nsei(msg); - uint16_t ns_bvci = msgb_bvci(msg); struct gbproxy_config *cfg = (struct gbproxy_config *) ctx; - - int remote_end_is_sgsn = gbproxy_is_sgsn_nsei(cfg, nsei); + uint16_t ns_bvci = msgb_bvci(msg); + uint16_t nsei = msgb_nsei(msg); + struct gbproxy_nse *nse; /* ensure minimum length to decode PCU type */ if (msgb_bssgp_len(msg) < sizeof(struct bssgp_normal_hdr)) return bssgp_tx_status(BSSGP_CAUSE_SEM_INCORR_PDU, NULL, msg); - /* Only BVCI=0 messages need special treatment */ - if (ns_bvci == 0 || ns_bvci == 1) { - if (remote_end_is_sgsn) - rc = gbprox_rx_sig_from_sgsn(cfg, msg, nsei, ns_bvci); + nse = gbproxy_nse_by_nsei(cfg, nsei, NSE_F_SGSN); + if (nse) { + if (ns_bvci == 0 || ns_bvci == 1) + return gbprox_rx_sig_from_sgsn(nse, msg, ns_bvci); else - rc = gbprox_rx_sig_from_bss(cfg, msg, nsei, ns_bvci); - } else { - /* All other BVCI are PTP */ - if (remote_end_is_sgsn) - rc = gbprox_rx_ptp_from_sgsn(cfg, msg, nsei, - ns_bvci); - else - rc = gbprox_rx_ptp_from_bss(cfg, msg, nsei, - ns_bvci); + return gbprox_rx_ptp_from_sgsn(nse, msg, ns_bvci); } - return rc; + nse = gbproxy_nse_by_nsei(cfg, nsei, NSE_F_BSS); + if (!nse) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) not known -> allocating\n", nsei); + nse = gbproxy_nse_alloc(cfg, nsei, false); + } + if (nse) { + if (ns_bvci == 0 || ns_bvci == 1) + return gbprox_rx_sig_from_bss(nse, msg, ns_bvci); + else + return gbprox_rx_ptp_from_bss(nse, msg, ns_bvci); + } + + return 0; } /* TODO: What about handling: @@ -865,7 +1108,9 @@ /* TODO: bss nsei available/unavailable bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, nsvc->nsei, bvc->bvci, 0); * TODO: sgsn nsei available/unavailable */ + struct gbproxy_bvc *bvc; + struct gbproxy_nse *sgsn_nse; switch (nsp->u.status.cause) { case NS_AFF_CAUSE_SNS_FAILURE: @@ -874,16 +1119,16 @@ case NS_AFF_CAUSE_RECOVERY: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); - if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { - /* look-up or create the BTS context for this BVC */ - struct bssgp_bvc_ctx *bctx = btsctx_by_bvci_nsei(nsp->bvci, nsp->nsei); - if (!bctx) - bctx = btsctx_alloc(nsp->bvci, nsp->nsei); - - bssgp_tx_bvc_reset_nsei_bvci(cfg->nsip_sgsn_nsei, 0, BSSGP_CAUSE_OML_INTERV, NULL, 0); + sgsn_nse = gbproxy_nse_by_nsei(cfg, nsp->nsei, NSE_F_SGSN); + if (sgsn_nse) { + uint8_t cause = BSSGP_CAUSE_OML_INTERV; + bvc = gbproxy_bvc_by_bvci(sgsn_nse, 0); + if (bvc) + osmo_fsm_inst_dispatch(bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); } break; case NS_AFF_CAUSE_FAILURE: +#if 0 if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { /* sgsn */ /* TODO: BSVC: block all PtP towards bss */ @@ -902,9 +1147,11 @@ if (!bvc->blocked) break; - bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, cfg->nsip_sgsn_nsei, - bvc->bvci, 0); + hash_for_each(cfg->sgsn_nses, _sgsn, sgsn_nse, list) { + bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, sgsn_nse->nsei, bvc->bvci, 0); + } } +#endif LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); break; default: @@ -973,6 +1220,8 @@ gbproxy_nse_free(nse); } + /* FIXME: cells */ + /* FIXME: SGSN side BVCs (except signaling) */ rate_ctr_group_free(cfg->ctrg); gbproxy_init_config(cfg); diff --git a/src/gbproxy/gb_proxy_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index 21e56dd..4561634 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -61,9 +61,11 @@ cmd->reply = talloc_strdup(cmd, ""); /* NS-VCs for SGSN */ - nse = gprs_ns2_nse_by_nsei(nsi, cfg->nsip_sgsn_nsei); - if (nse) - gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); + hash_for_each(cfg->sgsn_nses, i, nse_peer, list) { + nse = gprs_ns2_nse_by_nsei(nsi, nse_peer->nsei); + if (nse) + gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); + } /* NS-VCs for BSS peers */ hash_for_each(cfg->bss_nses, i, nse_peer, list) { @@ -95,7 +97,7 @@ nse_peer->nsei, bvc->bvci, raid.mcc, raid.mnc, raid.lac, raid.rac, - bvc->blocked ? "BLOCKED" : "UNBLOCKED"); + osmo_fsm_inst_state_name(bvc->fi)); } } diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index c7ff78c..52b1042 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -320,13 +320,6 @@ exit(1); } - if (!gprs_ns2_nse_by_nsei(gbcfg->nsi, gbcfg->nsip_sgsn_nsei)) { - LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSE(%05u) " - "without creating that NSEI before\n", - gbcfg->nsip_sgsn_nsei); - exit(2); - } - if (daemonize) { rc = osmo_daemonize(); if (rc < 0) { diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 052e577..a0586fe 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -55,56 +55,13 @@ /* Find the gbproxy_bvc by its BVCI. There can only be one match */ -struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) +struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_nse *nse, uint16_t bvci) { - struct gbproxy_nse *nse; - int i; - - hash_for_each(cfg->bss_nses, i, nse, list) { - struct gbproxy_bvc *bvc; - hash_for_each_possible(nse->bvcs, bvc, list, bvci) { - if (bvc->bvci == bvci) - return bvc; - } - } - return NULL; -} - -/* Find the gbproxy_bvc by its NSEI */ -/* FIXME: Only returns the first bvc, but we could have multiple on this nsei */ -struct gbproxy_bvc *gbproxy_bvc_by_nsei(struct gbproxy_config *cfg, - uint16_t nsei) -{ - struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); struct gbproxy_bvc *bvc; - int i; - - if (!nse || hash_empty(nse->bvcs)) - return NULL; - - /* return the first entry we find */ - hash_for_each(nse->bvcs, i, bvc, list) - return bvc; - - return NULL; -} - -/* look-up a bvc by its Routeing Area Identification (RAI) */ -/* FIXME: this doesn't make sense, as RA can span multiple bvcs! */ -struct gbproxy_bvc *gbproxy_bvc_by_rai(struct gbproxy_config *cfg, - const uint8_t *ra) -{ - struct gbproxy_nse *nse; - int i, j; - - hash_for_each(cfg->bss_nses, i, nse, list) { - struct gbproxy_bvc *bvc; - hash_for_each(nse->bvcs, j, bvc, list) { - if (!memcmp(bvc->ra, ra, 6)) - return bvc; - } + hash_for_each_possible(nse->bvcs, bvc, list, bvci) { + if (bvc->bvci == bvci) + return bvc; } - return NULL; } @@ -129,11 +86,13 @@ hash_add(nse->bvcs, &bvc->list, bvc->bvci); - return bvc; + return bvc; } void gbproxy_bvc_free(struct gbproxy_bvc *bvc) { + struct gbproxy_cell *cell; + if (!bvc) return; @@ -142,45 +101,141 @@ rate_ctr_group_free(bvc->ctrg); bvc->ctrg = NULL; + osmo_fsm_inst_free(bvc->fi); + + cell = bvc->cell; + if (cell) { + int i; + + if (cell->bss_bvc == bvc) + cell->bss_bvc = NULL; + + /* we could also be a SGSN-side BVC */ + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + if (cell->sgsn_bvc[i] == bvc) + cell->sgsn_bvc[i] = NULL; + } + bvc->cell = NULL; + } + talloc_free(bvc); } -void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse) -{ - hash_del(&bvc->list); - hash_add(nse->bvcs, &bvc->list, bvc->bvci); - bvc->nse = nse; -} - -/*! remove bvcs (BVCs) on NSE specified by NSEI. +/*! remove BVCs on NSE specified by NSEI. * \param[in] cfg proxy in which we operate * \param[in] nsei NS entity in which we should clean up - * \param[in] bvci if 0: remove all BVCs; if != 0: BVCI of the single BVC to clean up */ -int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) + * \param[in] bvci if 0: remove all PTP BVCs; if != 0: BVCI of the single BVC to clean up */ +int gbproxy_cleanup_bvcs(struct gbproxy_nse *nse, uint16_t bvci) { - int i, j, counter = 0; - struct gbproxy_nse *nse; - struct hlist_node *ntmp; - OSMO_ASSERT(cfg); + struct hlist_node *btmp; + struct gbproxy_bvc *bvc; + int j, counter = 0; - hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { - struct gbproxy_bvc *bvc; - struct hlist_node *btmp; - if (nse->nsei != nsei) + if (!nse) + return 0; + + hash_for_each_safe(nse->bvcs, j, btmp, bvc, list) { + if (bvci && bvc->bvci != bvci) continue; - hash_for_each_safe(nse->bvcs, j, btmp, bvc, list) { - if (bvci && bvc->bvci != bvci) - continue; + if (bvci == 0 && bvc->bvci == 0) + continue; - gbproxy_bvc_free(bvc); - counter += 1; - } + gbproxy_bvc_free(bvc); + counter += 1; } return counter; } -struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei) + +/*********************************************************************** + * CELL + ***********************************************************************/ + +/* Allocate a new 'cell' object */ +struct gbproxy_cell *gbproxy_cell_alloc(struct gbproxy_config *cfg, uint16_t bvci) +{ + struct gbproxy_cell *cell; + OSMO_ASSERT(cfg); + + cell = talloc_zero(cfg, struct gbproxy_cell); + if (!cell) + return NULL; + + cell->cfg = cfg; + cell->bvci = bvci; + + hash_add(cfg->cells, &cell->list, cell->bvci); + + return cell; +} + +/* Find cell by BVCI */ +struct gbproxy_cell *gbproxy_cell_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) +{ + struct gbproxy_cell *cell; + + hash_for_each_possible(cfg->cells, cell, list, bvci) { + if (cell->bvci == bvci) + return cell; + } + return NULL; +} + +struct gbproxy_cell *gbproxy_cell_by_bvci_or_new(struct gbproxy_config *cfg, uint16_t bvci) +{ + struct gbproxy_cell *cell; + OSMO_ASSERT(cfg); + + cell = gbproxy_cell_by_bvci(cfg, bvci); + if (!cell) + cell = gbproxy_cell_alloc(cfg, bvci); + + return cell; +} + +void gbproxy_cell_free(struct gbproxy_cell *cell) +{ + unsigned int i; + + if (!cell) + return; + + /* remove from cfg.cells */ + hash_del(&cell->list); + + /* remove back-pointers from the BSS side */ + if (cell->bss_bvc && cell->bss_bvc->cell) + cell->bss_bvc->cell = NULL; + + /* remove back-pointers from the SGSN side */ + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + if (!cell->sgsn_bvc[i]) + continue; + if (cell->sgsn_bvc[i]->cell) + cell->sgsn_bvc[i]->cell = NULL; + } + + talloc_free(cell); +} + +bool gbproxy_cell_add_sgsn_bvc(struct gbproxy_cell *cell, struct gbproxy_bvc *bvc) +{ + unsigned int i; + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + if (!cell->sgsn_bvc[i]) { + cell->sgsn_bvc[i] = bvc; + return true; + } + } + return false; +} + +/*********************************************************************** + * NSE - NS Entity + ***********************************************************************/ + +struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing) { struct gbproxy_nse *nse; OSMO_ASSERT(cfg); @@ -191,8 +246,12 @@ nse->nsei = nsei; nse->cfg = cfg; + nse->sgsn_facing = sgsn_facing; - hash_add(cfg->bss_nses, &nse->list, nsei); + if (sgsn_facing) + hash_add(cfg->sgsn_nses, &nse->list, nsei); + else + hash_add(cfg->bss_nses, &nse->list, nsei); hash_init(nse->bvcs); @@ -216,27 +275,36 @@ talloc_free(nse); } -struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei) +struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei, uint32_t flags) { struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - hash_for_each_possible(cfg->bss_nses, nse, list, nsei) { - if (nse->nsei == nsei) - return nse; + if (flags & NSE_F_SGSN) { + hash_for_each_possible(cfg->sgsn_nses, nse, list, nsei) { + if (nse->nsei == nsei) + return nse; + } + } + + if (flags & NSE_F_BSS) { + hash_for_each_possible(cfg->bss_nses, nse, list, nsei) { + if (nse->nsei == nsei) + return nse; + } } return NULL; } -struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei) +struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing) { struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - nse = gbproxy_nse_by_nsei(cfg, nsei); + nse = gbproxy_nse_by_nsei(cfg, nsei, sgsn_facing ? NSE_F_SGSN : NSE_F_BSS); if (!nse) - nse = gbproxy_nse_alloc(cfg, nsei); + nse = gbproxy_nse_alloc(cfg, nsei, sgsn_facing); return nse; } diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index da5710a..a9db596 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -31,6 +31,7 @@ #include #include +#include #include #include @@ -43,6 +44,7 @@ #include #include + static struct gbproxy_config *g_cfg = NULL; /* @@ -61,7 +63,7 @@ vty_out(vty, "NSEI %5u, PTP-BVCI %5u, " "RAI %s", bvc->nse->nsei, bvc->bvci, osmo_rai_name(&raid)); - if (bvc->blocked) + if (bssgp_bvc_fsm_is_unblocked(bvc->fi)) vty_out(vty, " [BVC-BLOCKED]"); vty_out(vty, "%s", VTY_NEWLINE); @@ -69,10 +71,14 @@ static int config_write_gbproxy(struct vty *vty) { + struct gbproxy_nse *nse; + int i; + vty_out(vty, "gbproxy%s", VTY_NEWLINE); - vty_out(vty, " sgsn nsei %u%s", g_cfg->nsip_sgsn_nsei, - VTY_NEWLINE); + hash_for_each(g_cfg->sgsn_nses, i, nse, list) { + vty_out(vty, " sgsn nsei %u%s", nse->nsei, VTY_NEWLINE); + } return CMD_SUCCESS; } @@ -86,6 +92,9 @@ return CMD_SUCCESS; } +extern const struct bssgp_bvc_fsm_ops sgsn_sig_bvc_fsm_ops; +#include + DEFUN(cfg_nsip_sgsn_nsei, cfg_nsip_sgsn_nsei_cmd, "sgsn nsei <0-65534>", @@ -93,10 +102,36 @@ "NSEI to be used in the connection with the SGSN\n" "The NSEI\n") { + uint32_t features = 0; // FIXME: make configurable unsigned int nsei = atoi(argv[0]); + struct gbproxy_nse *nse; + struct gbproxy_bvc *bvc; - g_cfg->nsip_sgsn_nsei = nsei; + nse = gbproxy_nse_by_nsei_or_new(g_cfg, nsei, true); + if (!nse) + goto free_nothing; + + if (!gbproxy_bvc_by_bvci(nse, 0)) { + uint8_t cause = BSSGP_CAUSE_OML_INTERV; + bvc = gbproxy_bvc_alloc(nse, 0); + if (!bvc) + goto free_nse; + bvc->fi = bssgp_bvc_fsm_alloc_sig_bss(bvc, nse->cfg->nsi, nsei, features); + if (!bvc->fi) + goto free_bvc; + bssgp_bvc_fsm_set_ops(bvc->fi, &sgsn_sig_bvc_fsm_ops, bvc); + osmo_fsm_inst_dispatch(bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); + } + return CMD_SUCCESS; + +free_bvc: + gbproxy_bvc_free(bvc); +free_nse: + gbproxy_nse_free(nse); +free_nothing: + vty_out(vty, "%% Unable to create NSE for NSEI=%05u%s", nsei, VTY_NEWLINE); + return CMD_WARNING; } static void log_set_bvc_filter(struct log_target *target, @@ -181,9 +216,15 @@ { const uint16_t nsei = atoi(argv[0]); const uint16_t bvci = atoi(argv[1]); + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei, NSE_F_BSS); int counter; - counter = gbproxy_cleanup_bvcs(g_cfg, nsei, bvci); + if (!nse) { + vty_out(vty, "NSE not found%s", VTY_NEWLINE); + return CMD_WARNING; + } + + counter = gbproxy_cleanup_bvcs(nse, bvci); if (counter == 0) { vty_out(vty, "BVC not found%s", VTY_NEWLINE); @@ -219,8 +260,8 @@ if (delete_bvc) { if (!dry_run) { - struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei); - counter = gbproxy_cleanup_bvcs(g_cfg, nsei, 0); + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei, NSE_F_BSS); + counter = gbproxy_cleanup_bvcs(nse, 0); gbproxy_nse_free(nse); } else { struct gbproxy_nse *nse; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 Gerrit-Change-Number: 21612 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 Dec 8 21:58:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:58:44 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21613 ) Change subject: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index ...................................................................... gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index As we now have gbproxy_bvc on both the SGSN and the BSS side with the same BVCI, using the BVCI alone will no longer render unique indexes. Related: OS#4472 Change-Id: I13f3c9e69562a56ad7d3742fdeb2ba48f134fdaa --- 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/13/21613/1 diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index a0586fe..ed7df32 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -77,7 +77,7 @@ return NULL; bvc->bvci = bvci; - bvc->ctrg = rate_ctr_group_alloc(bvc, &bvc_ctrg_desc, bvci); + bvc->ctrg = rate_ctr_group_alloc(bvc, &bvc_ctrg_desc, (nse->nsei << 16) | bvci); if (!bvc->ctrg) { talloc_free(bvc); return NULL; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I13f3c9e69562a56ad7d3742fdeb2ba48f134fdaa Gerrit-Change-Number: 21613 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 Dec 8 21:58:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:58:44 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Introduce new DOBJ log category; log object allocation/release References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 ) Change subject: gbproxy: Introduce new DOBJ log category; log object allocation/release ...................................................................... gbproxy: Introduce new DOBJ log category; log object allocation/release Related: OS#4472 Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 --- M include/osmocom/sgsn/debug.h M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c 4 files changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/14/21614/1 diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index 29d500d..4e11639 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -40,6 +40,7 @@ DIUCS, DSIGTRAN, DGTP, + DOBJ, Debug_LastEntry, }; diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index e61b991..8892cf4 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -142,6 +142,11 @@ #define LOGPBVC(BVC, LEVEL, FMT, ARGS...) \ LOGPBVC_CAT(BVC, DGPRS, LEVEL, FMT, ## ARGS) +#define LOGPCELL_CAT(CELL, SUBSYS, LEVEL, FMT, ARGS...) \ + LOGP(SUBSYS, LEVEL, "CELL(%05u) " FMT, (CELL)->bvci, ## ARGS) +#define LOGPCELL(CELL, LEVEL, FMT, ARGS...) \ + LOGPCELL_CAT(CELL, DGPRS, LEVEL, FMT, ## ARGS) + /* gb_proxy_vty .c */ int gbproxy_vty_init(void); diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index 52b1042..9c1daa1 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -214,6 +214,12 @@ .description = "GPRS BSS Gateway Protocol (BSSGP)", .enabled = 1, .loglevel = LOGL_DEBUG, }, + [DOBJ] = { + .name = "DOBJ", + .description = "GbProxy object allocation/release", + .enabled = 1, + .color = "\033[38;5;121m" + }, }; static const struct log_info gprs_log_info = { diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index ed7df32..c38b2f7 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -86,6 +86,11 @@ hash_add(nse->bvcs, &bvc->list, bvc->bvci); + LOGPBVC_CAT(bvc, DOBJ, LOGL_INFO, "BVC Created\n"); + + /* We leave allocating the bvc->fi to the caller, as the FSM details depend + * on the type of BVC (SIG/PTP) and role (SGSN/BSS) */ + return bvc; } @@ -96,6 +101,8 @@ if (!bvc) return; + LOGPBVC_CAT(bvc, DOBJ, LOGL_INFO, "BVC Destroying\n"); + hash_del(&bvc->list); rate_ctr_group_free(bvc->ctrg); @@ -167,6 +174,8 @@ hash_add(cfg->cells, &cell->list, cell->bvci); + LOGPCELL_CAT(cell, DOBJ, LOGL_INFO, "CELL Created\n"); + return cell; } @@ -201,6 +210,8 @@ if (!cell) return; + LOGPCELL_CAT(cell, DOBJ, LOGL_INFO, "CELL Destroying\n"); + /* remove from cfg.cells */ hash_del(&cell->list); @@ -225,6 +236,8 @@ for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { if (!cell->sgsn_bvc[i]) { cell->sgsn_bvc[i] = bvc; + LOGPCELL_CAT(cell, DOBJ, LOGL_DEBUG, "CELL linked to SGSN\n"); + LOGPBVC_CAT(bvc, DOBJ, LOGL_DEBUG, "BVC linked to CELL\n"); return true; } } @@ -255,6 +268,8 @@ hash_init(nse->bvcs); + LOGPNSE_CAT(nse, DOBJ, LOGL_INFO, "NSE Created\n"); + return nse; } @@ -267,6 +282,8 @@ if (!nse) return; + LOGPNSE_CAT(nse, DOBJ, LOGL_INFO, "NSE Destroying\n"); + hash_del(&nse->list); hash_for_each_safe(nse->bvcs, i, tmp, bvc, list) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 Gerrit-Change-Number: 21614 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 Dec 8 21:58:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:58:45 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Don't create an extra msgb copy for SGSN DL SIG References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 ) Change subject: gbproxy: Don't create an extra msgb copy for SGSN DL SIG ...................................................................... gbproxy: Don't create an extra msgb copy for SGSN DL SIG That copy may have made sense while we were doing patching/buffering, but we're not doing any of that anymore. Related: OS#4472 Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 --- M src/gbproxy/gb_proxy.c 1 file changed, 9 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/15/21615/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index a920906..8167880 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -886,9 +886,9 @@ } /* Receive an incoming signalling message from the SGSN-side NS-VC */ -static int gbprox_rx_sig_from_sgsn(struct gbproxy_nse *nse, struct msgb *orig_msg, uint16_t ns_bvci) +static int gbprox_rx_sig_from_sgsn(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { - struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(orig_msg); + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); uint8_t pdu_type = bgph->pdu_type; const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); struct gbproxy_config *cfg = nse->cfg; @@ -896,7 +896,6 @@ struct tlv_parsed tp; int data_len; uint16_t bvci; - struct msgb *msg; char log_pfx[32]; int rc = 0; int cause; @@ -908,23 +907,20 @@ if (ns_bvci != 0 && ns_bvci != 1) { LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); - return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, pdut_name); - return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_DL)) { LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, pdut_name); - return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - msg = bssgp_msgb_copy(orig_msg, "rx_sig_from_sgsn"); - /* Update message info */ - bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - data_len = msgb_bssgp_len(orig_msg) - sizeof(*bgph); + data_len = msgb_bssgp_len(msg) - sizeof(*bgph); rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, pdu_type, bgph->data, data_len, 0, 0, DGPRS, log_pfx); @@ -1017,24 +1013,22 @@ 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, orig_msg); + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, 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]); - rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); break; } - msgb_free(msg); - return rc; err_no_bvc: LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC\n", pdut_name); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_RAI]); msgb_free(msg); - return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, orig_msg); + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 Gerrit-Change-Number: 21615 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 Dec 8 21:58:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:58:45 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement handling of BVC Flow Control References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21616 ) Change subject: gbproxy: Implement handling of BVC Flow Control ...................................................................... gbproxy: Implement handling of BVC Flow Control We must locally terminate + acknowledge any inbound BSSGP-FC-BVC, and ourselves trigger the transmission of BSSGP-FC-BVC to each SGSN in the pool. Related: OS#4891 Depends: libosmcoore.git Ie59be6761177c43456898be9148727f15861a622 Change-Id: Ib6495e5de4bfcf748a98e08743d1a8f2565f8b69 --- M src/gbproxy/gb_proxy.c 1 file changed, 50 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/16/21616/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 8167880..2ffeaca 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -291,6 +291,8 @@ rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); return tx_status_from_tlvp(rc, msg); } + /* hack to get both msg + tlv_parsed passed via osmo_fsm_inst_dispatch */ + msgb_bcid(msg) = (void *)&tp; switch (bgph->pdu_type) { case BSSGP_PDUT_UL_UNITDATA: @@ -331,9 +333,7 @@ LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); break; case BSSGP_PDUT_FLOW_CONTROL_BVC: - /* TODO: Implement via FSM */ - //rc = osmo_fsm_inst_dispatch(bss_bvc->fi, FIXME, &tp); - LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); + osmo_fsm_inst_dispatch(bss_bvc->fi, BSSGP_BVCFSM_E_RX_FC_BVC, msg); break; case BSSGP_PDUT_STATUS: /* TODO: Implement by inspecting the contained PDU */ @@ -352,7 +352,9 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); struct gbproxy_bvc *sgsn_bvc, *bss_bvc; + struct tlv_parsed tp; char log_pfx[32]; + int rc; snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)-BVC(%05u/??)", nse->nsei, ns_bvci); @@ -386,10 +388,39 @@ rate_ctr_inc(&sgsn_bvc->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); return bssgp_tx_status(BSSGP_CAUSE_BVCI_BLOCKED, &ns_bvci, msg); } + + /* DL_UNITDATA has a different header than all other uplink PDUs */ + if (bgph->pdu_type == BSSGP_PDUT_DL_UNITDATA) { + const struct bssgp_ud_hdr *budh = (struct bssgp_ud_hdr *) msgb_bssgph(msg); + if (msgb_bssgp_len(msg) < sizeof(*budh)) + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, bgph->pdu_type, budh->data, + msgb_bssgp_len(msg) - sizeof(*budh), 0, 0, DGPRS, log_pfx); + /* populate TLLI from the fixed headser into the TLV-parsed array so later code + * doesn't have to worry where the TLLI came from */ + tp.lv[BSSGP_IE_TLLI].len = 4; + tp.lv[BSSGP_IE_TLLI].val = (const uint8_t *) &budh->tlli; + } else { + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, bgph->pdu_type, bgph->data, + msgb_bssgp_len(msg) - sizeof(*bgph), 0, 0, DGPRS, log_pfx); + } + if (rc < 0) { + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + return tx_status_from_tlvp(rc, msg); + } + /* hack to get both msg + tlv_parsed passed via osmo_fsm_inst_dispatch */ + msgb_bcid(msg) = (void *)&tp; + OSMO_ASSERT(sgsn_bvc->cell); bss_bvc = sgsn_bvc->cell->bss_bvc; - return gbprox_relay2peer(msg, bss_bvc, bss_bvc->bvci); + 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); + } + } /*********************************************************************** @@ -532,9 +563,24 @@ } } +/* BVC FSM informs us about BVC-FC PDU receive */ +static void bss_ptp_bvc_fc_bvc(uint16_t nsei, uint16_t bvci, const struct bssgp2_flow_ctrl *fc, void *priv) +{ + struct gbproxy_bvc *bss_bvc = priv; + struct gbproxy_cell *cell = bss_bvc->cell; + + if (!cell) + return; + + /* FIXME: actually split the bandwidth among the SGSNs! */ + + dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_FC_BVC, (void *) fc); +} + static const struct bssgp_bvc_fsm_ops bss_ptp_bvc_fsm_ops = { .reset_notification = bss_ptp_bvc_reset_notif, .state_chg_notification = bss_ptp_bvc_state_chg_notif, + .rx_fc_bvc = bss_ptp_bvc_fc_bvc, }; /* BVC FSM informs us about a SGSN-side reset of a PTP BVC */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ib6495e5de4bfcf748a98e08743d1a8f2565f8b69 Gerrit-Change-Number: 21616 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 Dec 8 21:59:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:35 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Log FSM timeouts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21592 ) Change subject: gbproxy: Log FSM timeouts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21592 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I5c48e42083ab6f8622808457ca3f017adf35cdff Gerrit-Change-Number: 21592 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 21:59: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 Dec 8 21:59:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:37 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Use osmo_tlv_prot_parse() to validate mandatory IEs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21591 ) Change subject: gb_proxy: Use osmo_tlv_prot_parse() to validate mandatory IEs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0ea3f5f9566d9bf5a8429c3ee748e3e90cda6cd7 Gerrit-Change-Number: 21591 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 21:59: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 Dec 8 21:59:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use gbprox_relay2peer() whenever possible In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21561 ) Change subject: gbproxy: use gbprox_relay2peer() whenever possible ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I85ab49ca0a25dd7c54b88c4fdc8838843e6d2209 Gerrit-Change-Number: 21561 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 21:59: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 Dec 8 21:59:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:41 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Introduce more validation / constraint checks In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21560 ) Change subject: gb_proxy: Introduce more validation / constraint checks ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6e40aed0283f1a0860ab273606605f7fb28717cf Gerrit-Change-Number: 21560 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 21:59: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 Dec 8 21:59:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:44 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Delete gbproxy_test In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21590 ) Change subject: gbproxy: Delete gbproxy_test ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I053aebab6bf5d0ee955f2221bf27925b36140cf3 Gerrit-Change-Number: 21590 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 21:59: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 Dec 8 21:59:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:53 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Delete gbproxy_test In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21590 ) Change subject: gbproxy: Delete gbproxy_test ...................................................................... gbproxy: Delete gbproxy_test The test is actually performing invalid operations such as sending empty NS packets without even a BSSGP header - and assumes that gbproxy should route those. Given that we have a much more comprehensive tset suite in GBProxy_Tests.ttcn in osmo-ttch3-hacks.git, it makes sense to remove the testsuite. It may contain many more wrong assumptions, or assumptions that no longer hold true with the "gbproxy 2020". Change-Id: I053aebab6bf5d0ee955f2221bf27925b36140cf3 --- M configure.ac M tests/Makefile.am D tests/gbproxy/Makefile.am D tests/gbproxy/gbproxy_test.c D tests/gbproxy/gbproxy_test.ok M tests/testsuite.at 6 files changed, 0 insertions(+), 1,487 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 0ed36b8..0c8a73f 100644 --- a/configure.ac +++ b/configure.ac @@ -261,7 +261,6 @@ tests/Makefile tests/atlocal tests/gprs/Makefile - tests/gbproxy/Makefile tests/sgsn/Makefile tests/gtphub/Makefile tests/xid/Makefile diff --git a/tests/Makefile.am b/tests/Makefile.am index a23d931..4a9449a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,6 +1,5 @@ SUBDIRS = \ gprs \ - gbproxy \ gtphub \ sgsn \ xid \ diff --git a/tests/gbproxy/Makefile.am b/tests/gbproxy/Makefile.am deleted file mode 100644 index 180ccee..0000000 --- a/tests/gbproxy/Makefile.am +++ /dev/null @@ -1,49 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(NULL) - -AM_LDFLAGS = \ - $(COVERAGE_LDFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - gbproxy_test.ok \ - $(NULL) - -noinst_PROGRAMS = \ - gbproxy_test \ - $(NULL) - -gbproxy_test_SOURCES = \ - gbproxy_test.c \ - $(NULL) - -gbproxy_test_LDFLAGS = \ - -Wl,--wrap=osmo_get_rand_id \ - $(NULL) - -gbproxy_test_LDADD = \ - $(top_builddir)/src/gbproxy/gb_proxy.o \ - $(top_builddir)/src/gbproxy/gb_proxy_peer.o \ - $(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) \ - $(LIBOSMOGB_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOVTY_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(LIBRARY_DL) \ - $(LIBRARY_DLSYM) \ - -lrt \ - $(NULL) diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c deleted file mode 100644 index d7479cc..0000000 --- a/tests/gbproxy/gbproxy_test.c +++ /dev/null @@ -1,759 +0,0 @@ -/* test routines for gbproxy - * send NS messages to the gbproxy and dumps what happens - * (C) 2013-2020 by sysmocom s.f.m.c. GmbH - * Author: Jacob Erlbeck - */ -#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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define REMOTE_BSS_ADDR 0x01020304 -#define REMOTE_SGSN_ADDR 0x05060708 - -#define SGSN_NSEI 0x0100 - -#define REMOTE_SGSN2_ADDR 0x15161718 -#define SGSN2_NSEI 0x0102 - -#define MATCH_ANY (-1) - -void *tall_sgsn_ctx = NULL; - -struct gbproxy_config gbcfg = {0}; - -struct llist_head *received_messages = NULL; - -/* override, requires '-Wl,--wrap=osmo_get_rand_id' */ -int __real_osmo_get_rand_id(uint8_t *data, size_t len); -int mock_osmo_get_rand_id(uint8_t *data, size_t len); -int (*osmo_get_rand_id_cb)(uint8_t *, size_t) = - &mock_osmo_get_rand_id; - -int __wrap_osmo_get_rand_id(uint8_t *buf, size_t num) -{ - return (*osmo_get_rand_id_cb)(buf, num); -} - -static int rand_seq_num = 0; -int mock_osmo_get_rand_id(uint8_t *buf, size_t num) -{ - uint32_t val; - - OSMO_ASSERT(num == sizeof(val)); - - val = 0x00dead00 + rand_seq_num; - - rand_seq_num++; - - memcpy(buf, &val, num); - - return 1; -} - -static void cleanup_test() -{ - rand_seq_num = 0; -} - -static int dump_global(FILE *stream, int indent) -{ - unsigned int i; - const struct rate_ctr_group_desc *desc; - int rc; - - rc = fprintf(stream, "%*sGbproxy global:\n", indent, ""); - if (rc < 0) - return rc; - - desc = gbcfg.ctrg->desc; - - for (i = 0; i < desc->num_ctr; i++) { - struct rate_ctr *ctr = &gbcfg.ctrg->ctr[i]; - if (ctr->current) { - rc = fprintf(stream, "%*s %s: %llu\n", - indent, "", - desc->ctr_desc[i].description, - (long long)ctr->current); - - if (rc < 0) - return rc; - } - } - - return 0; -} - -static int dump_peers(FILE *stream, int indent, time_t now, - struct gbproxy_config *cfg) -{ - struct gbproxy_nse *nse; - struct gprs_ra_id raid; - unsigned int i, _nse; - const struct rate_ctr_group_desc *desc; - int rc; - - rc = fprintf(stream, "%*sPeers:\n", indent, ""); - if (rc < 0) - return rc; - - - hash_for_each(cfg->bss_nses, _nse, nse, list) { - struct gbproxy_bvc *peer; - int _peer; - hash_for_each(nse->bvcs, _peer, peer, list) { - gsm48_parse_ra(&raid, peer->ra); - - rc = fprintf(stream, "%*s NSEI %u, BVCI %u, %sblocked, RAI %s\n", - indent, "", - nse->nsei, peer->bvci, - peer->blocked ? "" : "not ", - osmo_rai_name(&raid)); - - if (rc < 0) - return rc; - - desc = peer->ctrg->desc; - - for (i = 0; i < desc->num_ctr; i++) { - struct rate_ctr *ctr = &peer->ctrg->ctr[i]; - if (ctr->current) { - rc = fprintf(stream, "%*s %s: %llu\n", - indent, "", - desc->ctr_desc[i].description, - (long long)ctr->current); - - if (rc < 0) - return rc; - } - } - - } - } - return 0; -} - -const uint8_t *convert_ra(struct gprs_ra_id *raid) -{ - static struct gsm48_ra_id r; - gsm48_encode_ra(&r, raid); - return (const uint8_t *)&r; -} - -#define NS_ALLOC_HEADROOM 128 -#define NS_ALLOC_SIZE 3072 -static int gprs_ns2_callback(struct osmo_prim_hdr *oph, void *ctx); -static void send_ns_unitdata(struct gprs_ns2_inst *nsi, const char *text, - uint16_t nsei, uint16_t nsbvci, - const unsigned char *bssgp_msg, size_t bssgp_msg_size) -{ - struct msgb *msg; - struct osmo_gprs_ns2_prim nsp = {}; - nsp.nsei = nsei; - nsp.bvci = nsbvci; - //nsp.u.unitdata.change - - if (bssgp_msg_size > NS_ALLOC_SIZE - NS_ALLOC_HEADROOM) { - fprintf(stderr, "message too long: %zu\n", bssgp_msg_size); - return; - } - - msg = msgb_alloc_headroom(NS_ALLOC_SIZE, NS_ALLOC_HEADROOM, - "GPRS/NS"); - OSMO_ASSERT(msg); - memmove(msg->data, bssgp_msg, bssgp_msg_size); - msgb_bssgph(msg) = msg->data; - msg->l2h = msg->data; - msg->l3h = msg->data; - msgb_put(msg, bssgp_msg_size); - - printf("PROCESSING %s from NSEI %d\n%s\n\n", - text, nsei, - osmo_hexdump(bssgp_msg, bssgp_msg_size)); - - - //gprs_process_message(nsi, text ? text : "UNITDATA", nsei, msg, bssgp_msg_size + 4); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, - PRIM_OP_INDICATION, msg); - - gprs_ns2_callback(&nsp.oph, &gbcfg); -} -static int gbprox_test_bssgp_send_cb(void *ctx, struct msgb *msg); - -/* wrap */ -int gprs_ns2_recv_prim(struct gprs_ns2_inst *nsi, struct osmo_prim_hdr *oph) -{ - struct osmo_gprs_ns2_prim *nsp; - - if (oph->sap != SAP_NS) - return 0; - - nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); - - if (oph->operation != PRIM_OP_REQUEST) { - LOGP(DPCU, 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 */ - msgb_bssgph(oph->msg) = oph->msg->l3h; - msgb_bvci(oph->msg) = nsp->bvci; - msgb_nsei(oph->msg) = nsp->nsei; - printf("NS2 UD REQUEST, prim %d, msg length %zu, bvci 0x%04x\n%s\n\n", - oph->primitive, msgb_bssgp_len(oph->msg), nsp->bvci, - osmo_hexdump(msgb_l3(oph->msg), msgb_l3len(oph->msg))); - return gbprox_test_bssgp_send_cb(&gbcfg, oph->msg); - break; - default: - printf("NS2 REQUEST, prim %d, bvci 0x%04x\n\n", - oph->primitive, nsp->bvci); - - break; - } - return 0; -} - -static void send_bssgp_reset(struct gprs_ns2_inst *nsi, - uint16_t nsei, uint16_t bvci) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA, BVCI 0 - * BSSGP RESET */ - unsigned char msg[18] = { - 0x22, 0x04, 0x82, 0x4a, - 0x2e, 0x07, 0x81, 0x08, 0x08, 0x88, 0x11, 0x22, - 0x33, 0x40, 0x50, 0x60, 0x10, 0x00 - }; - - msg[3] = bvci / 256; - msg[4] = bvci % 256; - - send_ns_unitdata(nsi, "BVC_RESET", nsei, 0, msg, sizeof(msg)); -} - -static void send_bssgp_reset_ack(struct gprs_ns2_inst *nsi, - uint16_t nsei, uint16_t bvci) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA, BVCI 0 - * BSSGP RESET_ACK */ - static unsigned char msg[5] = { - 0x23, 0x04, 0x82, 0x00, - 0x00 - }; - - msg[3] = bvci / 256; - msg[4] = bvci % 256; - - send_ns_unitdata(nsi, "BVC_RESET_ACK", nsei, 0, msg, sizeof(msg)); -} - -/* STATUS indications */ -static void send_ns_avail(struct gprs_ns2_inst *nsi, - uint16_t sgsn_nsei) -{ - struct osmo_gprs_ns2_prim nsp = {}; - nsp.nsei = sgsn_nsei; - nsp.bvci = 0; - nsp.u.status.cause = NS_AFF_CAUSE_RECOVERY; - nsp.u.status.transfer = -1; - nsp.u.status.first = true; - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_STATUS, - PRIM_OP_INDICATION, NULL); - - gprs_ns2_callback(&nsp.oph, &gbcfg); -} - -static void setup_ns(struct gprs_ns2_inst *nsi, - uint16_t nsei) -{ - printf("Setup NS-VC: " - "NSEI 0x%04x(%d)\n\n", - nsei, nsei); - send_ns_avail(nsi, nsei); - send_bssgp_reset(nsi, nsei, 0); -} - -static void setup_bssgp(struct gprs_ns2_inst *nsi, - uint16_t nsei, uint16_t bvci) -{ - printf("Setup BSSGP: " - "BVCI 0x%04x(%d)\n\n", - bvci, bvci); - - send_bssgp_reset(nsi, nsei, bvci); -} - -static void connect_sgsn(struct gprs_ns2_inst *nsi, - uint32_t sgsn_nsei) -{ - send_ns_avail(nsi, sgsn_nsei); -} - -/* Function used to send a BSSGP message through NS */ -static int gbprox_test_bssgp_send_cb(void *ctx, struct msgb *msg) -{ - int rc; - struct gbproxy_config *cfg = (struct gbproxy_config *) ctx; - - uint16_t nsei = msgb_nsei(msg); - uint16_t bvci = msgb_bvci(msg); - - if (received_messages) { - struct msgb *msg_copy; - msg_copy = bssgp_msgb_copy(msg, "received_messages"); - llist_add_tail(&msg_copy->list, received_messages); - } - - if (nsei == cfg->nsip_sgsn_nsei) - printf("Message for SGSN"); - else - printf("Message for BSS"); - printf(" (NSEI=%d BVCI=%d):\n%s\n\n", nsei, bvci, msgb_hexdump(msg)); - - rc = msgb_length(msg); - msgb_free(msg); - - return rc; -} - -static void gprs_ns2_test_prim_status_cb(struct gbproxy_config *cfg, struct osmo_gprs_ns2_prim *nsp) -{ - enum gprs_ns2_affecting_cause cause = nsp->u.status.cause; - - switch (cause) { - case NS_AFF_CAUSE_RECOVERY: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); - break; - case NS_AFF_CAUSE_FAILURE: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); - break; - case NS_AFF_CAUSE_VC_RECOVERY: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d NS-VC %s became available\n", nsp->nsei, nsp->u.status.nsvc); - break; - case NS_AFF_CAUSE_VC_FAILURE: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d NS-VC %s became unavailable\n", nsp->nsei, nsp->u.status.nsvc); - break; - default: - LOGP(DPCU, LOGL_NOTICE, "Unhandled status %d (NS-NSE %d)\n", cause, nsp->nsei); - break; - } -} - -int gprs_ns2_prim_cb(struct osmo_prim_hdr *oph, void *ctx); - -/* override */ -static int gprs_ns2_callback(struct osmo_prim_hdr *oph, void *ctx) -{ - struct osmo_gprs_ns2_prim *nsp; - struct gbproxy_config *cfg = (struct gbproxy_config *) ctx; - - if (oph->sap != SAP_NS) - return 0; - - nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); - - if (oph->operation != PRIM_OP_INDICATION) { - LOGP(DPCU, 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 */ - msgb_bssgph(oph->msg) = oph->msg->l3h; - msgb_bvci(oph->msg) = nsp->bvci; - msgb_nsei(oph->msg) = nsp->nsei; - printf("NS2 CALLBACK, prim %d, msg length %zu, bvci 0x%04x\n%s\n\n", - oph->primitive, msgb_bssgp_len(oph->msg), nsp->bvci, - osmo_hexdump(msgb_l2(oph->msg), msgb_l2len(oph->msg))); - break; - case PRIM_NS_STATUS: - gprs_ns2_test_prim_status_cb(cfg, nsp); - default: - printf("NS2 CALLBACK, prim %d, bvci 0x%04x\n\n", - oph->primitive, nsp->bvci); - - break; - } - - /* Hand off to gbproxy which will free the msg */ - return gprs_ns2_prim_cb(oph, ctx); -} - -static void test_gbproxy() -{ - struct gprs_ns2_inst *nsi = gprs_ns2_instantiate(tall_sgsn_ctx, gprs_ns2_callback, &gbcfg); - uint16_t bss_nsei[2] = {0x1000, 0x2000}; - - gbcfg.nsi = nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - - bssgp_set_bssgp_callback(gbprox_test_bssgp_send_cb, &gbcfg); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, bss_nsei[0]); - setup_bssgp(nsi, bss_nsei[0], 0x1002); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); - - printf("--- Initialise BSS 2 ---\n\n"); - - setup_ns(nsi, bss_nsei[1]); - setup_bssgp(nsi, bss_nsei[1], 0x2002); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x2002); - - printf("--- Reset BSS 1 with a new BVCI ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], 0x1012); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1012); - - printf("--- Reset BSS 1 with the old BVCI ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], 0x1002); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); - - printf("--- Reset BSS 1 with the old BVCI again ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], 0x1002); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1012 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x1012 ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from BSS 2 to SGSN, BVCI 0x2002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x2002, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 2, BVCI 0x2002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x2002, (uint8_t *)"", 0); - - printf("--- Reset BSS 1 with the old BVCI on BSS2's link ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], 0x1002); - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) ---\n\n"); - - send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x10ff, (uint8_t *)"", 0); - - /* Find peer */ - OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0xeeee) == NULL); - OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0x1000) == NULL); - OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0x1012) != NULL); - OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0xeeee) == NULL); - OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0x1012) == NULL); - OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0x1000) != NULL); - - - /* Cleanup */ - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0, 0) == 0); - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0xeeee) == 0); - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0, 0x1002) == 0); - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0x1012) == 1); - OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0x1012) == 0); - - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - gbprox_reset(&gbcfg); - gprs_ns2_free(nsi); - nsi = NULL; -} - -static void test_gbproxy_ident_changes() -{ - struct gprs_ns2_inst *nsi = gprs_ns2_instantiate(tall_sgsn_ctx, gprs_ns2_callback, &gbcfg); - uint16_t bss_nsei[2] = {0x1000, 0x2000}; - uint16_t bvci[4] = {0x1002, 0x2002, 0x3002}; - - gbcfg.nsi = nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - - bssgp_set_bssgp_callback(gbprox_test_bssgp_send_cb, &gbcfg); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, bss_nsei[0]); - - printf("--- Setup BVCI 1 ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], bvci[0]); - send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[0]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Setup BVCI 2 ---\n\n"); - - setup_bssgp(nsi, bss_nsei[0], bvci[1]); - send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[1]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 1 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], bvci[0], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[0], (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 2 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], bvci[1], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[1], (uint8_t *)"", 0); - - printf("--- Change NSEI ---\n\n"); - - setup_ns(nsi, bss_nsei[1]); - - printf("--- Setup BVCI 1 ---\n\n"); - - setup_bssgp(nsi, bss_nsei[1], bvci[0]); - send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[0]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Setup BVCI 3 ---\n\n"); - - setup_bssgp(nsi, bss_nsei[1], bvci[2]); - send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[2]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 1 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[1], bvci[0], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[0], (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 2 " - " (should fail) ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[1], bvci[1], (uint8_t *)"", 0); - dump_peers(stdout, 0, 0, &gbcfg); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[1], (uint8_t *)"", 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 3 ---\n\n"); - - send_ns_unitdata(nsi, NULL, bss_nsei[0], bvci[2], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[2], (uint8_t *)"", 0); - - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - gbprox_reset(&gbcfg); - gprs_ns2_free(nsi); - nsi = NULL; -} - -/* See OS#3178 "gbproxy: failed to parse invalid BSSGP-UNITDATA message" */ -static void test_gbproxy_parse_bssgp_unitdata() -{ - const char *hex = "0000239401e155cfea000004088872f4801018009c4000800e000601c0416c4338"; - struct msgb *msg = msgb_alloc(1034, "bssgp_unitdata"); - struct gprs_gb_parse_context parse_ctx; - int rc; - - memset(&parse_ctx, 0, sizeof(parse_ctx)); - - OSMO_ASSERT(msg); - msgb_bssgph(msg) = msg->head; - msgb_put(msg, osmo_hexparse(hex, msg->head, msgb_tailroom(msg))); - - parse_ctx.to_bss = 0; - parse_ctx.peer_nsei = msgb_nsei(msg); - - rc = gprs_gb_parse_bssgp(msg->data, msg->len, &parse_ctx); - if (!rc) - fprintf(stderr, "%s: Test passed; Failed to parse invalid message %s\n", __func__, msgb_hexdump(msg)); - else - fprintf(stderr, "%s: Test failed; invalid message was accepted by parser: %s\n", __func__, msgb_hexdump(msg)); - - OSMO_ASSERT(!rc); - - /* Manually decoded message according to: - ETSI TS 148 018 V10.6.0 (2012 07) 96 - 3GPP TS 48.018 version 10.6.0 Release 10 - Table 10.2.2: UL-UNITDATA PDU content - - 00 - PDU type UL-UNITDATA (ok) - - 11.3.35 Temporary logical link Identity (TLLI) - 00 - TLLI[0] - 23 - TLLI[1] - 94 - TLLI[2] - 01 - TLLI[3] - TLLI == "00239401" - - e1 - QOS[0] (bit rate MSB) - 55 - QOS[1] (bit rate LSB) - bit rate = "57685" (57685*100000 bit/s per PBRG) - cf - QOS[2] PBRG = 11 (bit rate is expressed in 100000 bit/s increments), - C/R 0 (contains LLC ACK/SACK), - T 0 (contains signalling), - A 1 (radio if uses MAC/UNITDATA, - Precedence 111 (reserved value) - - ea - CELL_ID[0] (TLV IEI: wrong, should be 0x08) - 00 - CELL_ID[1] (length 1) - 00 - CELL_ID[2] (length 2) - lenth == 0 - 04 -- CELL_ID[3] - 08 -- CELL_ID[4] - 88 -- CELL_ID[5] - 72 -- CELL_ID[6] - f4 -- CELL_ID[7] - 80 -- CELL_ID[8] - 10 -- CELL_DI[9] - - 18 -- QOSP[0] OoS Profile IEI - not allowed in BSSGP Userdata - 00 -- QOSP[1] - 9c -- QOSP[2] - 40 -- QOSP[3] - 00 -- QOSP[4] - - 80 -- IEI for "E-UTRAN Inter RAT Handover Info" - not allowed in BSSGP Userdata - 0e -- length (14 bytes -- only 8 bytes remain) - 00 06 01 c0 41 6c 43 38 */ - - msgb_free(msg); - - cleanup_test(); -} - -static struct log_info_cat gprs_categories[] = { - [DGPRS] = { - .name = "DGPRS", - .description = "GPRS Packet Service", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DNS] = { - .name = "DNS", - .description = "GPRS Network Service (NS)", - .enabled = 1, .loglevel = LOGL_INFO, - }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -static struct log_info info = { - .cat = gprs_categories, - .num_cat = ARRAY_SIZE(gprs_categories), -}; - -int main(int argc, char **argv) -{ - talloc_enable_leak_report(); - tall_sgsn_ctx = talloc_named_const(NULL, 0, "gbproxy_test"); - void *log_ctx = talloc_named_const(tall_sgsn_ctx, 0, "log"); - - msgb_talloc_ctx_init(tall_sgsn_ctx, 0); - - osmo_init_logging2(log_ctx, &info); - log_set_use_color(osmo_stderr_target, 0); - log_set_print_filename(osmo_stderr_target, 0); - log_set_log_level(osmo_stderr_target, LOGL_DEBUG); - log_set_all_filter(osmo_stderr_target, 1); - - rate_ctr_init(tall_sgsn_ctx); - - setlinebuf(stdout); - - printf("===== GbProxy test START\n"); - gbproxy_init_config(&gbcfg); - test_gbproxy(); - test_gbproxy_ident_changes(); - test_gbproxy_parse_bssgp_unitdata(); - gbprox_reset(&gbcfg); - /* gbprox_reset() frees the rate_ctr, but re-allocates it again. */ - rate_ctr_group_free(gbcfg.ctrg); - printf("===== GbProxy test END\n\n"); - - talloc_free(log_ctx); - /* expecting root and msgb ctx, empty */ - OSMO_ASSERT(talloc_total_blocks(tall_sgsn_ctx) == 2); - talloc_free(tall_sgsn_ctx); - - return 0; -} diff --git a/tests/gbproxy/gbproxy_test.ok b/tests/gbproxy/gbproxy_test.ok deleted file mode 100644 index 75bea98..0000000 --- a/tests/gbproxy/gbproxy_test.ok +++ /dev/null @@ -1,671 +0,0 @@ -===== GbProxy test START -=== test_gbproxy === ---- Initialise SGSN --- - -NS2 CALLBACK, prim 2, bvci 0x0000 - -Message for SGSN (NSEI=256 BVCI=0): -22 04 82 00 00 07 81 08 - ---- Initialise BSS 1 --- - -Setup NS-VC: NSEI 0x1000(4096) - -NS2 CALLBACK, prim 2, bvci 0x0000 - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for BSS (NSEI=4096 BVCI=0): -23 04 82 00 00 - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - ---- Initialise BSS 2 --- - -Setup NS-VC: NSEI 0x2000(8192) - -NS2 CALLBACK, prim 2, bvci 0x0000 - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for BSS (NSEI=8192 BVCI=0): -23 04 82 00 00 - -Setup BSSGP: BVCI 0x2002(8194) - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 20 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 20 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 20 02 - -Message for BSS (NSEI=8192 BVCI=0): -[L2]> [L3]> 23 04 82 20 02 - ---- Reset BSS 1 with a new BVCI --- - -Setup BSSGP: BVCI 0x1012(4114) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 12 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 12 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 12 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 12 - ---- Reset BSS 1 with the old BVCI --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - ---- Reset BSS 1 with the old BVCI again --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - ---- Send message from BSS 1 to SGSN, BVCI 0x1012 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for SGSN (NSEI=256 BVCI=4114): -[L2]> [L3]> - ---- Send message from SGSN to BSS 1, BVCI 0x1012 --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for BSS (NSEI=4096 BVCI=4114): -[L2]> [L3]> - ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for SGSN (NSEI=256 BVCI=4114): -[L2]> [L3]> - ---- Send message from SGSN to BSS 1, BVCI 0x1002 --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for BSS (NSEI=4096 BVCI=4114): -[L2]> [L3]> - ---- Send message from BSS 2 to SGSN, BVCI 0x2002 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for SGSN (NSEI=256 BVCI=8194): -[L2]> [L3]> - ---- Send message from SGSN to BSS 2, BVCI 0x2002 --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for BSS (NSEI=8192 BVCI=8194): -[L2]> [L3]> - ---- Reset BSS 1 with the old BVCI on BSS2's link --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 -Gbproxy global: -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for SGSN (NSEI=256 BVCI=4114): -[L2]> [L3]> - ---- Send message from SGSN to BSS 1, BVCI 0x1002 --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012 - - -Message for BSS (NSEI=4096 BVCI=4114): -[L2]> [L3]> - ---- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) --- - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x10ff - - -Message for SGSN (NSEI=256 BVCI=0): -41 07 81 05 04 82 10 ff 15 80 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 -Gbproxy global: - Invalid BVC Identifier : 1 -=== test_gbproxy_ident_changes === ---- Initialise SGSN --- - -NS2 CALLBACK, prim 2, bvci 0x0000 - -Message for SGSN (NSEI=256 BVCI=0): -22 04 82 00 00 07 81 08 - ---- Initialise BSS 1 --- - -Setup NS-VC: NSEI 0x1000(4096) - -NS2 CALLBACK, prim 2, bvci 0x0000 - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for BSS (NSEI=4096 BVCI=0): -23 04 82 00 00 - ---- Setup BVCI 1 --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 ---- Setup BVCI 2 --- - -Setup BSSGP: BVCI 0x2002(8194) - -PROCESSING BVC_RESET from NSEI 4096 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 20 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 20 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 20 02 - -Message for BSS (NSEI=4096 BVCI=0): -[L2]> [L3]> 23 04 82 20 02 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 ---- Send message from BSS 1 to SGSN and back, BVCI 1 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002 - - -Message for SGSN (NSEI=256 BVCI=4098): -[L2]> [L3]> - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002 - - -Message for BSS (NSEI=4096 BVCI=4098): -[L2]> [L3]> - ---- Send message from BSS 1 to SGSN and back, BVCI 2 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for SGSN (NSEI=256 BVCI=8194): -[L2]> [L3]> - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for BSS (NSEI=4096 BVCI=8194): -[L2]> [L3]> - ---- Change NSEI --- - -Setup NS-VC: NSEI 0x2000(8192) - -NS2 CALLBACK, prim 2, bvci 0x0000 - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for BSS (NSEI=8192 BVCI=0): -23 04 82 00 00 - ---- Setup BVCI 1 --- - -Setup BSSGP: BVCI 0x1002(4098) - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 10 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 10 02 - -Message for BSS (NSEI=8192 BVCI=0): -[L2]> [L3]> 23 04 82 10 02 - -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 ---- Setup BVCI 3 --- - -Setup BSSGP: BVCI 0x3002(12290) - -PROCESSING BVC_RESET from NSEI 8192 -22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000 -22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000 -22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -Message for SGSN (NSEI=256 BVCI=0): -[L2]> [L3]> 22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -PROCESSING BVC_RESET_ACK from NSEI 256 -23 04 82 30 02 - -NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000 -23 04 82 30 02 - -NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000 -23 04 82 30 02 - -Message for BSS (NSEI=8192 BVCI=0): -[L2]> [L3]> 23 04 82 30 02 - -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 ---- Send message from BSS 1 to SGSN and back, BVCI 1 --- - -PROCESSING (null) from NSEI 8192 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002 - - -Message for SGSN (NSEI=256 BVCI=4098): -[L2]> [L3]> - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002 - - -Message for BSS (NSEI=8192 BVCI=4098): -[L2]> [L3]> - ---- Send message from BSS 1 to SGSN and back, BVCI 2 (should fail) --- - -PROCESSING (null) from NSEI 8192 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for SGSN (NSEI=256 BVCI=8194): -[L2]> [L3]> - -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002 - - -Message for BSS (NSEI=4096 BVCI=8194): -[L2]> [L3]> - -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 ---- Send message from BSS 1 to SGSN and back, BVCI 3 --- - -PROCESSING (null) from NSEI 4096 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x3002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x3002 - - -Message for SGSN (NSEI=256 BVCI=12290): -[L2]> [L3]> - -PROCESSING (null) from NSEI 256 - - -NS2 CALLBACK, prim 0, msg length 0, bvci 0x3002 - - -NS2 UD REQUEST, prim 0, msg length 0, bvci 0x3002 - - -Message for BSS (NSEI=8192 BVCI=12290): -[L2]> [L3]> - -Gbproxy global: -Peers: - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 -===== GbProxy test END - diff --git a/tests/testsuite.at b/tests/testsuite.at index d30115e..637d853 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -7,12 +7,6 @@ AT_CHECK([$abs_top_builddir/tests/gprs/gprs_test], [], [expout], [ignore]) AT_CLEANUP -AT_SETUP([gbproxy]) -AT_KEYWORDS([gbproxy]) -cat $abs_srcdir/gbproxy/gbproxy_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/gbproxy/gbproxy_test], [], [expout], [ignore]) -AT_CLEANUP - AT_SETUP([sgsn]) AT_KEYWORDS([sgsn]) AT_CHECK([test "$enable_sgsn_test" != no || exit 77]) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I053aebab6bf5d0ee955f2221bf27925b36140cf3 Gerrit-Change-Number: 21590 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 Tue Dec 8 21:59:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:54 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Introduce more validation / constraint checks In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21560 ) Change subject: gb_proxy: Introduce more validation / constraint checks ...................................................................... gb_proxy: Introduce more validation / constraint checks * ensure the BSSGP PDU header length before reading pdu_type field * ensure we never process uplink PDUs in downlink and vice-versa * ensure we never proceses PTP PDUs on SIGNALING BVCI and vice-versa Change-Id: I6e40aed0283f1a0860ab273606605f7fb28717cf Depends: libosmocore.git I7e4226463f3c935134b5c2c737696fbfd1dd5815 --- M src/gbproxy/gb_proxy.c 1 file changed, 63 insertions(+), 23 deletions(-) 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 98fa928..a30f5ad 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -249,8 +249,26 @@ struct msgb *msg, uint16_t nsei, uint16_t ns_bvci) { + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); struct gbproxy_bvc *bvc; + if (ns_bvci == 0 && ns_bvci == 1) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not PTP\n", nsei, ns_bvci); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_PTP)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in PTP BVC\n", + nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_UL)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in uplink direction\n", + nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); if (!bvc) { LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find bvc " @@ -272,12 +290,27 @@ struct msgb *msg, uint16_t nsei, uint16_t ns_bvci) { + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); struct gbproxy_bvc *bvc; + if (ns_bvci == 0 && ns_bvci == 1) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not PTP\n", nsei, ns_bvci); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_PTP)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in PTP BVC\n", + nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_DL)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in downlink direction\n", + nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); - - /* Send status messages before patching */ - if (!bvc) { LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find bvc for " "for message from NSE(%05u/SGSN)\n", @@ -393,18 +426,20 @@ int rc; if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) BVCI=%05u is not signalling\n", - nsei, ns_bvci); - return -EINVAL; + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not signalling\n", nsei, ns_bvci); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - /* we actually should never see those two for BVCI == 0, but double-check - * just to make sure */ - if (pdu_type == BSSGP_PDUT_UL_UNITDATA || - pdu_type == BSSGP_PDUT_DL_UNITDATA) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) UNITDATA not allowed in " - "signalling\n", nsei); - return -EINVAL; + if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) %s not allowed in signalling BVC\n", + nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); + } + + if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_UL)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) %s not allowed in uplink direction\n", + nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } bssgp_tlv_parse(&tp, bgph->data, data_len); @@ -596,18 +631,19 @@ int i; if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BVCI=%05u is not " - "signalling\n", nsei, ns_bvci); - /* FIXME: Send proper error message */ - return -EINVAL; + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BVCI=%05u is not signalling\n", nsei, ns_bvci); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } - /* we actually should never see those two for BVCI == 0, but double-check - * just to make sure */ - if (pdu_type == BSSGP_PDUT_UL_UNITDATA || - pdu_type == BSSGP_PDUT_DL_UNITDATA) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) UNITDATA not allowed in " - "signalling\n", nsei); + if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) %s not allowed in signalling BVC\n", + nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + } + + if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_DL)) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) %s not allowed in downlink direction\n", + nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } @@ -758,6 +794,10 @@ int remote_end_is_sgsn = gbproxy_is_sgsn_nsei(cfg, nsei); + /* ensure minimum length to decode PCU type */ + if (msgb_bssgp_len(msg) < sizeof(struct bssgp_normal_hdr)) + return bssgp_tx_status(BSSGP_CAUSE_SEM_INCORR_PDU, NULL, msg); + /* Only BVCI=0 messages need special treatment */ if (ns_bvci == 0 || ns_bvci == 1) { if (remote_end_is_sgsn) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6e40aed0283f1a0860ab273606605f7fb28717cf Gerrit-Change-Number: 21560 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 Tue Dec 8 21:59:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:55 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use gbprox_relay2peer() whenever possible In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21561 ) Change subject: gbproxy: use gbprox_relay2peer() whenever possible ...................................................................... gbproxy: use gbprox_relay2peer() whenever possible gbprox_relay2peer() is a small wrapper around gbprox_relay2nse(), but as it manages the transmit error counter, we should use it whenever possible. Change-Id: I85ab49ca0a25dd7c54b88c4fdc8838843e6d2209 --- M src/gbproxy/gb_proxy.c 1 file changed, 3 insertions(+), 3 deletions(-) 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 a30f5ad..a90030e 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -519,7 +519,7 @@ hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); - gbprox_relay2nse(msg, nse, ns_bvci); + gbprox_relay2peer(msg, bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; @@ -533,7 +533,7 @@ hash_for_each(nse->bvcs, j, bvc, list) { if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); - gbprox_relay2nse(msg, nse, ns_bvci); + gbprox_relay2peer(msg, bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; @@ -545,7 +545,7 @@ hash_for_each(cfg->bss_nses, i, nse, list) { hash_for_each(nse->bvcs, j, bvc, list) { LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); - gbprox_relay2nse(msg, nse, ns_bvci); + gbprox_relay2peer(msg, bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I85ab49ca0a25dd7c54b88c4fdc8838843e6d2209 Gerrit-Change-Number: 21561 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 Tue Dec 8 21:59:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:55 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Use osmo_tlv_prot_parse() to validate mandatory IEs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21591 ) Change subject: gb_proxy: Use osmo_tlv_prot_parse() to validate mandatory IEs ...................................................................... gb_proxy: Use osmo_tlv_prot_parse() to validate mandatory IEs We recently introduced code to libosmocore which allows us to validate the mandatory IE presence (and length) in a generic way. Let's use it. Change-Id: I0ea3f5f9566d9bf5a8429c3ee748e3e90cda6cd7 Depends: libosmocore.git I7e4226463f3c935134b5c2c737696fbfd1dd5815 --- M src/gbproxy/gb_proxy.c 1 file changed, 45 insertions(+), 12 deletions(-) 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 a90030e..8be67f7 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -104,6 +104,20 @@ return 1; } +/* generate BVC-STATUS message with cause value derived from TLV-parser error */ +static int tx_status_from_tlvp(enum osmo_tlv_parser_error tlv_p_err, struct msgb *orig_msg) +{ + uint8_t bssgp_cause; + switch (tlv_p_err) { + case OSMO_TLVP_ERR_MAND_IE_MISSING: + bssgp_cause = BSSGP_CAUSE_MISSING_MAND_IE; + break; + default: + bssgp_cause = BSSGP_CAUSE_PROTO_ERR_UNSPEC; + } + return bssgp_tx_status(bssgp_cause, NULL, orig_msg); +} + /* strip off the NS header */ static void strip_ns_hdr(struct msgb *msg) { @@ -423,26 +437,34 @@ int data_len = msgb_bssgp_len(msg) - sizeof(*bgph); struct gbproxy_bvc *from_bvc = NULL; struct gprs_ra_id raid; + char log_pfx[32]; int rc; + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/BSS)", nsei); + if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not signalling\n", nsei, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) %s not allowed in signalling BVC\n", - nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, + osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_UL)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) %s not allowed in uplink direction\n", - nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in uplink direction\n", log_pfx, + osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - bssgp_tlv_parse(&tp, bgph->data, data_len); + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, pdu_type, bgph->data, data_len, 0, 0, + DGPRS, log_pfx); + if (rc < 0) { + rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + return tx_status_from_tlvp(rc, msg); + } switch (pdu_type) { case BSSGP_PDUT_SUSPEND: @@ -626,24 +648,27 @@ struct gbproxy_bvc *bvc; uint16_t bvci; struct msgb *msg; + char log_pfx[32]; int rc = 0; int cause; int i; + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)", nsei); + if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BVCI=%05u is not signalling\n", nsei, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) %s not allowed in signalling BVC\n", - nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, + osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_DL)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) %s not allowed in downlink direction\n", - nsei, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, + osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } @@ -651,7 +676,15 @@ /* Update message info */ bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); data_len = msgb_bssgp_len(orig_msg) - sizeof(*bgph); - rc = bssgp_tlv_parse(&tp, bgph->data, data_len); + + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, pdu_type, bgph->data, data_len, 0, 0, + DGPRS, log_pfx); + if (rc < 0) { + rc = tx_status_from_tlvp(rc, msg); + msgb_free(msg); + rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); + return rc; + } switch (pdu_type) { case BSSGP_PDUT_BVC_RESET: -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0ea3f5f9566d9bf5a8429c3ee748e3e90cda6cd7 Gerrit-Change-Number: 21591 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 Tue Dec 8 21:59:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 21:59:55 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Log FSM timeouts In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21592 ) Change subject: gbproxy: Log FSM timeouts ...................................................................... gbproxy: Log FSM timeouts Change-Id: I5c48e42083ab6f8622808457ca3f017adf35cdff --- M src/gbproxy/gb_proxy.c 1 file changed, 1 insertion(+), 0 deletions(-) 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 8be67f7..ecb74c0 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -989,6 +989,7 @@ return -1; } osmo_clock_gettime(CLOCK_REALTIME, &tp); + osmo_fsm_log_timeouts(true); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21592 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I5c48e42083ab6f8622808457ca3f017adf35cdff Gerrit-Change-Number: 21592 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 Tue Dec 8 22:00:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 22:00:43 +0000 Subject: Change in libosmocore[master]: tlv.h: Add msgb_tvlv_put_{16,32}be() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21609 ) Change subject: tlv.h: Add msgb_tvlv_put_{16,32}be() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I033f9a708c9d7ffad91336178231dc66233e1693 Gerrit-Change-Number: 21609 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 22:00: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 Dec 8 22:01:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 22:01:11 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21597 ) Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 22:01: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 Dec 8 22:01:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 22:01:17 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21597 ) Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... Removed Code-Review+2 by laforge -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 8 22:01:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 22:01:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21605 ) Change subject: bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I903ede1c78e103d24a93f2e6b0e1acd136405099 Gerrit-Change-Number: 21605 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 22:01: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 Dec 8 22:01:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 22:01:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21606 ) Change subject: bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I872111dae761bda038d2e881ab5f4e6b7f52ec90 Gerrit-Change-Number: 21606 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 08 Dec 2020 22:01: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 Dec 8 22:02:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 22:02:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests_OML: add new test case TC_ipa_rsl_connect_nack In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21608 ) Change subject: BTS_Tests_OML: add new test case TC_ipa_rsl_connect_nack ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibfa58f670401907801f610578dd9b4ebf155a83a Gerrit-Change-Number: 21608 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 22:02: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 Dec 8 22:02:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 22:02:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21605 ) Change subject: bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations ...................................................................... bts/expected-results.xml: add missing SMSCB-over-SDCCH8 expectations Change-Id: I903ede1c78e103d24a93f2e6b0e1acd136405099 --- M bts/expected-results.xml 1 file changed, 10 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/bts/expected-results.xml b/bts/expected-results.xml index a50cf6d..4fd704c 100644 --- a/bts/expected-results.xml +++ b/bts/expected-results.xml @@ -157,6 +157,16 @@ + + + + + + + + + + -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I903ede1c78e103d24a93f2e6b0e1acd136405099 Gerrit-Change-Number: 21605 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 Dec 8 22:02:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 22:02:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21606 ) Change subject: bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now ...................................................................... bts/expected-results.xml: TC_sacch_chan_act_ho_sync should pass now Change-Id: I872111dae761bda038d2e881ab5f4e6b7f52ec90 --- M bts/expected-results.xml 1 file changed, 1 insertion(+), 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/bts/expected-results.xml b/bts/expected-results.xml index 4fd704c..6142e40 100644 --- a/bts/expected-results.xml +++ b/bts/expected-results.xml @@ -16,12 +16,7 @@ BTS_Tests.ttcn:MASKED TC_sacch_chan_act_ho_async testcase - - "BTS_Tests.ttcn:MASKED : Unexpected RSL message received" - BTS_Tests.ttcn:MASKED BTS_Tests control part - BTS_Tests.ttcn:MASKED TC_sacch_chan_act_ho_sync testcase - - + -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I872111dae761bda038d2e881ab5f4e6b7f52ec90 Gerrit-Change-Number: 21606 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 Dec 8 22:02:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 8 Dec 2020 22:02:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests_OML: add new test case TC_ipa_rsl_connect_nack In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21608 ) Change subject: BTS_Tests_OML: add new test case TC_ipa_rsl_connect_nack ...................................................................... BTS_Tests_OML: add new test case TC_ipa_rsl_connect_nack Currently osmo-bts seems to be sending IPA RSL Connect ACK unconditionally, even if the remote peer is not reachable. Change-Id: Ibfa58f670401907801f610578dd9b4ebf155a83a --- M bts/BTS_Tests_OML.ttcn 1 file changed, 25 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bts/BTS_Tests_OML.ttcn b/bts/BTS_Tests_OML.ttcn index 396ed38..6770dab 100644 --- a/bts/BTS_Tests_OML.ttcn +++ b/bts/BTS_Tests_OML.ttcn @@ -589,6 +589,30 @@ } } +/* Make sure that the IUT sends RSL Connect NACK when the remote is not reachable. */ +testcase TC_ipa_rsl_connect_nack() runs on BSC_OML_CT { + timer T := 2.0; + + f_init_oml(testcasename()); + + /* Most likely, nobody is listening to this port */ + OML.send(ts_OML_IPA_RslConnect(0, 65535)); + + T.start; + alt { + [] OML.receive(tr_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT_NACK)) { + setverdict(pass); + } + [] OML.receive(tr_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT_ACK)) { + setverdict(fail, "RSL Connect ACK is not expected"); + } + [] OML.receive { repeat; } + [] T.timeout { + setverdict(fail, "Timeout waiting for RSL Connect NACK"); + } + } +} + control { execute( TC_wrong_mdisc() ); @@ -606,6 +630,7 @@ execute( TC_ts_opstart() ); execute( TC_ts_opstart_noattr() ); execute( TC_initial_state_reports() ); + execute( TC_ipa_rsl_connect_nack() ); } /* BTS: -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibfa58f670401907801f610578dd9b4ebf155a83a Gerrit-Change-Number: 21608 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 Tue Dec 8 22:29:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 8 Dec 2020 22:29:04 +0000 Subject: Change in libosmocore[master]: tlv.h: Add msgb_tvlv_put_{16,32}be() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21609 ) Change subject: tlv.h: Add msgb_tvlv_put_{16,32}be() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I033f9a708c9d7ffad91336178231dc66233e1693 Gerrit-Change-Number: 21609 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 08 Dec 2020 22:29: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 Dec 9 00:04:09 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 00:04:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 References: Message-ID: lynxis lazus has uploaded this change for review. ( 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 1 file changed, 5 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/17/21617/1 diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 350ddf5..92560e2 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 nsvci 101 127.0.0.1 7777 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 -- 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: 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 Dec 9 00:04:35 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 00:04:35 +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 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 1: Code-Review-1 This can be merged *after* gbproxy uses ns2 vty2. -- 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: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 09 Dec 2020 00:04: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 Dec 9 00:52:50 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 00:52:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: correct dynamic calculation References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21618 ) Change subject: gprs_ns2_sns: correct dynamic calculation ...................................................................... gprs_ns2_sns: correct dynamic calculation The wrong argument was used to multiply by 4. However it was still compliant because the SNS code would always supports 16 NSVCs. Use the correct multiplier. Fixes: ttnc3 pcu sns test cases Fixes: 42ad54915285 ("gprs_ns2_sns: dynamic calculate the maximum NS-VCs") Change-Id: I58d706c6fffb4237b90b37cade4dc00c6aba6ac9 --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/18/21618/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index d13d920..5d18d04 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1320,7 +1320,7 @@ gss->num_ip4_local = count; gss->num_max_ip4_remote = 4; - gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip4_remote * 4, 8); + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip4_remote * gss->num_ip4_local, 8); break; case IPv6: /* IPv6 */ @@ -1359,7 +1359,7 @@ } gss->num_ip6_local = count; gss->num_max_ip6_remote = 4; - gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * 4, 8); + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * gss->num_ip6_local, 8); break; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I58d706c6fffb4237b90b37cade4dc00c6aba6ac9 Gerrit-Change-Number: 21618 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 Dec 9 01:28:19 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 01:28:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_sns_add: fix wrong udp port in SNS ADD message References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21619 ) Change subject: pcu: TC_sns_add: fix wrong udp port in SNS ADD message ...................................................................... pcu: TC_sns_add: fix wrong udp port in SNS ADD message When sending the SNS ADD in the test case the ip/port to add must be different from the current NSVCs. Fixes: 90f1974fb040 ("NS_Emulation: Support multiple NS-VC within one NSE (NS-VCG)") Change-Id: I9bbbf1431468a452df324a7559518496e3eb48e3 --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/19/21619/1 diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index cd0cc67..40a0877 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -147,7 +147,7 @@ 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].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig[idx_add].nsvc[0]; 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, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9bbbf1431468a452df324a7559518496e3eb48e3 Gerrit-Change-Number: 21619 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 Dec 9 01:28:20 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 01:28:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: remove TODO expect FLOW-CONTROL BVC References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21620 ) Change subject: pcu: SNS: remove TODO expect FLOW-CONTROL BVC ...................................................................... pcu: SNS: remove TODO expect FLOW-CONTROL BVC It should not be expected in a new NSVC. Change-Id: I142c87d496f08d603ab8e1e13c5a29ebe6596bb0 --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/20/21620/1 diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index 40a0877..5c03b94 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -417,7 +417,6 @@ activate(as_rx_alive_tx_ack(idx := 2)); f_outgoing_ns_alive(2); - /* TODO: Should we expect FLOW-CONTROL BVC here too? */ setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I142c87d496f08d603ab8e1e13c5a29ebe6596bb0 Gerrit-Change-Number: 21620 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 Dec 9 01:28:22 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 01:28:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_add_existent References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21621 ) Change subject: pcu: SNS: add TC_sns_add_existent ...................................................................... pcu: SNS: add TC_sns_add_existent Try to add via SNS an already existent NSVC which should fail. Change-Id: I096bcbe38d82d08a150a2f8e56f6bc02353273a1 --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 12 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/21/21621/1 diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index 5c03b94..937e30e 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -143,7 +143,7 @@ rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); } -function f_outgoing_sns_add(integer idx_add, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0) +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; @@ -153,13 +153,13 @@ 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, omit, v4)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].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, omit, omit, v6)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, cause, omit, v6)); } } @@ -420,6 +420,14 @@ setverdict(pass); } +/* Test adding an already present IP endpoint at runtime */ +testcase TC_sns_add_nack() runs on RAW_Test_CT { + f_sns_bringup_1c1u(); + + f_outgoing_sns_add(idx_add := 0, w_sig := 0, w_user := 1, idx := 0, cause := NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + setverdict(pass); +} + /* Test deleting IP endpoints at runtime */ testcase TC_sns_del() runs on RAW_Test_CT { f_sns_bringup_1c1u(); @@ -473,6 +481,7 @@ execute( TC_sns_1c1u_so_bvc_reset() ); execute( TC_sns_1c1u_so_bvc_reset_too_early() ); execute( TC_sns_add() ); + execute( TC_sns_add_nack() ); execute( TC_sns_del() ); execute( TC_sns_chg_weight() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I096bcbe38d82d08a150a2f8e56f6bc02353273a1 Gerrit-Change-Number: 21621 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 Dec 9 01:28:22 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 01:28:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: fix typo References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21622 ) Change subject: pcu: SNS: fix typo ...................................................................... pcu: SNS: fix typo Change-Id: Iedb6b3f38d87ea3ac29c4bcaaf50e771b0b8a750 --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/22/21622/1 diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index 937e30e..aed363b 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -407,7 +407,7 @@ testcase TC_sns_add() runs on RAW_Test_CT { f_sns_bringup_1c1u(); - /* crate another NS codec port on the tester side */ + /* create another NS codec port on the tester side */ f_init_ns_codec(mp_nsconfig, 2); f_outgoing_sns_add(idx_add := 2, w_sig := 0, w_user := 1, idx := 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iedb6b3f38d87ea3ac29c4bcaaf50e771b0b8a750 Gerrit-Change-Number: 21622 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Dec 9 02:14:14 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 09 Dec 2020 02:14:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <5fd033093558d_7a532aef51b1060013563d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Leap_15.1_ARM/aarch64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Leap_15.1_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 96s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o remsim_server.o remsim_server.c [ 96s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rspro_server.o rspro_server.c [ 96s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rest_api.o rest_api.c [ 96s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rspro_util.o `test -f '../rspro_util.c' || echo './'`../rspro_util.c [ 96s] In file included from rest_api.c:7:0: [ 96s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 96s] #include [ 96s] ^~~~~~~~ [ 96s] compilation terminated. [ 96s] make[3]: *** [Makefile:451: rest_api.o] Error 1 [ 96s] make[3]: *** Waiting for unfinished jobs.... [ 97s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 97s] make[2]: *** [Makefile:534: all-recursive] Error 1 [ 97s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 97s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 97s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 97s] make: *** [Makefile:406: all] Error 2 [ 97s] error: Bad exit status from /var/tmp/rpm-tmp.osYy7J (%build) [ 97s] [ 97s] [ 97s] RPM build errors: [ 97s] Bad exit status from /var/tmp/rpm-tmp.osYy7J (%build) [ 97s] ### VM INTERACTION START ### [ 100s] [ 86.700745] sysrq: SysRq : Power Off [ 100s] [ 86.702789] reboot: Power down [ 100s] ### VM INTERACTION END ### [ 100s] [ 100s] obs-arm-8 failed "build osmo-remsim.spec" at Wed Dec 9 02:13:54 UTC 2020. [ 100s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 9 02:16:48 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 09 Dec 2020 02:16:48 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fd033a448108_7a532aef51b106001369ed@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 90s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o remsim_server.o remsim_server.c [ 90s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rspro_server.o rspro_server.c [ 90s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rest_api.o rest_api.c [ 90s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -mbranch-protection=standard -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rspro_util.o `test -f '../rspro_util.c' || echo './'`../rspro_util.c [ 90s] In file included from rest_api.c:7: [ 90s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 90s] 49 | #include [ 90s] | ^~~~~~~~ [ 90s] compilation terminated. [ 90s] make[3]: *** [Makefile:461: rest_api.o] Error 1 [ 90s] make[3]: *** Waiting for unfinished jobs.... [ 91s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 91s] make[2]: *** [Makefile:542: all-recursive] Error 1 [ 91s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 91s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 91s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 91s] make: *** [Makefile:406: all] Error 2 [ 91s] error: Bad exit status from /var/tmp/rpm-tmp.8Irv2t (%build) [ 91s] [ 91s] [ 91s] RPM build errors: [ 91s] Bad exit status from /var/tmp/rpm-tmp.8Irv2t (%build) [ 91s] ### VM INTERACTION START ### [ 94s] [ 82.010838] sysrq: Power Off [ 94s] [ 82.085179] reboot: Power down [ 94s] ### VM INTERACTION END ### [ 94s] [ 94s] obs-arm-8 failed "build osmo-remsim.spec" at Wed Dec 9 02:16:21 UTC 2020. [ 94s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 9 02:28:14 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 09 Dec 2020 02:28:14 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd0364e83b2c_7a532aef51b10600140164@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: [ 173s] [COMPILING apps/dfu/main.c] [ 173s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 173s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 173s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 173s] Memory region Used Size Region Size %age Used [ 173s] rom: 16580 B 16 KB 101.20% [ 173s] 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 [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /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' [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 173s] collect2: error: ld returned 1 exit status [ 173s] % [ 173s] make[2]: *** [Makefile:234: flash] Error 1 [ 173s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 173s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 173s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 173s] dh_auto_build: error: make -j1 returned exit code 2 [ 174s] make: *** [debian/rules:16: build] Error 25 [ 174s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 174s] ### VM INTERACTION START ### [ 177s] [ 163.932881] sysrq: Power Off [ 177s] [ 163.940419] reboot: Power down [ 177s] ### VM INTERACTION END ### [ 177s] [ 177s] lamb56 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 9 02:27:59 UTC 2020. [ 177s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 9 02:29:57 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 09 Dec 2020 02:29:57 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd036aaf1935_7a532aef51b106001407ee@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: [ 325s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 326s] [COMPILING libboard/qmod/source/card_pres.c] [ 326s] [COMPILING libboard/qmod/source/wwan_led.c] [ 326s] [COMPILING libboard/qmod/source/i2c.c] [ 326s] [COMPILING libboard/qmod/source/board_qmod.c] [ 326s] [COMPILING apps/dfu/main.c] [ 326s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 326s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 326s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 327s] Memory region Used Size Region Size %age Used [ 327s] rom: 16588 B 16 KB 101.25% [ 327s] 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' [ 327s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 327s] collect2: error: ld returned 1 exit status [ 327s] % [ 327s] make[2]: *** [Makefile:234: flash] Error 1 [ 327s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 327s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 327s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 327s] dh_auto_build: error: make -j1 returned exit code 2 [ 327s] make: *** [debian/rules:16: build] Error 25 [ 327s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 327s] ### VM INTERACTION START ### [ 330s] [ 316.278535] sysrq: Power Off [ 330s] [ 316.284293] reboot: Power down [ 330s] ### VM INTERACTION END ### [ 330s] [ 330s] lamb03 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 9 02:29:39 UTC 2020. [ 330s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 9 02:32:32 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 09 Dec 2020 02:32:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5fd03759e1ba5_7a532aef51b1060014181c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Tumbleweed/i586 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Tumbleweed/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 65s] (cd ../../src && make libosmo-rspro.la) [ 65s] make[4]: Entering directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 65s] make[4]: 'libosmo-rspro.la' is up to date. [ 65s] make[4]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 65s] In file included from rest_api.c:7: [ 65s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 65s] 49 | #include [ 65s] | ^~~~~~~~ [ 65s] compilation terminated. [ 65s] make[3]: *** [Makefile:461: rest_api.o] Error 1 [ 65s] make[3]: *** Waiting for unfinished jobs.... [ 65s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 65s] make[2]: *** [Makefile:542: all-recursive] Error 1 [ 65s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 65s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 65s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 65s] make: *** [Makefile:406: all] Error 2 [ 65s] error: Bad exit status from /var/tmp/rpm-tmp.ElS8xn (%build) [ 65s] [ 65s] [ 65s] RPM build errors: [ 65s] Bad exit status from /var/tmp/rpm-tmp.ElS8xn (%build) [ 65s] ### VM INTERACTION START ### [ 68s] [ 60.735724] sysrq: Power Off [ 68s] [ 60.745328] reboot: Power down [ 68s] ### VM INTERACTION END ### [ 68s] [ 68s] lamb76 failed "build osmo-remsim.spec" at Wed Dec 9 02:32:20 UTC 2020. [ 68s] -- 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 Dec 9 02:58:18 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 02:58:18 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2_vty2: improve ip-sns implementation 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/+/21576 to look at the new patch set (#2). Change subject: WIP: gprs_ns2_vty2: improve ip-sns implementation ...................................................................... WIP: gprs_ns2_vty2: improve ip-sns implementation Change-Id: I741f21c36f1074e99304d51d96e1c00be24cf3c6 --- M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty2.c 2 files changed, 27 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/76/21576/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I741f21c36f1074e99304d51d96e1c00be24cf3c6 Gerrit-Change-Number: 21576 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 Wed Dec 9 02:58:18 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 02:58:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote 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/+/21573 to look at the new patch set (#2). Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... gprs_ns2_sns: rework IP-SNS initial remote The IP-SNS requires at least one initial remote address of the SGSN. However it should be multiple initial remote address instead of a single in case the interface might fail. Rework the SNS to support multiple initial remote addresses. Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/libosmogb.map 6 files changed, 334 insertions(+), 190 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/21573/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 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 Wed Dec 9 03:04:15 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 09 Dec 2020 03:04:15 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <5fd03ec0dc52d_7a532aef51b106001486ad@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Leap_15.2/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Leap_15.2/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 115s] (cd ../../src && make libosmo-rspro.la) [ 115s] make[4]: Entering directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 115s] make[4]: 'libosmo-rspro.la' is up to date. [ 115s] make[4]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 115s] In file included from rest_api.c:7:0: [ 115s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 115s] #include [ 115s] ^~~~~~~~ [ 115s] compilation terminated. [ 115s] make[3]: *** [Makefile:451: rest_api.o] Error 1 [ 115s] make[3]: *** Waiting for unfinished jobs.... [ 116s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 116s] make[2]: *** [Makefile:534: all-recursive] Error 1 [ 116s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 116s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 116s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 116s] make: *** [Makefile:406: all] Error 2 [ 116s] error: Bad exit status from /var/tmp/rpm-tmp.lEO2Ay (%build) [ 116s] [ 116s] [ 116s] RPM build errors: [ 116s] Bad exit status from /var/tmp/rpm-tmp.lEO2Ay (%build) [ 116s] ### VM INTERACTION START ### [ 119s] [ 94.615519] sysrq: Power Off [ 119s] [ 94.644534] reboot: Power down [ 119s] ### VM INTERACTION END ### [ 119s] [ 119s] lamb03 failed "build osmo-remsim.spec" at Wed Dec 9 03:03:17 UTC 2020. [ 119s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 9 03:04:32 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 09 Dec 2020 03:04:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5fd03edf50450_7a532aef51b10600148796@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Leap_15.1/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Leap_15.1/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 81s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o remsim_server.o remsim_server.c [ 81s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rspro_server.o rspro_server.c [ 81s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rest_api.o rest_api.c [ 81s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I//usr/include -I/usr/include/p11-kit-1 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Wall -c -o rspro_util.o `test -f '../rspro_util.c' || echo './'`../rspro_util.c [ 81s] In file included from rest_api.c:7:0: [ 81s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 81s] #include [ 81s] ^~~~~~~~ [ 81s] compilation terminated. [ 81s] make[3]: *** [Makefile:451: rest_api.o] Error 1 [ 81s] make[3]: *** Waiting for unfinished jobs.... [ 81s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 81s] make[2]: *** [Makefile:534: all-recursive] Error 1 [ 81s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 81s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 81s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 81s] make: *** [Makefile:406: all] Error 2 [ 81s] error: Bad exit status from /var/tmp/rpm-tmp.NOqnnv (%build) [ 81s] [ 81s] [ 81s] RPM build errors: [ 81s] Bad exit status from /var/tmp/rpm-tmp.NOqnnv (%build) [ 81s] ### VM INTERACTION START ### [ 84s] [ 72.711902] sysrq: SysRq : Power Off [ 84s] [ 72.716287] reboot: Power down [ 84s] ### VM INTERACTION END ### [ 84s] [ 84s] cloud132 failed "build osmo-remsim.spec" at Wed Dec 9 03:03:27 UTC 2020. [ 84s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 9 04:53:51 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 09 Dec 2020 04:53:51 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fd0586e22d3f_7a532aef51b10600172029@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 82s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o remsim_server.o remsim_server.c [ 82s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rspro_server.o rspro_server.c [ 82s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rest_api.o rest_api.c [ 82s] gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.103.dc34\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.103.dc34\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -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/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.103.dc34\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wall -Wall -I../../include -I../../include -I../../src -I../../include/osmocom/rspro -I/usr/include/libosmocore/ -pthread -I/usr/include/libosmocore/ -I/usr/include/libosmo-abis/ -I/usr/include/p11-kit-1 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -Wall -c -o rspro_util.o `test -f '../rspro_util.c' || echo './'`../rspro_util.c [ 82s] In file included from rest_api.c:7: [ 82s] /usr/include/ulfius.h:49:12: fatal error: zlib.h: No such file or directory [ 82s] 49 | #include [ 82s] | ^~~~~~~~ [ 82s] compilation terminated. [ 82s] make[3]: *** [Makefile:461: rest_api.o] Error 1 [ 82s] make[3]: *** Waiting for unfinished jobs.... [ 82s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src/server' [ 82s] make[2]: *** [Makefile:542: all-recursive] Error 1 [ 82s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34/src' [ 82s] make[1]: *** [Makefile:482: all-recursive] Error 1 [ 82s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-remsim-0.2.2.103.dc34' [ 82s] make: *** [Makefile:406: all] Error 2 [ 82s] error: Bad exit status from /var/tmp/rpm-tmp.FCsVt7 (%build) [ 82s] [ 82s] [ 82s] RPM build errors: [ 82s] Bad exit status from /var/tmp/rpm-tmp.FCsVt7 (%build) [ 82s] ### VM INTERACTION START ### [ 85s] [ 64.604883] sysrq: Power Off [ 85s] [ 64.608573] reboot: Power down [ 85s] ### VM INTERACTION END ### [ 85s] [ 85s] cloud120 failed "build osmo-remsim.spec" at Wed Dec 9 04:53:37 UTC 2020. [ 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 Wed Dec 9 09:46:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 09:46:04 +0000 Subject: Change in libosmocore[master]: tlv.h: Add msgb_tvlv_put_{16,32}be() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21609 ) Change subject: tlv.h: Add msgb_tvlv_put_{16,32}be() ...................................................................... tlv.h: Add msgb_tvlv_put_{16,32}be() Those routines are very useful when puzzling together BSSGP messages with 16-bit and 32bit sized IEs. Change-Id: I033f9a708c9d7ffad91336178231dc66233e1693 --- M include/osmocom/gsm/tlv.h 1 file changed, 15 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, approved diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index d34b7da..fe057f4 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -278,6 +279,20 @@ return tvlv_put(buf, tag, len, val); } +/*! put (append) a TvLV field containing a big-endian 16bit value to msgb. */ +static inline uint8_t *msgb_tvlv_put_16be(struct msgb *msg, uint8_t tag, uint16_t val) +{ + uint16_t val_be = osmo_htons(val); + return msgb_tvlv_put(msg, tag, 2, (const uint8_t *)&val_be); +} + +/*! put (append) a TvLV field containing a big-endian 16bit value to msgb. */ +static inline uint8_t *msgb_tvlv_put_32be(struct msgb *msg, uint8_t tag, uint32_t val) +{ + uint32_t val_be = osmo_htonl(val); + return msgb_tvlv_put(msg, tag, 4, (const uint8_t *)&val_be); +} + /*! put (append) a vTvLV field to \ref msgb */ static inline uint8_t *msgb_vtvlv_gan_put(struct msgb *msg, uint16_t tag, uint16_t len, const uint8_t *val) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I033f9a708c9d7ffad91336178231dc66233e1693 Gerrit-Change-Number: 21609 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 Dec 9 09:46:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 09:46:39 +0000 Subject: Change in libosmocore[master]: logging: Assing different 8bit colors to built-in subsystems In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21599 ) Change subject: logging: Assing different 8bit colors to built-in subsystems ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8c0f91a61fbca0441faf66b3f368f45f886187c Gerrit-Change-Number: 21599 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 09: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 Wed Dec 9 10:05:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 10:05:38 +0000 Subject: Change in docker-playground[master]: centos8-build: Upstream requires 'powertools' not 'PowerTools' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21623 ) Change subject: centos8-build: Upstream requires 'powertools' not 'PowerTools' ...................................................................... centos8-build: Upstream requires 'powertools' not 'PowerTools' I just confirmed: With a centos:centos8 base image of a few weeks ago, "PowerTools" works. With the current docker base image for centos:centos8, only lowercase "powertools" works, uppercase is no longer accepted. https://access.redhat.com/discussions/5417621 https://www.reddit.com/r/CentOS/comments/jd7x3d/how_to_enable_powertools_in_centos_stream/ https://git.centos.org/rpms/centos-repos/blob/c8/f/SOURCES/CentOS-Stream-PowerTools.repo#_11 Change-Id: I518d5523688a7439f76684ee38bf743a4e78c9fd Closes: SYS#5244 --- M centos8-build/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/23/21623/1 diff --git a/centos8-build/Dockerfile b/centos8-build/Dockerfile index e71e03c..9a21bbc 100644 --- a/centos8-build/Dockerfile +++ b/centos8-build/Dockerfile @@ -7,7 +7,7 @@ # Make additional development libraries available from PowerTools and Osmocom nightly (e.g. libdbi) RUN dnf install -y dnf-utils wget && \ - yum config-manager --set-enabled PowerTools && \ + yum config-manager --set-enabled powertools && \ cd /etc/yum.repos.d/ && \ wget https://download.opensuse.org/repositories/network:osmocom:nightly/CentOS_8_Stream/network:osmocom:nightly.repo -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I518d5523688a7439f76684ee38bf743a4e78c9fd Gerrit-Change-Number: 21623 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 Dec 9 10:13:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 10:13:11 +0000 Subject: Change in docker-playground[master]: centos8-build: Upstream requires 'powertools' not 'PowerTools' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21623 ) Change subject: centos8-build: Upstream requires 'powertools' not 'PowerTools' ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I518d5523688a7439f76684ee38bf743a4e78c9fd Gerrit-Change-Number: 21623 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 10:13: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 Dec 9 10:13:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 10:13:13 +0000 Subject: Change in docker-playground[master]: centos8-build: Upstream requires 'powertools' not 'PowerTools' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21623 ) Change subject: centos8-build: Upstream requires 'powertools' not 'PowerTools' ...................................................................... centos8-build: Upstream requires 'powertools' not 'PowerTools' I just confirmed: With a centos:centos8 base image of a few weeks ago, "PowerTools" works. With the current docker base image for centos:centos8, only lowercase "powertools" works, uppercase is no longer accepted. https://access.redhat.com/discussions/5417621 https://www.reddit.com/r/CentOS/comments/jd7x3d/how_to_enable_powertools_in_centos_stream/ https://git.centos.org/rpms/centos-repos/blob/c8/f/SOURCES/CentOS-Stream-PowerTools.repo#_11 Change-Id: I518d5523688a7439f76684ee38bf743a4e78c9fd Closes: SYS#5244 --- M centos8-build/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/centos8-build/Dockerfile b/centos8-build/Dockerfile index e71e03c..9a21bbc 100644 --- a/centos8-build/Dockerfile +++ b/centos8-build/Dockerfile @@ -7,7 +7,7 @@ # Make additional development libraries available from PowerTools and Osmocom nightly (e.g. libdbi) RUN dnf install -y dnf-utils wget && \ - yum config-manager --set-enabled PowerTools && \ + yum config-manager --set-enabled powertools && \ cd /etc/yum.repos.d/ && \ wget https://download.opensuse.org/repositories/network:osmocom:nightly/CentOS_8_Stream/network:osmocom:nightly.repo -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I518d5523688a7439f76684ee38bf743a4e78c9fd Gerrit-Change-Number: 21623 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 Dec 9 11:02:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 11:02:59 +0000 Subject: Change in docker-playground[master]: gbproxy-test-fr: Fix syntax error in config file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21624 ) Change subject: gbproxy-test-fr: Fix syntax error in config file ...................................................................... gbproxy-test-fr: Fix syntax error in config file It's mp_enable_bss_load_sharing, not mp_enable_load_sharing Change-Id: I0d2241e0d9e376f27d04721034b1e197901aa662 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/24/21624/1 diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index b363f98..7ba5d99 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -12,7 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "172.18.25.10" [MODULE_PARAMETERS] -GBProxy_Tests.mp_enable_load_sharing := true; +GBProxy_Tests.mp_enable_bss_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { nsvc := { -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0d2241e0d9e376f27d04721034b1e197901aa662 Gerrit-Change-Number: 21624 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 Dec 9 11:04:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 11:04:00 +0000 Subject: Change in docker-playground[master]: gbproxy-test-fr: Fix syntax error in config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21624 ) Change subject: gbproxy-test-fr: Fix syntax error in config file ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0d2241e0d9e376f27d04721034b1e197901aa662 Gerrit-Change-Number: 21624 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 11:04: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 Dec 9 11:06:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 11:06:32 +0000 Subject: Change in docker-playground[master]: gbproxy-test-fr: Fix syntax error in config file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21624 ) Change subject: gbproxy-test-fr: Fix syntax error in config file ...................................................................... gbproxy-test-fr: Fix syntax error in config file It's mp_enable_bss_load_sharing, not mp_enable_load_sharing Change-Id: I0d2241e0d9e376f27d04721034b1e197901aa662 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg 1 file changed, 1 insertion(+), 1 deletion(-) 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 b363f98..7ba5d99 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -12,7 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "172.18.25.10" [MODULE_PARAMETERS] -GBProxy_Tests.mp_enable_load_sharing := true; +GBProxy_Tests.mp_enable_bss_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { nsvc := { -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0d2241e0d9e376f27d04721034b1e197901aa662 Gerrit-Change-Number: 21624 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 Dec 9 12:07:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 12:07:49 +0000 Subject: Change in libosmocore[master]: bssgp2: Encoding + Decoding functions for BVC and MS flow control In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21610 ) Change subject: bssgp2: Encoding + Decoding functions for BVC and MS flow control ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9c89bb1c03550930c07aad7ff8f67129ee7a6320 Gerrit-Change-Number: 21610 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 12: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 Wed Dec 9 12:09:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 12:09:56 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21611 ) Change subject: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie59be6761177c43456898be9148727f15861a622 Gerrit-Change-Number: 21611 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 12:09: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 Dec 9 12:15:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 12:15:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 In-Reply-To: References: Message-ID: pespin 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 1: 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: 1 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, 09 Dec 2020 12: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 Wed Dec 9 12:17:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 12:17:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_sns_add: fix wrong udp port in SNS ADD message In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21619 ) Change subject: pcu: TC_sns_add: fix wrong udp port in SNS ADD message ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9bbbf1431468a452df324a7559518496e3eb48e3 Gerrit-Change-Number: 21619 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 12:17: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 Dec 9 12:17:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 12:17:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: remove TODO expect FLOW-CONTROL BVC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21620 ) Change subject: pcu: SNS: remove TODO expect FLOW-CONTROL BVC ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I142c87d496f08d603ab8e1e13c5a29ebe6596bb0 Gerrit-Change-Number: 21620 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 12:17: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 Dec 9 12:18:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 12:18:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_add_existent In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21621 ) Change subject: pcu: SNS: add TC_sns_add_existent ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I096bcbe38d82d08a150a2f8e56f6bc02353273a1 Gerrit-Change-Number: 21621 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 12:18: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 Dec 9 12:18:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 12:18:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: fix typo In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21622 ) Change subject: pcu: SNS: fix typo ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iedb6b3f38d87ea3ac29c4bcaaf50e771b0b8a750 Gerrit-Change-Number: 21622 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 12:18: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 Dec 9 12:26:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 12:26:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21573 ) Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... Patch Set 2: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_internal.h at 296 PS2, Line 296: int offset); offset means index here? https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_sns.c at 661 PS2, Line 661: /* empty state - SNS Select will start by all action */ You mean ns2_sns_st_all_action()? https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_sns.c at 1251 PS2, Line 1251: .in_event_mask = 0, worth adding a comment saying events are handled in all_state. https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_sns.c at 1338 PS2, Line 1338: else if (gss->initial->list.next == &gss->sns_endpoints) /* last entry, continue with first */ keep using {} if first clause use {}. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 12:26: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 Wed Dec 9 12:41:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 12:41:47 +0000 Subject: Change in osmo-trx[master]: ipc-driver-test: Allow setting dir prefix for UD socket In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21594 ) Change subject: ipc-driver-test: Allow setting dir prefix for UD socket ...................................................................... Patch Set 1: > Patch Set 1: > > Do we still need the socket number? Why not just go for the full path instead? > I only did the sock number because I was lazy and it was pretty much my own arcane debug tool, not used by anyone else... Number still allows to set several of them in parallel. Same reason, being a debug tool and so on having the directory path + number is fine, let's merge this in instead of spending more time on it. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc Gerrit-Change-Number: 21594 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 12:41: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 Wed Dec 9 13:03:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 13:03:42 +0000 Subject: Change in osmo-bts[master]: nm_channel_fsm: Fix several FSM internal transitions not being made References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21625 ) Change subject: nm_channel_fsm: Fix several FSM internal transitions not being made ...................................................................... nm_channel_fsm: Fix several FSM internal transitions not being made During the initial implementation I used the wrong function to change state. As a result, from BSC point of view the BTS was changing state but the FSM internally was not. "Fortunately", while in state Dependency the BTS still could cope with that in order to still be operative with older osmo-bsc, so there was no major breakage, only some error log message being printed. Related: OS#4901 Change-Id: Ifd2eefc362fca0aa9e6ae102c7e6dbc1b4f295d6 --- M src/common/nm_channel_fsm.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/25/21625/1 diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index 263d2cc..4925959 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -92,7 +92,7 @@ oml_mo_opstart_nack(&ts->mo, (int)(intptr_t)data); return; case NM_EV_BBTRANSC_ENABLED: - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_OFFLINE); return; default: OSMO_ASSERT(0); @@ -121,7 +121,7 @@ oml_mo_opstart_nack(&ts->mo, (int)(intptr_t)data); return; case NM_EV_BBTRANSC_DISABLED: - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY); + nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_DEPENDENCY); return; default: OSMO_ASSERT(0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifd2eefc362fca0aa9e6ae102c7e6dbc1b4f295d6 Gerrit-Change-Number: 21625 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 Dec 9 13:04:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 13:04:28 +0000 Subject: Change in osmo-bts[master]: nm_channel_fsm: Fix several FSM internal transitions not being made In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/21625 ) Change subject: nm_channel_fsm: Fix several FSM internal transitions not being made ...................................................................... nm_channel_fsm: Fix several FSM internal transitions not being made During the initial implementation I used the wrong function to change state. As a result, from BSC point of view the BTS was changing state but the FSM internally was not. "Fortunately", while in state Dependency the BTS still could cope with that in order to still be operative with older osmo-bsc, so there was no major breakage, only some error log message being printed. Related: OS#4873 Change-Id: Ifd2eefc362fca0aa9e6ae102c7e6dbc1b4f295d6 --- M src/common/nm_channel_fsm.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/25/21625/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifd2eefc362fca0aa9e6ae102c7e6dbc1b4f295d6 Gerrit-Change-Number: 21625 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 Wed Dec 9 13:56:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 9 Dec 2020 13:56:05 +0000 Subject: Change in osmo-bts[master]: nm_channel_fsm: Fix several FSM internal transitions not being made In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21625 ) Change subject: nm_channel_fsm: Fix several FSM internal transitions not being made ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifd2eefc362fca0aa9e6ae102c7e6dbc1b4f295d6 Gerrit-Change-Number: 21625 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 09 Dec 2020 13:56: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 Dec 9 14:07:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 9 Dec 2020 14:07:22 +0000 Subject: Change in osmo-bts[master]: nm_channel_fsm: Fix several FSM internal transitions not being made In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21625 ) Change subject: nm_channel_fsm: Fix several FSM internal transitions not being made ...................................................................... Patch Set 2: Verified+1 Code-Review+2 Works for me :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifd2eefc362fca0aa9e6ae102c7e6dbc1b4f295d6 Gerrit-Change-Number: 21625 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 09 Dec 2020 14:07: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 Dec 9 14:30:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 14:30:15 +0000 Subject: Change in osmo-bts[master]: nm_channel_fsm: Fix several FSM internal transitions not being made In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21625 ) Change subject: nm_channel_fsm: Fix several FSM internal transitions not being made ...................................................................... nm_channel_fsm: Fix several FSM internal transitions not being made During the initial implementation I used the wrong function to change state. As a result, from BSC point of view the BTS was changing state but the FSM internally was not. "Fortunately", while in state Dependency the BTS still could cope with that in order to still be operative with older osmo-bsc, so there was no major breakage, only some error log message being printed. Related: OS#4873 Change-Id: Ifd2eefc362fca0aa9e6ae102c7e6dbc1b4f295d6 --- M src/common/nm_channel_fsm.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: fixeria: Looks good to me, approved; Verified Jenkins Builder: Verified diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index 263d2cc..4925959 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -92,7 +92,7 @@ oml_mo_opstart_nack(&ts->mo, (int)(intptr_t)data); return; case NM_EV_BBTRANSC_ENABLED: - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_OFFLINE); return; default: OSMO_ASSERT(0); @@ -121,7 +121,7 @@ oml_mo_opstart_nack(&ts->mo, (int)(intptr_t)data); return; case NM_EV_BBTRANSC_DISABLED: - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY); + nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_DEPENDENCY); return; default: OSMO_ASSERT(0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifd2eefc362fca0aa9e6ae102c7e6dbc1b4f295d6 Gerrit-Change-Number: 21625 Gerrit-PatchSet: 2 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 Wed Dec 9 14:32:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix syntax error in GBProxy_Tests.fr.cfg References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21626 ) Change subject: gbproxy: Fix syntax error in GBProxy_Tests.fr.cfg ...................................................................... gbproxy: Fix syntax error in GBProxy_Tests.fr.cfg Follow-up fix to I96e8b6a1a69148f770476e87c920dc256c1d7379 Related: OS#4520 Change-Id: I2eb6ffb3d0dba1405692c0e885622936d65cf95a --- M gbproxy/GBProxy_Tests.fr.cfg 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/26/21626/1 diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index ececed9..043a2db 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -12,7 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "127.0.0.1" [MODULE_PARAMETERS] -GBProxy_Tests.mp_enable_load_sharing := true; +GBProxy_Tests.mp_enable_bss_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { handle_sns := false -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2eb6ffb3d0dba1405692c0e885622936d65cf95a Gerrit-Change-Number: 21626 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 Dec 9 14:32:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21627 ) Change subject: Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length ...................................................................... Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length Change-Id: Ib9a09fea85110a4f0966c07d911e37234aa06391 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/27/21627/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 2afedcc..ba05f7d 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1255,7 +1255,7 @@ iEI := '1E'O, ext := '1'B, lengthIndicator := { - length1 := 2 + length1 := 1 }, unstructured_Value := tag } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib9a09fea85110a4f0966c07d911e37234aa06391 Gerrit-Change-Number: 21627 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 Dec 9 14:32:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21628 ) Change subject: bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG ...................................................................... bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG ... to indicate this is about the signaling BVC only. Change-Id: I646db452c89842465902b5167c9c86de51df1241 --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/28/21628/1 diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 0aa27e6..ebe9f45 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -302,7 +302,7 @@ } } -private template PDU_BSSGP tr_GLOBAL := ( +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:=?} @@ -336,7 +336,7 @@ } /* Messages with BVCI = 0 (Signaling) in BVCI field of NS */ - [] BSCP.receive(f_BnsUdInd(tr_GLOBAL, 0)) -> value udi { + [] BSCP.receive(f_BnsUdInd(tr_GLOBAL_SIG, 0)) -> value udi { GLOBAL.send(udi.bssgp); } [] BSCP.receive(f_BnsUdInd(tr_RIM, 0)) -> value udi { @@ -393,7 +393,7 @@ BSCP.send(udr); } - [] GLOBAL.receive(tr_GLOBAL) -> value bssgp { + [] GLOBAL.receive(tr_GLOBAL_SIG) -> value bssgp { BSCP.send(f_BnsUdReq(bssgp, 0, 0)); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I646db452c89842465902b5167c9c86de51df1241 Gerrit-Change-Number: 21628 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 Dec 9 14:32:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bssgp: Introduce "GLOBAL" port for PTP BVC References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21629 ) Change subject: bssgp: Introduce "GLOBAL" port for PTP BVC ...................................................................... bssgp: Introduce "GLOBAL" port for PTP BVC There are some messages/procedures on a PTP BVC which are not related to one specific TLLI, but affect the whole PTP BVC. First and foremost that is the FLOW-CONTROL-BVC. Let's check if the user is interested in handling those internally (by connecting to the GLOBAL port). If not, fall back to acknowledging all incoing FC-BVC and ignoring all ACKs. Related: OS#4891 Change-Id: Ib80a6a522dbcb33fd0e7bd31a73ef28fdc636f57 --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 24 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/29/21629/1 diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index ebe9f45..633eee2 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -698,7 +698,10 @@ /* port to a management instance */ port BSSGP_BVC_MGMT_SP_PT MGMT; - /* BSSGP-User SAP towards the user (Client) */ + /* per-BVC global port for e.g. BVC Flow Control */ + port BSSGP_SP_PT GLOBAL; + + /* BSSGP-User SAP towards the user (per-TLLI, Client) */ port BSSGP_SP_PT BSSGP_SP; port BSSGP_SP_PT BSSGP_SP_SIG; port BSSGP_PROC_PT BSSGP_PROC; @@ -1119,16 +1122,24 @@ [] as_ptp_handle_inbound_reset(); - /* simply acknowledge all per-BVC Flow Control Messages */ [g_sgsn_role] BVC.receive(tr_ptp_BnsUdInd(tr_BVC_FC_BVC, g_cfg.bvci)) -> value udi { - var OCT1 tag := udi.bssgp.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; - BVC.send(ts_ptp_BnsUdReq(t_BVC_FC_BVC_ACK(tag), g_cfg.bvci, g_bvc_lsp)); + if (GLOBAL.checkstate("Connected")) { + GLOBAL.send(udi.bssgp); + } else { + /* simply acknowledge all per-BVC Flow Control Messages */ + var OCT1 tag := udi.bssgp.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; + BVC.send(ts_ptp_BnsUdReq(t_BVC_FC_BVC_ACK(tag), g_cfg.bvci, g_bvc_lsp)); + } } -/* - [g_sgsn_role] BVC.receive(tr_ptp_BnsUdInd(t_BVC_FC_MS, g_cfg.bvci)) { - BVC.send(ts_ptp_BnsUdReq(t_BVC_FC_MS_ACK, g_cfg.bvci)); + + [not g_sgsn_role] BVC.receive(tr_ptp_BnsUdInd(t_BVC_FC_BVC_ACK(?), g_cfg.bvci)) -> value udi { + if (GLOBAL.checkstate("Connected")) { + GLOBAL.send(udi.bssgp); + } else { + /* ignore any incoming flow control ACK */ + } } -*/ + /* 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); @@ -1221,6 +1232,11 @@ BVC.send(ts_ptp_BnsUdReq(ts_BSSGP_DL_UD(tlli, llc_enc), g_cfg.bvci, oct2int(tlli))); } + /* Testcase sends us BSSGP on global port */ + [] GLOBAL.receive(PDU_BSSGP:?)-> value bs_pdu sender vc_conn { + BVC.send(ts_ptp_BnsUdReq(bs_pdu, g_cfg.bvci, g_bvc_lsp)); + } + [] MGMT.receive(BssgpBlockRequest:?) -> value bbr { f_ptp_sendBlock(bbr.cause); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib80a6a522dbcb33fd0e7bd31a73ef28fdc636f57 Gerrit-Change-Number: 21629 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 Dec 9 14:32:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: cosmetic: More comments / section headers References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21630 ) Change subject: gbproxy: cosmetic: More comments / section headers ...................................................................... gbproxy: cosmetic: More comments / section headers Change-Id: I26162cd37908d60761182edd50c3aa8389486b7c --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 24 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/30/21630/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index d6c8bb1..0145c97 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1928,6 +1928,10 @@ f_cleanup(); } +/*********************************************************************** + * FLUSH-LL procedure + ***********************************************************************/ + private function f_TC_flush_ll(charstring id) runs on BSSGP_ConnHdlr { var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci; var integer i; @@ -1958,6 +1962,10 @@ f_cleanup(); } +/*********************************************************************** + * SGSN-INVOKE-TRACE procedure + ***********************************************************************/ + private altstep as_bssgp_g_pcu_count(integer pcu_idx, template (present) PDU_BSSGP exp_rx, inout ro_integer roi) runs on GlobalTest_CT { [] G_PCU[pcu_idx].receive(exp_rx) from g_pcu[pcu_idx].vc_BSSGP { @@ -1998,6 +2006,10 @@ f_cleanup(); } +/*********************************************************************** + * LLC-DISCARDED procedure + ***********************************************************************/ + private function f_TC_llc_discarded(charstring id) runs on BSSGP_ConnHdlr { var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci; @@ -2022,6 +2034,10 @@ f_cleanup(); } +/*********************************************************************** + * OVERLOAD procedure + ***********************************************************************/ + /* Send an OVERLOAD from SGSN side and expect it to show up on each PCU (SIG BVC) */ testcase TC_overload() runs on GlobalTest_CT { @@ -2051,6 +2067,10 @@ f_cleanup(); } +/*********************************************************************** + * BVC-BLOCK / BVC-UNBLOCK procedure + ***********************************************************************/ + private function f_block_ptp_bvc_from_pcu(integer pcu_idx, integer bvc_idx) runs on test_CT { var BSSGP_BVC_CT bvc_ct := g_pcu[pcu_idx].vc_BSSGP_BVC[bvc_idx]; @@ -2105,6 +2125,10 @@ f_cleanup(); } +/*********************************************************************** + * BVC-RESET procedure + ***********************************************************************/ + private altstep as_ignore_status(BSSGP_BVC_MGMT_PT pt) { [] pt.receive(BssgpStatusIndication:?) { repeat; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I26162cd37908d60761182edd50c3aa8389486b7c Gerrit-Change-Number: 21630 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 Dec 9 14:32:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21631 ) Change subject: gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP ...................................................................... gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP This way it's more obvious that it refers to the PTP BVC, like we already use PCU_SIG and SGSN_SIG for the signaling BVCs. Change-Id: Ie8d327b0c6fae0e7963cc5907ab0bc94e97c67f3 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 31 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/31/21631/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 0145c97..a2055ea 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -283,7 +283,7 @@ type component BSSGP_ConnHdlr { /* array of per-BVC ports on the PCU side */ - port BSSGP_PT PCU[NUM_PCU]; + port BSSGP_PT PCU_PTP[NUM_PCU]; port BSSGP_PT PCU_SIG[NUM_PCU]; port BSSGP_PROC_PT PCU_PROC[NUM_PCU]; /* component reference to the component to which we're currently connected */ @@ -292,7 +292,7 @@ var BssgpBvcConfig pcu_bvc_cfg[NUM_PCU]; /* array of per-BVC ports on the SGSN side */ - port BSSGP_PT SGSN[NUM_SGSN]; + port BSSGP_PT SGSN_PTP[NUM_SGSN]; port BSSGP_PT SGSN_SIG[NUM_SGSN]; port BSSGP_PROC_PT SGSN_PROC[NUM_SGSN]; /* component reference to the component to which we're currently connected */ @@ -541,15 +541,15 @@ private function f_connect_to_pcu_bvc(integer port_idx, integer nse_idx, integer bvc_idx) runs on BSSGP_ConnHdlr { var BSSGP_BVC_CT bvc_ct := g_pars.pcu[nse_idx].vc_BSSGP_BVC[bvc_idx] - if (PCU[port_idx].checkstate("Connected")) { + if (PCU_PTP[port_idx].checkstate("Connected")) { /* unregister + disconnect from old BVC */ f_client_unregister(g_pars.imsi, PCU_PROC[port_idx]); - disconnect(self:PCU[port_idx], pcu_ct[port_idx]:BSSGP_SP); + disconnect(self:PCU_PTP[port_idx], pcu_ct[port_idx]:BSSGP_SP); disconnect(self:PCU_SIG[port_idx], pcu_ct[port_idx]:BSSGP_SP_SIG); disconnect(self:PCU_PROC[port_idx], pcu_ct[port_idx]:BSSGP_PROC); } /* connect to new BVC and register us */ - connect(self:PCU[port_idx], bvc_ct:BSSGP_SP); + connect(self:PCU_PTP[port_idx], bvc_ct:BSSGP_SP); connect(self:PCU_SIG[port_idx], bvc_ct:BSSGP_SP_SIG); connect(self:PCU_PROC[port_idx], bvc_ct:BSSGP_PROC); f_client_register(g_pars.imsi, g_pars.tlli, PCU_PROC[port_idx]); @@ -559,15 +559,15 @@ /* Connect the SGSN-side per-BVC ports (SGSN/SGSN_SIG/SGSN_PROC) array slot 'port_idx' to specified per-BVC component */ private function f_connect_to_sgsn_bvc(integer port_idx, BSSGP_BVC_CT bvc_ct) runs on BSSGP_ConnHdlr { - if (SGSN[port_idx].checkstate("Connected")) { + if (SGSN_PTP[port_idx].checkstate("Connected")) { /* unregister + disconnect from old BVC */ f_client_unregister(g_pars.imsi, SGSN_PROC[port_idx]); - disconnect(self:SGSN[port_idx], sgsn_ct[port_idx]:BSSGP_SP); + disconnect(self:SGSN_PTP[port_idx], sgsn_ct[port_idx]:BSSGP_SP); disconnect(self:SGSN_SIG[port_idx], sgsn_ct[port_idx]:BSSGP_SP_SIG); disconnect(self:SGSN_PROC[port_idx], sgsn_ct[port_idx]:BSSGP_PROC); } /* connect to new BVC and register us */ - connect(self:SGSN[port_idx], bvc_ct:BSSGP_SP); + connect(self:SGSN_PTP[port_idx], bvc_ct:BSSGP_SP); connect(self:SGSN_SIG[port_idx], bvc_ct:BSSGP_SP_SIG); connect(self:SGSN_PROC[port_idx], bvc_ct:BSSGP_PROC); f_client_register(g_pars.imsi, g_pars.tlli, SGSN_PROC[port_idx]); @@ -630,7 +630,7 @@ if (use_sig) { PCU_SIG[pcu_idx].send(tx); } else { - PCU[pcu_idx].send(tx); + PCU_PTP[pcu_idx].send(tx); } T.start; @@ -638,10 +638,10 @@ [use_sig] SGSN_SIG[sgsn_idx].receive(exp_rx) { setverdict(pass); } - [not use_sig] SGSN[sgsn_idx].receive(exp_rx) { + [not use_sig] SGSN_PTP[sgsn_idx].receive(exp_rx) { setverdict(pass); } - [] SGSN[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { + [] SGSN_PTP[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); mtc.stop; } @@ -665,7 +665,7 @@ if (use_sig) { SGSN_SIG[sgsn_idx].send(tx); } else { - SGSN[sgsn_idx].send(tx); + SGSN_PTP[sgsn_idx].send(tx); } T.start; @@ -673,10 +673,10 @@ [use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(pass); } - [not use_sig] PCU[pcu_idx].receive(exp_rx) { + [not use_sig] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(pass); } - [] PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { + [] PCU_PTP[pcu_idx].receive(PDU_BSSGP:?) -> value rx { setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); mtc.stop; } @@ -1046,7 +1046,7 @@ 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[0].send(pdu_tx); + SGSN_PTP[0].send(pdu_tx); } setverdict(pass); } @@ -1134,7 +1134,7 @@ pdu_tx.pDU_BSSGP_PAGING_PS.paging_Field4 := p4; pdu_rx.pDU_BSSGP_PAGING_PS.paging_Field4 := p4; if (use_sig == false) { - SGSN[sgsn_idx].send(pdu_tx); + SGSN_PTP[sgsn_idx].send(pdu_tx); } else { SGSN_SIG[sgsn_idx].send(pdu_tx); } @@ -1155,7 +1155,7 @@ timer T := 2.0; T.start; alt { - [not use_sig and not test_done] PCU[pcu_idx].receive(exp_rx) { + [not use_sig and not test_done] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(pass); test_done := true; repeat; @@ -1168,16 +1168,16 @@ test_done := true; repeat; } - [use_sig] PCU[pcu_idx].receive(exp_rx) { + [use_sig] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on PTP BVC, expected SIGNALING BVC"); } - [] any from PCU.receive(exp_rx) { + [] any from PCU_PTP.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } [] any from PCU_SIG.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } - [] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { + [] any from PCU_PTP.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging than expected received PTP BVC"); } [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { @@ -1200,13 +1200,13 @@ timer T := 2.0; T.start; alt { - [] any from PCU.receive(exp_rx) { + [] any from PCU_PTP.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } [] any from PCU_SIG.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } - [] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { + [] any from PCU_PTP.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging received on PTP BVC"); } [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { @@ -1354,13 +1354,13 @@ roi := roi & { pcu_idx }; repeat; } -[] PCU[pcu_idx].receive(exp_rx) { +[] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on PTP BVC, expected SIGNALING BVC"); } [] PCU_SIG[pcu_idx].receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging than expected received SIGNALING BVC"); } -[] PCU[pcu_idx].receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { +[] PCU_PTP[pcu_idx].receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging than expected received PTP BVC"); } } @@ -1555,7 +1555,7 @@ pdu_tx.pDU_BSSGP_PAGING_CS.paging_Field4 := p4; pdu_rx.pDU_BSSGP_PAGING_CS.paging_Field4 := p4; if (use_sig == false) { - SGSN[sgsn_idx].send(pdu_tx); + SGSN_PTP[sgsn_idx].send(pdu_tx); } else { SGSN_SIG[sgsn_idx].send(pdu_tx); } @@ -1576,7 +1576,7 @@ timer T := 2.0; T.start; alt { - [not use_sig and not test_done] PCU[pcu_idx].receive(exp_rx) { + [not use_sig and not test_done] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(pass); test_done := true; repeat; @@ -1589,16 +1589,16 @@ test_done := true; repeat; } - [use_sig] PCU[pcu_idx].receive(exp_rx) { + [use_sig] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on PTP BVC, expected SIGNALING BVC"); } - [] any from PCU.receive(exp_rx) { + [] any from PCU_PTP.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } [] any from PCU_SIG.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } - [] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { + [] any from PCU_PTP.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { setverdict(fail, "Different Paging than expected received PTP BVC"); } [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { @@ -1621,13 +1621,13 @@ timer T := 2.0; T.start; alt { - [] any from PCU.receive(exp_rx) { + [] any from PCU_PTP.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } [] any from PCU_SIG.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } - [] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { + [] any from PCU_PTP.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { setverdict(fail, "Different Paging received on PTP BVC"); } [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie8d327b0c6fae0e7963cc5907ab0bc94e97c67f3 Gerrit-Change-Number: 21631 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 Dec 9 14:32:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Introduce global guard timer in test_CT References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21632 ) Change subject: gbproxy: Introduce global guard timer in test_CT ...................................................................... gbproxy: Introduce global guard timer in test_CT We did have a guard time in each ConnHdlr, but not in the MTC (test_CT). However, we do have tests that don't use any ConnHdlr, and those were so far ran without a guard timeout. Fix that. Change-Id: Iee90fc26a151c692d3c6f3eb6ad80f528f8d939f --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 11 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/21632/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index a2055ea..7811a01 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -279,6 +279,7 @@ var boolean g_use_echo := false; var ro_integer g_roi := {}; + timer g_Tguard; }; type component BSSGP_ConnHdlr { @@ -414,7 +415,7 @@ return false; } -function f_init() runs on test_CT { +function f_init(float t_guard := 30.0) runs on test_CT { var ro_integer bvci_unblocked := {}; var BssgpStatusIndication bsi; var integer i; @@ -424,6 +425,9 @@ } g_initialized := true; + g_Tguard.start(t_guard); + activate(as_gTguard(g_Tguard)); + g_sgsn[0].cfg := { nsei := mp_nsconfig_sgsn[0].nsei, sgsn_role := true, @@ -503,6 +507,9 @@ mtc.stop; } } + + /* re-start guard timer after all BVCs are up, so it only counts the actual test case */ + g_Tguard.start(t_guard); } function f_cleanup() runs on test_CT { @@ -574,8 +581,8 @@ sgsn_ct[port_idx] := bvc_ct; } -private altstep as_Tguard() runs on BSSGP_ConnHdlr { - [] g_Tguard.timeout { +private altstep as_gTguard(timer Tguard) { + [] Tguard.timeout { setverdict(fail, "Tguard timeout"); mtc.stop; } @@ -601,7 +608,7 @@ } g_Tguard.start(pars.t_guard); - activate(as_Tguard()); + activate(as_gTguard(g_Tguard)); /* call the user-supplied test case function */ fn.apply(id); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iee90fc26a151c692d3c6f3eb6ad80f528f8d939f Gerrit-Change-Number: 21632 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 Dec 9 14:32:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: properly shutdown at the end of the test References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21633 ) Change subject: gbproxy: properly shutdown at the end of the test ...................................................................... gbproxy: properly shutdown at the end of the test Destroying at least most of the components in an orderly fashion avoids at least most of the race conditions during test shutdown. Change-Id: I2aa4ef8a70c1139893c9621f5a6b6007b221c13d --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 20 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/21633/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 7811a01..9bd0550 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -14,6 +14,7 @@ import from General_Types all; import from Osmocom_Types all; +import from Misc_Helpers all; import from GSM_Types all; import from Native_Functions all; import from NS_Types all; @@ -398,6 +399,15 @@ } +private function f_destroy_gb(inout GbInstance gb) runs on test_CT { + gb.vc_NS.stop; + gb.vc_BSSGP.stop; + + for (var integer i := 0; i < lengthof(gb.cfg.bvc); i := i + 1) { + gb.vc_BSSGP_BVC[i].stop; + } +} + private function f_init_vty() runs on test_CT { map(self:GBPVTY, system:GBPVTY); f_vty_set_prompts(GBPVTY); @@ -513,7 +523,16 @@ } function f_cleanup() runs on test_CT { - self.stop; + var integer i; + + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + f_destroy_gb(g_sgsn[i]); + } + for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) { + f_destroy_gb(g_pcu[i]); + } + + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, pass); } type function void_fn(charstring id) runs on BSSGP_ConnHdlr; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2aa4ef8a70c1139893c9621f5a6b6007b221c13d Gerrit-Change-Number: 21633 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 Dec 9 14:32:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test case for BVC flow control procedure References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21634 ) Change subject: gbproxy: Test case for BVC flow control procedure ...................................................................... gbproxy: Test case for BVC flow control procedure Related: OS#4891 Change-Id: I6daa5848bd59b42f152de783bfdc602d1f2da861 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 71 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/34/21634/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 9bd0550..5e81c13 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -726,6 +726,7 @@ port BSSGP_PT G_SGSN[NUM_SGSN]; }; +/* connect the signaling BVC of each NSE to the G_PCU / G_SGSN ports */ private function f_global_init() runs on GlobalTest_CT { var integer i; for (i := 0; i < lengthof(g_sgsn); i := i+1) { @@ -736,6 +737,17 @@ } } +/* connect the first PTP BVC of each NSE to the G_PCU / G_SGSN ports */ +private function f_global_init_ptp() runs on GlobalTest_CT { + var integer i; + for (i := 0; i < lengthof(g_sgsn); i := i+1) { + connect(self:G_SGSN[i], g_sgsn[i].vc_BSSGP_BVC[0]:GLOBAL); + } + for (i := 0; i < lengthof(g_pcu); i := i+1) { + connect(self:G_PCU[i], g_pcu[i].vc_BSSGP_BVC[0]:GLOBAL); + } +} + /* 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 { @@ -2324,6 +2336,64 @@ f_cleanup(); } +/*********************************************************************** + * FLOW-CONTROL-BVC procedure + ***********************************************************************/ + +private altstep as_g_count_sgsn(integer sgsn_idx, inout ro_integer roi, + template PDU_BSSGP exp_rx, template (omit) PDU_BSSGP tx_reply) +runs on GlobalTest_CT { + [] G_SGSN[sgsn_idx].receive(exp_rx) { + roi := roi & { sgsn_idx }; + if (ispresent(tx_reply)) { + G_SGSN[sgsn_idx].send(tx_reply); + } + } +} +/* Send FC-BVC from simulated PCU; expect each SGSN to receive it; expect PCU to receive ACK */ +testcase TC_fc_bvc() runs on GlobalTest_CT +{ + f_init(); + f_global_init_ptp(); + + var template (value) PDU_BSSGP pdu_tx := t_BVC_FC_BVC(10240, 2000, 1024, 1000, '01'O); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BVC_FC_BVC(10240, 2000, 1024, 1000, '01'O); + var template (omit) PDU_BSSGP ack_tx := + t_BVC_FC_BVC_ACK(pdu_tx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value); + + /* Send a FC-BVC from BSS to gbproxy, expect an ACK in response */ + G_PCU[0].send(pdu_tx); + + /* Activate altsteps: One for each SGSN-side PTP BVC port */ + var ro_default defaults := {}; + for (var integer i := 0; i < lengthof(g_sgsn); i := i+1) { + var default d := activate(as_g_count_sgsn(i, g_roi, pdu_rx, ack_tx)); + defaults := defaults & { d }; + } + + f_sleep(3.0); + + for (var integer i := 0; i < lengthof(defaults); i := i+1) { + deactivate(defaults[i]); + } + + /* check if BVC-block was received on all expected BVC */ + for (var integer i := 0; i < lengthof(g_sgsn); i := i+1) { + if (not ro_integer_contains(g_roi, i)) { + setverdict(fail, "Missing BVC-FLOW-CONTROL on SGSN index ", i); + } + } + + /* Expect ACK on PCU side */ + G_PCU[0].receive(ack_tx); + + setverdict(pass); + + f_cleanup(); +} + + control { execute( TC_BVC_bringup() ); execute( TC_ul_unitdata() ); @@ -2385,6 +2455,7 @@ execute( TC_flush_ll() ); + execute( TC_fc_bvc() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6daa5848bd59b42f152de783bfdc602d1f2da861 Gerrit-Change-Number: 21634 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 Dec 9 14:32:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix syntax error in GBProxy_Tests.fr.cfg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21626 ) Change subject: gbproxy: Fix syntax error in GBProxy_Tests.fr.cfg ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2eb6ffb3d0dba1405692c0e885622936d65cf95a Gerrit-Change-Number: 21626 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 14: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 Dec 9 14:32:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:32:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21627 ) Change subject: Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib9a09fea85110a4f0966c07d911e37234aa06391 Gerrit-Change-Number: 21627 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 09 Dec 2020 14:32: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 Dec 9 14:33:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:33:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21628 ) Change subject: bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I646db452c89842465902b5167c9c86de51df1241 Gerrit-Change-Number: 21628 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 09 Dec 2020 14:33: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 Dec 9 14:33:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:33:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bssgp: Introduce "GLOBAL" port for PTP BVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21629 ) Change subject: bssgp: Introduce "GLOBAL" port for PTP BVC ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib80a6a522dbcb33fd0e7bd31a73ef28fdc636f57 Gerrit-Change-Number: 21629 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 14:33: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 Dec 9 14:33:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:33:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: cosmetic: More comments / section headers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21630 ) Change subject: gbproxy: cosmetic: More comments / section headers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I26162cd37908d60761182edd50c3aa8389486b7c Gerrit-Change-Number: 21630 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 14:33: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 Dec 9 14:34:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:34:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Introduce global guard timer in test_CT In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21632 ) Change subject: gbproxy: Introduce global guard timer in test_CT ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iee90fc26a151c692d3c6f3eb6ad80f528f8d939f Gerrit-Change-Number: 21632 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 14: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 Dec 9 14:34:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:34:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21627 ) Change subject: Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length ...................................................................... Removed Verified+1 by laforge -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib9a09fea85110a4f0966c07d911e37234aa06391 Gerrit-Change-Number: 21627 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 9 14:34:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:34:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix syntax error in GBProxy_Tests.fr.cfg In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21626 ) Change subject: gbproxy: Fix syntax error in GBProxy_Tests.fr.cfg ...................................................................... gbproxy: Fix syntax error in GBProxy_Tests.fr.cfg Follow-up fix to I96e8b6a1a69148f770476e87c920dc256c1d7379 Related: OS#4520 Change-Id: I2eb6ffb3d0dba1405692c0e885622936d65cf95a --- M gbproxy/GBProxy_Tests.fr.cfg 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved; Verified diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index ececed9..043a2db 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -12,7 +12,7 @@ *.GBPVTY.CTRL_HOSTNAME := "127.0.0.1" [MODULE_PARAMETERS] -GBProxy_Tests.mp_enable_load_sharing := true; +GBProxy_Tests.mp_enable_bss_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { handle_sns := false -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2eb6ffb3d0dba1405692c0e885622936d65cf95a Gerrit-Change-Number: 21626 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 Dec 9 14:34:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 14:34:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21627 ) Change subject: Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length ...................................................................... Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length Change-Id: Ib9a09fea85110a4f0966c07d911e37234aa06391 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 2afedcc..ba05f7d 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1255,7 +1255,7 @@ iEI := '1E'O, ext := '1'B, lengthIndicator := { - length1 := 2 + length1 := 1 }, unstructured_Value := tag } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib9a09fea85110a4f0966c07d911e37234aa06391 Gerrit-Change-Number: 21627 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 Dec 9 14:37:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 14:37:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21631 ) Change subject: gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie8d327b0c6fae0e7963cc5907ab0bc94e97c67f3 Gerrit-Change-Number: 21631 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 14:37: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 Dec 9 14:38:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 14:38:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: properly shutdown at the end of the test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21633 ) Change subject: gbproxy: properly shutdown at the end of the test ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2aa4ef8a70c1139893c9621f5a6b6007b221c13d Gerrit-Change-Number: 21633 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 14: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 Wed Dec 9 14:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 9 Dec 2020 14:41:32 +0000 Subject: Change in osmo-bsc[master]: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21607 ) Change subject: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Gerrit-Change-Number: 21607 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 14:41: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 Wed Dec 9 14:59:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 14:59:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test case for BVC flow control procedure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21634 ) Change subject: gbproxy: Test case for BVC flow control procedure ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6daa5848bd59b42f152de783bfdc602d1f2da861 Gerrit-Change-Number: 21634 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 14: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 Wed Dec 9 15:15:25 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 9 Dec 2020 15:15:25 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21597 ) Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... Patch Set 4: (1 comment) DBSSGP in src/gb/common_vty.{c,h} is unused now, we can remove it. https://gerrit.osmocom.org/c/libosmocore/+/21597/4/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/21597/4/src/gb/gprs_bssgp.c at 1356 PS4, Line 1356: LOGP(DLGLOBAL, LOGL_ERROR, "BSSGP has moved from DGPRS to DLGPRS, please update your code\n"); We should also mark it as OSMO_DEPRECATED() in gprs/gprs_bssgp.h -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 09 Dec 2020 15:15: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 Wed Dec 9 15:26:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21631 ) Change subject: gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie8d327b0c6fae0e7963cc5907ab0bc94e97c67f3 Gerrit-Change-Number: 21631 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 15:26: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 Dec 9 15:26:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: properly shutdown at the end of the test In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21633 ) Change subject: gbproxy: properly shutdown at the end of the test ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2aa4ef8a70c1139893c9621f5a6b6007b221c13d Gerrit-Change-Number: 21633 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 15:26: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 Dec 9 15:26:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test case for BVC flow control procedure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21634 ) Change subject: gbproxy: Test case for BVC flow control procedure ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6daa5848bd59b42f152de783bfdc602d1f2da861 Gerrit-Change-Number: 21634 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 15:26: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 Dec 9 15:26:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21628 ) Change subject: bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG ...................................................................... bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG ... to indicate this is about the signaling BVC only. Change-Id: I646db452c89842465902b5167c9c86de51df1241 --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 0aa27e6..ebe9f45 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -302,7 +302,7 @@ } } -private template PDU_BSSGP tr_GLOBAL := ( +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:=?} @@ -336,7 +336,7 @@ } /* Messages with BVCI = 0 (Signaling) in BVCI field of NS */ - [] BSCP.receive(f_BnsUdInd(tr_GLOBAL, 0)) -> value udi { + [] BSCP.receive(f_BnsUdInd(tr_GLOBAL_SIG, 0)) -> value udi { GLOBAL.send(udi.bssgp); } [] BSCP.receive(f_BnsUdInd(tr_RIM, 0)) -> value udi { @@ -393,7 +393,7 @@ BSCP.send(udr); } - [] GLOBAL.receive(tr_GLOBAL) -> value bssgp { + [] GLOBAL.receive(tr_GLOBAL_SIG) -> value bssgp { BSCP.send(f_BnsUdReq(bssgp, 0, 0)); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I646db452c89842465902b5167c9c86de51df1241 Gerrit-Change-Number: 21628 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 Dec 9 15:26:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bssgp: Introduce "GLOBAL" port for PTP BVC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21629 ) Change subject: bssgp: Introduce "GLOBAL" port for PTP BVC ...................................................................... bssgp: Introduce "GLOBAL" port for PTP BVC There are some messages/procedures on a PTP BVC which are not related to one specific TLLI, but affect the whole PTP BVC. First and foremost that is the FLOW-CONTROL-BVC. Let's check if the user is interested in handling those internally (by connecting to the GLOBAL port). If not, fall back to acknowledging all incoing FC-BVC and ignoring all ACKs. Related: OS#4891 Change-Id: Ib80a6a522dbcb33fd0e7bd31a73ef28fdc636f57 --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 24 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index ebe9f45..633eee2 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -698,7 +698,10 @@ /* port to a management instance */ port BSSGP_BVC_MGMT_SP_PT MGMT; - /* BSSGP-User SAP towards the user (Client) */ + /* per-BVC global port for e.g. BVC Flow Control */ + port BSSGP_SP_PT GLOBAL; + + /* BSSGP-User SAP towards the user (per-TLLI, Client) */ port BSSGP_SP_PT BSSGP_SP; port BSSGP_SP_PT BSSGP_SP_SIG; port BSSGP_PROC_PT BSSGP_PROC; @@ -1119,16 +1122,24 @@ [] as_ptp_handle_inbound_reset(); - /* simply acknowledge all per-BVC Flow Control Messages */ [g_sgsn_role] BVC.receive(tr_ptp_BnsUdInd(tr_BVC_FC_BVC, g_cfg.bvci)) -> value udi { - var OCT1 tag := udi.bssgp.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; - BVC.send(ts_ptp_BnsUdReq(t_BVC_FC_BVC_ACK(tag), g_cfg.bvci, g_bvc_lsp)); + if (GLOBAL.checkstate("Connected")) { + GLOBAL.send(udi.bssgp); + } else { + /* simply acknowledge all per-BVC Flow Control Messages */ + var OCT1 tag := udi.bssgp.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; + BVC.send(ts_ptp_BnsUdReq(t_BVC_FC_BVC_ACK(tag), g_cfg.bvci, g_bvc_lsp)); + } } -/* - [g_sgsn_role] BVC.receive(tr_ptp_BnsUdInd(t_BVC_FC_MS, g_cfg.bvci)) { - BVC.send(ts_ptp_BnsUdReq(t_BVC_FC_MS_ACK, g_cfg.bvci)); + + [not g_sgsn_role] BVC.receive(tr_ptp_BnsUdInd(t_BVC_FC_BVC_ACK(?), g_cfg.bvci)) -> value udi { + if (GLOBAL.checkstate("Connected")) { + GLOBAL.send(udi.bssgp); + } else { + /* ignore any incoming flow control ACK */ + } } -*/ + /* 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); @@ -1221,6 +1232,11 @@ BVC.send(ts_ptp_BnsUdReq(ts_BSSGP_DL_UD(tlli, llc_enc), g_cfg.bvci, oct2int(tlli))); } + /* Testcase sends us BSSGP on global port */ + [] GLOBAL.receive(PDU_BSSGP:?)-> value bs_pdu sender vc_conn { + BVC.send(ts_ptp_BnsUdReq(bs_pdu, g_cfg.bvci, g_bvc_lsp)); + } + [] MGMT.receive(BssgpBlockRequest:?) -> value bbr { f_ptp_sendBlock(bbr.cause); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib80a6a522dbcb33fd0e7bd31a73ef28fdc636f57 Gerrit-Change-Number: 21629 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 Dec 9 15:26:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: cosmetic: More comments / section headers In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21630 ) Change subject: gbproxy: cosmetic: More comments / section headers ...................................................................... gbproxy: cosmetic: More comments / section headers Change-Id: I26162cd37908d60761182edd50c3aa8389486b7c --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 24 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 d6c8bb1..0145c97 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1928,6 +1928,10 @@ f_cleanup(); } +/*********************************************************************** + * FLUSH-LL procedure + ***********************************************************************/ + private function f_TC_flush_ll(charstring id) runs on BSSGP_ConnHdlr { var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci; var integer i; @@ -1958,6 +1962,10 @@ f_cleanup(); } +/*********************************************************************** + * SGSN-INVOKE-TRACE procedure + ***********************************************************************/ + private altstep as_bssgp_g_pcu_count(integer pcu_idx, template (present) PDU_BSSGP exp_rx, inout ro_integer roi) runs on GlobalTest_CT { [] G_PCU[pcu_idx].receive(exp_rx) from g_pcu[pcu_idx].vc_BSSGP { @@ -1998,6 +2006,10 @@ f_cleanup(); } +/*********************************************************************** + * LLC-DISCARDED procedure + ***********************************************************************/ + private function f_TC_llc_discarded(charstring id) runs on BSSGP_ConnHdlr { var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci; @@ -2022,6 +2034,10 @@ f_cleanup(); } +/*********************************************************************** + * OVERLOAD procedure + ***********************************************************************/ + /* Send an OVERLOAD from SGSN side and expect it to show up on each PCU (SIG BVC) */ testcase TC_overload() runs on GlobalTest_CT { @@ -2051,6 +2067,10 @@ f_cleanup(); } +/*********************************************************************** + * BVC-BLOCK / BVC-UNBLOCK procedure + ***********************************************************************/ + private function f_block_ptp_bvc_from_pcu(integer pcu_idx, integer bvc_idx) runs on test_CT { var BSSGP_BVC_CT bvc_ct := g_pcu[pcu_idx].vc_BSSGP_BVC[bvc_idx]; @@ -2105,6 +2125,10 @@ f_cleanup(); } +/*********************************************************************** + * BVC-RESET procedure + ***********************************************************************/ + private altstep as_ignore_status(BSSGP_BVC_MGMT_PT pt) { [] pt.receive(BssgpStatusIndication:?) { repeat; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I26162cd37908d60761182edd50c3aa8389486b7c Gerrit-Change-Number: 21630 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 Dec 9 15:26:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21631 ) Change subject: gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP ...................................................................... gbproxy: Rename PCU port to PCU_PTP; SGSN port to SGSN_PTP This way it's more obvious that it refers to the PTP BVC, like we already use PCU_SIG and SGSN_SIG for the signaling BVCs. Change-Id: Ie8d327b0c6fae0e7963cc5907ab0bc94e97c67f3 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 31 insertions(+), 31 deletions(-) Approvals: Jenkins Builder: Verified pespin: 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 0145c97..a2055ea 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -283,7 +283,7 @@ type component BSSGP_ConnHdlr { /* array of per-BVC ports on the PCU side */ - port BSSGP_PT PCU[NUM_PCU]; + port BSSGP_PT PCU_PTP[NUM_PCU]; port BSSGP_PT PCU_SIG[NUM_PCU]; port BSSGP_PROC_PT PCU_PROC[NUM_PCU]; /* component reference to the component to which we're currently connected */ @@ -292,7 +292,7 @@ var BssgpBvcConfig pcu_bvc_cfg[NUM_PCU]; /* array of per-BVC ports on the SGSN side */ - port BSSGP_PT SGSN[NUM_SGSN]; + port BSSGP_PT SGSN_PTP[NUM_SGSN]; port BSSGP_PT SGSN_SIG[NUM_SGSN]; port BSSGP_PROC_PT SGSN_PROC[NUM_SGSN]; /* component reference to the component to which we're currently connected */ @@ -541,15 +541,15 @@ private function f_connect_to_pcu_bvc(integer port_idx, integer nse_idx, integer bvc_idx) runs on BSSGP_ConnHdlr { var BSSGP_BVC_CT bvc_ct := g_pars.pcu[nse_idx].vc_BSSGP_BVC[bvc_idx] - if (PCU[port_idx].checkstate("Connected")) { + if (PCU_PTP[port_idx].checkstate("Connected")) { /* unregister + disconnect from old BVC */ f_client_unregister(g_pars.imsi, PCU_PROC[port_idx]); - disconnect(self:PCU[port_idx], pcu_ct[port_idx]:BSSGP_SP); + disconnect(self:PCU_PTP[port_idx], pcu_ct[port_idx]:BSSGP_SP); disconnect(self:PCU_SIG[port_idx], pcu_ct[port_idx]:BSSGP_SP_SIG); disconnect(self:PCU_PROC[port_idx], pcu_ct[port_idx]:BSSGP_PROC); } /* connect to new BVC and register us */ - connect(self:PCU[port_idx], bvc_ct:BSSGP_SP); + connect(self:PCU_PTP[port_idx], bvc_ct:BSSGP_SP); connect(self:PCU_SIG[port_idx], bvc_ct:BSSGP_SP_SIG); connect(self:PCU_PROC[port_idx], bvc_ct:BSSGP_PROC); f_client_register(g_pars.imsi, g_pars.tlli, PCU_PROC[port_idx]); @@ -559,15 +559,15 @@ /* Connect the SGSN-side per-BVC ports (SGSN/SGSN_SIG/SGSN_PROC) array slot 'port_idx' to specified per-BVC component */ private function f_connect_to_sgsn_bvc(integer port_idx, BSSGP_BVC_CT bvc_ct) runs on BSSGP_ConnHdlr { - if (SGSN[port_idx].checkstate("Connected")) { + if (SGSN_PTP[port_idx].checkstate("Connected")) { /* unregister + disconnect from old BVC */ f_client_unregister(g_pars.imsi, SGSN_PROC[port_idx]); - disconnect(self:SGSN[port_idx], sgsn_ct[port_idx]:BSSGP_SP); + disconnect(self:SGSN_PTP[port_idx], sgsn_ct[port_idx]:BSSGP_SP); disconnect(self:SGSN_SIG[port_idx], sgsn_ct[port_idx]:BSSGP_SP_SIG); disconnect(self:SGSN_PROC[port_idx], sgsn_ct[port_idx]:BSSGP_PROC); } /* connect to new BVC and register us */ - connect(self:SGSN[port_idx], bvc_ct:BSSGP_SP); + connect(self:SGSN_PTP[port_idx], bvc_ct:BSSGP_SP); connect(self:SGSN_SIG[port_idx], bvc_ct:BSSGP_SP_SIG); connect(self:SGSN_PROC[port_idx], bvc_ct:BSSGP_PROC); f_client_register(g_pars.imsi, g_pars.tlli, SGSN_PROC[port_idx]); @@ -630,7 +630,7 @@ if (use_sig) { PCU_SIG[pcu_idx].send(tx); } else { - PCU[pcu_idx].send(tx); + PCU_PTP[pcu_idx].send(tx); } T.start; @@ -638,10 +638,10 @@ [use_sig] SGSN_SIG[sgsn_idx].receive(exp_rx) { setverdict(pass); } - [not use_sig] SGSN[sgsn_idx].receive(exp_rx) { + [not use_sig] SGSN_PTP[sgsn_idx].receive(exp_rx) { setverdict(pass); } - [] SGSN[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { + [] SGSN_PTP[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); mtc.stop; } @@ -665,7 +665,7 @@ if (use_sig) { SGSN_SIG[sgsn_idx].send(tx); } else { - SGSN[sgsn_idx].send(tx); + SGSN_PTP[sgsn_idx].send(tx); } T.start; @@ -673,10 +673,10 @@ [use_sig] PCU_SIG[pcu_idx].receive(exp_rx) { setverdict(pass); } - [not use_sig] PCU[pcu_idx].receive(exp_rx) { + [not use_sig] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(pass); } - [] PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { + [] PCU_PTP[pcu_idx].receive(PDU_BSSGP:?) -> value rx { setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); mtc.stop; } @@ -1046,7 +1046,7 @@ 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[0].send(pdu_tx); + SGSN_PTP[0].send(pdu_tx); } setverdict(pass); } @@ -1134,7 +1134,7 @@ pdu_tx.pDU_BSSGP_PAGING_PS.paging_Field4 := p4; pdu_rx.pDU_BSSGP_PAGING_PS.paging_Field4 := p4; if (use_sig == false) { - SGSN[sgsn_idx].send(pdu_tx); + SGSN_PTP[sgsn_idx].send(pdu_tx); } else { SGSN_SIG[sgsn_idx].send(pdu_tx); } @@ -1155,7 +1155,7 @@ timer T := 2.0; T.start; alt { - [not use_sig and not test_done] PCU[pcu_idx].receive(exp_rx) { + [not use_sig and not test_done] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(pass); test_done := true; repeat; @@ -1168,16 +1168,16 @@ test_done := true; repeat; } - [use_sig] PCU[pcu_idx].receive(exp_rx) { + [use_sig] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on PTP BVC, expected SIGNALING BVC"); } - [] any from PCU.receive(exp_rx) { + [] any from PCU_PTP.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } [] any from PCU_SIG.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } - [] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { + [] any from PCU_PTP.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging than expected received PTP BVC"); } [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { @@ -1200,13 +1200,13 @@ timer T := 2.0; T.start; alt { - [] any from PCU.receive(exp_rx) { + [] any from PCU_PTP.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } [] any from PCU_SIG.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } - [] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { + [] any from PCU_PTP.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging received on PTP BVC"); } [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { @@ -1354,13 +1354,13 @@ roi := roi & { pcu_idx }; repeat; } -[] PCU[pcu_idx].receive(exp_rx) { +[] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on PTP BVC, expected SIGNALING BVC"); } [] PCU_SIG[pcu_idx].receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging than expected received SIGNALING BVC"); } -[] PCU[pcu_idx].receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { +[] PCU_PTP[pcu_idx].receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) { setverdict(fail, "Different Paging than expected received PTP BVC"); } } @@ -1555,7 +1555,7 @@ pdu_tx.pDU_BSSGP_PAGING_CS.paging_Field4 := p4; pdu_rx.pDU_BSSGP_PAGING_CS.paging_Field4 := p4; if (use_sig == false) { - SGSN[sgsn_idx].send(pdu_tx); + SGSN_PTP[sgsn_idx].send(pdu_tx); } else { SGSN_SIG[sgsn_idx].send(pdu_tx); } @@ -1576,7 +1576,7 @@ timer T := 2.0; T.start; alt { - [not use_sig and not test_done] PCU[pcu_idx].receive(exp_rx) { + [not use_sig and not test_done] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(pass); test_done := true; repeat; @@ -1589,16 +1589,16 @@ test_done := true; repeat; } - [use_sig] PCU[pcu_idx].receive(exp_rx) { + [use_sig] PCU_PTP[pcu_idx].receive(exp_rx) { setverdict(fail, "Received paging on PTP BVC, expected SIGNALING BVC"); } - [] any from PCU.receive(exp_rx) { + [] any from PCU_PTP.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } [] any from PCU_SIG.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } - [] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { + [] any from PCU_PTP.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { setverdict(fail, "Different Paging than expected received PTP BVC"); } [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { @@ -1621,13 +1621,13 @@ timer T := 2.0; T.start; alt { - [] any from PCU.receive(exp_rx) { + [] any from PCU_PTP.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } [] any from PCU_SIG.receive(exp_rx) { setverdict(fail, "Paging received on unexpected BVC"); } - [] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { + [] any from PCU_PTP.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { setverdict(fail, "Different Paging received on PTP BVC"); } [] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie8d327b0c6fae0e7963cc5907ab0bc94e97c67f3 Gerrit-Change-Number: 21631 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 Wed Dec 9 15:26:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Introduce global guard timer in test_CT In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21632 ) Change subject: gbproxy: Introduce global guard timer in test_CT ...................................................................... gbproxy: Introduce global guard timer in test_CT We did have a guard time in each ConnHdlr, but not in the MTC (test_CT). However, we do have tests that don't use any ConnHdlr, and those were so far ran without a guard timeout. Fix that. Change-Id: Iee90fc26a151c692d3c6f3eb6ad80f528f8d939f --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 11 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 a2055ea..7811a01 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -279,6 +279,7 @@ var boolean g_use_echo := false; var ro_integer g_roi := {}; + timer g_Tguard; }; type component BSSGP_ConnHdlr { @@ -414,7 +415,7 @@ return false; } -function f_init() runs on test_CT { +function f_init(float t_guard := 30.0) runs on test_CT { var ro_integer bvci_unblocked := {}; var BssgpStatusIndication bsi; var integer i; @@ -424,6 +425,9 @@ } g_initialized := true; + g_Tguard.start(t_guard); + activate(as_gTguard(g_Tguard)); + g_sgsn[0].cfg := { nsei := mp_nsconfig_sgsn[0].nsei, sgsn_role := true, @@ -503,6 +507,9 @@ mtc.stop; } } + + /* re-start guard timer after all BVCs are up, so it only counts the actual test case */ + g_Tguard.start(t_guard); } function f_cleanup() runs on test_CT { @@ -574,8 +581,8 @@ sgsn_ct[port_idx] := bvc_ct; } -private altstep as_Tguard() runs on BSSGP_ConnHdlr { - [] g_Tguard.timeout { +private altstep as_gTguard(timer Tguard) { + [] Tguard.timeout { setverdict(fail, "Tguard timeout"); mtc.stop; } @@ -601,7 +608,7 @@ } g_Tguard.start(pars.t_guard); - activate(as_Tguard()); + activate(as_gTguard(g_Tguard)); /* call the user-supplied test case function */ fn.apply(id); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iee90fc26a151c692d3c6f3eb6ad80f528f8d939f Gerrit-Change-Number: 21632 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 Dec 9 15:26:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: properly shutdown at the end of the test In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21633 ) Change subject: gbproxy: properly shutdown at the end of the test ...................................................................... gbproxy: properly shutdown at the end of the test Destroying at least most of the components in an orderly fashion avoids at least most of the race conditions during test shutdown. Change-Id: I2aa4ef8a70c1139893c9621f5a6b6007b221c13d --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 20 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/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 7811a01..9bd0550 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -14,6 +14,7 @@ import from General_Types all; import from Osmocom_Types all; +import from Misc_Helpers all; import from GSM_Types all; import from Native_Functions all; import from NS_Types all; @@ -398,6 +399,15 @@ } +private function f_destroy_gb(inout GbInstance gb) runs on test_CT { + gb.vc_NS.stop; + gb.vc_BSSGP.stop; + + for (var integer i := 0; i < lengthof(gb.cfg.bvc); i := i + 1) { + gb.vc_BSSGP_BVC[i].stop; + } +} + private function f_init_vty() runs on test_CT { map(self:GBPVTY, system:GBPVTY); f_vty_set_prompts(GBPVTY); @@ -513,7 +523,16 @@ } function f_cleanup() runs on test_CT { - self.stop; + var integer i; + + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + f_destroy_gb(g_sgsn[i]); + } + for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) { + f_destroy_gb(g_pcu[i]); + } + + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, pass); } type function void_fn(charstring id) runs on BSSGP_ConnHdlr; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2aa4ef8a70c1139893c9621f5a6b6007b221c13d Gerrit-Change-Number: 21633 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 Wed Dec 9 15:26:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:26:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test case for BVC flow control procedure In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21634 ) Change subject: gbproxy: Test case for BVC flow control procedure ...................................................................... gbproxy: Test case for BVC flow control procedure Related: OS#4891 Change-Id: I6daa5848bd59b42f152de783bfdc602d1f2da861 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 71 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/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 9bd0550..5e81c13 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -726,6 +726,7 @@ port BSSGP_PT G_SGSN[NUM_SGSN]; }; +/* connect the signaling BVC of each NSE to the G_PCU / G_SGSN ports */ private function f_global_init() runs on GlobalTest_CT { var integer i; for (i := 0; i < lengthof(g_sgsn); i := i+1) { @@ -736,6 +737,17 @@ } } +/* connect the first PTP BVC of each NSE to the G_PCU / G_SGSN ports */ +private function f_global_init_ptp() runs on GlobalTest_CT { + var integer i; + for (i := 0; i < lengthof(g_sgsn); i := i+1) { + connect(self:G_SGSN[i], g_sgsn[i].vc_BSSGP_BVC[0]:GLOBAL); + } + for (i := 0; i < lengthof(g_pcu); i := i+1) { + connect(self:G_PCU[i], g_pcu[i].vc_BSSGP_BVC[0]:GLOBAL); + } +} + /* 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 { @@ -2324,6 +2336,64 @@ f_cleanup(); } +/*********************************************************************** + * FLOW-CONTROL-BVC procedure + ***********************************************************************/ + +private altstep as_g_count_sgsn(integer sgsn_idx, inout ro_integer roi, + template PDU_BSSGP exp_rx, template (omit) PDU_BSSGP tx_reply) +runs on GlobalTest_CT { + [] G_SGSN[sgsn_idx].receive(exp_rx) { + roi := roi & { sgsn_idx }; + if (ispresent(tx_reply)) { + G_SGSN[sgsn_idx].send(tx_reply); + } + } +} +/* Send FC-BVC from simulated PCU; expect each SGSN to receive it; expect PCU to receive ACK */ +testcase TC_fc_bvc() runs on GlobalTest_CT +{ + f_init(); + f_global_init_ptp(); + + var template (value) PDU_BSSGP pdu_tx := t_BVC_FC_BVC(10240, 2000, 1024, 1000, '01'O); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BVC_FC_BVC(10240, 2000, 1024, 1000, '01'O); + var template (omit) PDU_BSSGP ack_tx := + t_BVC_FC_BVC_ACK(pdu_tx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value); + + /* Send a FC-BVC from BSS to gbproxy, expect an ACK in response */ + G_PCU[0].send(pdu_tx); + + /* Activate altsteps: One for each SGSN-side PTP BVC port */ + var ro_default defaults := {}; + for (var integer i := 0; i < lengthof(g_sgsn); i := i+1) { + var default d := activate(as_g_count_sgsn(i, g_roi, pdu_rx, ack_tx)); + defaults := defaults & { d }; + } + + f_sleep(3.0); + + for (var integer i := 0; i < lengthof(defaults); i := i+1) { + deactivate(defaults[i]); + } + + /* check if BVC-block was received on all expected BVC */ + for (var integer i := 0; i < lengthof(g_sgsn); i := i+1) { + if (not ro_integer_contains(g_roi, i)) { + setverdict(fail, "Missing BVC-FLOW-CONTROL on SGSN index ", i); + } + } + + /* Expect ACK on PCU side */ + G_PCU[0].receive(ack_tx); + + setverdict(pass); + + f_cleanup(); +} + + control { execute( TC_BVC_bringup() ); execute( TC_ul_unitdata() ); @@ -2385,6 +2455,7 @@ execute( TC_flush_ll() ); + execute( TC_fc_bvc() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6daa5848bd59b42f152de783bfdc602d1f2da861 Gerrit-Change-Number: 21634 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 Wed Dec 9 15:51:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 15:51:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21635 ) Change subject: gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) ...................................................................... gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) Change-Id: Ie087ee8e8adfb963d21f35c60628214d4297250d Closes: SYS#5210 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 134 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/35/21635/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 5e81c13..655e396 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2393,6 +2393,37 @@ f_cleanup(); } +/*********************************************************************** + * FLOW-CONTROL-MS procedure + ***********************************************************************/ + +private function f_TC_fc_ms(charstring id) runs on BSSGP_ConnHdlr { + var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci; + + var template (value) PDU_BSSGP fc_tx := ts_BVC_FC_MS(g_pars.tlli, 100, 200, '12'O); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP fc_rx := tr_BVC_FC_MS(g_pars.tlli, 100, 200, '12'O); + var template (value) PDU_BSSGP ack_tx := ts_BVC_FC_MS_ACK(g_pars.tlli, '12'O); + + f_pcu2sgsn(fc_tx, fc_rx, use_sig := false); + f_sgsn2pcu(ack_tx, ack_tx, use_sig := false); + + setverdict(pass); +} +/* 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; + /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ + + f_cleanup(); +} + + control { execute( TC_BVC_bringup() ); @@ -2456,6 +2487,7 @@ execute( TC_flush_ll() ); execute( TC_fc_bvc() ); + execute( TC_fc_ms() ); } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index ba05f7d..c532772 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1262,6 +1262,108 @@ } } + 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 := { + bssgpPduType := '28'O, + tLLI := ts_BSSGP_TLLI(tlli), + tag := { + iEI := '1E'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + unstructured_Value := tag + }, + mS_Bucket_Size := { + iEI := '12'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + bmax := f_oct_or_wc(bmax, 2) + }, + bucket_Leak_Rate := { + iEI := '03'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + r_Value := f_oct_or_wc(bucket_leak_rate, 2) + }, + bucket_Full_Ratio := omit, + flow_Control_Granularity := omit + } + } + template (present) PDU_BSSGP tr_BVC_FC_MS(template (present) GprsTlli tlli := ?, + template (present) uint16_t bmax := ?, + template (present) uint16_t bucket_leak_rate := ?, + template (present) OCT1 tag := ?) := { + pDU_BSSGP_FLOW_CONTROL_MS := { + bssgpPduType := '28'O, + tLLI := ts_BSSGP_TLLI(tlli), + tag := { + iEI := '1E'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + unstructured_Value := tag + }, + mS_Bucket_Size := { + iEI := '12'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + bmax := f_oct_or_wc(bmax, 2) + }, + bucket_Leak_Rate := { + iEI := '03'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + r_Value := f_oct_or_wc(bucket_leak_rate, 2) + }, + bucket_Full_Ratio := *, + flow_Control_Granularity := * + } + } + + template (value) PDU_BSSGP ts_BVC_FC_MS_ACK(template (value) GprsTlli tlli, + template (value) OCT1 tag) := { + + pDU_BSSGP_FLOW_CONTROL_MS_ACK := { + bssgpPduType := '29'O, + tLLI := ts_BSSGP_TLLI(tlli), + tag := { + iEI := '1E'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + unstructured_Value := tag + } + } + } + template (present) PDU_BSSGP tr_BVC_FC_MS_ACK(template (present) GprsTlli tlli, + template (present) OCT1 tag := ?) := { + + pDU_BSSGP_FLOW_CONTROL_MS_ACK := { + bssgpPduType := '29'O, + tLLI := tr_BSSGP_TLLI(tlli), + tag := { + iEI := '1E'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + unstructured_Value := tag + } + } + } + template PDU_BSSGP ts_BSSGP_STATUS(template BssgpBvci bvci, template BssgpCause cause, PDU_BSSGP pdu) := { pDU_BSSGP_STATUS := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie087ee8e8adfb963d21f35c60628214d4297250d Gerrit-Change-Number: 21635 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 Dec 9 16:09:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:09:42 +0000 Subject: Change in docker-playground[master]: centos8-repo-install-test: Upstream requires 'powertools' not 'PowerT... References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21636 ) Change subject: centos8-repo-install-test: Upstream requires 'powertools' not 'PowerTools' ...................................................................... centos8-repo-install-test: Upstream requires 'powertools' not 'PowerTools' I just confirmed: With a centos:centos8 base image of a few weeks ago, "PowerTools" works. With the current docker base image for centos:centos8, only lowercase "powertools" works, uppercase is no longer accepted. https://access.redhat.com/discussions/5417621 https://www.reddit.com/r/CentOS/comments/jd7x3d/how_to_enable_powertools_in_centos_stream/ https://git.centos.org/rpms/centos-repos/blob/c8/f/SOURCES/CentOS-Stream-PowerTools.repo#_11 Change-Id: I0db6c82576c5aae94531b7ec2fd98429cab702de Closes: SYS#5244 --- M centos8-repo-install-test/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/36/21636/1 diff --git a/centos8-repo-install-test/Dockerfile b/centos8-repo-install-test/Dockerfile index 5cbddb0..27d7a59 100644 --- a/centos8-repo-install-test/Dockerfile +++ b/centos8-repo-install-test/Dockerfile @@ -9,4 +9,4 @@ dnf-utils # Make additional development libraries available -RUN yum config-manager --set-enabled PowerTools +RUN yum config-manager --set-enabled powertools -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0db6c82576c5aae94531b7ec2fd98429cab702de Gerrit-Change-Number: 21636 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 Dec 9 16:10:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:10:22 +0000 Subject: Change in docker-playground[master]: centos8-repo-install-test: Upstream requires 'powertools' not 'PowerT... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21636 ) Change subject: centos8-repo-install-test: Upstream requires 'powertools' not 'PowerTools' ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0db6c82576c5aae94531b7ec2fd98429cab702de Gerrit-Change-Number: 21636 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 16: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 Dec 9 16:10:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:10:33 +0000 Subject: Change in docker-playground[master]: centos8-repo-install-test: Upstream requires 'powertools' not 'PowerT... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21636 ) Change subject: centos8-repo-install-test: Upstream requires 'powertools' not 'PowerTools' ...................................................................... centos8-repo-install-test: Upstream requires 'powertools' not 'PowerTools' I just confirmed: With a centos:centos8 base image of a few weeks ago, "PowerTools" works. With the current docker base image for centos:centos8, only lowercase "powertools" works, uppercase is no longer accepted. https://access.redhat.com/discussions/5417621 https://www.reddit.com/r/CentOS/comments/jd7x3d/how_to_enable_powertools_in_centos_stream/ https://git.centos.org/rpms/centos-repos/blob/c8/f/SOURCES/CentOS-Stream-PowerTools.repo#_11 Change-Id: I0db6c82576c5aae94531b7ec2fd98429cab702de Closes: SYS#5244 --- M centos8-repo-install-test/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/centos8-repo-install-test/Dockerfile b/centos8-repo-install-test/Dockerfile index 5cbddb0..27d7a59 100644 --- a/centos8-repo-install-test/Dockerfile +++ b/centos8-repo-install-test/Dockerfile @@ -9,4 +9,4 @@ dnf-utils # Make additional development libraries available -RUN yum config-manager --set-enabled PowerTools +RUN yum config-manager --set-enabled powertools -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0db6c82576c5aae94531b7ec2fd98429cab702de Gerrit-Change-Number: 21636 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 Dec 9 16:12:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:12:25 +0000 Subject: Change in osmo-bsc[master]: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21607 ) Change subject: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED ...................................................................... Patch Set 2: Code-Review+1 Wouldn't it make sense to handle this inside the macro/inline-functions? If you check inside nm_bb_transc_fsm_state_chg(), then you don't have to change the callers, and it would be a genric solution. In fact, we could even consider introducing an osmo_fsm flag that would make such transitions quiet for certain fsm "classes" that set the flag. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Gerrit-Change-Number: 21607 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 16:12: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 Dec 9 16:13:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:13:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: correct dynamic calculation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21618 ) Change subject: gprs_ns2_sns: correct dynamic calculation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I58d706c6fffb4237b90b37cade4dc00c6aba6ac9 Gerrit-Change-Number: 21618 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 16: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 Dec 9 16:13:34 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 9 Dec 2020 16:13:34 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21598 ) Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... Patch Set 6: Code-Review-1 (6 comments) https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/bssgp_bvc_fsm.c File src/gb/bssgp_bvc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/bssgp_bvc_fsm.c at 4 PS6, Line 4: /* FIXME: This should probably be moved to libosmogb? */ Isn't it? Also license seems to be missing here https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/bssgp_bvc_fsm.c at 238 PS6, Line 238: bfp->features.negotiated = bfp->features.advertised & features_rx; missing bfp->features.received = features_rx; https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/bssgp_bvc_fsm.c at 650 PS6, Line 650: OSMO_ASSERT(bvci >= 2); OSMO_ASSERT(ra_id) as well https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/gprs_bssgp2.c File src/gb/gprs_bssgp2.c: https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/gprs_bssgp2.c at 3 PS6, Line 3: License? https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/gprs_bssgp2.c at 11 PS6, Line 11: //#include Remove https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/gprs_bssgp2.c at 71 PS6, Line 71: BVC-BLOCK *BLOCK-ACK -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 16:13:34 +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 Dec 9 16:13:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:13:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: correct dynamic calculation In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21618 ) Change subject: gprs_ns2_sns: correct dynamic calculation ...................................................................... gprs_ns2_sns: correct dynamic calculation The wrong argument was used to multiply by 4. However it was still compliant because the SNS code would always supports 16 NSVCs. Use the correct multiplier. Fixes: ttnc3 pcu sns test cases Fixes: 42ad54915285 ("gprs_ns2_sns: dynamic calculate the maximum NS-VCs") Change-Id: I58d706c6fffb4237b90b37cade4dc00c6aba6ac9 --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: 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 d13d920..5d18d04 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1320,7 +1320,7 @@ gss->num_ip4_local = count; gss->num_max_ip4_remote = 4; - gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip4_remote * 4, 8); + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip4_remote * gss->num_ip4_local, 8); break; case IPv6: /* IPv6 */ @@ -1359,7 +1359,7 @@ } gss->num_ip6_local = count; gss->num_max_ip6_remote = 4; - gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * 4, 8); + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * gss->num_ip6_local, 8); break; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I58d706c6fffb4237b90b37cade4dc00c6aba6ac9 Gerrit-Change-Number: 21618 Gerrit-PatchSet: 2 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 Wed Dec 9 16:14:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 16:14:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21635 ) Change subject: gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie087ee8e8adfb963d21f35c60628214d4297250d Gerrit-Change-Number: 21635 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 16:14: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 Dec 9 16:16:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:16:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move allocation of the SNS fsm into create_nse In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21571 ) Change subject: gprs_ns2: move allocation of the SNS fsm into create_nse ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 Gerrit-Change-Number: 21571 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 16:16: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 Dec 9 16:17:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:17:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add member name to bind In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21485 ) Change subject: gprs_ns2: add member name to bind ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21485/4/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/21485/4/src/gb/gprs_ns2_internal.h at 185 PS4, Line 185: char *name; const? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Gerrit-Change-Number: 21485 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 16:17: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 Wed Dec 9 16:17:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:17:54 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework gprs_ns2_fr_connect*() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21486 ) Change subject: gprs_ns2: rework gprs_ns2_fr_connect*() ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 Gerrit-Change-Number: 21486 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 16:17: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 Dec 9 16:20:45 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 9 Dec 2020 16:20:45 +0000 Subject: Change in libosmocore[master]: bssgp2: Encoding + Decoding functions for BVC and MS flow control In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21610 ) Change subject: bssgp2: Encoding + Decoding functions for BVC and MS flow control ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21610/2/src/gb/gprs_bssgp2.c File src/gb/gprs_bssgp2.c: https://gerrit.osmocom.org/c/libosmocore/+/21610/2/src/gb/gprs_bssgp2.c at 421 PS2, Line 421: bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC_ACK; FLOW_CONTROL_MS_ACK -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9c89bb1c03550930c07aad7ff8f67129ee7a6320 Gerrit-Change-Number: 21610 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 16:20: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 Wed Dec 9 16:24:49 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 9 Dec 2020 16:24:49 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21611 ) Change subject: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie59be6761177c43456898be9148727f15861a622 Gerrit-Change-Number: 21611 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 16: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 Wed Dec 9 16:33:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:33:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21572 ) Change subject: gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I909443b540dbf75146297f1d7f94940690be6c0d Gerrit-Change-Number: 21572 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 16:33: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 Dec 9 16:34:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 9 Dec 2020 16:34:18 +0000 Subject: Change in osmo-bsc[master]: gsm_lchan_name: assert on NULL lchan References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21637 ) Change subject: gsm_lchan_name: assert on NULL lchan ...................................................................... gsm_lchan_name: assert on NULL lchan Steve Langasek submitted some patches against downstream osmo-bsc 1.3.0 because some possible null derefences were detected by the compiler on Ubuntu s390x. Code has eveolved since then and patch doesn't apply directly anymore, since related code changed (we now use osmo_count in bsc_subscr_get). The compiled allegedly claimed some null dereference in gsm_lchan_name. In general code using that function seems to be doing checks for existing lchan before calling it, or assuming the lchan pointer is not null, so I couldn't find any major issue. However, let's add a OSMO_ASSERT to make sure we can easily identify the issue if an issue ever happens there, since the gsm_lchan_name should clearly only be called on non null pointers. Change-Id: If4d12cb1d95ee2a89244bb8f27df839871667387 --- M include/osmocom/bsc/gsm_data.h 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/37/21637/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 6904266..584c0e6 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -937,6 +937,7 @@ static inline char *gsm_lchan_name(const struct gsm_lchan *lchan) { + OSMO_ASSERT(lchan); return lchan->name; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If4d12cb1d95ee2a89244bb8f27df839871667387 Gerrit-Change-Number: 21637 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 Dec 9 16:34:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:34:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: use different binds for the initial connection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21574 ) Change subject: gprs_ns2_sns: use different binds for the initial connection ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb Gerrit-Change-Number: 21574 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 16:34: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 Dec 9 16:34:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:34:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: introduce SNS Size/Config retries In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21575 ) Change subject: gprs_ns2_sns: introduce SNS Size/Config retries ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e9023a6e7adc6ad48f4016fcaef189ac8b353e Gerrit-Change-Number: 21575 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 16: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 Dec 9 16:35:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:35:43 +0000 Subject: Change in osmo-bsc[master]: gsm_lchan_name: assert on NULL lchan In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21637 ) Change subject: gsm_lchan_name: assert on NULL lchan ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If4d12cb1d95ee2a89244bb8f27df839871667387 Gerrit-Change-Number: 21637 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 09 Dec 2020 16: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 Dec 9 16:36:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:36:13 +0000 Subject: Change in docker-playground[master]: centos8-build: Use arg OSMOCOM_REPO_MIRROR In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21588 ) Change subject: centos8-build: Use arg OSMOCOM_REPO_MIRROR ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If2aefff04792fe4d215fcc52377bec64d9a1db2d Gerrit-Change-Number: 21588 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 16:36: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 Dec 9 16:36:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:36:23 +0000 Subject: Change in docker-playground[master]: centos8-build: Use arg OSMOCOM_REPO_MIRROR In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21588 ) Change subject: centos8-build: Use arg OSMOCOM_REPO_MIRROR ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If2aefff04792fe4d215fcc52377bec64d9a1db2d Gerrit-Change-Number: 21588 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 16:36: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 Dec 9 16:36:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 16:36:25 +0000 Subject: Change in docker-playground[master]: centos8-build: Use arg OSMOCOM_REPO_MIRROR In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21588 ) Change subject: centos8-build: Use arg OSMOCOM_REPO_MIRROR ...................................................................... centos8-build: Use arg OSMOCOM_REPO_MIRROR Change-Id: If2aefff04792fe4d215fcc52377bec64d9a1db2d --- M centos8-build/Dockerfile 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/centos8-build/Dockerfile b/centos8-build/Dockerfile index 9a21bbc..f4aab6c 100644 --- a/centos8-build/Dockerfile +++ b/centos8-build/Dockerfile @@ -1,6 +1,7 @@ ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=centos:centos8 FROM ${REGISTRY}/${UPSTREAM_DISTRO} +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" # Let package metadata expire after 60 seconds instead of 48 hours RUN echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf @@ -9,7 +10,7 @@ RUN dnf install -y dnf-utils wget && \ yum config-manager --set-enabled powertools && \ cd /etc/yum.repos.d/ && \ - wget https://download.opensuse.org/repositories/network:osmocom:nightly/CentOS_8_Stream/network:osmocom:nightly.repo + wget $OSMOCOM_REPO_MIRROR/repositories/network:osmocom:nightly/CentOS_8_Stream/network:osmocom:nightly.repo RUN dnf install -y \ autoconf \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If2aefff04792fe4d215fcc52377bec64d9a1db2d Gerrit-Change-Number: 21588 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Dec 9 17:03:46 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 9 Dec 2020 17:03:46 +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 1: Code-Review+1 +1 for when it's ready -- 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: 1 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, 09 Dec 2020 17:03: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 Dec 9 18:29:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 18:29:11 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: Fix hdlcnet device names References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21638 ) Change subject: ttcn3-gbproxy-test-fr: Fix hdlcnet device names ...................................................................... ttcn3-gbproxy-test-fr: Fix hdlcnet device names In Change-Id I80de01c96185c60fe2de7a8ffa9daed2669658e1 we introduced the wrong hdlcnetX device names. We must use each devoce only once, rather than trying to use hdlcnet1..4 twice. Change-Id: I56f75995fe94b46b0210de2a4f83e384b4e4ca4f --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/38/21638/1 diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 1713afb..c31d260 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -41,7 +41,7 @@ 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 hdlcnet1 dlci 20 - nse 2002 nsvci 6 frnet hdlcnet2 dlci 21 - nse 2003 nsvci 7 frnet hdlcnet3 dlci 22 - nse 2003 nsvci 8 frnet hdlcnet4 dlci 23 + 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 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I56f75995fe94b46b0210de2a4f83e384b4e4ca4f Gerrit-Change-Number: 21638 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 Dec 9 18:29:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 18:29:27 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: Fix hdlcnet device names In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21638 ) Change subject: ttcn3-gbproxy-test-fr: Fix hdlcnet device names ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I56f75995fe94b46b0210de2a4f83e384b4e4ca4f Gerrit-Change-Number: 21638 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 18:29: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 Dec 9 18:29:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 18:29:43 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: Fix hdlcnet device names In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21638 ) Change subject: ttcn3-gbproxy-test-fr: Fix hdlcnet device names ...................................................................... ttcn3-gbproxy-test-fr: Fix hdlcnet device names In Change-Id I80de01c96185c60fe2de7a8ffa9daed2669658e1 we introduced the wrong hdlcnetX device names. We must use each devoce only once, rather than trying to use hdlcnet1..4 twice. Change-Id: I56f75995fe94b46b0210de2a4f83e384b4e4ca4f --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 1713afb..c31d260 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -41,7 +41,7 @@ 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 hdlcnet1 dlci 20 - nse 2002 nsvci 6 frnet hdlcnet2 dlci 21 - nse 2003 nsvci 7 frnet hdlcnet3 dlci 22 - nse 2003 nsvci 8 frnet hdlcnet4 dlci 23 + 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 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I56f75995fe94b46b0210de2a4f83e384b4e4ca4f Gerrit-Change-Number: 21638 Gerrit-PatchSet: 1 Gerrit-Owner: laforge 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 Dec 9 18:35:10 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 9 Dec 2020 18:35:10 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: Fix hdlcnet device names In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21638 ) Change subject: ttcn3-gbproxy-test-fr: Fix hdlcnet device names ...................................................................... Patch Set 1: Code-Review+1 I remember changing this, though probably in osmo-ttcn3-hacks -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I56f75995fe94b46b0210de2a4f83e384b4e4ca4f Gerrit-Change-Number: 21638 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 18: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 Wed Dec 9 21:06:39 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 21:06:39 +0000 Subject: Change in osmo-sgsn[master]: sgsn: check for NULL of gprs_subscr_get_or_create() References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 ) Change subject: sgsn: check for NULL of gprs_subscr_get_or_create() ...................................................................... sgsn: check for NULL of gprs_subscr_get_or_create() gprs_subscr_get_or_create() can return NULL if no memory can be allocated. Detected by the compiler on Ubuntu s390x. Signed-off-by: Steve Langasek Signed-off-by: Alexander Couzens Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 --- M src/sgsn/gprs_subscriber.c M src/sgsn/sgsn_vty.c 2 files changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/39/21639/1 diff --git a/src/sgsn/gprs_subscriber.c b/src/sgsn/gprs_subscriber.c index c23b332..943fbc3 100644 --- a/src/sgsn/gprs_subscriber.c +++ b/src/sgsn/gprs_subscriber.c @@ -870,6 +870,8 @@ if (!subscr) { subscr = gprs_subscr_get_or_create(mmctx->imsi); + if (!subscr) + return NULL; subscr->flags |= GPRS_SUBSCRIBER_FIRST_CONTACT; subscr->flags &= ~GPRS_SUBSCRIBER_ENABLE_PURGE; } @@ -893,6 +895,8 @@ LOGMMCTXP(LOGL_DEBUG, mmctx, "Requesting subscriber data update\n"); subscr = gprs_subscr_get_or_create_by_mmctx(mmctx); + if (!subscr) + return -ENOMEM; subscr->flags |= GPRS_SUBSCRIBER_UPDATE_LOCATION_PENDING; @@ -918,6 +922,8 @@ LOGMMCTXP(LOGL_DEBUG, mmctx, "Requesting subscriber authentication info\n"); subscr = gprs_subscr_get_or_create_by_mmctx(mmctx); + if (!subscr) + return -ENOMEM; subscr->flags |= GPRS_SUBSCRIBER_UPDATE_AUTH_INFO_PENDING; diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c index 33a652c..56aa0c9 100644 --- a/src/sgsn/sgsn_vty.c +++ b/src/sgsn/sgsn_vty.c @@ -1020,6 +1020,10 @@ } subscr = gprs_subscr_get_or_create(imsi); + if (subscr) { + vty_out(vty, "Can not create subscriber. Out of memory.%s", imsi); + return CMD_WARNING; + } subscr->keep_in_ram = 1; gprs_subscr_put(subscr); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 Gerrit-Change-Number: 21639 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 Dec 9 21:22:02 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 9 Dec 2020 21:22:02 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/20397 ) Change subject: sgsn: Use the new NS2 api ...................................................................... Patch Set 6: > Patch Set 5: Code-Review-1 > > I would like to add FR/GRE support before merging. FR/GRE is still not supported, but there is code in libosmocore to support it. However without testing I don't see much point in waiting longer for this. -- 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: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 09 Dec 2020 21:22: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 Wed Dec 9 21:39:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:39:45 +0000 Subject: Change in osmo-bts[master]: power_control: make raise/lower step limitation configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21568 ) Change subject: power_control: make raise/lower step limitation configurable ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Gerrit-Change-Number: 21568 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 21:39: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 Dec 9 21:39:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:39:52 +0000 Subject: Change in osmo-bts[master]: power_control: make raise/lower step limitation configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21568 ) Change subject: power_control: make raise/lower step limitation configurable ...................................................................... power_control: make raise/lower step limitation configurable Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Related: SYS#4918 --- M include/osmo-bts/bts.h M include/osmo-bts/power_control.h M src/common/bts.c 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 M tests/power/ms_power_loop_test.c 8 files changed, 64 insertions(+), 36 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/osmo-bts/bts.h b/include/osmo-bts/bts.h index 48f404c..2edc20e 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -107,6 +107,10 @@ int target_dbm; /* Tolerated deviation from target */ int hysteresis_db; + /* How many dB do we raise power at maximum */ + int raise_step_max_db; + /* How many dB do we lower power at maximum */ + int lower_step_max_db; /* RxLev filtering algorithm */ enum bts_pf_algo pf_algo; /* (Optional) filtering parameters */ diff --git a/include/osmo-bts/power_control.h b/include/osmo-bts/power_control.h index f2e14cf..ab107b8 100644 --- a/include/osmo-bts/power_control.h +++ b/include/osmo-bts/power_control.h @@ -3,6 +3,10 @@ #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/bts.c b/src/common/bts.c index e021864..ba24497 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -53,6 +53,7 @@ #include #include #include +#include #define MIN_QUAL_RACH 50 /* minimum link quality (in centiBels) for Access Bursts */ #define MIN_QUAL_NORM -5 /* minimum link quality (in centiBels) for Normal Bursts */ @@ -334,6 +335,8 @@ (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 = { diff --git a/src/common/power_control.c b/src/common/power_control.c index d458a92..a616f18 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -33,10 +33,6 @@ #include #include -/* how many dB do we raise/lower as maximum (1 ms power level = 2 dB) */ -#define PWR_RAISE_MAX_DB 4 -#define PWR_LOWER_MAX_DB 8 - /* We don't want to deal with floating point, so we scale up */ #define EWMA_SCALE_FACTOR 100 @@ -122,10 +118,10 @@ /* 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 > PWR_RAISE_MAX_DB) - delta = PWR_RAISE_MAX_DB; - else if (delta < -PWR_LOWER_MAX_DB) - delta = -PWR_LOWER_MAX_DB; + 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; return delta; } diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index 2f60cc0..fd93183 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -31,6 +31,15 @@ #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 DL_MEAS_FULL(rxqual, rxlev) \ .rxqual_full = rxqual, \ .rxlev_full = rxlev @@ -95,10 +104,15 @@ g_trx = gsm_bts_trx_alloc(g_bts); OSMO_ASSERT(g_trx != NULL); - g_bts->dl_power_ctrl.target_dbm = rxlev2dbm(PWR_TEST_RXLEV_TARGET); 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); } @@ -326,7 +340,8 @@ /* Enable hysteresis */ { .type = PWR_TEST_ST_SET_PARAMS, .params = { - .target_dbm = -110 + PWR_TEST_RXLEV_TARGET, + PWR_TEST_CFG_RXLEV_TARGET, + PWR_TEST_CFG_RAISE_LOWER_MAX, .hysteresis_db = 3, } }, @@ -347,7 +362,8 @@ /* Enable EWMA based power filtering */ { .type = PWR_TEST_ST_SET_PARAMS, .params = { - .target_dbm = -110 + PWR_TEST_RXLEV_TARGET, /* RxLev 30 */ + PWR_TEST_CFG_RXLEV_TARGET, + PWR_TEST_CFG_RAISE_LOWER_MAX, .pf_algo = BTS_PF_ALGO_EWMA, .pf.ewma.alpha = 50, } diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index 44d996e..43063c0 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -7,29 +7,29 @@ (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 -> 8 dB (maximum 20 dB, target -80 dBm, delta -8 dB) +(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) 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 -> 16 dB (maximum 20 dB, target -80 dBm, delta -8 dB) +(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) 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 -8 dB) +(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) 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 -8 dB) +(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) 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 -8 dB) +(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) 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 -8 dB) +(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) 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 -8 dB) +(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) 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 -> 12 dB (maximum 20 dB, target -80 dBm, delta 8 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: 16 -> 12 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(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) 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: 4 -> 0 dB (maximum 20 dB, target -80 dBm, delta 8 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: 8 -> 4 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, target -80 dBm, delta 8 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 4 dB) +(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) 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 diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index fe2eb78..acaad82 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -39,19 +39,19 @@ #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 -> 8 (expected 4) +#01 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 4 (expected 4) #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: 8 -> 16 (expected 8) +#02 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 8 (expected 8) #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: 16 -> 20 (expected 12) +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 12 (expected 12) #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: 20 -> 20 (expected 16) +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 16 (expected 16) #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: 20 -> 20 (expected 20) +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 20 (expected 20) #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) @@ -60,20 +60,20 @@ #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 -> 16 (expected 12) +#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: 16 -> 12 (expected 4) +#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: 12 -> 8 (expected 0) +#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: 8 -> 4 (expected 0) +#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: 4 -> 0 (expected 0) -Test case verdict: FAIL +#12 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +Test case verdict: SUCCESS Starting test case 'TC_dtxd_mode' #00 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 4f4f746..ea3c249 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -47,11 +47,16 @@ g_trx->ms_pwr_ctl_soft = true; - g_bts->ul_power_ctrl.target_dbm = -75; - g_bts->dl_power_ctrl.target_dbm = -75; 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, + }; + printf("\nStarting test case '%s'\n", name); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Gerrit-Change-Number: 21568 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 Dec 9 21:39:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:39:53 +0000 Subject: Change in osmo-bts[master]: vty: resurrect per-lchan BS/MS Power Control information In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21481 ) Change subject: vty: resurrect per-lchan BS/MS Power Control information ...................................................................... vty: resurrect per-lchan BS/MS Power Control information Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 47 insertions(+), 7 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 bbb0ba1..ada871a 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1307,6 +1307,49 @@ } } +static void lchan_bs_power_ctrl_state_dump(struct vty *vty, const char *prefix, + 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", + VTY_NEWLINE); + + vty_out(vty, "%s Channel reduction: %u dB", prefix, 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); + + 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); +} + +static void lchan_ms_power_ctrl_state_dump(struct vty *vty, const char *prefix, + 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", + VTY_NEWLINE); + + 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); + if (!st->fixed) + vty_out(vty, " (max %u, -%d dBm)", st->max, max_dbm); + vty_out(vty, "%s", VTY_NEWLINE); +} + static void lchan_dump_full_vty(struct vty *vty, const struct gsm_lchan *lchan) { struct in_addr ia; @@ -1335,13 +1378,6 @@ lchan->state == LCHAN_S_BROKEN ? " Error reason: " : "", lchan->state == LCHAN_S_BROKEN ? lchan->broken_reason : "", VTY_NEWLINE); -#if 0 - /* TODO: print more info about MS/BS Power Control */ - vty_out(vty, " BS Power: %d dBm, MS Power: %u dBm%s", - lchan->ts->trx->nominal_power - (lchan->ts->trx->max_power_red + lchan->bs_power_red), - ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), - VTY_NEWLINE); -#endif vty_out(vty, " Channel Mode / Codec: %s%s", gsm48_chan_mode_name(lchan->tch_mode), VTY_NEWLINE); @@ -1383,6 +1419,10 @@ if (lchan->loopback) 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); } static void lchan_dump_short_vty(struct vty *vty, const struct gsm_lchan *lchan) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 Gerrit-Change-Number: 21481 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 Wed Dec 9 21:40:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:40:21 +0000 Subject: Change in osmo-sgsn[master]: sgsn: check for NULL of gprs_subscr_get_or_create() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 ) Change subject: sgsn: check for NULL of gprs_subscr_get_or_create() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 Gerrit-Change-Number: 21639 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 09 Dec 2020 21: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 Wed Dec 9 21:42:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:42:48 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21597 ) Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... Patch Set 4: > Patch Set 4: > > (1 comment) > > DBSSGP in src/gb/common_vty.{c,h} is unused now, we can remove it. If you do that, all extrenal code using it will break. That would be osmo-sgsn, osmo-gbproxy and osmo-pcu. We need to convert those over to DLBSSGP first, and then we can remove them. I'll add ac omment -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 09 Dec 2020 21:42: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 Wed Dec 9 21:45:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:45:55 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21597 ) Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... Patch Set 4: (1 comment) > > DBSSGP in src/gb/common_vty.{c,h} is unused now, we can remove it. > > If you do that, all extrenal code using it will break. That would be osmo-sgsn, osmo-gbproxy and osmo-pcu. We need to convert those over to DLBSSGP first, and then we can remove them. I'll add ac omment actually , you are right. The applications define those integer symbols themselves and then hand them into the library via this API. So it can be removed. https://gerrit.osmocom.org/c/libosmocore/+/21597/4/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/21597/4/src/gb/gprs_bssgp.c at 1356 PS4, Line 1356: LOGP(DLGLOBAL, LOGL_ERROR, "BSSGP has moved from DGPRS to DLGPRS, please update your code\n"); > We should also mark it as OSMO_DEPRECATED() in gprs/gprs_bssgp. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 09 Dec 2020 21:45:55 +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 Wed Dec 9 21:50:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:50:35 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant 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/+/21597 to look at the new patch set (#5). Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... logging: Introduce DLBSSGP logging constant Historically, BSSGP uses a non-constant, user-configurable integer varieable for the logging sub-system. Let's replace this with a statically-allocated library logging constant. This is required if we want to use the subsystem number in e.g. static initialized for osmo_fsm.log_subsys. Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 --- M include/osmocom/core/logging.h M include/osmocom/gprs/gprs_bssgp.h M src/gb/common_vty.c M src/gb/common_vty.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c M src/gb/gprs_bssgp_util.c M src/gb/gprs_bssgp_vty.c M src/logging.c M tests/logging/logging_vty_test.vty 10 files changed, 75 insertions(+), 73 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/21597/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder 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 Wed Dec 9 21:58:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:58:06 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation 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/libosmocore/+/21598 to look at the new patch set (#7). Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... gb: Add beginnings of a new BSSGP implementation Similar to ns2 superseding ns, we now also intoduce a next generation of BSSGP related code to libosmogb. However, this is not aiming to be a full implementation yet, but simply those parts that we currently need from the revamped osmo-gbproxy. The gprs_bssgp2.[ch] differs in two ways from the old code: * it separates message encoding from message transmission * it supports more recent specs / IEs bssgp_bvc_fsm.c is a genric implementation of the BSSGP BVC RESET/BLOCK/UNBLOCK logic with support for both PTP and signaling, both on the SGSN side and the BSS side. Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a --- M include/Makefile.am A include/osmocom/gprs/bssgp_bvc_fsm.h A include/osmocom/gprs/gprs_bssgp2.h M src/gb/Makefile.am A src/gb/bssgp_bvc_fsm.c A src/gb/gprs_bssgp2.c M src/gb/libosmogb.map 7 files changed, 1,139 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/21598/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 7 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 Wed Dec 9 21:58:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:58:06 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support 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/libosmocore/+/21611 to look at the new patch set (#5). Change subject: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support ...................................................................... bssgp_bvc_fsm: Add basic BVC flow control rx/tx support The FSM doesn't actually implement the flow control logic, it only decodes / dispatches and encodes messages. Related: OS#4891 Change-Id: Ie59be6761177c43456898be9148727f15861a622 --- M include/osmocom/gprs/bssgp_bvc_fsm.h M src/gb/bssgp_bvc_fsm.c M src/gb/gprs_bssgp2.c 3 files changed, 44 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/11/21611/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie59be6761177c43456898be9148727f15861a622 Gerrit-Change-Number: 21611 Gerrit-PatchSet: 5 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 Wed Dec 9 21:59:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:59:03 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21598 ) Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... Patch Set 7: (6 comments) https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/bssgp_bvc_fsm.c File src/gb/bssgp_bvc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/bssgp_bvc_fsm.c at 4 PS6, Line 4: /* FIXME: This should probably be moved to libosmogb? */ > Isn't it? [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/bssgp_bvc_fsm.c at 238 PS6, Line 238: bfp->features.negotiated = bfp->features.advertised & features_rx; > missing bfp->features. [?] nice cach. You can see that features.received was not present at first and only added very late in the development. I've removed the lcoal variable in my next version and simply use the bfp->features.received directly. https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/bssgp_bvc_fsm.c at 650 PS6, Line 650: OSMO_ASSERT(bvci >= 2); > OSMO_ASSERT(ra_id) as well Done https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/gprs_bssgp2.c File src/gb/gprs_bssgp2.c: https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/gprs_bssgp2.c at 3 PS6, Line 3: > License? Done https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/gprs_bssgp2.c at 11 PS6, Line 11: //#include > Remove Done https://gerrit.osmocom.org/c/libosmocore/+/21598/6/src/gb/gprs_bssgp2.c at 71 PS6, Line 71: BVC-BLOCK > *BLOCK-ACK Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 7 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 21:59:03 +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 Wed Dec 9 21:59:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:59:48 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21597 ) Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 09 Dec 2020 21:59: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 Dec 9 21:59:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 21:59:56 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21598 ) Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 7 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 21:59: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 Dec 9 22:00:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 22:00:13 +0000 Subject: Change in libosmocore[master]: bssgp2: Encoding + Decoding functions for BVC and MS flow control In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21610 ) Change subject: bssgp2: Encoding + Decoding functions for BVC and MS flow control ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21610/2/src/gb/gprs_bssgp2.c File src/gb/gprs_bssgp2.c: https://gerrit.osmocom.org/c/libosmocore/+/21610/2/src/gb/gprs_bssgp2.c at 421 PS2, Line 421: bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC_ACK; > FLOW_CONTROL_MS_ACK Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9c89bb1c03550930c07aad7ff8f67129ee7a6320 Gerrit-Change-Number: 21610 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: Wed, 09 Dec 2020 22:00:13 +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 Wed Dec 9 22:00:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 9 Dec 2020 22:00:23 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21611 ) Change subject: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie59be6761177c43456898be9148727f15861a622 Gerrit-Change-Number: 21611 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 09 Dec 2020 22:00: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 Dec 10 00:11:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 00:11:11 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21640 ) Change subject: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT ...................................................................... ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT There has been a lot of changes merged to both osmo-{bsc,bts}, so now the later seems to be respawning faster then before. Because of that, osmo-bts-trx is now reaching the limit of 500 runs on Jenkins right in the middle of ttcn3-bts-test execution: respawn.sh: exiting after 500 runs causing the remaining test cases to fail due to: "BTS_Tests.ttcn:253 : Timeout waiting for RSL bring up" Most likely, the IUT respawns several times in the windows between the test cases, i.e. after TITAN finishes one test case and before it starts another. Let's instruct respawn.sh to sleep 2 seconds before starting the process again. Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 5 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/40/21640/1 diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index be6a71c..957adf6 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -24,7 +24,6 @@ start_bts() { local variant variant="$1" - sleep_time_respawn="$2" echo Starting container with BTS if [ -z "$variant" ]; then echo ERROR: You have to specify a BTS variant @@ -35,7 +34,7 @@ --ulimit core=-1 \ -v $VOL_BASE_DIR/bts:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ - -e "SLEEP_BEFORE_RESPAWN=$sleep_time_respawn" \ + -e "SLEEP_BEFORE_RESPAWN=2" \ --name ${BUILD_TAG}-bts -d \ $DOCKER_ARGS \ $REPO_USER/osmo-bts-$IMAGE_SUFFIX \ @@ -142,7 +141,7 @@ # 1) classic test suite with BSC for OML and trxcon+fake_trx start_bsc -start_bts trx 0 +start_bts trx start_fake_trx start_trxcon start_testsuite generic @@ -154,7 +153,7 @@ docker container kill ${BUILD_TAG}-fake_trx docker container kill ${BUILD_TAG}-bts cp virtphy/osmo-bts.cfg $VOL_BASE_DIR/bts/ -start_bts virtual 0 +start_bts virtual start_virtphy # ... and execute the testsuite again with different cfg #start_testsuite virtphy @@ -166,7 +165,7 @@ docker container kill ${BUILD_TAG}-bts cp oml/osmo-bts.cfg $VOL_BASE_DIR/bts/ -start_bts trx 1 +start_bts trx start_fake_trx start_trxcon # ... and execute the testsuite again with different cfg @@ -178,7 +177,7 @@ # restart the BSC/BTS and run the testsuite again docker container kill ${BUILD_TAG}-bts start_bsc -start_bts trx 0 +start_bts trx start_testsuite hopping # append ':hopping' to the classnames, # e.g. "classname='BTS_Tests'" => "classname='BTS_Tests:hopping'" -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 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 Dec 10 00:11:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 00:11:13 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... debian-stretch-titan: use dpkg to install libfftranscode For some magic reason, apt segfaults while installing the DEBs: $ apt install ./libfftranscode0_0.3_${DPKG_ARCH}.deb \ ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb WARNING: apt does not have a stable CLI interface. Use with caution in scripts. Reading package lists... Segmentation fault (core dumped) so it kind of confirms the warning about its stability ;) Change-Id: I7f3288161577b055145afe89de7dff50853760f5 --- M debian-stretch-titan/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/41/21641/1 diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile index 4b288d0..0a6d73c 100644 --- a/debian-stretch-titan/Dockerfile +++ b/debian-stretch-titan/Dockerfile @@ -44,5 +44,5 @@ RUN DPKG_ARCH="$(dpkg --print-architecture)" && export $DPKG_ARCH && \ wget https://ftp.osmocom.org/binaries/libfftranscode/libfftranscode0_0.3_${DPKG_ARCH}.deb && \ wget https://ftp.osmocom.org/binaries/libfftranscode/libfftranscode-dev_0.3_${DPKG_ARCH}.deb && \ - apt install ./libfftranscode0_0.3_${DPKG_ARCH}.deb ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb && \ + dpkg -i ./libfftranscode0_0.3_${DPKG_ARCH}.deb ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb && \ rm libfftranscode*.deb -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 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 Dec 10 00:17:31 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 00:17:31 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote 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/+/21573 to look at the new patch set (#3). Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... gprs_ns2_sns: rework IP-SNS initial remote The IP-SNS requires at least one initial remote address of the SGSN. However it should be multiple initial remote address instead of a single in case the interface might fail. Rework the SNS to support multiple initial remote addresses. Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 7 files changed, 361 insertions(+), 193 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/21573/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 Gerrit-PatchSet: 3 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 Thu Dec 10 00:25:49 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 00:25:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add member name to bind 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/+/21485 to look at the new patch set (#6). Change subject: gprs_ns2: add member name to bind ...................................................................... gprs_ns2: add member name to bind Every bind will have a unique name. Add a name argument to all bind creating functions and require them to be unique. This is an API break but there wasn't yet a release with NS2. Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e --- 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 M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 8 files changed, 75 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/85/21485/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Gerrit-Change-Number: 21485 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus 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 Dec 10 00:26:04 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 00:26:04 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2_vty2: improve ip-sns implementation In-Reply-To: References: Message-ID: lynxis lazus has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21576 ) Change subject: WIP: gprs_ns2_vty2: improve ip-sns implementation ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I741f21c36f1074e99304d51d96e1c00be24cf3c6 Gerrit-Change-Number: 21576 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 00:26:29 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 00:26:29 +0000 Subject: Change in libosmocore[master]: bitvec: bitvec_get_uint() should return an unsigned int In-Reply-To: References: Message-ID: lynxis lazus has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/14577 ) Change subject: bitvec: bitvec_get_uint() should return an unsigned int ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/14577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2d50d375ccf63ecb45061682ede0b46b6087d11a Gerrit-Change-Number: 14577 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Thu Dec 10 00:56:38 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 00:56:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add member name to bind In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21485 ) Change subject: gprs_ns2: add member name to bind ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21485/4/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/21485/4/src/gb/gprs_ns2_internal.h at 185 PS4, Line 185: char *name; > const? Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Gerrit-Change-Number: 21485 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 00:56: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 Thu Dec 10 01:01:46 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 01:01:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... Patch Set 6: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 01:01: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 Thu Dec 10 01:03:32 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 01:03:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework gprs_ns2_fr_connect*() 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/+/21486 to look at the new patch set (#7). Change subject: gprs_ns2: rework gprs_ns2_fr_connect*() ...................................................................... gprs_ns2: rework gprs_ns2_fr_connect*() Add gprs_ns2_fr_connect2() and change gprs_ns2_fr_connect() to be similar to gprs_ns2_ip_connect() and gprs_ns2_connect2(). This is an API break but there wasn't yet a release with NS2. Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_vty.c 3 files changed, 44 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/86/21486/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 Gerrit-Change-Number: 21486 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus 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 Dec 10 01:03:32 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 01:03:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote 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/+/21573 to look at the new patch set (#7). Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... gprs_ns2_sns: rework IP-SNS initial remote The IP-SNS requires at least one initial remote address of the SGSN. However it should be multiple initial remote address instead of a single in case the interface might fail. Rework the SNS to support multiple initial remote addresses. Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/libosmogb.map 6 files changed, 361 insertions(+), 190 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/21573/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 Gerrit-PatchSet: 7 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 Thu Dec 10 02:29:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 02:29:08 +0000 Subject: Change in osmo-bsc[master]: handover_test: implement as VTY shell References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21642 ) Change subject: handover_test: implement as VTY shell ...................................................................... handover_test: implement as VTY shell Drop the string arrays, and move the 32 handover tests to separate script files. Instead of the peculiar implementation and instead of cryptic commands, implement the handover test scripts as a VTY. handover_test.c now sets up a VTY with handover testing VTY commands. It also features the complete and unabridged VTY configuration nodes of osmo-bsc itself. That allows dropping various ho script commands. Before: static char *test_case_14[] = { "Handover to congested cell, if RX level is below minimum\n\n" "The better neighbor cell is congested, so no handover is performed.\n" "If the RX level of the current cell drops below minimum acceptable\n" "level, the handover is performed.\n", "create-n-bts", "2", "create-ms", "0", "TCH/F", "AMR", "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", "set-min-free", "1", "TCH/F", "4", "set-min-free", "1", "TCH/H", "4", "meas-rep", "0","0","1","0", "10","0", "1","0","30", "expect-no-chan", "meas-rep", "0","0","1","0", "9","0", "1","0","30", "expect-chan", "1", "1", "ack-chan", "expect-ho", "0", "1", "ho-complete", "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", } After: # Handover to congested cell, if RX level is below minimum # The better neighbor cell is congested, so no handover is performed. # If the RX level of the current cell drops below minimum acceptable # level, the handover is performed. create-n-bts 2 set-ts-use trx 0 0 states * TCH/F - - - - - - network bts 1 handover2 min-free-slots tch/f 4 handover2 min-free-slots tch/h 4 meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 30 expect-no-chan meas-rep lchan 0 0 1 0 rxlev 9 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 - - - - - - Note how osmo-bsc's stock vty config nodes seamlessly integrate in the test steps: just enter a configuration node, modify some values, and indenting trivially takes care of exiting nodes correctly. Running a test manually: ./handover_test test_0123.ho_vty Instead of calling each test separately in testsuite.at, have a handover_tests.sh script that picks up new tests just by presence of files named test*.ho_vty. Rationale: It was considered to move handover tests to the TTCN suite, but there is an advantage in having these C tests: they run super fast and catch bugs even in the gerrit verification job, potentially saving a lot of time. It is a reality that I need more of these tests, for dynamic timeslots and TCH/F <-> TCH/H switches. The way the handover tests are written, as arrays of strings containing cryptic fixed-argument script commands, has been a pain to work with from the start, and now I am no longer willing to endure that pain. Change-Id: Ie238ebe41039d3fa44c9699937589e000883e052 --- M tests/handover/Makefile.am M tests/handover/handover_test.c D tests/handover/handover_test.ok A tests/handover/handover_tests.ok A tests/handover/handover_tests.sh A tests/handover/test0000.ho_vty A tests/handover/test0001.ho_vty A tests/handover/test0002.ho_vty A tests/handover/test0003.ho_vty A tests/handover/test0004.ho_vty A tests/handover/test0005.ho_vty A tests/handover/test0006.ho_vty A tests/handover/test0007.ho_vty A tests/handover/test0008.ho_vty A tests/handover/test0009.ho_vty A tests/handover/test0010.ho_vty A tests/handover/test0011.ho_vty A tests/handover/test0012.ho_vty A tests/handover/test0013.ho_vty A tests/handover/test0014.ho_vty A tests/handover/test0015.ho_vty A tests/handover/test0016.ho_vty A tests/handover/test0017.ho_vty A tests/handover/test0018.ho_vty A tests/handover/test0019.ho_vty A tests/handover/test0020.ho_vty A tests/handover/test0021.ho_vty A tests/handover/test0022.ho_vty A tests/handover/test0023.ho_vty A tests/handover/test0024.ho_vty A tests/handover/test0025.ho_vty A tests/handover/test0026.ho_vty A tests/handover/test0027.ho_vty A tests/handover/test0028.ho_vty A tests/handover/test0029.ho_vty A tests/handover/test0030.ho_vty A tests/handover/test0031.ho_vty A tests/handover/test0032.ho_vty M tests/testsuite.at 39 files changed, 1,450 insertions(+), 1,719 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/42/21642/1 diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 5139595..ca636d8 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -21,7 +21,8 @@ $(NULL) EXTRA_DIST = \ - handover_test.ok \ + handover_tests.ok \ + $(srcdir)/test*.ho_vty \ neighbor_ident_test.ok \ neighbor_ident_test.err \ $(NULL) @@ -131,3 +132,4 @@ .PHONY: update_exp update_exp: $(builddir)/neighbor_ident_test >$(srcdir)/neighbor_ident_test.ok 2>$(srcdir)/neighbor_ident_test.err + $(srcdir)/handover_tests.sh $(srcdir) $(builddir) -u diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 62c01f0..5b47be8 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -26,6 +26,7 @@ #include #include #include +#include #include @@ -49,6 +50,9 @@ #include #include #include +#include + +#include "../../bscconfig.h" void *ctx; @@ -77,13 +81,21 @@ /* measurement report */ uint8_t meas_rep_ba = 0, meas_rep_valid = 1, meas_valid = 1, meas_multi_rep = 0; -uint8_t meas_dl_rxlev = 0, meas_dl_rxqual = 0; uint8_t meas_ul_rxlev = 0, meas_ul_rxqual = 0; -uint8_t meas_tx_power_ms = 0, meas_tx_power_bs = 0, meas_ta_ms = 0; +uint8_t meas_tx_power_ms = 0, meas_tx_power_bs = 0; uint8_t meas_dtx_ms = 0, meas_dtx_bs = 0, meas_nr = 0; -uint8_t meas_num_nc = 0, meas_rxlev_nc[6], meas_bsic_nc[6], meas_bcch_f_nc[6]; +char *codec_tch_f = NULL; +char *codec_tch_h = NULL; -static void gen_meas_rep(struct gsm_lchan *lchan) +struct neighbor_meas { + uint8_t rxlev; + uint8_t bsic; + uint8_t bcch_f; +}; + +static void gen_meas_rep(struct gsm_lchan *lchan, + uint8_t rxlev, uint8_t rxqual, uint8_t ta, + int neighbors_count, struct neighbor_meas *neighbors) { struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL"); struct abis_rsl_dchan_hdr *dh; @@ -108,7 +120,7 @@ msgb_tv_put(msg, RSL_IE_BS_POWER, meas_tx_power_bs); l1i[0] = 0; - l1i[1] = meas_ta_ms; + l1i[1] = ta; msgb_tv_fixed_put(msg, RSL_IE_L1_INFO, sizeof(l1i), l1i); buf = msgb_put(msg, 3); @@ -123,49 +135,44 @@ gh->msg_type = GSM48_MT_RR_MEAS_REP; /* measurement results */ - mr->rxlev_full = meas_dl_rxlev; - mr->rxlev_sub = meas_dl_rxlev; - mr->rxqual_full = meas_dl_rxqual; - mr->rxqual_sub = meas_dl_rxqual; + mr->rxlev_full = rxlev; + mr->rxlev_sub = rxlev; + mr->rxqual_full = rxqual; + mr->rxqual_sub = rxqual; mr->dtx_used = meas_dtx_ms; mr->ba_used = meas_rep_ba; - mr->meas_valid = !meas_valid; /* 0 = valid */ - if (meas_rep_valid) { - mr->no_nc_n_hi = meas_num_nc >> 2; - mr->no_nc_n_lo = meas_num_nc & 3; - } else { - /* no results for serving cells */ - mr->no_nc_n_hi = 1; - mr->no_nc_n_lo = 3; - } - mr->rxlev_nc1 = meas_rxlev_nc[0]; - mr->rxlev_nc2_hi = meas_rxlev_nc[1] >> 1; - mr->rxlev_nc2_lo = meas_rxlev_nc[1] & 1; - mr->rxlev_nc3_hi = meas_rxlev_nc[2] >> 2; - mr->rxlev_nc3_lo = meas_rxlev_nc[2] & 3; - mr->rxlev_nc4_hi = meas_rxlev_nc[3] >> 3; - mr->rxlev_nc4_lo = meas_rxlev_nc[3] & 7; - mr->rxlev_nc5_hi = meas_rxlev_nc[4] >> 4; - mr->rxlev_nc5_lo = meas_rxlev_nc[4] & 15; - mr->rxlev_nc6_hi = meas_rxlev_nc[5] >> 5; - mr->rxlev_nc6_lo = meas_rxlev_nc[5] & 31; - mr->bsic_nc1_hi = meas_bsic_nc[0] >> 3; - mr->bsic_nc1_lo = meas_bsic_nc[0] & 7; - mr->bsic_nc2_hi = meas_bsic_nc[1] >> 4; - mr->bsic_nc2_lo = meas_bsic_nc[1] & 15; - mr->bsic_nc3_hi = meas_bsic_nc[2] >> 5; - mr->bsic_nc3_lo = meas_bsic_nc[2] & 31; - mr->bsic_nc4 = meas_bsic_nc[3]; - mr->bsic_nc5 = meas_bsic_nc[4]; - mr->bsic_nc6 = meas_bsic_nc[5]; - mr->bcch_f_nc1 = meas_bcch_f_nc[0]; - mr->bcch_f_nc2 = meas_bcch_f_nc[1]; - mr->bcch_f_nc3 = meas_bcch_f_nc[2]; - mr->bcch_f_nc4 = meas_bcch_f_nc[3]; - mr->bcch_f_nc5_hi = meas_bcch_f_nc[4] >> 1; - mr->bcch_f_nc5_lo = meas_bcch_f_nc[4] & 1; - mr->bcch_f_nc6_hi = meas_bcch_f_nc[5] >> 2; - mr->bcch_f_nc6_lo = meas_bcch_f_nc[5] & 3; + mr->meas_valid = 0; /* 0 = valid */ + mr->no_nc_n_hi = neighbors_count >> 2; + mr->no_nc_n_lo = neighbors_count & 3; + + mr->rxlev_nc1 = neighbors[0].rxlev; + mr->rxlev_nc2_hi = neighbors[1].rxlev >> 1; + mr->rxlev_nc2_lo = neighbors[1].rxlev & 1; + mr->rxlev_nc3_hi = neighbors[2].rxlev >> 2; + mr->rxlev_nc3_lo = neighbors[2].rxlev & 3; + mr->rxlev_nc4_hi = neighbors[3].rxlev >> 3; + mr->rxlev_nc4_lo = neighbors[3].rxlev & 7; + mr->rxlev_nc5_hi = neighbors[4].rxlev >> 4; + mr->rxlev_nc5_lo = neighbors[4].rxlev & 15; + mr->rxlev_nc6_hi = neighbors[5].rxlev >> 5; + mr->rxlev_nc6_lo = neighbors[5].rxlev & 31; + mr->bsic_nc1_hi = neighbors[0].bsic >> 3; + mr->bsic_nc1_lo = neighbors[0].bsic & 7; + mr->bsic_nc2_hi = neighbors[1].bsic >> 4; + mr->bsic_nc2_lo = neighbors[1].bsic & 15; + mr->bsic_nc3_hi = neighbors[2].bsic >> 5; + mr->bsic_nc3_lo = neighbors[2].bsic & 31; + mr->bsic_nc4 = neighbors[3].bsic; + mr->bsic_nc5 = neighbors[4].bsic; + mr->bsic_nc6 = neighbors[5].bsic; + mr->bcch_f_nc1 = neighbors[0].bcch_f; + mr->bcch_f_nc2 = neighbors[1].bcch_f; + mr->bcch_f_nc3 = neighbors[2].bcch_f; + mr->bcch_f_nc4 = neighbors[3].bcch_f; + mr->bcch_f_nc5_hi = neighbors[4].bcch_f >> 1; + mr->bcch_f_nc5_lo = neighbors[4].bcch_f & 1; + mr->bcch_f_nc6_hi = neighbors[5].bcch_f >> 2; + mr->bcch_f_nc6_lo = neighbors[5].bcch_f & 3; msg->dst = lchan->ts->trx->bts->c0->rsl_link; msg->l2h = (unsigned char *)dh; @@ -195,7 +202,7 @@ "c+s4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "-", }; -static struct gsm_bts *create_bts(int num_trx, const char * const *ts_args) +static struct gsm_bts *_create_bts(int num_trx, const char * const *ts_args, int ts_args_count) { static int arfcn = 870; struct gsm_bts *bts; @@ -205,15 +212,10 @@ struct gsm_bts_trx *trx; fprintf(stderr, "- Creating BTS %d, %d TRX\n", bsc_gsmnet->num_bts, num_trx); - for (trx_i = 0; trx_i < num_trx; trx_i++) { - for (i = 0; i < 8; i++) - fprintf(stderr, "\t%s", ts_args[8*trx_i + i]); - fprintf(stderr, "\n"); - } bts = bsc_bts_alloc_register(bsc_gsmnet, GSM_BTS_TYPE_UNKNOWN, 0x3f); if (!bts) { - printf("No resource for bts1\n"); + fprintf(stderr, "No resource for bts1\n"); return NULL; } @@ -241,13 +243,21 @@ /* 4 full rate and 4 half rate channels */ for (i = 0; i < 8; i++) { - trx->ts[i].pchan_from_config = pchan_from_str(ts_args[trx_i * 8 + i]); + int arg_i = trx_i * 8 + i; + const char *ts_arg; + if (arg_i >= ts_args_count) + ts_arg = bts_default_ts[i]; + else + ts_arg = ts_args[arg_i]; + fprintf(stderr, "\t%s", ts_arg); + trx->ts[i].pchan_from_config = pchan_from_str(ts_arg); if (trx->ts[i].pchan_from_config == GSM_PCHAN_NONE) continue; trx->ts[i].mo.nm_state.operational = NM_OPSTATE_ENABLED; trx->ts[i].mo.nm_state.availability = NM_AVSTATE_OK; trx->ts[i].mo.nm_state.administrative = NM_STATE_UNLOCKED; } + fprintf(stderr, "\n"); for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { /* make sure ts->lchans[] get initialized */ @@ -303,22 +313,15 @@ } } -bool expect_ts_use(int bts_nr, int trx_nr, const char * const *ts_use) +bool _expect_ts_use(struct gsm_bts *bts, struct gsm_bts_trx *trx, const char * const *ts_use) { - struct gsm_bts *bts; - struct gsm_bts_trx *trx; int i; int mismatching_ts = -1; - bts = gsm_bts_num(bsc_gsmnet, bts_nr); - OSMO_ASSERT(bts); - trx = gsm_bts_trx_num(bts, trx_nr); - OSMO_ASSERT(trx); - fprintf(stderr, "Expect TS use:"); + fprintf(stderr, "bts %d trx %d: expect:", bts->nr, trx->nr); for (i = 0; i < 8; i++) fprintf(stderr, "\t%s", ts_use[i]); - fprintf(stderr, "\n"); - fprintf(stderr, " Got TS use:"); + fprintf(stderr, "\nbts %d trx %d: got:", bts->nr, trx->nr); for (i = 0; i < 8; i++) { struct gsm_bts_trx_ts *ts = &trx->ts[i]; @@ -328,14 +331,14 @@ if (!strcmp(ts_use[i], "*")) continue; - if (strcmp(ts_use[i], use) && mismatching_ts < 0) + if (strcasecmp(ts_use[i], use) && mismatching_ts < 0) mismatching_ts = i; } fprintf(stderr, "\n"); if (mismatching_ts >= 0) { fprintf(stderr, "Test failed: mismatching TS use in bts %d trx %d ts %d\n", - bts_nr, trx_nr, mismatching_ts); + bts->nr, trx->nr, mismatching_ts); return false; } return true; @@ -378,6 +381,8 @@ lchan->fi->state = LCHAN_ST_ESTABLISHED; lchan->ts->fi->state = TS_ST_IN_USE; lchan->type = full_rate ? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H; + /* Fake osmo_mgcpc_ep_ci to indicate that the lchan is used for voice */ + lchan->mgw_endpoint_ci_bts = (void*)1; if (lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) lchan->ts->pchan_is = full_rate ? GSM_PCHAN_TCH_F : GSM_PCHAN_TCH_H; @@ -399,7 +404,7 @@ lchan->tch_mode = GSM48_CMODE_SPEECH_AMR; lchan->activate.info.s15_s0 = 0x0002; } else { - printf("Given codec unknown\n"); + fprintf(stderr, "Given codec unknown\n"); exit(EXIT_FAILURE); } @@ -423,7 +428,7 @@ lchan = lchan_select_by_type(bts, (full_rate) ? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H); if (!lchan) { - printf("No resource for lchan\n"); + fprintf(stderr, "No resource for lchan\n"); exit(EXIT_FAILURE); } @@ -445,15 +450,9 @@ } } -bool set_ts_use(int bts_nr, int trx_nr, const char * const *ts_use) +bool _set_ts_use(struct gsm_bts *bts, struct gsm_bts_trx *trx, const char * const *ts_use) { - struct gsm_bts *bts; - struct gsm_bts_trx *trx; int i; - bts = gsm_bts_num(bsc_gsmnet, bts_nr); - OSMO_ASSERT(bts); - trx = gsm_bts_trx_num(bts, trx_nr); - OSMO_ASSERT(trx); fprintf(stderr, "Setting TS use:"); for (i = 0; i < 8; i++) @@ -469,44 +468,44 @@ continue; /* If it is already as desired, don't change anything */ - if (!strcmp(want_use, is_use)) + if (!strcasecmp(want_use, is_use)) continue; - if (!strcmp(want_use, "TCH/F")) { + if (!strcasecmp(want_use, "tch/f")) { if (!ts_is_capable_of_pchan(ts, GSM_PCHAN_TCH_F)) { - printf("Error: bts %d trx %d ts %d cannot be used as TCH/F\n", - bts_nr, trx_nr, i); + fprintf(stderr, "Error: bts %d trx %d ts %d cannot be used as TCH/F\n", + bts->nr, trx->nr, i); return false; } ts_clear(ts); - lchan_act(&ts->lchan[0], true, "AMR"); - } else if (!strcmp(want_use, "TCH/H-") - || !strcmp(want_use, "TCH/HH") - || !strcmp(want_use, "TCH/-H")) { + lchan_act(&ts->lchan[0], true, codec_tch_f ? : "AMR"); + } else if (!strcasecmp(want_use, "tch/h-") + || !strcasecmp(want_use, "tch/hh") + || !strcasecmp(want_use, "tch/-h")) { bool act[2]; int j; if (!ts_is_capable_of_pchan(ts, GSM_PCHAN_TCH_H)) { - printf("Error: bts %d trx %d ts %d cannot be used as TCH/H\n", - bts_nr, trx_nr, i); + fprintf(stderr, "Error: bts %d trx %d ts %d cannot be used as TCH/H\n", + bts->nr, trx->nr, i); return false; } if (ts->pchan_is != GSM_PCHAN_TCH_H) ts_clear(ts); - act[0] = want_use[4] == 'H'; - act[1] = want_use[5] == 'H'; + act[0] = (want_use[4] == 'h' || want_use[4] == 'H'); + act[1] = (want_use[5] == 'h' || want_use[5] == 'H'); for (j = 0; j < 2; j++) { if (lchan_state_is(&ts->lchan[j], LCHAN_ST_UNUSED)) { if (act[j]) - lchan_act(&ts->lchan[j], false, "AMR"); + lchan_act(&ts->lchan[j], false, codec_tch_h ? : "AMR"); } else if (!act[j]) lchan_clear(&ts->lchan[j]); } - } else if (!strcmp(want_use, "-") || !strcmp(want_use, "PDCH")) { + } else if (!strcmp(want_use, "-") || !strcasecmp(want_use, "pdch")) { ts_clear(ts); } } @@ -592,6 +591,8 @@ struct abis_rsl_rll_hdr *rh; uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + fprintf(stderr, "- Send EST IND for %s\n", gsm_lchan_name(lchan)); + rh = (struct abis_rsl_rll_hdr *) msgb_put(msg, sizeof(*rh)); rh->c.msg_discr = ABIS_RSL_MDISC_RLL; rh->c.msg_type = RSL_MT_EST_IND; @@ -606,7 +607,32 @@ abis_rsl_rcvmsg(msg); } -/* send handover complete */ +static void send_ho_detect(struct gsm_lchan *lchan) +{ + struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL"); + struct abis_rsl_rll_hdr *rh; + uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + + fprintf(stderr, "- Send HO DETECT for %s\n", gsm_lchan_name(lchan)); + + rh = (struct abis_rsl_rll_hdr *) msgb_put(msg, sizeof(*rh)); + rh->c.msg_discr = ABIS_RSL_MDISC_DED_CHAN; + rh->c.msg_type = RSL_MT_HANDO_DET; + rh->ie_chan = RSL_IE_CHAN_NR; + rh->chan_nr = chan_nr; + rh->ie_link_id = RSL_IE_LINK_IDENT; + rh->link_id = 0x00; + + msg->dst = lchan->ts->trx->bts->c0->rsl_link; + msg->l2h = (unsigned char *)rh; + + abis_rsl_rcvmsg(msg); + + send_est_ind(lchan); + osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RTP_READY, 0); + +} + static void send_ho_complete(struct gsm_lchan *lchan, bool success) { struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL"); @@ -616,8 +642,10 @@ struct gsm48_hdr *gh; struct gsm48_ho_cpl *hc; - send_est_ind(lchan); - osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RTP_READY, 0); + if (success) + fprintf(stderr, "- Send HO COMPLETE for %s\n", gsm_lchan_name(lchan)); + else + fprintf(stderr, "- Send HO FAIL to %s\n", gsm_lchan_name(lchan)); rh = (struct abis_rsl_rll_hdr *) msgb_put(msg, sizeof(*rh)); rh->c.msg_discr = ABIS_RSL_MDISC_RLL; @@ -646,6 +674,16 @@ 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); @@ -658,7 +696,7 @@ struct gsm_lchan *other_lchan; if (rc) { - printf("rsl_lchan_lookup() failed\n"); + fprintf(stderr, "rsl_lchan_lookup() failed\n"); exit(1); } @@ -707,1106 +745,399 @@ case RSL_MT_DEACTIVATE_SACCH: break; default: - printf("unknown rsl message=0x%x\n", dh->c.msg_type); + fprintf(stderr, "unknown rsl message=0x%x\n", dh->c.msg_type); } return 0; } -/* test cases */ +struct gsm_bts *bts_by_num_str(const char *num_str) +{ + struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, atoi(num_str)); + OSMO_ASSERT(bts); + return bts; +} -static char *test_case_0[] = { - "2", +struct gsm_bts_trx *trx_by_num_str(struct gsm_bts *bts, const char *num_str) +{ + struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, atoi(num_str)); + OSMO_ASSERT(trx); + return trx; +} - "Stay in better cell\n\n" - "There are many neighbor cells, but only the current cell is the best\n" - "cell, so no handover is performed\n", +#define LCHAN_ARGS "lchan <0-255> <0-255> <0-7> <0-7>" +#define LCHAN_ARGS_DOC "identify an lchan\nBTS nr\nTRX nr\nTimeslot nr\nSubslot nr\n" - "create-n-bts", "7", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", - "30","0", - "6", "0","20", "1","21", "2","18", "3","20", "4","23", "5","19", - "expect-no-chan", - NULL -}; +static struct gsm_lchan *parse_lchan_args(const char **argv) +{ + struct gsm_bts *bts = bts_by_num_str(argv[0]); + struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + struct gsm_bts_trx_ts *ts = &trx->ts[atoi(argv[2])]; + return &ts->lchan[atoi(argv[3])]; +} -static char *test_case_1[] = { - "2", +#define TS_USE " (TCH/F|TCH/H-|TCH/-H|TCH/HH|PDCH" \ + "|tch/f|tch/h-|tch/-h|tch/hh|pdch" \ + "|-|*)" +#define TS_USE_DOC "'TCH/F': one FR call\n" \ + "'TCH/H-': HR TS with first subslot used as TCH/H, other subslot unused\n" \ + "'TCH/HH': HR TS with both subslots used as TCH/H\n" \ + "'TCH/-H': HR TS with only second subslot used as TCH/H\n" \ + "'PDCH': TS used for PDCH (e.g. unused dynamic TS)\n" \ + "'tch/f': one FR call\n" \ + "'tch/h-': HR TS with first subslot used as TCH/H, other subslot unused\n" \ + "'tch/hh': HR TS with both subslots used as TCH/H\n" \ + "'tch/-h': HR TS with only second subslot used as TCH/H\n" \ + "'pdch': TS used for PDCH (e.g. unused dynamic TS)\n" \ + "'-': TS unused\n" \ + "'*': TS allowed to be in any state\n" - "Handover to best better cell\n\n" - "The best neighbor cell is selected\n", +DEFUN(create_n_bts, create_n_bts_cmd, + "create-n-bts <1-255>", + "Create a number of BTS with four TCH/F and four TCH/H timeslots\n" + "Number of BTS to create\n") +{ + int i; + int n = atoi(argv[0]); + for (i = 0; i < n; i++) + _create_bts(1, NULL, 0); + return CMD_SUCCESS; +} - "create-n-bts", "7", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", - "10","0", - "6", "0","20", "1","21", "2","18", "3","20", "4","23", "5","19", - "expect-chan", "5", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "5", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; +DEFUN(create_bts, create_bts_cmd, + "create-bts trx-count <1-255> timeslots .TS_CFG", + "Create a new BTS with specific timeslot configuration\n" + "Create N TRX in the new BTS\n" + "TRX count\n" + "Timeslot config\n" + "Timeslot types for 8 * trx-count, each being one of CCCH+SDCCH4|SDCCH8|TCH/F|TCH/H|TCH/F_TCH/H_PDCH|...;" + " shorthands: cs+4 = CCCH+SDCCH4; dyn = TCH/F_TCH/H_PDCH\n") +{ + int num_trx = atoi(argv[0]); + _create_bts(num_trx, argv + 1, argc - 1); + return CMD_SUCCESS; +} -static char *test_case_2[] = { - "2", +DEFUN(create_ms, create_ms_cmd, + "create-ms bts <0-999> (TCH/F|TCH/H) (AMR|HR|EFR)", + "Create an MS using the next free matching lchan on a given BTS\n" + "BTS index to subscribe on\n" + "lchan type to select\n" + "codec\n") +{ + const char *bts_nr_str = argv[0]; + const char *tch_type = argv[1]; + const char *codec = argv[2]; + struct gsm_lchan *lchan; + 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), + !strcmp(tch_type, "TCH/F"), codec); + if (!lchan) { + fprintf(stderr, "Failed to create lchan!\n"); + return CMD_WARNING; + } + fprintf(stderr, " * New MS is at %s\n", gsm_lchan_name(lchan)); + return CMD_SUCCESS; +} - "Handover and Assignment must be enabled\n\n" - "This test will start with disabled assignment and handover. A\n" - "better neighbor cell (assignment enabled) will not be selected and \n" - "also no assignment from TCH/H to TCH/F to improve quality. There\n" - "will be no handover nor assignment. After enabling assignment on the\n" - "current cell, the MS will assign to TCH/F. After enabling handover\n" - "in the current cell, but disabling in the neighbor cell, handover\n" - "will not be performed, until it is enabled in the neighbor cell too.\n", +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" + ) +{ + struct gsm_lchan *lc; + uint8_t rxlev; + uint8_t rxqual; + uint8_t ta; + int i; + struct neighbor_meas nm[6] = {}; - "create-n-bts", "2", - "afs-rxlev-improve", "0", "5", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - "as-enable", "0", "0", - "ho-enable", "0", "0", - "meas-rep", "0","0","5","0", "0","0", "1","0","30", - "expect-no-chan", - "as-enable", "0", "1", - "meas-rep", "0","0","5","0", "0","0", "1","0","30", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "0", "5", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "ho-enable", "0", "1", - "ho-enable", "1", "0", - "meas-rep", "0","0","1","0", "0","0", "1","0","30", - "expect-no-chan", - "ho-enable", "1", "1", - "meas-rep", "0","0","1","0", "0","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; + lc = parse_lchan_args(argv); + argv += 4; + argc -= 4; -static char *test_case_3[] = { - "2", + rxlev = atoi(argv[0]); + rxqual = atoi(argv[1]); + ta = atoi(argv[2]); + argv += 3; + argc -= 3; - "Penalty timer must not run\n\n" - "The MS will try to handover to a better cell, but this will fail.\n" - "Even though the cell is still better, handover will not be performed\n" - "due to penalty timer after handover failure\n", + if (!lchan_state_is(lc, LCHAN_ST_ESTABLISHED)) { + fprintf(stderr, "Error: sending measurement report for %s which is in state %s\n", + gsm_lchan_name(lc), lchan_state_name(lc)); + exit(1); + } - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-failed", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - NULL -}; + /* skip the optional [neighbors] keyword */ + if (argc) { + argv++; + argc--; + } -static char *test_case_4[] = { - "2", + fprintf(stderr, "- Sending measurement report from %s: rxlev=%u rxqual=%u ta=%u (%d neighbors)\n", + gsm_lchan_name(lc), rxlev, rxqual, ta, argc); + + for (i = 0; i < 6; i++) { + int neighbor_bts_nr = i; + /* since our bts is not in the list of neighbor cells, we need to shift */ + if (neighbor_bts_nr >= lc->ts->trx->bts->nr) + neighbor_bts_nr++; + nm[i] = (struct neighbor_meas){ + .rxlev = argc > i ? atoi(argv[i]) : 0, + .bsic = 0x3f, + .bcch_f = i, + }; + if (i < argc) + 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; +} - "TCH/H keeping with HR codec\n\n" - "The MS is using half rate V1 codec, but the better cell is congested\n" - "at TCH/H slots. As the congestion is removed, the handover takes\n" - "place.\n", +DEFUN(congestion_check, congestion_check_cmd, + "congestion-check", + "Trigger a congestion check\n") +{ + fprintf(stderr, "- Triggering congestion check\n"); + got_chan_req = 0; + hodec2_congestion_check(bsc_gsmnet); + return CMD_SUCCESS; +} - "create-n-bts", "2", - "set-min-free", "1", "TCH/H", "4", - "create-ms", "0", "TCH/H", "HR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","5","0", "20","0", "1","0","30", - "expect-no-chan", - "set-min-free", "1", "TCH/H", "3", - "meas-rep", "0","0","5","0", "20","0", "1","0","30", - "expect-chan", "1", "5", - "ack-chan", - "expect-ho", "0", "5", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - NULL -}; +DEFUN(expect_no_chan, expect_no_chan_cmd, + "expect-no-chan", + "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)); + fprintf(stderr, "Test failed, because channel was requested\n"); + exit(1); + } + fprintf(stderr, " * Got no channel request\n"); + return CMD_SUCCESS; +} -static char *test_case_5[] = { - "2", +static void _expect_chan_activ(struct gsm_lchan *lchan) +{ + fprintf(stderr, "- Expecting channel request at %s\n", + gsm_lchan_name(lchan)); + if (!got_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) { + 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)); + exit(1); + } +} - "TCH/F keeping with FR codec\n\n" - "The MS is using full rate V1 codec, but the better cell is congested\n" - "at TCH/F slots. As the congestion is removed, the handover takes\n" - "place.\n", +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); +} - "create-n-bts", "2", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "FR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - "set-min-free", "1", "TCH/F", "3", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; +static void _expect_ho_req(struct gsm_lchan *lchan) +{ + fprintf(stderr, "- Expecting handover/assignment request at %s\n", + gsm_lchan_name(lchan)); -static char *test_case_6[] = { - "2", + if (!got_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, "Test failed, because handover/assignment was not commanded on the expected lchan\n"); + exit(1); + } +} - "TCH/F keeping with EFR codec\n\n" - "The MS is using full rate V2 codec, but the better cell is congested\n" - "at TCH/F slots. As the congestion is removed, the handover takes\n" - "place.\n", +DEFUN(expect_chan, expect_chan_cmd, + "expect-chan " LCHAN_ARGS, + "Expect a channel request from BSC to a cell for a specific lchan\n" + LCHAN_ARGS_DOC) +{ + _expect_chan_activ(parse_lchan_args(argv)); + return CMD_SUCCESS; +} - "create-n-bts", "2", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "EFR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - "set-min-free", "1", "TCH/F", "3", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; +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; +} -static char *test_case_7[] = { - "2", +DEFUN(expect_ho_req, expect_ho_req_cmd, + "expect-ho-req " LCHAN_ARGS, + "Expect a handover of a given lchan\n" + LCHAN_ARGS_DOC) +{ + _expect_ho_req(parse_lchan_args(argv)); + return CMD_SUCCESS; +} - "TCH/F to TCH/H changing with AMR codec\n\n" - "The MS is using AMR V3 codec, the better cell is congested at TCH/F\n" - "slots. The handover is performed to non-congested TCH/H slots.\n", +DEFUN(ho_detection, ho_detection_cmd, + "ho-detect", + "Send Handover Detection to the most recent HO target lchan\n") +{ + if (!got_chan_req) { + 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(chan_req_lchan); + return CMD_SUCCESS; +} - "create-n-bts", "2", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "5", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - NULL -}; +DEFUN(ho_complete, ho_complete_cmd, + "ho-complete", + "Send Handover Complete for the most recent HO target lchan\n") +{ + if (!got_chan_req) { + 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_complete(chan_req_lchan, true); + lchan_release_ack(ho_req_lchan); + return CMD_SUCCESS; +} -static char *test_case_8[] = { - "2", +DEFUN(expect_ho, expect_ho_cmd, + "expect-ho from " LCHAN_ARGS " to " LCHAN_ARGS, + "Expect a handover of a specific lchan to a specific target lchan;" + " shorthand for expect-chan, ack-chan, expect-ho, ho-complete.\n" + "lchan to handover from\n" LCHAN_ARGS_DOC + "lchan that to handover to\n" LCHAN_ARGS_DOC) +{ + struct gsm_lchan *from = parse_lchan_args(argv); + struct gsm_lchan *to = parse_lchan_args(argv+4); - "No handover to a cell with no slots available\n\n" - "If no slot is available, no handover is performed\n", + _expect_chan_activ(to); + _ack_chan_activ(to); + _expect_ho_req(from); + send_ho_detect(to); + send_ho_complete(to, true); + lchan_release_ack(from); + return CMD_SUCCESS; +} - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "expect-ts-use", "1", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/HH", "TCH/HH", "-", - "meas-rep", "0","0","1","0", "0","0", "1","0","30", - "expect-no-chan", - NULL -}; +DEFUN(ho_failed, ho_failed_cmd, + "ho-failed", + "Fail the most recent handover request\n") +{ + if (!got_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); + return CMD_SUCCESS; +} -static char *test_case_9[] = { - "2", +DEFUN(expect_ts_use, expect_ts_use_cmd, + "expect-ts-use trx <0-255> <0-255> states" TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE, + "Expect timeslots of a BTS' TRX to be in a specific state\n" + "Indicate a BTS and TRX\n" "BTS nr\n" "TRX nr\n" + "List of 8 expected TS states\n" + TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC) +{ + struct gsm_bts *bts = bts_by_num_str(argv[0]); + struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + argv += 2; + argc -= 2; + if (!_expect_ts_use(bts, trx, argv)) + exit(1); + return CMD_SUCCESS; +} - "No more parallel handovers, if max_unsync_ho is defined\n\n" - "There are tree mobiles that want to handover, but only two can do\n" - "it at a time, because the maximum number is limited to two.\n", +DEFUN(codec_f, codec_f_cmd, + "codec tch/f (AMR|EFR|FR)", + "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") +{ + osmo_talloc_replace_string(ctx, &codec_tch_f, argv[0]); + return CMD_SUCCESS; +} - "create-n-bts", "2", - "set-max-ho", "1", "2", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "0","0", "1","0","30", - "expect-chan", "1", "1", - "meas-rep", "0","0","2","0", "0","0", "1","0","30", - "expect-chan", "1", "2", - "meas-rep", "0","0","3","0", "0","0", "1","0","30", - "expect-no-chan", - NULL -}; +DEFUN(codec_h, codec_h_cmd, + "codec tch/h (AMR|HR)", + "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") +{ + osmo_talloc_replace_string(ctx, &codec_tch_h, argv[0]); + return CMD_SUCCESS; +} -static char *test_case_10[] = { - "2", +DEFUN(set_ts_use, set_ts_use_cmd, + "set-ts-use trx <0-255> <0-255> states" TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE, + "Put timeslots of a BTS' TRX into a specific state\n" + "Indicate a BTS and TRX\n" "BTS nr\n" "TRX nr\n" + "List of 8 TS states to apply\n" + TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC) +{ + struct gsm_bts *bts = bts_by_num_str(argv[0]); + struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + argv += 2; + argc -= 2; + if (!_set_ts_use(bts, trx, argv)) + exit(1); + if (!_expect_ts_use(bts, trx, argv)) + exit(1); + return CMD_SUCCESS; +} - "Hysteresis\n\n" - "If neighbor cell is better, handover is only performed if the\n" - "amount of improvement is greater or equal hyteresis\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "27","0", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "26","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_11[] = { - "2", - - "No Hysteresis and minimum RX level\n\n" - "If current cell's RX level is below mimium level, handover must be\n" - "performed, no matter of the hysteresis. First do not perform\n" - "handover to better neighbor cell, because the hysteresis is not\n" - "met. Second do not perform handover because better neighbor cell is\n" - "below minimum RX level. Third perform handover because current cell\n" - "is below minimum RX level, even if the better neighbor cell (minimum\n" - "RX level reached) does not meet the hysteresis.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "10","0", "1","0","11", - "expect-no-chan", - "meas-rep", "0","0","1","0", "8","0", "1","0","9", - "expect-no-chan", - "meas-rep", "0","0","1","0", "9","0", "1","0","10", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_12[] = { - "2", - - "No handover to congested cell\n\n" - "The better neighbor cell is congested, so no handover is performed.\n" - "After the congestion is over, handover will be performed.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - "set-min-free", "1", "TCH/F", "3", - "set-min-free", "1", "TCH/H", "3", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_13[] = { - "2", - - "Handover to balance congestion\n\n" - "The current and the better cell are congested, so no handover is\n" - "performed. This is because handover would congest the neighbor cell\n" - "more. After congestion raises in the current cell, the handover is\n" - "performed to balance congestion\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_14[] = { - "2", - - "Handover to congested cell, if RX level is below minimum\n\n" - "The better neighbor cell is congested, so no handover is performed.\n" - "If the RX level of the current cell drops below minimum acceptable\n" - "level, the handover is performed.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "meas-rep", "0","0","1","0", "10","0", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "9","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_15[] = { - "2", - - "Handover to cell with worse RXLEV, if RXQUAL is below minimum\n\n" - "The neighbor cell has worse RXLEV, so no handover is performed.\n" - "If the RXQUAL of the current cell drops below minimum acceptable\n" - "level, the handover is performed. It is also required that 10\n" - "reports are received, before RXQUAL is checked.\n", - /* (See also test 28, which tests for RXQUAL triggering HO to congested cell.) */ - /* TODO: bad RXQUAL may want to prefer assignment within the same cell to avoid interference. - * See Performance Enhancements in a Frequency Hopping GSM Network (Nielsen Wigard 2002), Chapter - * 2.1.1, "Interference" in the list of triggers on p.157. */ - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_16[] = { - "2", - - "Handover due to maximum TA exceeded\n\n" - "The MS in the current (best) cell has reached maximum allowed timing\n" - "advance. No handover is performed until the timing advance exceeds\n" - "it. The originating cell is still the best, but no handover is\n" - "performed back to that cell, because the penalty timer (due to\n" - "maximum allowed timing advance) is running.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-max-ta", "0", "5", /* of cell */ - "set-ta", "0", "5", /* of ms */ - "meas-rep", "0","0","1","0", "30","0", "1","0","20", - "expect-no-chan", - "set-ta", "0", "6", /* of ms */ - "meas-rep", "0","0","1","0", "30","0", "1","0","20", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "1","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - NULL -}; - -static char *test_case_17[] = { - "2", - - "Congestion check: No congestion\n\n" - "Three cells have different number of used slots, but there is no\n" - "congestion in any of these cells. No handover is performed.\n", - - "create-n-bts", "3", - "set-min-free", "0", "TCH/F", "2", - "set-min-free", "0", "TCH/H", "2", - "set-min-free", "1", "TCH/F", "2", - "set-min-free", "1", "TCH/H", "2", - "set-min-free", "2", "TCH/F", "2", - "set-min-free", "2", "TCH/H", "2", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","2","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","5","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","5","1", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "1","0","1","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "1","0","5","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "congestion-check", - "expect-no-chan", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-", - NULL -}; - -static char *test_case_18[] = { - "2", - - "Congestion check: One out of three cells is congested\n\n" - "Three cells have different number of used slots, but there is\n" - "congestion at TCH/F in the first cell. Handover is performed with\n" - "the best candidate.\n", - - "create-n-bts", "3", - "set-min-free", "0", "TCH/F", "2", - "set-min-free", "0", "TCH/H", "2", - "set-min-free", "1", "TCH/F", "2", - "set-min-free", "1", "TCH/H", "2", - "set-min-free", "2", "TCH/F", "2", - "set-min-free", "2", "TCH/H", "2", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","2","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","3","0", "30","0", "2","0","21","1","20", - "expect-no-chan", - "meas-rep", "0","0","5","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","5","1", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "1","0","1","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "1","0","5","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-", - "congestion-check", - "expect-chan", "1", "2", - "ack-chan", - "expect-ho", "0", "3", /* best candidate is MS 2 at BTS 0, TS 3 */ - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/H-", "-", "-", - NULL -}; - -static char *test_case_19[] = { - "2", - - "Congestion check: Balancing over congested cells\n\n" - "Two cells are congested, but the second cell is less congested.\n" - "Handover is performed to solve the congestion.\n", - - "create-n-bts", "2", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "FR", - "create-ms", "0", "TCH/F", "FR", - "create-ms", "0", "TCH/F", "FR", - "create-ms", "1", "TCH/F", "FR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "1","0","20", - "expect-no-chan", - "meas-rep", "0","0","2","0", "30","0", "1","0","21", - "expect-no-chan", - "meas-rep", "0","0","3","0", "30","0", "1","0","20", - "expect-no-chan", - "meas-rep", "1","0","1","0", "30","0", "1","0","20", - "expect-no-chan", - "congestion-check", - "expect-chan", "1", "2", - "ack-chan", - "expect-ho", "0", "2", /* best candidate is MS 1 at BTS 0, TS 2 */ - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "TCH/F", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "TCH/F", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_20[] = { - "2", - - "Congestion check: Solving congestion by handover TCH/F -> TCH/H\n\n" - "Two BTS, one MS in the first congested BTS must handover to\n" - "non-congested TCH/H of second BTS, in order to solve congestion\n", - "create-n-bts", "2", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "1","0","30", - "expect-no-chan", - "congestion-check", - "expect-chan", "1", "5", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - NULL -}; - -static char *test_case_21[] = { - "2", - - "Congestion check: Balancing congestion by handover TCH/F -> TCH/H\n\n" - "Two BTS, one MS in the first congested BTS must handover to\n" - "less-congested TCH/H of second BTS, in order to balance congestion\n", - "create-n-bts", "2", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "1","0","30", - "expect-no-chan", - "congestion-check", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "-", "-", "TCH/H-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_22[] = { - "2", - - "Congestion check: Upgrading worst candidate from TCH/H -> TCH/F\n\n" - "There is only one BTS. The TCH/H slots are congested. Since\n" - "assignment is performed to less-congested TCH/F, the candidate with\n" - "the worst RX level is chosen.\n", - - "create-n-bts", "1", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/HH", "TCH/H-", "-", - "meas-rep", "0","0","5","0", "30","0", "0", - "meas-rep", "0","0","5","1", "34","0", "0", - "meas-rep", "0","0","6","0", "20","0", "0", - "expect-no-chan", - "congestion-check", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "0", "6", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "TCH/HH", "-", "-", - NULL -}; - -static char *test_case_23[] = { - "2", - - "Story: 'A neighbor is your friend'\n", - - "create-n-bts", "3", - - "print", - "Andreas is driving along the coast, on a sunny june afternoon.\n" - "Suddenly he is getting a call from his friend and neighbor Axel.\n" - "\n" - "What happens: Two MS are created, #0 for Axel, #1 for Andreas.", - /* Axel */ - "create-ms", "2", "TCH/F", "AMR", - /* andreas */ - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "40","0", "1","0","30", - "expect-no-chan", - - "print", - "Axel asks Andreas if he would like to join them for a barbecue.\n" - "Axel's house is right in the neighborhood and the weather is fine.\n" - "Andreas agrees, so he drives to a close store to buy some barbecue\n" - "skewers.\n" - "\n" - "What happens: While driving, a different cell (mounted atop the\n" - "store) becomes better.", - /* drive to bts 1 */ - "meas-rep", "0","0","1","0", "20","0", "1","0","35", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - "print", - "While Andreas is walking into the store, Axel asks, if he could also\n" - "bring some beer. Andreas has problems understanding him: \"I have a\n" - "bad reception here. The cell tower is right atop the store, but poor\n" - "coverage inside. Can you repeat please?\"\n" - "\n" - "What happens: Inside the store the close cell is so bad, that\n" - "handover back to the previous cell is required.", - /* bts 1 becomes bad, so bts 0 helps out */ - "meas-rep", "1","0","1","0", "5","0", "1","0","20", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "1", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - "print", - "After Andreas bought skewers and beer, he leaves the store.\n" - "\n" - "What happens: Outside the store the close cell is better again, so\n" - "handover back to the that cell is performed.", - /* bts 1 becomes better again */ - "meas-rep", "0","0","1","0", "20","0", "1","0","35", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - "print", - /* bts 2 becomes better */ - "Andreas drives down to the lake where Axel's house is.\n" - "\n" - "What happens: There is a small cell at Axel's house, which becomes\n" - "better, because the current cell has no good comverage at the lake.", - "meas-rep", "1","0","1","0", "14","0", "2","0","2","1","63", - "expect-chan", "2", "2", - "ack-chan", - "expect-ho", "1", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "TCH/F", "-", "-", "-", "-", "-", - - "print", - "Andreas wonders why he still has good radio coverage: \"Last time it\n" - "was so bad\". Axel says: \"I installed a pico cell in my house,\n" - "now we can use our mobile phones down here at the lake.\"", - - NULL -}; - -static char *test_case_24[] = { - "2", - "No (or not enough) measurements for handover\n\n" - "Do not solve congestion in cell, because there is no measurement.\n" - "As soon as enough measurements available (1 in our case), perform\n" - "handover. Afterwards the old cell becomes congested and the new\n" - "cell is not. Do not perform handover until new measurements are\n" - "received.\n", - - /* two cells, first in congested, but no handover */ - "create-n-bts", "2", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "create-ms", "0", "TCH/F", "AMR", - "congestion-check", - "expect-no-chan", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - /* send measurement and trigger congestion check */ - "meas-rep", "0","0","1","0", "20","0", "1","0","20", - "expect-no-chan", - "congestion-check", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - /* congest the first cell and remove congestion from second cell */ - "set-min-free", "0", "TCH/F", "0", - "set-min-free", "0", "TCH/H", "0", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - - /* no handover until measurements applied */ - "congestion-check", - "expect-no-chan", - "meas-rep", "1","0","1","0", "20","0", "1","0","20", - "expect-no-chan", - "congestion-check", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "1", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_25[] = { - "1", - - "Stay in better cell\n\n" - "There are many neighbor cells, but only the current cell is the best\n" - "cell, so no handover is performed\n", - - "create-n-bts", "7", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", - "6","0","20","1","21","2","18","3","20","4","23","5","19", - "expect-no-chan", - NULL -}; - -static char *test_case_26[] = { - "1", - - "Handover to best better cell\n\n" - "The best neighbor cell is selected\n", - - "create-n-bts", "7", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "10","0", - "6","0","20","1","21","2","18","3","20","4","23","5","19", - "expect-chan", "5", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "5", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_27[] = { - "2", - - "Congestion check: Upgrading worst candidate from TCH/H -> TCH/F\n\n" - "There is only one BTS. The TCH/H slots are congested. Since\n" - "assignment is performed to less-congested TCH/F, the candidate with\n" - "the worst RX level is chosen. (So far like test 22.)\n" - "After that, trigger more congestion checks to ensure stability.\n", - - "create-n-bts", "1", - "set-min-free", "0", "TCH/F", "2", - "set-min-free", "0", "TCH/H", "4", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/HH", "TCH/H-", "-", - "meas-rep", "0","0","5","0", "30","0", "0", - "meas-rep", "0","0","5","1", "34","0", "0", - "meas-rep", "0","0","6","0", "20","0", "0", - "expect-no-chan", - "congestion-check", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "0", "6", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "TCH/HH", "-", "-", - "congestion-check", - "expect-chan", "0", "2", - "ack-chan", - "expect-ho", "0", "5", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/-H", "-", "-", - "congestion-check", - "expect-no-chan", - "congestion-check", - "expect-no-chan", - NULL -}; - -static char *test_case_28[] = { - "2", - - "Handover to congested cell, if RX quality is below minimum\n\n" - "The better neighbor cell is congested, so no handover is performed.\n" - "If the RX quality of the current cell drops below minimum acceptable\n" - "level, the handover is performed. It is also required that 10\n" - "resports are received, before RX quality is checked.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_29[] = { - "2", - - "Congestion check: Balancing congestion by handover TCH/F -> TCH/H\n\n" - "One BTS, and TCH/F are considered congested, TCH/H are not.\n" - , - "create-n-bts", "1", - "set-min-free", "0", "TCH/F", "3", - "set-min-free", "0", "TCH/H", "0", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "1","0","30", - "expect-no-chan", - "congestion-check", - "expect-chan", "0", "5", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "-", "-", "TCH/HH", "-", "-", - NULL -}; - -static char *test_case_30[] = { - "2", - - "Congestion check: Balancing congestion by handover TCH/F -> TCH/H\n\n" - "With dynamic timeslots.\n" - "As soon as only one TCH/F is left, there should be HO to a dyn TS.\n" - , - "create-bts", "1", "c+s4", "TCH/F", "TCH/F", "TCH/F", "dyn", "dyn", "dyn", "PDCH", - "set-min-free", "0", "TCH/F", "2", - "set-min-free", "0", "TCH/H", "0", - "as-enable", "0", "1", - "set-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "PDCH", "PDCH", "PDCH", - "meas-rep", "0","0","1","0", "40","0", "1", "0","30", - "meas-rep", "0","0","2","0", "40","0", "1", "0","30", - "meas-rep", "0","0","3","0", "40","0", "1", "0","30", - "meas-rep", "0","0","4","0", "40","0", "1", "0","30", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","5","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "PDCH", "PDCH", - "congestion-check", - "expect-chan", "0", "6", - "ack-chan", - "expect-ho", "0", "5", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "PDCH", "TCH/H-", "PDCH", - "congestion-check", - "expect-chan", "0", "6", - "ack-chan", - "expect-ho", "0", "4", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "PDCH", "PDCH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","4","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "PDCH", "TCH/HH", "PDCH", - "congestion-check", - "expect-chan", "0", "5", - "ack-chan", - "expect-ho", "0", "4", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "PDCH", "TCH/H-", "TCH/HH", "PDCH", - "congestion-check", - "expect-chan", "0", "5", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "TCH/F", "PDCH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","1","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "PDCH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-chan", "0", "4", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "TCH/F", "TCH/H-", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-chan", "0", "4", - "ack-chan", - "expect-ho", "0", "2", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "TCH/F", "TCH/HH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","1","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "TCH/F", "TCH/HH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","2","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/HH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - NULL -}; - -static char *test_case_31[] = { - "2", - - "Congestion check: re-use half used TCH/H to avoid switching more dyn TS to TCH/H\n" - , - "create-bts", "1", "c+s4", "TCH/F", "TCH/F", "TCH/F", "dyn", "dyn", "dyn", "PDCH", - "set-ts-use", "0", "0", "*", "-", "-", "-", "PDCH", "TCH/H-", "PDCH", "PDCH", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "PDCH", "TCH/HH", "PDCH", "PDCH", - NULL -}; - -static char *test_case_32[] = { - "2", - - "Congestion check: favor moving a TCH/H that frees a half-used dyn TS completely\n" - , - "create-bts", "1", "c+s4", "dyn", "dyn", "dyn", "dyn", "dyn", "-", "-", - "set-ts-use", "0", "0", "*", "PDCH", "TCH/HH", "TCH/H-", "TCH/HH", "PDCH", "-", "-", - "meas-rep", "0","0","2","1", "30","0", "0", - "meas-rep", "0","0","3","0", "30","0", "0", - "meas-rep", "0","0","4","0", "30","0", "0", - "meas-rep", "0","0","4","1", "30","0", "0", - /* pick one to move */ - "set-min-free", "0", "TCH/H", "6", - "congestion-check", - "expect-chan", "0", "1", - "ack-chan", - /* Not so good: should move the half-used TCH/H instead of "halving" another dyn TS */ - "expect-ho", "0", "4", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/HH", "TCH/H-", "TCH/H-", "PDCH", "-", "-", - NULL -}; - -static char **test_cases[] = { - test_case_0, - test_case_1, - test_case_2, - test_case_3, - test_case_4, - test_case_5, - test_case_6, - test_case_7, - test_case_8, - test_case_9, - test_case_10, - test_case_11, - test_case_12, - test_case_13, - test_case_14, - test_case_15, - test_case_16, - test_case_17, - test_case_18, - test_case_19, - test_case_20, - test_case_21, - test_case_22, - test_case_23, - test_case_24, - test_case_25, - test_case_26, - test_case_27, - test_case_28, - test_case_29, - test_case_30, - test_case_31, - test_case_32, -}; +static void ho_test_vty_init() +{ + install_element(CONFIG_NODE, &create_n_bts_cmd); + 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, &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); + install_element(CONFIG_NODE, &expect_ho_cmd); + install_element(CONFIG_NODE, &ho_failed_cmd); + install_element(CONFIG_NODE, &expect_ts_use_cmd); + install_element(CONFIG_NODE, &codec_f_cmd); + install_element(CONFIG_NODE, &codec_h_cmd); + install_element(CONFIG_NODE, &set_ts_use_cmd); +} static const struct log_info_cat log_categories[] = { [DHO] = { @@ -1879,47 +1210,61 @@ .num_cat = ARRAY_SIZE(log_categories), }; -struct gsm_bts *bts_by_num_str(const char *num_str) -{ - struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, atoi(num_str)); - OSMO_ASSERT(bts); - return bts; -} +static struct vty_app_info vty_info = { + .name = "ho_test", + .copyright = + "Copyright (C) 2020 sysmocom - s.f.m.c. GmbH\r\n" + "License AGPLv3+: GNU AGPL version 3 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", + .version = PACKAGE_VERSION, + .usr_attr_desc = { + [BSC_VTY_ATTR_RESTART_ABIS_OML_LINK] = \ + "This command applies on A-bis OML link (re)establishment", + [BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK] = \ + "This command applies on A-bis RSL link (re)establishment", + [BSC_VTY_ATTR_NEW_LCHAN] = \ + "This command applies for newly created lchans", + }, + .usr_attr_letters = { + [BSC_VTY_ATTR_RESTART_ABIS_OML_LINK] = 'o', + [BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK] = 'r', + [BSC_VTY_ATTR_NEW_LCHAN] = 'l', + }, +}; int main(int argc, char **argv) { - char **test_case; - int i; - int algorithm; - int test_case_i; - int last_test_i; + char *test_file = NULL; + int rc; + + if (argc < 2) { + fprintf(stderr, "Pass a handover test script as argument\n"); + exit(1); + } + test_file = argv[1]; ctx = talloc_named_const(NULL, 0, "handover_test"); msgb_talloc_ctx_init(ctx, 0); - - test_case_i = argc > 1? atoi(argv[1]) : -1; - last_test_i = ARRAY_SIZE(test_cases) - 1; - - if (test_case_i < 0 || test_case_i > last_test_i) { - for (i = 0; i <= last_test_i; i++) { - printf("Test #%d (algorithm %s):\n%s\n", i, - test_cases[i][0], test_cases[i][1]); - } - printf("\nPlease specify test case number 0..%d\n", last_test_i); - return EXIT_FAILURE; - } + vty_info.tall_ctx = ctx; osmo_init_logging2(ctx, &log_info); + log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_NONE); log_set_print_category(osmo_stderr_target, 1); log_set_print_category_hex(osmo_stderr_target, 0); - log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); + log_set_print_level(osmo_stderr_target, 1); + log_set_print_timestamp(osmo_stderr_target, 0); osmo_fsm_log_addr(false); bsc_network_alloc(); if (!bsc_gsmnet) exit(1); + vty_init(&vty_info); + bsc_vty_init(bsc_gsmnet); + ho_test_vty_init(); + ts_fsm_init(); lchan_fsm_init(); bsc_subscr_conn_fsm_init(); @@ -1946,355 +1291,24 @@ /* We don't really need any specific model here */ bts_model_unknown_init(); - test_case = test_cases[test_case_i]; - - fprintf(stderr, "--------------------\n"); - fprintf(stderr, "Performing the following test %d (algorithm %s):\n%s", - test_case_i, test_case[0], test_case[1]); - algorithm = atoi(test_case[0]); - test_case += 2; - fprintf(stderr, "--------------------\n"); - /* Disable the congestion check timer, we will trigger manually. */ bsc_gsmnet->hodec2.congestion_check_interval_s = 0; handover_decision_1_init(); hodec2_init(bsc_gsmnet); - while (*test_case) { - if (!strcmp(*test_case, "create-n-bts")) { - int n = atoi(test_case[1]); - for (i = 0; i < n; i++) - create_bts(1, bts_default_ts); - test_case += 2; - } else - if (!strcmp(*test_case, "create-bts")) { - /* new BTS with one TRX: - * "create-bts", "1", "CCCH+SDCCH4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "PDCH", - * - * new BTS with two TRX: - * "create-bts", "2", "CCCH+SDCCH4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "PDCH", - * "SDCCH8", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "PDCH", - */ - int num_trx = atoi(test_case[1]); - const char * const * ts_cfg = (void*)&test_case[2]; - create_bts(num_trx, ts_cfg); - test_case += 2 + 8 * num_trx; - } else - if (!strcmp(*test_case, "as-enable")) { - fprintf(stderr, "- Set assignment enable state at " - "BTS %s to %s\n", test_case[1], test_case[2]); - ho_set_hodec2_as_active(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "ho-enable")) { - fprintf(stderr, "- Set handover enable state at " - "BTS %s to %s\n", test_case[1], test_case[2]); - ho_set_ho_active(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "afs-rxlev-improve")) { - fprintf(stderr, "- Set afs RX level improvement at " - "BTS %s to %s\n", test_case[1], test_case[2]); - ho_set_hodec2_afs_bias_rxlev(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "afs-rxqual-improve")) { - fprintf(stderr, "- Set afs RX quality improvement at " - "BTS %s to %s\n", test_case[1], test_case[2]); - ho_set_hodec2_afs_bias_rxqual(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "set-min-free")) { - fprintf(stderr, "- Setting minimum required free %s " - "slots at BTS %s to %s\n", test_case[2], - test_case[1], test_case[3]); - if (!strcmp(test_case[2], "TCH/F")) - ho_set_hodec2_tchf_min_slots(bts_by_num_str(test_case[1])->ho, atoi(test_case[3])); - else - ho_set_hodec2_tchh_min_slots(bts_by_num_str(test_case[1])->ho, atoi(test_case[3])); - test_case += 4; - } else - if (!strcmp(*test_case, "set-max-ho")) { - fprintf(stderr, "- Setting maximum parallel handovers " - "at BTS %s to %s\n", test_case[1], - test_case[2]); - ho_set_hodec2_ho_max( bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "set-max-ta")) { - fprintf(stderr, "- Setting maximum timing advance " - "at BTS %s to %s\n", test_case[1], - test_case[2]); - ho_set_hodec2_max_distance(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "create-ms")) { - const char *bts_nr_str = test_case[1]; - const char *tch_type = test_case[2]; - const char *codec = test_case[3]; - struct gsm_lchan *lchan; - 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), - !strcmp(tch_type, "TCH/F"), codec); - if (!lchan) { - printf("Failed to create lchan!\n"); - return EXIT_FAILURE; - } - fprintf(stderr, " * New MS is at BTS %d TS %d\n", - lchan->ts->trx->bts->nr, - lchan->ts->nr); - test_case += 4; - } else - if (!strcmp(*test_case, "set-ta")) { - fprintf(stderr, "- Setting maximum timing advance " - "at MS %s to %s\n", test_case[1], - test_case[2]); - meas_ta_ms = atoi(test_case[2]); - test_case += 3; - } else - if (!strcmp(*test_case, "meas-rep")) { - /* meas-rep [ [...]] */ - int n; - struct gsm_bts *bts; - struct gsm_bts_trx *trx; - struct gsm_bts_trx_ts *ts; - struct gsm_lchan *lc; - int bts_nr = atoi(test_case[1]); - int trx_nr = atoi(test_case[2]); - int ts_nr = atoi(test_case[3]); - int ss_nr = atoi(test_case[4]); - meas_dl_rxlev = atoi(test_case[5]); - meas_dl_rxqual = atoi(test_case[6]); - n = atoi(test_case[7]); - - bts = gsm_bts_num(bsc_gsmnet, bts_nr); - trx = gsm_bts_trx_num(bts, trx_nr); - ts = &trx->ts[ts_nr]; - lc = &ts->lchan[ss_nr]; - - if (!lchan_state_is(lc, LCHAN_ST_ESTABLISHED)) { - printf("Error: sending measurement report for %d-%d-%d-%d which is in state %s\n", - bts_nr, trx_nr, ts_nr, ss_nr, - lchan_state_name(lc)); - exit(1); - } - - fprintf(stderr, "- Sending measurement report from " - "%d-%d-%d-%d (rxlev=%d, rxqual=%d)\n", - bts_nr, trx_nr, ts_nr, ss_nr, - meas_dl_rxlev, meas_dl_rxqual); - meas_num_nc = n; - test_case += 8; - for (i = 0; i < n; i++) { - int nr = atoi(test_case[0]); - /* since our bts is not in the list of neighbor - * cells, we need to shift */ - if (nr >= lc->ts->trx->bts->nr) - nr++; - fprintf(stderr, " * Neighbor cell #%s, actual " - "BTS %d (rxlev=%s)\n", test_case[0], nr, - test_case[1]); - meas_bcch_f_nc[i] = atoi(test_case[0]); - /* bts number, not counting our own */ - meas_rxlev_nc[i] = atoi(test_case[1]); - meas_bsic_nc[i] = 0x3f; - test_case += 2; - } - got_chan_req = 0; - gen_meas_rep(lc); - } else - if (!strcmp(*test_case, "congestion-check")) { - fprintf(stderr, "- Triggering congestion check\n"); - got_chan_req = 0; - if (algorithm == 2) - hodec2_congestion_check(bsc_gsmnet); - test_case += 1; - } else - if (!strcmp(*test_case, "expect-chan")) { - fprintf(stderr, "- Expecting channel request at BTS %s " - "TS %s\n", test_case[1], test_case[2]); - if (!got_chan_req) { - printf("Test failed, because no channel was " - "requested\n"); - return EXIT_FAILURE; - } - fprintf(stderr, " * Got channel request at BTS %d " - "TS %d\n", chan_req_lchan->ts->trx->bts->nr, - chan_req_lchan->ts->nr); - if (chan_req_lchan->ts->trx->bts->nr - != atoi(test_case[1])) { - printf("Test failed, because channel was not " - "requested on expected BTS\n"); - return EXIT_FAILURE; - } - if (chan_req_lchan->ts->nr != atoi(test_case[2])) { - printf("Test failed, because channel was not " - "requested on expected TS\n"); - return EXIT_FAILURE; - } - test_case += 3; - } else - if (!strcmp(*test_case, "expect-no-chan")) { - fprintf(stderr, "- Expecting no channel request\n"); - if (got_chan_req) { - fprintf(stderr, " * Got channel request at " - "BTS %d TS %d\n", - chan_req_lchan->ts->trx->bts->nr, - chan_req_lchan->ts->nr); - printf("Test failed, because channel was " - "requested\n"); - return EXIT_FAILURE; - } - fprintf(stderr, " * Got no channel request\n"); - test_case += 1; - } else - if (!strcmp(*test_case, "expect-ho")) { - fprintf(stderr, "- Expecting handover/assignment " - "request at BTS %s TS %s\n", test_case[1], - test_case[2]); - if (!got_ho_req) { - printf("Test failed, because no handover was " - "requested\n"); - return EXIT_FAILURE; - } - fprintf(stderr, " * Got handover/assignment request at " - "BTS %d TS %d\n", - ho_req_lchan->ts->trx->bts->nr, - ho_req_lchan->ts->nr); - if (ho_req_lchan->ts->trx->bts->nr - != atoi(test_case[1])) { - printf("Test failed, because " - "handover/assignment was not commanded " - "at the expected BTS\n"); - return EXIT_FAILURE; - } - if (ho_req_lchan->ts->nr != atoi(test_case[2])) { - printf("Test failed, because " - "handover/assignment was not commanded " - "at the expected TS\n"); - return EXIT_FAILURE; - } - test_case += 3; - } else - if (!strcmp(*test_case, "ack-chan")) { - fprintf(stderr, "- Acknowledging channel request\n"); - if (!got_chan_req) { - printf("Cannot ack channel, because no " - "request\n"); - return EXIT_FAILURE; - } - test_case += 1; - got_ho_req = 0; - send_chan_act_ack(chan_req_lchan, 1); - } else - if (!strcmp(*test_case, "ho-complete")) { - fprintf(stderr, "- Acknowledging handover/assignment " - "request\n"); - if (!got_chan_req) { - printf("Cannot ack handover/assignment, " - "because no chan request\n"); - return EXIT_FAILURE; - } - if (!got_ho_req) { - printf("Cannot ack handover/assignment, " - "because no ho request\n"); - return EXIT_FAILURE; - } - test_case += 1; - got_chan_req = 0; - got_ho_req = 0; - send_ho_complete(chan_req_lchan, true); - } else - if (!strcmp(*test_case, "ho-failed")) { - fprintf(stderr, "- Making handover fail\n"); - if (!got_chan_req) { - printf("Cannot fail handover, because no chan " - "request\n"); - return EXIT_FAILURE; - } - test_case += 1; - got_chan_req = 0; - got_ho_req = 0; - send_ho_complete(ho_req_lchan, false); - } else - if (!strcmp(*test_case, "expect-ts-use")) { - /* expect-ts-use 8x - * e.g. - * expect-ts-use 0 0 - TCH/F - - TCH/H- TCH/HH TCH/-H PDCH - * TCH/F: one FR call. - * TCH/H-: HR TS with first subslot used as TCH/H, other subslot unused. - * TCH/HH: HR TS with both subslots used as TCH/H - * TCH/-H: HR TS with only second subslot used as TCH/H - * PDCH: TS used for PDCH (e.g. unused dynamic TS) - */ - int bts_nr = atoi(test_case[1]); - int trx_nr = atoi(test_case[2]); - const char * const * ts_use = (void*)&test_case[3]; - if (!expect_ts_use(bts_nr, trx_nr, ts_use)) - return EXIT_FAILURE; - test_case += 1 + 2 + 8; - } else - if (!strcmp(*test_case, "set-ts-use")) { - /* set-ts-use 8x - * e.g. - * set-ts-use 0 0 * TCH/F - - TCH/H- TCH/HH TCH/-H PDCH - * '*': keep as is - * TCH/F: one FR call. - * TCH/H-: HR TS with first subslot used as TCH/H, other subslot unused. - * TCH/HH: HR TS with both subslots used as TCH/H - * TCH/-H: HR TS with only second subslot used as TCH/H - * PDCH: TS used for PDCH (e.g. unused dynamic TS) - */ - int bts_nr = atoi(test_case[1]); - int trx_nr = atoi(test_case[2]); - const char * const * ts_use = (void*)&test_case[3]; - if (!set_ts_use(bts_nr, trx_nr, ts_use)) - return EXIT_FAILURE; - if (!expect_ts_use(bts_nr, trx_nr, ts_use)) - return EXIT_FAILURE; - test_case += 1 + 2 + 8; - } else - if (!strcmp(*test_case, "print")) { - fprintf(stderr, "\n%s\n\n", test_case[1]); - test_case += 2; - } else { - printf("Unknown test command '%s', please fix!\n", - *test_case); - return EXIT_FAILURE; - } - - { - /* Help the lchan out of releasing states */ - struct gsm_bts *bts; - llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { - struct gsm_bts_trx *trx; - llist_for_each_entry(trx, &bts->trx_list, list) { - int ts_nr; - for (ts_nr = 0; ts_nr < TRX_NR_TS; ts_nr++) { - struct gsm_lchan *lchan; - ts_for_each_lchan(lchan, &trx->ts[ts_nr]) { - - if (lchan->fi && lchan->fi->state == LCHAN_ST_WAIT_BEFORE_RF_RELEASE) { - osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_WAIT_RF_RELEASE_ACK, 0, 0); - osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RSL_RF_CHAN_REL_ACK, 0); - } - } - } - } - } - } + rc = vty_read_config_file(test_file, NULL); + if (rc < 0) { + fprintf(stderr, "Failed to parse the test file: '%s'\n", test_file); } - fprintf(stderr, "--------------------\n"); - - printf("Test OK\n"); - - fprintf(stderr, "--------------------\n"); - talloc_free(ctx); - return EXIT_SUCCESS; + fprintf(stderr,"-------------------\n"); + if (!rc) + fprintf(stderr, "pass\n"); + else + fprintf(stderr, "FAIL\n"); + return rc; } void rtp_socket_free() {} @@ -2334,3 +1348,12 @@ void osmo_bsc_sigtran_reset(void) {} void bssmap_reset_alloc(void) {} void bssmap_reset_is_conn_ready(void) {} +const char *osmo_mgcpc_ep_name(const struct osmo_mgcpc_ep *ep) +{ + return "fake-ep"; +} +const char *osmo_mgcpc_ep_ci_name(const struct osmo_mgcpc_ep_ci *ci) +{ + return "fake-ci"; +} + diff --git a/tests/handover/handover_test.ok b/tests/handover/handover_test.ok deleted file mode 100644 index 678f9a3..0000000 --- a/tests/handover/handover_test.ok +++ /dev/null @@ -1 +0,0 @@ -Test OK diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok new file mode 100644 index 0000000..5ec8dc2 --- /dev/null +++ b/tests/handover/handover_tests.ok @@ -0,0 +1,33 @@ +pass test0000.ho_vty +pass test0001.ho_vty +pass test0002.ho_vty +pass test0003.ho_vty +pass test0004.ho_vty +pass test0005.ho_vty +pass test0006.ho_vty +pass test0007.ho_vty +pass test0008.ho_vty +pass test0009.ho_vty +pass test0010.ho_vty +pass test0011.ho_vty +pass test0012.ho_vty +pass test0013.ho_vty +pass test0014.ho_vty +pass test0015.ho_vty +pass test0016.ho_vty +pass test0017.ho_vty +pass test0018.ho_vty +pass test0019.ho_vty +pass test0020.ho_vty +pass test0021.ho_vty +pass test0022.ho_vty +pass test0023.ho_vty +pass test0024.ho_vty +pass test0025.ho_vty +pass test0026.ho_vty +pass test0027.ho_vty +pass test0028.ho_vty +pass test0029.ho_vty +pass test0030.ho_vty +pass test0031.ho_vty +pass test0032.ho_vty diff --git a/tests/handover/handover_tests.sh b/tests/handover/handover_tests.sh new file mode 100755 index 0000000..68a8e2d --- /dev/null +++ b/tests/handover/handover_tests.sh @@ -0,0 +1,68 @@ +#!/bin/sh +set -e +tests_dir="${1:-.}" +build_dir="${2:-.}" +update="$3" +test -d "$tests_dir" +test -d "$build_dir" + +if [ -n "$update" -a "x$update" != "x-u" ]; then + echo "unknown argument: $update" + exit 1 +fi + +one_test() { + test_path="$1" + test_name="$(basename "$test_path")" + got_out="$(mktemp "tmp.$test_name.stdout.XXXXX")" + got_err="$(mktemp "tmp.$test_name.stderr.XXXXX")" + 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 + fi + fi + rm "$got_out" + rm "$got_err" + set -e + return $rc +} + +results="$(mktemp "tmp.handover_test_results.XXXXX")" +for test_path in "$tests_dir"/test*.ho_vty ; do + test_name="$(basename "$test_path")" + if one_test "$test_path"; then + echo "pass $test_name" >> "$results" + else + echo "FAIL $test_name" >> "$results" + fi +done +set +e +cat "$results" +failed="$(grep FAIL "$results")" +if [ -z "$failed" -a "x$update" = "x-u" ]; then + cp "$results" "$tests_dir"/handover_tests.ok +fi +rm "$results" +if [ -n "$failed" ]; then + echo "tests failed" + exit 1 +fi +exit 0 diff --git a/tests/handover/test0000.ho_vty b/tests/handover/test0000.ho_vty new file mode 100644 index 0000000..00e0e1a --- /dev/null +++ b/tests/handover/test0000.ho_vty @@ -0,0 +1,6 @@ +# Stay in better cell +# There are many neighbor cells, but only the current cell is the best cell, so no handover is performed +create-n-bts 7 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 21 18 20 23 19 +expect-no-chan diff --git a/tests/handover/test0001.ho_vty b/tests/handover/test0001.ho_vty new file mode 100644 index 0000000..afa0a88 --- /dev/null +++ b/tests/handover/test0001.ho_vty @@ -0,0 +1,8 @@ +# Handover to best better cell +# The best neighbor cell is selected +create-n-bts 7 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 20 21 18 20 23 19 +expect-ho from lchan 0 0 1 0 to lchan 5 0 1 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 5 0 states * TCH/F - - - - - - diff --git a/tests/handover/test0002.ho_vty b/tests/handover/test0002.ho_vty new file mode 100644 index 0000000..ffd0311 --- /dev/null +++ b/tests/handover/test0002.ho_vty @@ -0,0 +1,36 @@ +# Handover and Assignment must be enabled +# This test will start with disabled assignment and handover. A +# better neighbor cell (assignment enabled) will not be selected and +# also no assignment from TCH/H to TCH/F to improve quality. There +# will be no handover nor assignment. After enabling assignment on the +# current cell, the MS will assign to TCH/F. After enabling handover +# in the current cell, but disabling in the neighbor cell, handover +# will not be performed, until it is enabled in the neighbor cell too. +network + handover 0 + handover2 afs-bias rxlev 5 + handover2 assignment 0 + +create-n-bts 2 +set-ts-use trx 0 0 states * - - - - TCH/H- - - +meas-rep lchan 0 0 5 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-no-chan +network + bts 0 + handover2 assignment 1 +meas-rep lchan 0 0 5 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - - +network + bts 0 + handover 1 +meas-rep lchan 0 0 1 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-no-chan +network + bts 1 + handover 1 +meas-rep lchan 0 0 1 0 rxlev 0 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 - - - - - - + diff --git a/tests/handover/test0003.ho_vty b/tests/handover/test0003.ho_vty new file mode 100644 index 0000000..be25c20 --- /dev/null +++ b/tests/handover/test0003.ho_vty @@ -0,0 +1,16 @@ +# Penalty timer must not run +# The MS will try to handover to a better cell, but this will fail. +# Even though the cell is still better, handover will not be performed +# due to penalty timer after handover failure + +create-n-bts 2 +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 - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 +expect-no-chan diff --git a/tests/handover/test0004.ho_vty b/tests/handover/test0004.ho_vty new file mode 100644 index 0000000..2f514bf --- /dev/null +++ b/tests/handover/test0004.ho_vty @@ -0,0 +1,20 @@ +# TCH/H keeping with HR codec +# The MS is using half rate V1 codec, but the better cell is congested +# at TCH/H slots. As the congestion is removed, the handover takes +# place. + +create-n-bts 2 +network + bts 1 + handover2 min-free-slots tch/h 4 +codec tch/h HR +set-ts-use trx 0 0 states * - - - - TCH/H- - - +meas-rep lchan 0 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 30 +expect-no-chan +network + bts 1 + handover2 min-free-slots tch/h 3 +meas-rep lchan 0 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 30 +expect-ho from lchan 0 0 5 0 to lchan 1 0 5 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * - - - - TCH/H- - - diff --git a/tests/handover/test0005.ho_vty b/tests/handover/test0005.ho_vty new file mode 100644 index 0000000..4729d25 --- /dev/null +++ b/tests/handover/test0005.ho_vty @@ -0,0 +1,21 @@ +# TCH/F keeping with FR codec +# The MS is using full rate V1 codec, but the better cell is congested +# at TCH/F slots. As the congestion is removed, the handover takes +# place. + +create-n-bts 2 +network + bts 1 + handover2 min-free-slots tch/f 4 +codec tch/f FR +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-no-chan +network + bts 1 + handover2 min-free-slots tch/f 3 +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 - - - - - - + diff --git a/tests/handover/test0006.ho_vty b/tests/handover/test0006.ho_vty new file mode 100644 index 0000000..f1a9b40 --- /dev/null +++ b/tests/handover/test0006.ho_vty @@ -0,0 +1,21 @@ +# TCH/F keeping with EFR codec +# The MS is using full rate V2 codec, but the better cell is congested +# at TCH/F slots. As the congestion is removed, the handover takes +# place. + +create-n-bts 2 +network + bts 1 + handover2 min-free-slots tch/f 4 +codec tch/f EFR +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-no-chan +network + bts 1 + handover2 min-free-slots tch/f 3 +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 - - - - - - + diff --git a/tests/handover/test0007.ho_vty b/tests/handover/test0007.ho_vty new file mode 100644 index 0000000..22c5e87 --- /dev/null +++ b/tests/handover/test0007.ho_vty @@ -0,0 +1,14 @@ +# TCH/F to TCH/H changing with AMR codec +# The MS is using AMR V3 codec, the better cell is congested at TCH/F +# slots. The handover is performed to non-congested TCH/H slots. + +create-n-bts 2 +network + bts 1 + handover2 min-free-slots tch/f 4 +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-ho from lchan 0 0 1 0 to lchan 1 0 5 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * - - - - TCH/H- - - + diff --git a/tests/handover/test0008.ho_vty b/tests/handover/test0008.ho_vty new file mode 100644 index 0000000..3b06d3d --- /dev/null +++ b/tests/handover/test0008.ho_vty @@ -0,0 +1,9 @@ +# No handover to a cell with no slots available +# If no slot is available, no handover is performed + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/HH TCH/HH - +meas-rep lchan 0 0 1 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-no-chan + diff --git a/tests/handover/test0009.ho_vty b/tests/handover/test0009.ho_vty new file mode 100644 index 0000000..31482d2 --- /dev/null +++ b/tests/handover/test0009.ho_vty @@ -0,0 +1,16 @@ +# No more parallel handovers, if max_unsync_ho is defined +# There are three mobiles that want to handover, but only two can do +# it at a time, because the maximum number is limited to two. + +create-n-bts 2 +network + bts 1 + handover2 max-handovers 2 +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 +meas-rep lchan 0 0 2 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-chan lchan 1 0 2 0 +meas-rep lchan 0 0 3 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-no-chan + diff --git a/tests/handover/test0010.ho_vty b/tests/handover/test0010.ho_vty new file mode 100644 index 0000000..5c06a36 --- /dev/null +++ b/tests/handover/test0010.ho_vty @@ -0,0 +1,13 @@ +# Hysteresis +# If neighbor cell is better, handover is only performed if the +# amount of improvement is greater or equal hyteresis + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 27 rxqual 0 ta 0 neighbors 30 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 26 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 - - - - - - + diff --git a/tests/handover/test0011.ho_vty b/tests/handover/test0011.ho_vty new file mode 100644 index 0000000..e034fad --- /dev/null +++ b/tests/handover/test0011.ho_vty @@ -0,0 +1,20 @@ +# No Hysteresis and minimum RX level +# If current cell's RX level is below mimium level, handover must be +# performed, no matter of the hysteresis. First do not perform +# handover to better neighbor cell, because the hysteresis is not +# met. Second do not perform handover because better neighbor cell is +# below minimum RX level. Third perform handover because current cell +# is below minimum RX level, even if the better neighbor cell (minimum +# RX level reached) does not meet the hysteresis. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 11 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 8 rxqual 0 ta 0 neighbors 9 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 9 rxqual 0 ta 0 neighbors 10 +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 - - - - - - + diff --git a/tests/handover/test0012.ho_vty b/tests/handover/test0012.ho_vty new file mode 100644 index 0000000..b2319d4 --- /dev/null +++ b/tests/handover/test0012.ho_vty @@ -0,0 +1,21 @@ +# No handover to congested cell +# The better neighbor cell is congested, so no handover is performed. +# After the congestion is over, handover will be performed. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +network + bts 1 + 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 +network + bts 1 + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 3 +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 - - - - - - + diff --git a/tests/handover/test0013.ho_vty b/tests/handover/test0013.ho_vty new file mode 100644 index 0000000..e8304a1 --- /dev/null +++ b/tests/handover/test0013.ho_vty @@ -0,0 +1,24 @@ +# Handover to balance congestion +# The current and the better cell are congested, so no handover is +# performed. This is because handover would congest the neighbor cell +# more. After congestion rises in the current cell, the handover is +# performed to balance congestion + +create-n-bts 2 +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 +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 - - - - - +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 * - TCH/F - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0014.ho_vty b/tests/handover/test0014.ho_vty new file mode 100644 index 0000000..d43b89c --- /dev/null +++ b/tests/handover/test0014.ho_vty @@ -0,0 +1,18 @@ +# Handover to congested cell, if RX level is below minimum +# The better neighbor cell is congested, so no handover is performed. +# If the RX level of the current cell drops below minimum acceptable +# level, the handover is performed. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +network + bts 1 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 +meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 30 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 9 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 - - - - - - + diff --git a/tests/handover/test0015.ho_vty b/tests/handover/test0015.ho_vty new file mode 100644 index 0000000..2b80d01 --- /dev/null +++ b/tests/handover/test0015.ho_vty @@ -0,0 +1,37 @@ +# Handover to cell with worse RXLEV, if RXQUAL is below minimum +# The neighbor cell has worse RXLEV, so no handover is performed. +# If the RXQUAL of the current cell drops below minimum acceptable +# level, the handover is performed. It is also required that 10 +# reports are received, before RXQUAL is checked. +# +# (See also test 28, which tests for RXQUAL triggering HO to congested cell.) +# +# TODO: bad RXQUAL may want to prefer assignment within the same cell to avoid interference. +# See Performance Enhancements in a Frequency Hopping GSM Network (Nielsen Wigard 2002), Chapter +# 2.1.1, "Interference" in the list of triggers on p.157. + +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 +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 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0016.ho_vty b/tests/handover/test0016.ho_vty new file mode 100644 index 0000000..05c4a76 --- /dev/null +++ b/tests/handover/test0016.ho_vty @@ -0,0 +1,21 @@ +# Handover due to maximum TA exceeded +# The MS in the current (best) cell has reached maximum allowed timing +# advance. No handover is performed until the timing advance exceeds +# it. The originating cell is still the best, but no handover is +# performed back to that cell, because the penalty timer (due to +# maximum allowed timing advance) is running. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +network + bts 0 + handover2 maximum distance 5 +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 5 neighbors 20 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 6 neighbors 20 +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 - - - - - - +meas-rep lchan 1 0 1 0 rxlev 20 rxqual 0 ta 6 neighbors 30 +expect-no-chan + diff --git a/tests/handover/test0017.ho_vty b/tests/handover/test0017.ho_vty new file mode 100644 index 0000000..824d1d3 --- /dev/null +++ b/tests/handover/test0017.ho_vty @@ -0,0 +1,34 @@ +# Congestion check: No congestion +# Three cells have different number of used slots, but there is no +# congestion in any of these cells. No handover is performed. + +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 +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 +expect-no-chan +congestion-check +expect-no-chan +expect-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - +expect-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - + diff --git a/tests/handover/test0018.ho_vty b/tests/handover/test0018.ho_vty new file mode 100644 index 0000000..4919d20 --- /dev/null +++ b/tests/handover/test0018.ho_vty @@ -0,0 +1,39 @@ +# Congestion check: One out of three cells is congested +# Three cells have different number of used slots, but there is +# congestion at TCH/F in the first cell. Handover is performed with +# the best candidate. + +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 +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 +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 3 0 rxlev 30 rxqual 0 ta 0 neighbors 21 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 +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 +expect-ho from lchan 0 0 3 0 to lchan 1 0 2 0 +expect-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - +expect-ts-use trx 1 0 states * TCH/F TCH/F - - TCH/H- - - + diff --git a/tests/handover/test0019.ho_vty b/tests/handover/test0019.ho_vty new file mode 100644 index 0000000..2e7fa5a --- /dev/null +++ b/tests/handover/test0019.ho_vty @@ -0,0 +1,26 @@ +# Congestion check: Balancing over congested cells +# Two cells are congested, but the second cell is less congested. +# Handover is performed to solve the congestion. + +create-n-bts 2 +network + bts 0 + handover2 min-free-slots tch/f 4 + bts 1 + 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 - - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan +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 - - - - +expect-ts-use trx 1 0 states * TCH/F TCH/F - - - - - + diff --git a/tests/handover/test0020.ho_vty b/tests/handover/test0020.ho_vty new file mode 100644 index 0000000..5c93494 --- /dev/null +++ b/tests/handover/test0020.ho_vty @@ -0,0 +1,19 @@ +# Congestion check: Solving congestion by handover TCH/F -> TCH/H +# Two BTS, one MS in the first congested BTS must handover to +# non-congested TCH/H of second BTS, in order to solve congestion + +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 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 30 +expect-no-chan +congestion-check +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * - - - - TCH/H- - - + diff --git a/tests/handover/test0021.ho_vty b/tests/handover/test0021.ho_vty new file mode 100644 index 0000000..79a3084 --- /dev/null +++ b/tests/handover/test0021.ho_vty @@ -0,0 +1,20 @@ +# Congestion check: Balancing congestion by handover TCH/F -> TCH/H +# Two BTS, one MS in the first congested BTS must handover to +# less-congested TCH/H of second BTS, in order to balance congestion + +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 +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 +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 - - TCH/H- - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0022.ho_vty b/tests/handover/test0022.ho_vty new file mode 100644 index 0000000..d6515fc --- /dev/null +++ b/tests/handover/test0022.ho_vty @@ -0,0 +1,19 @@ +# Congestion check: Upgrading worst candidate from TCH/H -> TCH/F +# There is only one BTS. The TCH/H slots are congested. Since +# assignment is performed to less-congested TCH/F, the candidate with +# the worst RX level is chosen. + +create-n-bts 1 +network + bts 0 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 +set-ts-use trx 0 0 states * - - - - TCH/HH TCH/H- - +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 +meas-rep lchan 0 0 5 1 rxlev 34 rxqual 0 ta 0 +meas-rep lchan 0 0 6 0 rxlev 20 rxqual 0 ta 0 +expect-no-chan +congestion-check +expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - TCH/HH - - + diff --git a/tests/handover/test0023.ho_vty b/tests/handover/test0023.ho_vty new file mode 100644 index 0000000..4e82761 --- /dev/null +++ b/tests/handover/test0023.ho_vty @@ -0,0 +1,72 @@ +# Story: 'A neighbor is your friend' + +create-n-bts 3 + +# Andreas is driving along the coast, on a sunny june afternoon. +# Suddenly he is getting a call from his friend and neighbor Axel. +# +# What happens: Two MS are created, #0 for Axel, #1 for Andreas. +# Axel: +create-ms bts 2 TCH/F AMR +# andreas: +create-ms bts 0 TCH/F AMR +expect-ts-use trx 0 0 states * TCH/F - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - +expect-ts-use trx 2 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +# Axel asks Andreas if he would like to join them for a barbecue. +# Axel's house is right in the neighborhood and the weather is fine. +# Andreas agrees, so he drives to a close store to buy some barbecue +# skewers. +# +# What happens: While driving, a different cell (mounted atop the +# store) becomes better. +# drive to bts 1: +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 35 +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 - - - - - - +expect-ts-use trx 2 0 states * TCH/F - - - - - - + +# While Andreas is walking into the store, Axel asks, if he could also +# bring some beer. Andreas has problems understanding him: "I have a +# bad reception here. The cell tower is right atop the store, but poor +# coverage inside. Can you repeat please?" +# +# What happens: Inside the store the close cell is so bad, that +# handover back to the previous cell is required. +# bts 1 becomes bad, so bts 0 helps out: +meas-rep lchan 1 0 1 0 rxlev 5 rxqual 0 ta 0 neighbors 20 +expect-ho from lchan 1 0 1 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - +expect-ts-use trx 2 0 states * TCH/F - - - - - - + +# After Andreas bought skewers and beer, he leaves the store. +# +# What happens: Outside the store the close cell is better again, so +# handover back to the that cell is performed. +# bts 1 becomes better again: +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 35 +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 - - - - - - +expect-ts-use trx 2 0 states * TCH/F - - - - - - + +# bts 2 becomes better: +# Andreas drives down to the lake where Axel's house is. +# +# What happens: There is a small cell at Axel's house, which becomes +# better, because the current cell has no good comverage at the lake. +meas-rep lchan 1 0 1 0 rxlev 14 rxqual 0 ta 0 neighbors 2 63 +expect-ho from lchan 1 0 1 0 to lchan 2 0 2 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - +expect-ts-use trx 2 0 states * TCH/F TCH/F - - - - - + +# Andreas wonders why he still has good radio coverage: "Last time it +# was so bad". Axel says: "I installed a pico cell in my house, +# now we can use our mobile phones down here at the lake." + diff --git a/tests/handover/test0024.ho_vty b/tests/handover/test0024.ho_vty new file mode 100644 index 0000000..b67a248 --- /dev/null +++ b/tests/handover/test0024.ho_vty @@ -0,0 +1,46 @@ +# No (or not enough) measurements for handover +# Do not solve congestion in cell, because there is no measurement. +# As soon as enough measurements available (1 in our case), perform +# handover. Afterwards the old cell becomes congested and the new +# cell is not. Do not perform handover until new measurements are +# received. +# +# two cells, first in congested, but no handover: + +create-n-bts 2 +network + bts 0 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 +set-ts-use trx 0 0 states * TCH/F - - - - - - +congestion-check +expect-no-chan +expect-ts-use trx 0 0 states * TCH/F - - - - - - + +# send measurement and trigger congestion check: +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 20 +expect-no-chan +congestion-check +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 - - - - - - + +# congest the first cell and remove congestion from second cell: +network + bts 0 + handover2 min-free-slots tch/f 0 + handover2 min-free-slots tch/h 0 + bts 1 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 + +# no handover until measurements applied: +congestion-check +expect-no-chan +meas-rep lchan 1 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 20 +expect-no-chan +congestion-check +expect-ho from lchan 1 0 1 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - + diff --git a/tests/handover/test0025.ho_vty b/tests/handover/test0025.ho_vty new file mode 100644 index 0000000..b3e76f8 --- /dev/null +++ b/tests/handover/test0025.ho_vty @@ -0,0 +1,10 @@ +# Stay in better cell +# There are many neighbor cells, but only the current cell is the best +# cell, so no handover is performed + +create-n-bts 7 +create-ms bts 0 TCH/F AMR +expect-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 21 18 20 23 19 +expect-no-chan + diff --git a/tests/handover/test0026.ho_vty b/tests/handover/test0026.ho_vty new file mode 100644 index 0000000..c3f5544 --- /dev/null +++ b/tests/handover/test0026.ho_vty @@ -0,0 +1,10 @@ +# Handover to best better cell +# The best neighbor cell is selected + +create-n-bts 7 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 20 21 18 20 23 19 +expect-ho from lchan 0 0 1 0 to lchan 5 0 1 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 5 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0027.ho_vty b/tests/handover/test0027.ho_vty new file mode 100644 index 0000000..e7778d0 --- /dev/null +++ b/tests/handover/test0027.ho_vty @@ -0,0 +1,27 @@ +# Congestion check: Upgrading worst candidate from TCH/H -> TCH/F +# There is only one BTS. The TCH/H slots are congested. Since +# assignment is performed to less-congested TCH/F, the candidate with +# the worst RX level is chosen. (So far like test 22.) +# After that, trigger more congestion checks to ensure stability. + +create-n-bts 1 +network + bts 0 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 4 +set-ts-use trx 0 0 states * - - - - TCH/HH TCH/H- - +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 +meas-rep lchan 0 0 5 1 rxlev 34 rxqual 0 ta 0 +meas-rep lchan 0 0 6 0 rxlev 20 rxqual 0 ta 0 +expect-no-chan +congestion-check +expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - TCH/HH - - +congestion-check +expect-ho from lchan 0 0 5 0 to lchan 0 0 2 0 +expect-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/-H - - +congestion-check +expect-no-chan +congestion-check +expect-no-chan + diff --git a/tests/handover/test0028.ho_vty b/tests/handover/test0028.ho_vty new file mode 100644 index 0000000..1e81293 --- /dev/null +++ b/tests/handover/test0028.ho_vty @@ -0,0 +1,35 @@ +# Handover to congested cell, if RX quality is below minimum +# The better neighbor cell is congested, so no handover is performed. +# If the RX quality of the current cell drops below minimum acceptable +# level, the handover is performed. It is also required that 10 +# resports are received, before RX quality is checked. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +network + 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 +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 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0029.ho_vty b/tests/handover/test0029.ho_vty new file mode 100644 index 0000000..ffa3614 --- /dev/null +++ b/tests/handover/test0029.ho_vty @@ -0,0 +1,15 @@ +# Congestion check: Balancing congestion by handover TCH/F -> TCH/H +# One BTS, and TCH/F are considered congested, TCH/H are not. + +create-n-bts 1 +network + bts 0 + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 0 +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 +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/HH - - + diff --git a/tests/handover/test0030.ho_vty b/tests/handover/test0030.ho_vty new file mode 100644 index 0000000..3ae5997 --- /dev/null +++ b/tests/handover/test0030.ho_vty @@ -0,0 +1,81 @@ +# Congestion check: Balancing congestion by handover TCH/F -> TCH/H +# With dynamic timeslots. +# As soon as only one TCH/F is left, there should be HO to a dyn TS. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH + +network + bts 0 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 0 + handover2 assignment 1 +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 + +congestion-check +expect-no-chan + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +congestion-check +expect-no-chan + diff --git a/tests/handover/test0031.ho_vty b/tests/handover/test0031.ho_vty new file mode 100644 index 0000000..c648c27 --- /dev/null +++ b/tests/handover/test0031.ho_vty @@ -0,0 +1,7 @@ +# assign new MS: re-use half used TCH/H to avoid switching more dyn TS to TCH/H + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH +set-ts-use trx 0 0 states * - - - pdch TCH/H- pdch pdch +create-ms bts 0 TCH/H AMR +expect-ts-use trx 0 0 states * - - - pdch TCH/HH pdch pdch + diff --git a/tests/handover/test0032.ho_vty b/tests/handover/test0032.ho_vty new file mode 100644 index 0000000..97df50a --- /dev/null +++ b/tests/handover/test0032.ho_vty @@ -0,0 +1,17 @@ +# Congestion check: favor moving a TCH/H that frees a half-used dyn TS completely + +create-bts trx-count 1 timeslots c+s4 dyn dyn dyn dyn dyn - - +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 +# Not so good: should move the half-used TCH/H instead of "halving" another dyn TS: +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 - - + diff --git a/tests/testsuite.at b/tests/testsuite.at index afff9c5..17153cc 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -51,200 +51,8 @@ AT_CHECK([$abs_top_builddir/tests/handover/neighbor_ident_test], [], [expout], [experr]) AT_CLEANUP -AT_SETUP([handover test 0]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 0], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 1]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 1], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 2]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 2], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 3]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 3], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 4]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 4], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 5]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 5], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 6]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 6], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 7]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 7], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 8]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 8], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 9]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 9], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 10]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 10], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 11]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 11], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 12]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 12], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 13]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 13], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 14]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 14], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 15]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 15], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 16]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 16], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 17]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 17], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 18]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 18], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 19]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 19], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 20]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 20], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 21]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 21], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 22]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 22], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 23]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 23], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 24]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 24], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 25]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 25], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 26]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 26], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 27]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 27], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 28]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 28], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 29]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 29], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 30]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 30], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 31]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 31], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 32]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 32], [], [expout], [ignore]) +AT_SETUP([handover_tests]) +AT_KEYWORDS([handover_tests]) +cat $abs_srcdir/handover/handover_tests.ok > expout +AT_CHECK([$abs_srcdir/handover/handover_tests.sh $abs_srcdir/handover $abs_builddir/handover], [], [expout], [ignore]) AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie238ebe41039d3fa44c9699937589e000883e052 Gerrit-Change-Number: 21642 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 Dec 10 02:29:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 02:29:09 +0000 Subject: Change in osmo-bsc[master]: rename handover tests References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21643 ) Change subject: rename handover tests ...................................................................... rename handover tests Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 --- M tests/handover/handover_tests.ok R tests/handover/test_amr_tch_f_to_h.ho_vty R tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty R tests/handover/test_balance_congestion.ho_vty R tests/handover/test_balance_congestion_2.ho_vty R tests/handover/test_congestion.ho_vty R tests/handover/test_disabled_ho_and_as.ho_vty R tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty R tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty R tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty R tests/handover/test_ho_to_better_cell.ho_vty R tests/handover/test_ho_to_better_cell_2.ho_vty R tests/handover/test_hysteresis.ho_vty R tests/handover/test_insufficient_measurements.ho_vty R tests/handover/test_keep_efr_codec.ho_vty R tests/handover/test_keep_fr_codec.ho_vty R tests/handover/test_keep_hr_codec.ho_vty R tests/handover/test_max_handovers.ho_vty R tests/handover/test_max_ta.ho_vty R tests/handover/test_min_rxlev_vs_congestion.ho_vty R tests/handover/test_min_rxlev_vs_hysteresis.ho_vty R tests/handover/test_neighbor_congested.ho_vty R tests/handover/test_neighbor_full.ho_vty R tests/handover/test_no_congestion.ho_vty R tests/handover/test_penalty_timer.ho_vty R tests/handover/test_rxqual.ho_vty R tests/handover/test_rxqual_2.ho_vty R tests/handover/test_stay_in_better_cell.ho_vty R tests/handover/test_stay_in_better_cell_2.ho_vty R tests/handover/test_story.ho_vty 34 files changed, 33 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/43/21643/1 diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 5ec8dc2..19fdfcf 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -1,33 +1,33 @@ -pass test0000.ho_vty -pass test0001.ho_vty -pass test0002.ho_vty -pass test0003.ho_vty -pass test0004.ho_vty -pass test0005.ho_vty -pass test0006.ho_vty -pass test0007.ho_vty -pass test0008.ho_vty -pass test0009.ho_vty -pass test0010.ho_vty -pass test0011.ho_vty -pass test0012.ho_vty -pass test0013.ho_vty -pass test0014.ho_vty -pass test0015.ho_vty -pass test0016.ho_vty -pass test0017.ho_vty -pass test0018.ho_vty -pass test0019.ho_vty -pass test0020.ho_vty -pass test0021.ho_vty -pass test0022.ho_vty -pass test0023.ho_vty -pass test0024.ho_vty -pass test0025.ho_vty -pass test0026.ho_vty -pass test0027.ho_vty -pass test0028.ho_vty -pass test0029.ho_vty -pass test0030.ho_vty -pass test0031.ho_vty -pass test0032.ho_vty +pass test_amr_tch_f_to_h.ho_vty +pass test_amr_tch_f_to_h_balance_congestion.ho_vty +pass test_amr_tch_f_to_h_congestion.ho_vty +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_balance_congestion.ho_vty +pass test_balance_congestion_2.ho_vty +pass test_congestion.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 +pass test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +pass test_ho_to_better_cell.ho_vty +pass test_ho_to_better_cell_2.ho_vty +pass test_hysteresis.ho_vty +pass test_insufficient_measurements.ho_vty +pass test_keep_efr_codec.ho_vty +pass test_keep_fr_codec.ho_vty +pass test_keep_hr_codec.ho_vty +pass test_max_handovers.ho_vty +pass test_max_ta.ho_vty +pass test_min_rxlev_vs_congestion.ho_vty +pass test_min_rxlev_vs_hysteresis.ho_vty +pass test_neighbor_congested.ho_vty +pass test_neighbor_full.ho_vty +pass test_no_congestion.ho_vty +pass test_penalty_timer.ho_vty +pass test_rxqual.ho_vty +pass test_rxqual_2.ho_vty +pass test_stay_in_better_cell.ho_vty +pass test_stay_in_better_cell_2.ho_vty +pass test_story.ho_vty diff --git a/tests/handover/test0007.ho_vty b/tests/handover/test_amr_tch_f_to_h.ho_vty similarity index 100% rename from tests/handover/test0007.ho_vty rename to tests/handover/test_amr_tch_f_to_h.ho_vty diff --git a/tests/handover/test0021.ho_vty b/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty similarity index 100% rename from tests/handover/test0021.ho_vty rename to tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty diff --git a/tests/handover/test0020.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion.ho_vty similarity index 100% rename from tests/handover/test0020.ho_vty rename to tests/handover/test_amr_tch_f_to_h_congestion.ho_vty diff --git a/tests/handover/test0022.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty similarity index 100% rename from tests/handover/test0022.ho_vty rename to tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty diff --git a/tests/handover/test0027.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty similarity index 100% rename from tests/handover/test0027.ho_vty rename to tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty diff --git a/tests/handover/test0029.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty similarity index 100% rename from tests/handover/test0029.ho_vty rename to tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty diff --git a/tests/handover/test0013.ho_vty b/tests/handover/test_balance_congestion.ho_vty similarity index 100% rename from tests/handover/test0013.ho_vty rename to tests/handover/test_balance_congestion.ho_vty diff --git a/tests/handover/test0019.ho_vty b/tests/handover/test_balance_congestion_2.ho_vty similarity index 100% rename from tests/handover/test0019.ho_vty rename to tests/handover/test_balance_congestion_2.ho_vty diff --git a/tests/handover/test0018.ho_vty b/tests/handover/test_congestion.ho_vty similarity index 100% rename from tests/handover/test0018.ho_vty rename to tests/handover/test_congestion.ho_vty diff --git a/tests/handover/test0002.ho_vty b/tests/handover/test_disabled_ho_and_as.ho_vty similarity index 100% rename from tests/handover/test0002.ho_vty rename to tests/handover/test_disabled_ho_and_as.ho_vty diff --git a/tests/handover/test0030.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty similarity index 100% rename from tests/handover/test0030.ho_vty rename to tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty diff --git a/tests/handover/test0031.ho_vty b/tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty similarity index 100% rename from tests/handover/test0031.ho_vty rename to tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test0032.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty similarity index 100% rename from tests/handover/test0032.ho_vty rename to tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty diff --git a/tests/handover/test0001.ho_vty b/tests/handover/test_ho_to_better_cell.ho_vty similarity index 100% rename from tests/handover/test0001.ho_vty rename to tests/handover/test_ho_to_better_cell.ho_vty diff --git a/tests/handover/test0026.ho_vty b/tests/handover/test_ho_to_better_cell_2.ho_vty similarity index 100% rename from tests/handover/test0026.ho_vty rename to tests/handover/test_ho_to_better_cell_2.ho_vty diff --git a/tests/handover/test0010.ho_vty b/tests/handover/test_hysteresis.ho_vty similarity index 100% rename from tests/handover/test0010.ho_vty rename to tests/handover/test_hysteresis.ho_vty diff --git a/tests/handover/test0024.ho_vty b/tests/handover/test_insufficient_measurements.ho_vty similarity index 100% rename from tests/handover/test0024.ho_vty rename to tests/handover/test_insufficient_measurements.ho_vty diff --git a/tests/handover/test0006.ho_vty b/tests/handover/test_keep_efr_codec.ho_vty similarity index 100% rename from tests/handover/test0006.ho_vty rename to tests/handover/test_keep_efr_codec.ho_vty diff --git a/tests/handover/test0005.ho_vty b/tests/handover/test_keep_fr_codec.ho_vty similarity index 100% rename from tests/handover/test0005.ho_vty rename to tests/handover/test_keep_fr_codec.ho_vty diff --git a/tests/handover/test0004.ho_vty b/tests/handover/test_keep_hr_codec.ho_vty similarity index 100% rename from tests/handover/test0004.ho_vty rename to tests/handover/test_keep_hr_codec.ho_vty diff --git a/tests/handover/test0009.ho_vty b/tests/handover/test_max_handovers.ho_vty similarity index 100% rename from tests/handover/test0009.ho_vty rename to tests/handover/test_max_handovers.ho_vty diff --git a/tests/handover/test0016.ho_vty b/tests/handover/test_max_ta.ho_vty similarity index 100% rename from tests/handover/test0016.ho_vty rename to tests/handover/test_max_ta.ho_vty diff --git a/tests/handover/test0014.ho_vty b/tests/handover/test_min_rxlev_vs_congestion.ho_vty similarity index 100% rename from tests/handover/test0014.ho_vty rename to tests/handover/test_min_rxlev_vs_congestion.ho_vty diff --git a/tests/handover/test0011.ho_vty b/tests/handover/test_min_rxlev_vs_hysteresis.ho_vty similarity index 100% rename from tests/handover/test0011.ho_vty rename to tests/handover/test_min_rxlev_vs_hysteresis.ho_vty diff --git a/tests/handover/test0012.ho_vty b/tests/handover/test_neighbor_congested.ho_vty similarity index 100% rename from tests/handover/test0012.ho_vty rename to tests/handover/test_neighbor_congested.ho_vty diff --git a/tests/handover/test0008.ho_vty b/tests/handover/test_neighbor_full.ho_vty similarity index 100% rename from tests/handover/test0008.ho_vty rename to tests/handover/test_neighbor_full.ho_vty diff --git a/tests/handover/test0017.ho_vty b/tests/handover/test_no_congestion.ho_vty similarity index 100% rename from tests/handover/test0017.ho_vty rename to tests/handover/test_no_congestion.ho_vty diff --git a/tests/handover/test0003.ho_vty b/tests/handover/test_penalty_timer.ho_vty similarity index 100% rename from tests/handover/test0003.ho_vty rename to tests/handover/test_penalty_timer.ho_vty diff --git a/tests/handover/test0015.ho_vty b/tests/handover/test_rxqual.ho_vty similarity index 100% rename from tests/handover/test0015.ho_vty rename to tests/handover/test_rxqual.ho_vty diff --git a/tests/handover/test0028.ho_vty b/tests/handover/test_rxqual_2.ho_vty similarity index 100% rename from tests/handover/test0028.ho_vty rename to tests/handover/test_rxqual_2.ho_vty diff --git a/tests/handover/test0000.ho_vty b/tests/handover/test_stay_in_better_cell.ho_vty similarity index 100% rename from tests/handover/test0000.ho_vty rename to tests/handover/test_stay_in_better_cell.ho_vty diff --git a/tests/handover/test0025.ho_vty b/tests/handover/test_stay_in_better_cell_2.ho_vty similarity index 100% rename from tests/handover/test0025.ho_vty rename to tests/handover/test_stay_in_better_cell_2.ho_vty diff --git a/tests/handover/test0023.ho_vty b/tests/handover/test_story.ho_vty similarity index 100% rename from tests/handover/test0023.ho_vty rename to tests/handover/test_story.ho_vty -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 Gerrit-Change-Number: 21643 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 Dec 10 02:29:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 02:29:09 +0000 Subject: Change in osmo-bsc[master]: debug log: explain exit from lchan_fsm wait_rll_rtp_establish References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21644 ) Change subject: debug log: explain exit from lchan_fsm wait_rll_rtp_establish ...................................................................... debug log: explain exit from lchan_fsm wait_rll_rtp_establish Change-Id: I18ffcf93e82ee47413e4b2f741ffbfbb18322e1d --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/44/21644/1 diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 1903645..e3285b6 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -851,8 +851,13 @@ case LCHAN_EV_RLL_ESTABLISH_IND: if (!lchan->activate.info.requires_voice_stream - || lchan_rtp_established(lchan)) + || lchan_rtp_established(lchan)) { + LOG_LCHAN(lchan, LOGL_DEBUG, + "%s\n", + (lchan->activate.info.requires_voice_stream ? + "RTP already established earlier" : "no voice stream required")); lchan_fsm_state_chg(LCHAN_ST_ESTABLISHED); + } return; case LCHAN_EV_RTP_READY: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I18ffcf93e82ee47413e4b2f741ffbfbb18322e1d Gerrit-Change-Number: 21644 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 Dec 10 02:29:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 02:29:09 +0000 Subject: Change in osmo-bsc[master]: handover_tests: add expected output References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21645 ) Change subject: handover_tests: add expected output ...................................................................... handover_tests: add expected output I am not sure whether we want to keep the expected log output of handover tests in the source tree. On the one hand, it is pretty nice to see how changes to the code affect logging and the internal flow of things, and follow that in the history. 'make update_exp' makes it easy to update expected outputs. On the other hand, those logs are a lot of cruft to keep. They will often change as osmo-bsc changes. We've seen similar in the osmo-msc.git msc_vlr_tests, I believe sometimes annoying some of us. The test script only uses the expected log outputs when they are actually present, so it is always an option for each developer to locally do 'make update_exp' and diff between source versions like that, without the logs having to be in version control. I will leave it up to code review whether to add these logs or not. Change-Id: I387aa62eb2dd9896494aefa32e6d336106e0ecdc --- M tests/handover/handover_tests.sh A tests/handover/test_amr_tch_f_to_h.ho_vty.err A tests/handover/test_amr_tch_f_to_h.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty.err A tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_congestion.ho_vty.err A tests/handover/test_amr_tch_f_to_h_congestion.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty.err A tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty.err A tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty.err A tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty.ok A tests/handover/test_balance_congestion.ho_vty.err A tests/handover/test_balance_congestion.ho_vty.ok A tests/handover/test_balance_congestion_2.ho_vty.err A tests/handover/test_balance_congestion_2.ho_vty.ok A tests/handover/test_congestion.ho_vty.err A tests/handover/test_congestion.ho_vty.ok A tests/handover/test_disabled_ho_and_as.ho_vty.err A tests/handover/test_disabled_ho_and_as.ho_vty.ok A tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty.err A tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty.ok A tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty.err A tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty.ok 25 files changed, 5,192 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/45/21645/1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I387aa62eb2dd9896494aefa32e6d336106e0ecdc Gerrit-Change-Number: 21645 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Dec 10 02:49:31 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 10 Dec 2020 02:49:31 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd18cd6691b2_6d1c2ae0c17105f8324244@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] [ 124.520730] sysrq: Power Off [ 135s] [ 124.523614] reboot: Power down [ 136s] ### VM INTERACTION END ### [ 136s] [ 136s] old-atreju2 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 10 02:49:25 UTC 2020. [ 136s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 10 02:51:30 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 10 Dec 2020 02:51:30 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd18d4d8e18_6d1c2ae0c17105f83245bd@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: [ 171s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 172s] [COMPILING libboard/qmod/source/card_pres.c] [ 172s] [COMPILING libboard/qmod/source/wwan_led.c] [ 172s] [COMPILING libboard/qmod/source/i2c.c] [ 172s] [COMPILING libboard/qmod/source/board_qmod.c] [ 172s] [COMPILING apps/dfu/main.c] [ 172s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 172s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 172s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 173s] Memory region Used Size Region Size %age Used [ 173s] rom: 16588 B 16 KB 101.25% [ 173s] 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' [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 173s] collect2: error: ld returned 1 exit status [ 173s] % [ 173s] make[2]: *** [Makefile:234: flash] Error 1 [ 173s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 173s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 173s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 173s] dh_auto_build: error: make -j1 returned exit code 2 [ 173s] make: *** [debian/rules:16: build] Error 25 [ 173s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 173s] ### VM INTERACTION START ### [ 176s] [ 163.115843] sysrq: Power Off [ 176s] [ 163.123996] reboot: Power down [ 176s] ### VM INTERACTION END ### [ 176s] [ 176s] lamb11 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 10 02:51:14 UTC 2020. [ 176s] -- 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 Dec 10 03:18:37 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 03:18:37 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api 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/+/20397 to look at the new patch set (#7). 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, 117 insertions(+), 62 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/97/20397/7 -- 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: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus 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 Dec 10 09:33:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 09:33:23 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/openbsc/+/21646 ) Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Add very clear obsolescence / unmaintained warnings * add messages at start-up and to the VTY * users must explicitly confirm they want to run osmo-nitb Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b --- M openbsc/src/libcommon/bsc_version.c M openbsc/src/osmo-nitb/bsc_hack.c 2 files changed, 36 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/46/21646/1 diff --git a/openbsc/src/libcommon/bsc_version.c b/openbsc/src/libcommon/bsc_version.c index f0369bf..9111a0e 100644 --- a/openbsc/src/libcommon/bsc_version.c +++ b/openbsc/src/libcommon/bsc_version.c @@ -19,12 +19,19 @@ #include "../../bscconfig.h" +#define DIVIDER "======================================================================\r\n" const char *openbsc_copyright = "Copyright (C) 2008-2016 Harald Welte, Holger Freyther\r\n" "Contributions by Daniel Willmann, Jan L?bbe, Stefan Schmidt\r\n" "Dieter Spaar, Andreas Eversberg, Sylvain Munaut, Neels Hofmeyr\r\n\r\n" "License AGPLv3+: GNU AGPL version 3 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"; + "There is NO WARRANTY, to the extent permitted by law.\r\n" DIVIDER + "WARNING: You should not run osmo-nitb except for archaeological purpose.\r\n" + "It is ancient, unmaintained and obsolete for several years. But you seem\r\n" + "to insist on using obsolete and known-broken software that ignores years \r\n" + "of hard development work. That's your choice, but you have been warned.\r\n" + "DON'T EVER BOTHER THE DEVELOPERS IF YOU ENCOUNTER PROBLEMS WITH IT!!!\r\n" + "See https://osmocom.org/projects/cellular-infrastructure/wiki/Osmocom_Network_In_The_Box\r\n" DIVIDER; diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c index 4950f4c..9ce5e12 100644 --- a/openbsc/src/osmo-nitb/bsc_hack.c +++ b/openbsc/src/osmo-nitb/bsc_hack.c @@ -65,6 +65,7 @@ static int daemonize = 0; static const char *mncc_sock_path = NULL; static int use_db_counter = 1; +static bool yes_i_really_want = false; /* timer to store statistics */ #define DB_SYNC_INTERVAL 60, 0 @@ -115,6 +116,7 @@ while (1) { int option_index = 0, c; static struct option long_options[] = { + {"yes-i-really-want-to-run-prehistoric-software", 0, 0, 0}, {"help", 0, 0, 'h'}, {"debug", 1, 0, 'd'}, {"daemonize", 0, 0, 'D'}, @@ -139,6 +141,10 @@ break; switch (c) { + case 0: + if (option_index == 0) + yes_i_really_want = true; + break; case 'h': print_usage(); print_help(); @@ -282,6 +288,28 @@ /* Parse options */ handle_options(argc, argv); +#define DIVIDER "======================================================================\n" + if (!yes_i_really_want) { + fprintf(stderr, DIVIDER + "ERROR: You should not run osmo-nitb. It is ancient, unmaintained and\n" + "obsolete for several years. If you really want to ignore years of hard work on\n" + "the new post-NITB stack (osmo-bsc, osmo-mgw, osmo-msc, osmo-hlr, osmo-stp),\n" + "you may ues the '--yes-i-really-want-to-run-prehistoric-software' command line\n" + "argument. DON'T EVER BOTHER THE DEVELOPERS IF YOU ENCOUNTER PROBLEMS WITH IT!!!\n" + "Use https://osmocom.org/projects/cellular-infrastructure/wiki/Osmocom_Network_In_The_Box\n" + DIVIDER); + exit(2); + } else { + fprintf(stderr, DIVIDER + "WARNING: You should not run osmo-nitb except for archaeological purpose.\n" + "It is ancient, unmaintained and obsolete for several years. But you seem\n" + "to insist on using obsolete and known-broken software that ignores years \n" + "of hard development work. That's your choice, but you have been warned.\n" + "DON'T EVER BOTHER THE DEVELOPERS IF YOU ENCOUNTER PROBLEMS WITH IT!!!\n" + "Use https://osmocom.org/projects/cellular-infrastructure/wiki/Osmocom_Network_In_The_Box\n" + DIVIDER); + } + /* Allocate global gsm_network struct; choose socket/internal MNCC */ rc = bsc_network_alloc(mncc_sock_path? mncc_sock_from_cc : int_mncc_recv); -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 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 Dec 10 09:49:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 09:49:32 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, daniel, lynxis lazus, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/openbsc/+/21646 to look at the new patch set (#2). Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Add very clear obsolescence / unmaintained warnings * add messages at start-up and to the VTY * users must explicitly confirm they want to run osmo-nitb Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b --- M manuals/OsmoNITB/chapters/overview.adoc M manuals/OsmoNITB/osmonitb-usermanual.adoc M openbsc/src/libcommon/bsc_version.c M openbsc/src/osmo-nitb/bsc_hack.c 4 files changed, 53 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/46/21646/2 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria 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 Dec 10 09:52:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 09:52:55 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, daniel, lynxis lazus, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/openbsc/+/21646 to look at the new patch set (#3). Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Add very clear obsolescence / unmaintained warnings * add messages at start-up and to the VTY * users must explicitly confirm they want to run osmo-nitb Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b --- M manuals/OsmoNITB/chapters/overview.adoc M manuals/OsmoNITB/osmonitb-usermanual.adoc M openbsc/src/libcommon/bsc_version.c M openbsc/src/osmo-nitb/bsc_hack.c M openbsc/tests/vty_test_runner.py 5 files changed, 55 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/46/21646/3 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria 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 Dec 10 09:57:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 09:57:43 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, daniel, lynxis lazus, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/openbsc/+/21646 to look at the new patch set (#4). Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Add very clear obsolescence / unmaintained warnings * add messages at start-up and to the VTY * users must explicitly confirm they want to run osmo-nitb Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b --- M manuals/OsmoNITB/chapters/overview.adoc M manuals/OsmoNITB/osmonitb-usermanual.adoc M openbsc/osmoappdesc.py M openbsc/src/libcommon/bsc_version.c M openbsc/src/osmo-nitb/bsc_hack.c M openbsc/tests/vty_test_runner.py 6 files changed, 57 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/46/21646/4 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria 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 Dec 10 09:58:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 09:58:59 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/20397 ) Change subject: sgsn: Use the new NS2 api ...................................................................... Patch Set 7: Code-Review+1 -- 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: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 09:58: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 Dec 10 09:59:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 09:59:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 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 Thu Dec 10 10:02:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:02:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add member name to bind In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21485 ) Change subject: gprs_ns2: add member name to bind ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21485/6/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21485/6/src/gb/gprs_ns2.c at 1242 PS6, Line 1242: tal you don't really need that, as talloc is hierarchical and bind->name always is allocated withi nthe 'bind' context. We can keep it, but it's redundant. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Gerrit-Change-Number: 21485 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 10:02:07 +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 Dec 10 10:02:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:02:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework gprs_ns2_fr_connect*() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21486 ) Change subject: gprs_ns2: rework gprs_ns2_fr_connect*() ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 Gerrit-Change-Number: 21486 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 10: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 Thu Dec 10 10:06:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:06:31 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, daniel, lynxis lazus, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/openbsc/+/21646 to look at the new patch set (#5). Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Add very clear obsolescence / unmaintained warnings * add messages at start-up and to the VTY * users must explicitly confirm they want to run osmo-nitb Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b --- M manuals/OsmoNITB/chapters/overview.adoc M manuals/OsmoNITB/osmonitb-usermanual.adoc M openbsc/osmoappdesc.py M openbsc/src/libcommon/bsc_version.c M openbsc/src/osmo-nitb/bsc_hack.c M openbsc/tests/ctrl_test_runner.py M openbsc/tests/smpp_test_runner.py M openbsc/tests/vty_test_runner.py 8 files changed, 61 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/46/21646/5 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria 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 Dec 10 10:07:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:07:13 +0000 Subject: Change in libosmocore[master]: logging: Introduce DLBSSGP logging constant In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21597 ) Change subject: logging: Introduce DLBSSGP logging constant ...................................................................... logging: Introduce DLBSSGP logging constant Historically, BSSGP uses a non-constant, user-configurable integer varieable for the logging sub-system. Let's replace this with a statically-allocated library logging constant. This is required if we want to use the subsystem number in e.g. static initialized for osmo_fsm.log_subsys. Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 --- M include/osmocom/core/logging.h M include/osmocom/gprs/gprs_bssgp.h M src/gb/common_vty.c M src/gb/common_vty.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c M src/gb/gprs_bssgp_util.c M src/gb/gprs_bssgp_vty.c M src/logging.c M tests/logging/logging_vty_test.vty 10 files changed, 75 insertions(+), 73 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index 418a42e..c7f89de 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -121,7 +121,8 @@ #define DLJIBUF -18 /*!< Osmocom Jitter Buffer */ #define DLRSPRO -19 /*!< Osmocom Remote SIM Protocol */ #define DLNS -20 /*!< Osmocom NS layer */ -#define OSMO_NUM_DLIB 20 /*!< Number of logging sub-systems in libraries */ +#define DLBSSGP -21 /*!< Osmocom BSSGP layer */ +#define OSMO_NUM_DLIB 21 /*!< 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/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index dc2a8d0..dfbd9b7 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -233,6 +233,6 @@ /* gprs_bssgp_vty.c */ int bssgp_vty_init(void); -void bssgp_set_log_ss(int ss); +void bssgp_set_log_ss(int ss) OSMO_DEPRECATED("Use DLBSSGP instead!\n"); int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx); diff --git a/src/gb/common_vty.c b/src/gb/common_vty.c index 42f3404..ad3dea2 100644 --- a/src/gb/common_vty.c +++ b/src/gb/common_vty.c @@ -63,4 +63,4 @@ } -int DNS, DBSSGP; +int DNS; diff --git a/src/gb/common_vty.h b/src/gb/common_vty.h index 801d2da..8e88331 100644 --- a/src/gb/common_vty.h +++ b/src/gb/common_vty.h @@ -3,5 +3,5 @@ #include #include -extern int DNS, DBSSGP; +extern int DNS; diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 7fb3a30..b5dec58 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -40,7 +40,6 @@ #include #include -#include "common_vty.h" #include "osmocom/gsm/gsm48.h" void *bssgp_tall_ctx = NULL; @@ -110,7 +109,7 @@ msgb_nsei(msg) = nsei; msgb_bvci(msg) = 0; /* Signalling */ bgph->pdu_type = BSSGP_PDUT_BVC_RESET; - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-RESET " + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-RESET " "CAUSE=%s\n", bvci, bssgp_cause_str(cause)); msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); @@ -140,7 +139,7 @@ llist_for_each_entry(bctx, &bssgp_bvc_ctxts, list) { if (bctx->nsei == nsei && bctx->bvci != BVCI_SIGNALLING) { - LOGP(DBSSGP, LOGL_DEBUG, "NSEI=%u/BVCI=%u RESET due to %s\n", + LOGP(DLBSSGP, LOGL_DEBUG, "NSEI=%u/BVCI=%u RESET due to %s\n", nsei, bctx->bvci, bssgp_cause_str(cause)); rc = bssgp_tx_bvc_reset(bctx, bctx->bvci, cause); if (rc < 0) @@ -337,7 +336,7 @@ uint16_t bvci; bvci = tlvp_val16be(tp, BSSGP_IE_BVCI); - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx RESET cause=%s\n", bvci, + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RESET cause=%s\n", bvci, bssgp_cause_str(*TLVP_VAL(tp, BSSGP_IE_CAUSE))); /* look-up or create the BTS context for this BVC */ @@ -352,14 +351,14 @@ * informs us about its RAC + Cell ID, so we can create a mapping */ if (bvci != 0 && bvci != 1) { if (!TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESET " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESET " "missing mandatory IE\n", bvci); return -EINVAL; } /* actually extract RAC / CID */ bctx->cell_id = bssgp_parse_cell_id(&bctx->ra_id, TLVP_VAL(tp, BSSGP_IE_CELL_ID)); - LOGP(DBSSGP, LOGL_NOTICE, "Cell %s CI %u on BVCI %u\n", + LOGP(DLBSSGP, LOGL_NOTICE, "Cell %s CI %u on BVCI %u\n", osmo_rai_name(&bctx->ra_id), bctx->cell_id, bvci); } @@ -388,13 +387,13 @@ bvci = tlvp_val16be(tp, BSSGP_IE_BVCI); if (bvci == BVCI_SIGNALLING) { /* 8.3.2: Signalling BVC shall never be blocked */ - LOGP(DBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u " + LOGP(DLBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u " "received block for signalling BVC!?!\n", nsei, msgb_bvci(msg)); return 0; } - LOGP(DBSSGP, LOGL_INFO, "BSSGP Rx BVCI=%u BVC-BLOCK\n", bvci); + LOGP(DLBSSGP, LOGL_INFO, "BSSGP Rx BVCI=%u BVC-BLOCK\n", bvci); ptp_ctx = btsctx_by_bvci_nsei(bvci, nsei); if (!ptp_ctx) @@ -426,13 +425,13 @@ bvci = tlvp_val16be(tp, BSSGP_IE_BVCI); if (bvci == BVCI_SIGNALLING) { /* 8.3.2: Signalling BVC shall never be blocked */ - LOGP(DBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u " + LOGP(DLBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u " "received unblock for signalling BVC!?!\n", nsei, msgb_bvci(msg)); return 0; } - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx BVC-UNBLOCK\n", bvci); + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx BVC-UNBLOCK\n", bvci); ptp_ctx = btsctx_by_bvci_nsei(bvci, nsei); if (!ptp_ctx) @@ -464,12 +463,12 @@ /* extract TLLI and parse TLV IEs */ msgb_tlli(msg) = osmo_ntohl(budh->tlli); - DEBUGP(DBSSGP, "BSSGP TLLI=0x%08x Rx UPLINK-UNITDATA\n", msgb_tlli(msg)); + DEBUGP(DLBSSGP, "BSSGP TLLI=0x%08x Rx UPLINK-UNITDATA\n", msgb_tlli(msg)); /* Cell ID and LLC_PDU are the only mandatory IE */ if (!TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8) || !TLVP_PRESENT(tp, BSSGP_IE_LLC_PDU)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP TLLI=0x%08x Rx UL-UD " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP TLLI=0x%08x Rx UL-UD " "missing mandatory IE\n", msgb_tlli(msg)); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } @@ -499,14 +498,14 @@ if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4) || !TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx SUSPEND " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx SUSPEND " "missing mandatory IE\n", ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); - DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx SUSPEND\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx SUSPEND\n", ns_bvci, tlli); gsm48_parse_ra(&raid, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA)); @@ -541,7 +540,7 @@ if (!TLVP_PRES_LEN(tp, BSSGP_IE_TLLI, 4 ) || !TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6) || !TLVP_PRES_LEN(tp, BSSGP_IE_SUSPEND_REF_NR, 1)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESUME " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESUME " "missing mandatory IE\n", ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } @@ -549,7 +548,7 @@ tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); suspend_ref = *TLVP_VAL(tp, BSSGP_IE_SUSPEND_REF_NR); - DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx RESUME\n", ns_bvci, tlli); + DEBUGP(DLBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx RESUME\n", ns_bvci, tlli); gsm48_parse_ra(&raid, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA)); @@ -584,14 +583,14 @@ !TLVP_PRES_LEN(tp, BSSGP_IE_LLC_FRAMES_DISCARDED, 1) || !TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_NUM_OCT_AFF, 3)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx LLC DISCARDED " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx LLC DISCARDED " "missing mandatory IE\n", ctx->bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); - DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=%08x Rx LLC DISCARDED\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u TLLI=%08x Rx LLC DISCARDED\n", ctx->bvci, tlli); rate_ctr_inc(&ctx->ctrg->ctr[BSSGP_CTR_DISCARDED]); @@ -616,19 +615,19 @@ enum gprs_bssgp_cause cause; if (!TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS " "missing mandatory IE\n", bvci); cause = BSSGP_CAUSE_PROTO_ERR_UNSPEC; } else { cause = *TLVP_VAL(tp, BSSGP_IE_CAUSE); } - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Rx BVC STATUS, cause=%s\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Rx BVC STATUS, cause=%s\n", bvci, bssgp_cause_str(cause)); if (cause == BSSGP_CAUSE_BVCI_BLOCKED || cause == BSSGP_CAUSE_UNKNOWN_BVCI) { if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) - LOGP(DBSSGP, LOGL_ERROR, + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS cause=%s " "missing conditional BVCI IE\n", bvci, bssgp_cause_str(cause)); @@ -680,7 +679,7 @@ list); if (bssgp_fc_needs_queueing(fc, fcqe->llc_pdu_len)) { - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP-FC: fc_timer_cb() but still " + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP-FC: fc_timer_cb() but still " "not able to send PDU of %u bytes\n", fcqe->llc_pdu_len); /* make sure we re-start the timer */ fc_queue_timer_cfg(fc); @@ -818,7 +817,7 @@ struct timeval time_now; if (llc_pdu_len > fc->bucket_size_max) { - LOGP(DBSSGP, LOGL_NOTICE, "Single PDU (size=%u) is larger " + LOGP(DLBSSGP, LOGL_NOTICE, "Single PDU (size=%u) is larger " "than maximum bucket size (%u)!\n", llc_pdu_len, fc->bucket_size_max); msgb_free(msg); @@ -879,7 +878,7 @@ uint32_t old_leak_rate = bctx->fc->bucket_leak_rate; uint32_t old_r_def_ms = bctx->r_default_ms; - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx Flow Control BVC\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx Flow Control BVC\n", bctx->bvci); if (!TLVP_PRES_LEN(tp, BSSGP_IE_TAG, 1) || @@ -887,7 +886,7 @@ !TLVP_PRES_LEN(tp, BSSGP_IE_BUCKET_LEAK_RATE, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_BMAX_DEFAULT_MS, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_R_DEFAULT_MS,2)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx FC BVC " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx FC BVC " "missing mandatory IE\n", bctx->bvci); return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } @@ -902,17 +901,17 @@ bctx->r_default_ms = 100 * tlvp_val16be(tp, BSSGP_IE_R_DEFAULT_MS) / 8; if (old_leak_rate != 0 && bctx->fc->bucket_leak_rate == 0) - LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak " + LOGP(DLBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak " "rate of 0, stopping all DL GPRS!\n"); else if (old_leak_rate == 0 && bctx->fc->bucket_leak_rate != 0) - LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak " + LOGP(DLBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak " "rate of != 0, restarting all DL GPRS!\n"); if (old_r_def_ms != 0 && bctx->r_default_ms == 0) - LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to MS default " + LOGP(DLBSSGP, LOGL_NOTICE, "BSS instructs us to MS default " "bucket leak rate of 0, stopping DL GPRS!\n"); else if (old_r_def_ms == 0 && bctx->r_default_ms != 0) - LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to MS default " + LOGP(DLBSSGP, LOGL_NOTICE, "BSS instructs us to MS default " "bucket leak rate != 0, restarting DL GPRS!\n"); /* reconfigure the timer for flow control based on new values */ @@ -949,13 +948,13 @@ break; case BSSGP_PDUT_RA_CAPABILITY: /* BSS requests RA capability or IMSI */ - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx RA CAPABILITY UPDATE\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RA CAPABILITY UPDATE\n", bctx->bvci); /* FIXME: send GMM_RA_CAPABILITY_UPDATE.ind to GMM */ /* FIXME: send RA_CAPA_UPDATE_ACK */ break; case BSSGP_PDUT_RADIO_STATUS: - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx RADIO STATUS\n", bctx->bvci); + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RADIO STATUS\n", bctx->bvci); /* BSS informs us of some exception */ /* FIXME: send GMM_RADIO_STATUS.ind to GMM */ break; @@ -965,7 +964,7 @@ break; case BSSGP_PDUT_FLOW_CONTROL_MS: /* BSS informs us of available bandwidth to one MS */ - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx Flow Control MS\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx Flow Control MS\n", bctx->bvci); /* FIXME: actually implement flow control */ /* FIXME: Send FLOW_CONTROL_MS_ACK */ @@ -978,7 +977,7 @@ case BSSGP_PDUT_CREATE_BSS_PFC_NACK: case BSSGP_PDUT_MODIFY_BSS_PFC: case BSSGP_PDUT_DELETE_BSS_PFC_ACK: - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type %s not [yet] " + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx PDU type %s not [yet] " "implemented\n", bctx->bvci, bssgp_pdu_str(pdu_type)); rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); break; @@ -989,13 +988,13 @@ case BSSGP_PDUT_RA_CAPA_UPDATE_ACK: case BSSGP_PDUT_FLOW_CONTROL_BVC_ACK: case BSSGP_PDUT_FLOW_CONTROL_MS_ACK: - DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type %s only exists in DL\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u PDU type %s only exists in DL\n", bctx->bvci, bssgp_pdu_str(pdu_type)); bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); rc = -EINVAL; break; default: - DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type %s unknown\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u PDU type %s unknown\n", bctx->bvci, bssgp_pdu_str(pdu_type)); rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); break; @@ -1026,13 +1025,13 @@ break; case BSSGP_PDUT_FLUSH_LL_ACK: /* BSS informs us it has performed LL FLUSH */ - DEBUGP(DBSSGP, "BSSGP Rx BVCI=%u FLUSH LL ACK\n", bvci); + DEBUGP(DLBSSGP, "BSSGP Rx BVCI=%u FLUSH LL ACK\n", bvci); /* FIXME: send NM_FLUSH_LL.res to NM */ break; case BSSGP_PDUT_LLC_DISCARD: /* BSS informs that some LLC PDU's have been discarded */ if (!bctx) { - LOGP(DBSSGP, LOGL_ERROR, + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Rx LLC-DISCARD missing mandatory BVCI\n"); goto err_mand_ie; } @@ -1042,7 +1041,7 @@ /* BSS tells us that BVC shall be blocked */ if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-BLOCK " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Rx BVC-BLOCK " "missing mandatory IE\n"); goto err_mand_ie; } @@ -1051,20 +1050,20 @@ case BSSGP_PDUT_BVC_UNBLOCK: /* BSS tells us that BVC shall be unblocked */ if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-UNBLOCK " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Rx BVC-UNBLOCK " "missing mandatory IE\n"); goto err_mand_ie; } rc = bssgp_rx_bvc_unblock(msg, tp); break; case BSSGP_PDUT_BVC_RESET_ACK: - LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx BVC-RESET-ACK\n", bvci); + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx BVC-RESET-ACK\n", bvci); break; case BSSGP_PDUT_BVC_RESET: /* BSS tells us that BVC init is required */ if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-RESET " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Rx BVC-RESET " "missing mandatory IE\n"); goto err_mand_ie; } @@ -1084,13 +1083,13 @@ case BSSGP_PDUT_BVC_BLOCK_ACK: case BSSGP_PDUT_BVC_UNBLOCK_ACK: case BSSGP_PDUT_SGSN_INVOKE_TRACE: - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type %s only exists in DL\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx PDU type %s only exists in DL\n", bvci, bssgp_pdu_str(pdu_type)); bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); rc = -EINVAL; break; default: - DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type %s unknown\n", + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx PDU type %s unknown\n", bvci, bssgp_pdu_str(pdu_type)); rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); break; @@ -1128,7 +1127,7 @@ rc = bssgp_tlv_parse(&tp, budh->data, data_len); } if (rc < 0) { - LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", + LOGP(DLBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", bssgp_pdu_str(pdu_type), msgb_hexdump(msg)); if (pdu_type != BSSGP_PDUT_STATUS) return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); @@ -1158,7 +1157,7 @@ * registered if a BVCI is given. */ if (!bctx && bvci != BVCI_SIGNALLING && pdu_type != BSSGP_PDUT_BVC_RESET) { - LOGP(DBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Rejecting PDU type %s for unknown BVCI\n", nsei, bvci, + LOGP(DLBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Rejecting PDU type %s for unknown BVCI\n", nsei, bvci, bssgp_pdu_str(pdu_type)); return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &bvci, msg); } @@ -1170,7 +1169,7 @@ else if (bctx) rc = bssgp_rx_ptp(msg, &tp, bctx); else - LOGP(DBSSGP, LOGL_NOTICE, + LOGP(DLBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Cannot handle PDU type %s for unknown BVCI, NS BVCI %u\n", nsei, bvci, bssgp_pdu_str(pdu_type), ns_bvci); @@ -1194,7 +1193,7 @@ /* Identifiers from UP: TLLI, BVCI, NSEI (all in msgb->cb) */ if (bvci <= BVCI_PTM ) { - LOGP(DBSSGP, LOGL_ERROR, "Cannot send DL-UD to BVCI %u\n", + LOGP(DLBSSGP, LOGL_ERROR, "Cannot send DL-UD to BVCI %u\n", bvci); msgb_free(msg); return -EINVAL; @@ -1202,7 +1201,7 @@ bctx = btsctx_by_bvci_nsei(bvci, nsei); if (!bctx) { - LOGP(DBSSGP, LOGL_ERROR, "Cannot send DL-UD to unknown BVCI %u\n", + LOGP(DLBSSGP, LOGL_ERROR, "Cannot send DL-UD to unknown BVCI %u\n", bvci); msgb_free(msg); return -ENODEV; @@ -1353,7 +1352,7 @@ void bssgp_set_log_ss(int ss) { - DBSSGP = ss; + LOGP(DLGLOBAL, LOGL_ERROR, "BSSGP has moved from DGPRS to DLGPRS, please update your code\n"); } /*! diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index 462666a..a066e91 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -35,7 +35,6 @@ #include #include "gprs_bssgp_internal.h" -#include "common_vty.h" #define GSM_IMSI_LENGTH 17 @@ -61,7 +60,7 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx SUSPEND (TLLI=0x%04x)\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx SUSPEND (TLLI=0x%04x)\n", tlli); msgb_nsei(msg) = nsei; msgb_bvci(msg) = 0; /* Signalling */ @@ -81,7 +80,7 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx RESUME (TLLI=0x%04x)\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx RESUME (TLLI=0x%04x)\n", tlli); msgb_nsei(msg) = nsei; msgb_bvci(msg) = 0; /* Signalling */ @@ -102,7 +101,7 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RA-CAPA-UPD (TLLI=0x%04x)\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RA-CAPA-UPD (TLLI=0x%04x)\n", bctx->bvci, tlli); /* set NSEI and BVCI in msgb cb */ @@ -124,7 +123,7 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RADIO-STATUS ", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RADIO-STATUS ", bctx->bvci); /* set NSEI and BVCI in msgb cb */ @@ -140,7 +139,7 @@ static int common_tx_radio_status2(struct msgb *msg, uint8_t cause) { msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, &cause); - LOGPC(DBSSGP, LOGL_NOTICE, "CAUSE=%s\n", bssgp_cause_str(cause)); + LOGPC(DLBSSGP, LOGL_NOTICE, "CAUSE=%s\n", bssgp_cause_str(cause)); return bssgp_ns_send(bssgp_ns_send_data, msg); } @@ -154,7 +153,7 @@ if (!msg) return -ENOMEM; bssgp_msgb_tlli_put(msg, tlli); - LOGPC(DBSSGP, LOGL_NOTICE, "TLLI=0x%08x ", tlli); + LOGPC(DLBSSGP, LOGL_NOTICE, "TLLI=0x%08x ", tlli); return common_tx_radio_status2(msg, cause); } @@ -169,7 +168,7 @@ if (!msg) return -ENOMEM; msgb_tvlv_put(msg, BSSGP_IE_TMSI, 4, (uint8_t *)&_tmsi); - LOGPC(DBSSGP, LOGL_NOTICE, "TMSI=0x%08x ", tmsi); + LOGPC(DLBSSGP, LOGL_NOTICE, "TMSI=0x%08x ", tmsi); return common_tx_radio_status2(msg, cause); } @@ -195,7 +194,7 @@ if (imsi_len > 2) msgb_tvlv_put(msg, BSSGP_IE_IMSI, imsi_len-2, mi+2); #pragma GCC diagnostic pop - LOGPC(DBSSGP, LOGL_NOTICE, "IMSI=%s ", imsi); + LOGPC(DLBSSGP, LOGL_NOTICE, "IMSI=%s ", imsi); return common_tx_radio_status2(msg, cause); } @@ -234,7 +233,7 @@ uint16_t _bvci = osmo_htons(bctx->bvci); uint32_t _oct_aff = osmo_htonl(num_octets & 0xFFFFFF); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx LLC-DISCARDED " + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx LLC-DISCARDED " "TLLI=0x%04x, FRAMES=%u, OCTETS=%u\n", bctx->bvci, tlli, num_frames, num_octets); msgb_nsei(msg) = bctx->nsei; @@ -258,7 +257,7 @@ (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); uint16_t _bvci = osmo_htons(bctx->bvci); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-BLOCK " + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-BLOCK " "CAUSE=%s\n", bctx->bvci, bssgp_cause_str(cause)); msgb_nsei(msg) = bctx->nsei; @@ -279,7 +278,7 @@ (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); uint16_t _bvci = osmo_htons(bctx->bvci); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-UNBLOCK\n", bctx->bvci); + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-UNBLOCK\n", bctx->bvci); msgb_nsei(msg) = bctx->nsei; msgb_bvci(msg) = 0; /* Signalling */ diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index 8342d7c..5245c5f 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -33,7 +33,6 @@ #include #include "gprs_bssgp_internal.h" -#include "common_vty.h" struct gprs_ns_inst *bssgp_nsi; @@ -561,17 +560,17 @@ cause is either "BVCI blocked" or "BVCI unknown" */ if (cause == BSSGP_CAUSE_UNKNOWN_BVCI || cause == BSSGP_CAUSE_BVCI_BLOCKED) { if (bvci == NULL) - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: " "missing conditional BVCI\n", bssgp_cause_str(cause)); } else { if (bvci != NULL) - LOGP(DBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: " + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: " "unexpected conditional BVCI\n", bssgp_cause_str(cause)); } - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Tx STATUS, cause=%s\n", + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Tx STATUS, cause=%s\n", bvci ? *bvci : 0, bssgp_cause_str(cause)); msgb_nsei(msg) = msgb_nsei(orig_msg); msgb_bvci(msg) = 0; diff --git a/src/gb/gprs_bssgp_vty.c b/src/gb/gprs_bssgp_vty.c index 3dee18e..d04641d 100644 --- a/src/gb/gprs_bssgp_vty.c +++ b/src/gb/gprs_bssgp_vty.c @@ -44,8 +44,6 @@ #include #include -#include "common_vty.h" - static void log_set_bvc_filter(struct log_target *target, struct bssgp_bvc_ctx *bctx) { diff --git a/src/logging.c b/src/logging.c index d60d6e4..0b4c1ff 100644 --- a/src/logging.c +++ b/src/logging.c @@ -238,6 +238,11 @@ .description = "GPRS NS layer", .enabled = 1, .loglevel = LOGL_NOTICE, }, + [INT2IDX(DLBSSGP)] = { + .name = "DLBSSGP", + .description = "GPRS BSSGP layer", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, }; void assert_loginfo(const char *src) diff --git a/tests/logging/logging_vty_test.vty b/tests/logging/logging_vty_test.vty index 5a5d7e6..dd2db63 100644 --- a/tests/logging/logging_vty_test.vty +++ b/tests/logging/logging_vty_test.vty @@ -53,7 +53,7 @@ logging print level (0|1) logging print file (0|1|basename) [last] logging set-log-mask MASK - logging level (aa|bb|ccc|dddd|eee|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf|lrspro|lns) (debug|info|notice|error|fatal) + logging level (aa|bb|ccc|dddd|eee|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf|lrspro|lns|lbssgp) (debug|info|notice|error|fatal) logging level set-all (debug|info|notice|error|fatal) logging level force-all (debug|info|notice|error|fatal) no logging level force-all @@ -471,7 +471,7 @@ logging_vty_test# list ... - logp (aa|bb|ccc|dddd|eee|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf|lrspro|lns) (debug|info|notice|error|fatal) .LOGMESSAGE + logp (aa|bb|ccc|dddd|eee|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf|lrspro|lns|lbssgp) (debug|info|notice|error|fatal) .LOGMESSAGE ... logging_vty_test# logp? @@ -503,6 +503,7 @@ ljibuf libosmo-netif Jitter Buffer lrspro Remote SIM protocol lns GPRS NS layer + lbssgp GPRS BSSGP layer logging_vty_test# logp lglobal ? debug Log debug messages and higher levels -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I506190aae9217c0956e4b5764d1a0c0772268e93 Gerrit-Change-Number: 21597 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 Thu Dec 10 10:07:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:07:14 +0000 Subject: Change in libosmocore[master]: gb: Add beginnings of a new BSSGP implementation In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21598 ) Change subject: gb: Add beginnings of a new BSSGP implementation ...................................................................... gb: Add beginnings of a new BSSGP implementation Similar to ns2 superseding ns, we now also intoduce a next generation of BSSGP related code to libosmogb. However, this is not aiming to be a full implementation yet, but simply those parts that we currently need from the revamped osmo-gbproxy. The gprs_bssgp2.[ch] differs in two ways from the old code: * it separates message encoding from message transmission * it supports more recent specs / IEs bssgp_bvc_fsm.c is a genric implementation of the BSSGP BVC RESET/BLOCK/UNBLOCK logic with support for both PTP and signaling, both on the SGSN side and the BSS side. Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a --- M include/Makefile.am A include/osmocom/gprs/bssgp_bvc_fsm.h A include/osmocom/gprs/gprs_bssgp2.h M src/gb/Makefile.am A src/gb/bssgp_bvc_fsm.c A src/gb/gprs_bssgp2.c M src/gb/libosmogb.map 7 files changed, 1,139 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/Makefile.am b/include/Makefile.am index f67e1ad..0cb9cd2 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -64,7 +64,9 @@ osmocom/ctrl/control_if.h \ osmocom/ctrl/ports.h \ osmocom/gprs/frame_relay.h \ + osmocom/gprs/bssgp_bvc_fsm.h \ osmocom/gprs/gprs_bssgp.h \ + osmocom/gprs/gprs_bssgp2.h \ osmocom/gprs/gprs_bssgp_bss.h \ osmocom/gprs/gprs_msgb.h \ osmocom/gprs/gprs_ns.h \ diff --git a/include/osmocom/gprs/bssgp_bvc_fsm.h b/include/osmocom/gprs/bssgp_bvc_fsm.h new file mode 100644 index 0000000..7c6fdeb --- /dev/null +++ b/include/osmocom/gprs/bssgp_bvc_fsm.h @@ -0,0 +1,61 @@ +#pragma once +#include + +struct gprs_ns2_inst; +struct osmo_fsm_inst; +struct gprs_ra_id; + +enum bssp_ptp_bvc_fsm_state { + BSSGP_BVCFSM_S_NULL, + BSSGP_BVCFSM_S_BLOCKED, + BSSGP_BVCFSM_S_WAIT_RESET_ACK, + BSSGP_BVCFSM_S_UNBLOCKED, +}; + +enum bssgp_ptp_bvc_fsm_event { + /* Rx of BSSGP PDUs from the remote side; 'data' is 'struct tlv_parsed', and + * the assumption is that the caller has already validated all mandatory IEs + * are present and of sufficient length */ + BSSGP_BVCFSM_E_RX_BLOCK, + BSSGP_BVCFSM_E_RX_BLOCK_ACK, + BSSGP_BVCFSM_E_RX_UNBLOCK, + BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, + BSSGP_BVCFSM_E_RX_RESET, + BSSGP_BVCFSM_E_RX_RESET_ACK, + /* Requests of the local user */ + BSSGP_BVCFSM_E_REQ_BLOCK, /* data: uint8_t *cause */ + BSSGP_BVCFSM_E_REQ_UNBLOCK, + BSSGP_BVCFSM_E_REQ_RESET, /* data: uint8_t *cause */ +}; + +struct bssgp_bvc_fsm_ops { + /* call-back notifying the user of a state change */ + void (*state_chg_notification)(uint16_t nsei, uint16_t bvci, int old_state, int new_state, + void *priv); + /* call-back notifying the user of a BVC-RESET event */ + void (*reset_notification)(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv); +}; + +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_sig_bss(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint32_t features); + +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_ptp_bss(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci, + const struct gprs_ra_id *ra_id, uint16_t cell_id); + +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_sig_sgsn(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint32_t features); + +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_ptp_sgsn(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci); + +void bssgp_bvc_fsm_set_ops(struct osmo_fsm_inst *fi, const struct bssgp_bvc_fsm_ops *ops, void *ops_priv); + +bool bssgp_bvc_fsm_is_unblocked(struct osmo_fsm_inst *fi); + +uint8_t bssgp_bvc_fsm_get_block_cause(struct osmo_fsm_inst *fi); + +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); diff --git a/include/osmocom/gprs/gprs_bssgp2.h b/include/osmocom/gprs/gprs_bssgp2.h new file mode 100644 index 0000000..0ab3619 --- /dev/null +++ b/include/osmocom/gprs/gprs_bssgp2.h @@ -0,0 +1,31 @@ +#pragma once +#include + +#include +#include + +struct gprs_ns2_inst; +struct gprs_ra_id; +struct msgb; + +int bssgp2_nsi_tx_ptp(struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci, + struct msgb *msg, uint32_t lsp); + +int bssgp2_nsi_tx_sig(struct gprs_ns2_inst *nsi, uint16_t nsei, struct msgb *msg, uint32_t lsp); + +struct msgb *bssgp2_enc_bvc_block(uint16_t bvci, enum gprs_bssgp_cause cause); + +struct msgb *bssgp2_enc_bvc_block_ack(uint16_t bvci); + +struct msgb *bssgp2_enc_bvc_unblock(uint16_t bvci); + +struct msgb *bssgp2_enc_bvc_unblock_ack(uint16_t bvci); + +struct msgb *bssgp2_enc_bvc_reset(uint16_t bvci, enum gprs_bssgp_cause cause, + 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_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); diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index b140727..ea1cfde 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -26,6 +26,7 @@ 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_bssgp2.c bssgp_bvc_fsm.c \ common_vty.c frame_relay.c endif diff --git a/src/gb/bssgp_bvc_fsm.c b/src/gb/bssgp_bvc_fsm.c new file mode 100644 index 0000000..d134acb --- /dev/null +++ b/src/gb/bssgp_bvc_fsm.c @@ -0,0 +1,783 @@ +/* BSSGP per-BVC Finite State Machine */ + +/* (C) 2020 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 "common_vty.h" + +#define S(x) (1 << (x)) + +/* TODO: Those are not made cofnigurable via a VTY yet */ +struct osmo_tdef bssgp_bvc_fsm_tdefs[] = { + { + .T = 1, + .default_val = 5, + .min_val = 1, + .max_val = 30, + .unit = OSMO_TDEF_S, + .desc = "Guards the BSSGP BVC (un)blocking procedure", + }, { + .T = 2, + .default_val = 10, + .min_val = 1, + .max_val = 120, + .unit = OSMO_TDEF_S, + .desc = "Guards the BSSGP BVC reset procedure", + }, { + .T = 3, + .default_val = 500, + .min_val = 100, + .max_val = 10000, + .unit = OSMO_TDEF_MS, + .desc = "Guards the BSSGP SUSPEND procedure", + }, { + .T = 4, + .default_val = 500, + .min_val = 100, + .max_val = 10000, + .unit = OSMO_TDEF_MS, + .desc = "Guards the BSSGP RESUME procedure", + }, { + .T = 5, + .default_val = 15, + .min_val = 1, + .max_val = 30, + .unit = OSMO_TDEF_S, + .desc = "Guards the BSSGP Radio Access Capability Update procedure", + }, + {} +}; + +#define T1 1 +#define T2 2 + +/* We cannot use osmo_tdef_fsm_* as it makes hard-coded assumptions that + * each new/target state will always use the same timer and timeout - or + * a timeout at all */ +#define T1_SECS osmo_tdef_get(bssgp_bvc_fsm_tdefs, 1, OSMO_TDEF_S, 5) +#define T2_SECS osmo_tdef_get(bssgp_bvc_fsm_tdefs, 2, OSMO_TDEF_S, 10) + +/* forward declaration */ +static struct osmo_fsm bssgp_bvc_fsm; + +static const struct value_string ptp_bvc_event_names[] = { + { BSSGP_BVCFSM_E_RX_BLOCK, "RX-BVC-BLOCK" }, + { BSSGP_BVCFSM_E_RX_BLOCK_ACK, "RX-BVC-BLOCK-ACK" }, + { BSSGP_BVCFSM_E_RX_UNBLOCK, "RX-BVC-UNBLOCK" }, + { BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, "RX-BVC-UNBLOCK-ACK" }, + { BSSGP_BVCFSM_E_RX_RESET, "RX-BVC-RESET" }, + { BSSGP_BVCFSM_E_RX_RESET_ACK, "RX-BVC-RESET-ACK" }, + { BSSGP_BVCFSM_E_REQ_BLOCK, "REQ-BLOCK" }, + { BSSGP_BVCFSM_E_REQ_UNBLOCK, "REQ-UNBLOCK" }, + { BSSGP_BVCFSM_E_REQ_RESET, "REQ-RESET" }, + { 0, NULL } +}; + +struct bvc_fsm_priv { + /* NS-instance; defining the scope for NSEI below */ + struct gprs_ns2_inst *nsi; + + /* NSEI of the underlying NS Entity */ + uint16_t nsei; + + /* BVCI of this BVC */ + uint16_t bvci; + + /* are we the SGSN (true) or the BSS (false) */ + bool role_sgsn; + + /* BSS side: are we locally marked blocked? */ + bool locally_blocked; + uint8_t block_cause; + + /* cause value of the last outbound BVC-RESET (for re-transmissions) */ + uint8_t last_reset_cause; + + struct { + /* Bit 0..7: Features; Bit 8..15: Extended Features */ + uint32_t advertised; + uint32_t received; + uint32_t negotiated; + } features; + + /* Cell Identification used by BSS when + * transmitting BVC-RESET / BVC-RESET-ACK, or those received + * from BSS in SGSN role */ + struct gprs_ra_id ra_id; + uint16_t cell_id; + + /* call-backs provided by the user */ + const struct bssgp_bvc_fsm_ops *ops; + /* private data pointer passed to each call-back invocation */ + void *ops_priv; +}; + +static int fi_tx_ptp(struct osmo_fsm_inst *fi, struct msgb *msg) +{ + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + LOGPFSM(fi, "Tx BSSGP %s\n", osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + + return bssgp2_nsi_tx_ptp(bfp->nsi, bfp->nsei, bfp->bvci, msg, 0); +} + +static int fi_tx_sig(struct osmo_fsm_inst *fi, struct msgb *msg) +{ + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + LOGPFSM(fi, "Tx BSSGP %s\n", osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + + return bssgp2_nsi_tx_sig(bfp->nsi, bfp->nsei, msg, 0); +} + +/* helper function to transmit BVC-RESET with right combination of conditional/optional IEs */ +static void _tx_bvc_reset(struct osmo_fsm_inst *fi, uint8_t cause) +{ + struct bvc_fsm_priv *bfp = fi->priv; + const uint8_t *features = NULL; + const uint8_t *features_ext = NULL; + uint8_t _features[2] = { + (bfp->features.advertised >> 0) & 0xff, + (bfp->features.advertised >> 8) & 0xff, + }; + struct msgb *tx; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + /* transmit BVC-RESET to peer; RA-ID only present for PTP from BSS */ + if (bfp->bvci == 0) { + features = &_features[0]; + features_ext = &_features[1]; + } + tx = bssgp2_enc_bvc_reset(bfp->bvci, cause, + bfp->bvci && !bfp->role_sgsn ? &bfp->ra_id : NULL, + bfp->cell_id, features, features_ext); + fi_tx_sig(fi, tx); +} + +/* helper function to transmit BVC-RESET-ACK with right combination of conditional/optional IEs */ +static void _tx_bvc_reset_ack(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + const uint8_t *features = NULL; + const uint8_t *features_ext = NULL; + uint8_t _features[2] = { + (bfp->features.advertised >> 0) & 0xff, + (bfp->features.advertised >> 8) & 0xff, + }; + struct msgb *tx; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + /* transmit BVC-RESET-ACK to peer; RA-ID only present for PTP from BSS -> SGSN */ + if (bfp->bvci == 0) { + features = &_features[0]; + features_ext = &_features[1]; + } + tx = bssgp2_enc_bvc_reset_ack(bfp->bvci, bfp->bvci && !bfp->role_sgsn ? &bfp->ra_id : NULL, + bfp->cell_id, features, features_ext); + fi_tx_sig(fi, tx); +} + +/* helper function to transmit BVC-STATUS with right combination of conditional/optional IEs */ +static void _tx_status(struct osmo_fsm_inst *fi, enum gprs_bssgp_cause cause, const struct msgb *rx) +{ + struct bvc_fsm_priv *bfp = fi->priv; + struct msgb *tx; + uint16_t *bvci = NULL; + + /* GSM 08.18, 10.4.14.1: The BVCI must be included if (and only if) the + * cause is either "BVCI blocked" or "BVCI unknown" */ + if (cause == BSSGP_CAUSE_UNKNOWN_BVCI || cause == BSSGP_CAUSE_BVCI_BLOCKED) + bvci = &bfp->bvci; + + tx = bssgp2_enc_status(cause, bvci, rx); + + if (msgb_bvci(rx) == 0) + fi_tx_sig(fi, tx); + else + fi_tx_ptp(fi, tx); +} + +/* Update the features by bit-wise AND of advertised + received features */ +static void update_negotiated_features(struct osmo_fsm_inst *fi, const struct tlv_parsed *tp) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + bfp->features.received = 0; + + if (TLVP_PRES_LEN(tp, BSSGP_IE_FEATURE_BITMAP, 1)) + bfp->features.received |= *TLVP_VAL(tp, BSSGP_IE_FEATURE_BITMAP); + + if (TLVP_PRES_LEN(tp, BSSGP_IE_EXT_FEATURE_BITMAP, 1)) + bfp->features.received |= (*TLVP_VAL(tp, BSSGP_IE_EXT_FEATURE_BITMAP) << 8); + + bfp->features.negotiated = bfp->features.advertised & bfp->features.received; + + LOGPFSML(fi, LOGL_NOTICE, "Updating features: Advertised 0x%04x, Received 0x%04x, Negotiated 0x%04x\n", + bfp->features.advertised, bfp->features.received, bfp->features.negotiated); +} + +/* "tail" of each onenter() handler: Calling the state change notification call-back */ +static void _onenter_tail(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + if (prev_state == fi->state) + return; + + if (bfp->ops && bfp->ops->state_chg_notification) + bfp->ops->state_chg_notification(bfp->nsei, bfp->bvci, prev_state, fi->state, bfp->ops_priv); +} + +static void bssgp_bvc_fsm_null(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + /* we don't really expect anything in this state; all handled via allstate */ + OSMO_ASSERT(0); +} + +static void bssgp_bvc_fsm_blocked_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct bvc_fsm_priv *bfp = fi->priv; + /* signaling BVC can never be blocked */ + OSMO_ASSERT(bfp->bvci != 0); + _onenter_tail(fi, prev_state); +} + +static void bssgp_bvc_fsm_blocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct bvc_fsm_priv *bfp = fi->priv; + struct msgb *rx = NULL, *tx; + const struct tlv_parsed *tp = NULL; + uint8_t cause; + + switch (event) { + case BSSGP_BVCFSM_E_RX_BLOCK_ACK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* If a BVC-BLOCK-ACK PDU is received by a BSS for the signalling BVC, the PDU is ignored. */ + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-BLOCK-ACK on BVCI=0 is illegal\n"); + if (!bfp->role_sgsn) + break; + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + /* stop T1 timer */ + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, 0, 0); + break; + case BSSGP_BVCFSM_E_RX_BLOCK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + cause = *TLVP_VAL(tp, BSSGP_IE_CAUSE); + LOGPFSML(fi, LOGL_NOTICE, "Rx BVC-BLOCK (cause=%s)\n", bssgp_cause_str(cause)); + /* If a BVC-BLOCK PDU is received by an SGSN for a blocked BVC, a BVC-BLOCK-ACK + * PDU shall be returned. */ + if (bfp->role_sgsn) { + /* If a BVC-BLOCK PDU is received by an SGSN for + * the signalling BVC, the PDU is ignored */ + if (bfp->bvci == 0) + break; + tx = bssgp2_enc_bvc_block_ack(bfp->bvci); + fi_tx_sig(fi, tx); + } + break; + case BSSGP_BVCFSM_E_RX_UNBLOCK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + LOGPFSML(fi, LOGL_NOTICE, "Rx BVC-UNBLOCK\n"); + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-UNBLOCK on BVCI=0 is illegal\n"); + /* If BVC-UNBLOCK PDU is received by an SGSN for the signalling BVC, the PDU is ignored.*/ + if (bfp->role_sgsn) + break; + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + if (!bfp->role_sgsn) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-UNBLOCK on BSS is illegal\n"); + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + tx = bssgp2_enc_bvc_unblock_ack(bfp->bvci); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, T1_SECS, T1); + break; + case BSSGP_BVCFSM_E_REQ_UNBLOCK: + if (bfp->role_sgsn) { + LOGPFSML(fi, LOGL_ERROR, "SGSN side cannot initiate BVC unblock\n"); + break; + } + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "BVCI 0 cannot be unblocked\n"); + break; + } + bfp->locally_blocked = false; + tx = bssgp2_enc_bvc_unblock(bfp->bvci); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, 0, 0); + break; + } +} + +/* Waiting for RESET-ACK: Receive PDUs but don't transmit */ +static void bssgp_bvc_fsm_wait_reset_ack(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct bvc_fsm_priv *bfp = fi->priv; + const struct tlv_parsed *tp = NULL; + struct msgb *rx = NULL, *tx; + + switch (event) { + case BSSGP_BVCFSM_E_RX_RESET_ACK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + if (bfp->bvci == 0) + update_negotiated_features(fi, tp); + if (bfp->role_sgsn && bfp->bvci != 0) + bfp->cell_id = bssgp_parse_cell_id(&bfp->ra_id, TLVP_VAL(tp, BSSGP_IE_CELL_ID)); + if (!bfp->role_sgsn && bfp->bvci != 0 && bfp->locally_blocked) { + /* initiate the blocking procedure */ + /* transmit BVC-BLOCK, transition to BLOCKED state and start re-transmit timer */ + tx = bssgp2_enc_bvc_block(bfp->bvci, bfp->block_cause); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, T1_SECS, T1); + } else + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, 0, 0); + break; + } +} + +static void bssgp_bvc_fsm_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct bvc_fsm_priv *bfp = fi->priv; + const struct tlv_parsed *tp = NULL; + struct msgb *rx = NULL, *tx; + + switch (event) { + case BSSGP_BVCFSM_E_RX_UNBLOCK_ACK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* If BVC-UNBLOCK-ACK PDU is received by an BSS for the signalling BVC, the PDU is ignored. */ + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-UNBLOCK-ACK on BVCI=0 is illegal\n"); + if (bfp->bvci == 0) { + if (!bfp->role_sgsn) + break; + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + /* stop T1 timer */ + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, 0, 0); + break; + case BSSGP_BVCFSM_E_RX_UNBLOCK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* If a BVC-UNBLOCK PDU is received by an SGSN for a blocked BVC, a BVC-UNBLOCK-ACK + * PDU shall be returned. */ + if (bfp->role_sgsn) { + /* If a BVC-UNBLOCK PDU is received by an SGSN for + * the signalling BVC, the PDU is ignored */ + if (bfp->bvci == 0) + break; + bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_UNBLOCK_ACK, bfp->nsei, bfp->bvci, 0); + } + break; + case BSSGP_BVCFSM_E_RX_BLOCK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + LOGPFSML(fi, LOGL_NOTICE, "Rx BVC-BLOCK (cause=%s)\n", + bssgp_cause_str(*TLVP_VAL(tp, BSSGP_IE_CAUSE))); + /* If a BVC-BLOCK PDU is received by an SGSN for the signalling BVC, the PDU is ignored */ + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-BLOCK on BVCI=0 is illegal\n"); + if (bfp->role_sgsn) + break; + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + if (!bfp->role_sgsn) { + LOGPFSML(fi, LOGL_ERROR, "Rx BVC-BLOCK on BSS is illegal\n"); + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + /* transmit BVC-BLOCK-ACK, transition to BLOCKED state */ + tx = bssgp2_enc_bvc_block_ack(bfp->bvci); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, 0, 0); + break; + 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; + } + bfp->locally_blocked = true; + bfp->block_cause = *(uint8_t *)data; + /* transmit BVC-BLOCK, transition to BLOCKED state and start re-transmit timer */ + tx = bssgp2_enc_bvc_block(bfp->bvci, bfp->block_cause); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, T1_SECS, T1); + break; + } +} + +static void bssgp_bvc_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct bvc_fsm_priv *bfp = fi->priv; + uint8_t cause; + const struct tlv_parsed *tp = NULL; + struct msgb *rx = NULL; + + switch (event) { + case BSSGP_BVCFSM_E_REQ_RESET: + bfp->locally_blocked = false; + cause = bfp->last_reset_cause = *(uint8_t *) data; + _tx_bvc_reset(fi, cause); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_WAIT_RESET_ACK, T2_SECS, T2); +#if 0 /* not sure if we really should notify the application if itself has requested the reset? */ + if (bfp->ops && bfp->ops->reset_notification) + bfp->ops->reset_notification(bfp->nsei, bfp->bvci, NULL, 0, cause, bfp->ops_priv); +#endif + break; + case BSSGP_BVCFSM_E_RX_RESET: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + cause = *TLVP_VAL(tp, BSSGP_IE_CAUSE); + if (bfp->role_sgsn && bfp->bvci != 0) + bfp->cell_id = bssgp_parse_cell_id(&bfp->ra_id, TLVP_VAL(tp, BSSGP_IE_CELL_ID)); + LOGPFSML(fi, LOGL_NOTICE, "Rx BVC-RESET (cause=%s)\n", bssgp_cause_str(cause)); + if (bfp->bvci == 0) + update_negotiated_features(fi, tp); + _tx_bvc_reset_ack(fi); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, 0, 0); + if (bfp->ops && bfp->ops->reset_notification) { + bfp->ops->reset_notification(bfp->nsei, bfp->bvci, &bfp->ra_id, bfp->cell_id, + cause, bfp->ops_priv); + } + break; + } +} + +static int bssgp_bvc_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + struct msgb *tx; + + switch (fi->T) { + case T1: + switch (fi->state) { + case BSSGP_BVCFSM_S_BLOCKED: + /* re-transmit BVC-BLOCK */ + tx = bssgp2_enc_bvc_block(bfp->bvci, bfp->block_cause); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, T1_SECS, T1); + break; + case BSSGP_BVCFSM_S_UNBLOCKED: + /* re-transmit BVC-UNBLOCK */ + tx = bssgp2_enc_bvc_unblock(bfp->bvci); + fi_tx_sig(fi, tx); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, T1_SECS, T1); + break; + } + break; + case T2: + switch (fi->state) { + case BSSGP_BVCFSM_S_WAIT_RESET_ACK: + /* re-transmit BVC-RESET */ + _tx_bvc_reset(fi, bfp->last_reset_cause); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_WAIT_RESET_ACK, T2_SECS, T2); + break; + case BSSGP_BVCFSM_S_UNBLOCKED: + /* re-transmit BVC-RESET-ACK */ + _tx_bvc_reset_ack(fi); + osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_UNBLOCKED, T2_SECS, T2); + break; + } + break; + default: + OSMO_ASSERT(0); + break; + } + return 0; +} + + + +static const struct osmo_fsm_state bssgp_bvc_fsm_states[] = { + [BSSGP_BVCFSM_S_NULL] = { + /* initial state from which we must do a RESET */ + .name = "NULL", + .in_event_mask = 0, + .out_state_mask = S(BSSGP_BVCFSM_S_WAIT_RESET_ACK) | + S(BSSGP_BVCFSM_S_UNBLOCKED), + .action = bssgp_bvc_fsm_null, + }, + [BSSGP_BVCFSM_S_BLOCKED] = { + .name = "BLOCKED", + .in_event_mask = S(BSSGP_BVCFSM_E_RX_UNBLOCK) | + S(BSSGP_BVCFSM_E_RX_BLOCK) | + S(BSSGP_BVCFSM_E_RX_BLOCK_ACK) | + S(BSSGP_BVCFSM_E_REQ_UNBLOCK), + .out_state_mask = S(BSSGP_BVCFSM_S_WAIT_RESET_ACK) | + S(BSSGP_BVCFSM_S_UNBLOCKED) | + S(BSSGP_BVCFSM_S_BLOCKED), + .action = bssgp_bvc_fsm_blocked, + .onenter = bssgp_bvc_fsm_blocked_onenter, + }, + [BSSGP_BVCFSM_S_WAIT_RESET_ACK]= { + .name = "WAIT_RESET_ACK", + .in_event_mask = S(BSSGP_BVCFSM_E_RX_RESET_ACK), + .out_state_mask = S(BSSGP_BVCFSM_S_UNBLOCKED) | + S(BSSGP_BVCFSM_S_BLOCKED) | + S(BSSGP_BVCFSM_S_WAIT_RESET_ACK), + .action = bssgp_bvc_fsm_wait_reset_ack, + .onenter = _onenter_tail, + }, + + [BSSGP_BVCFSM_S_UNBLOCKED] = { + .name = "UNBLOCKED", + .in_event_mask = S(BSSGP_BVCFSM_E_RX_BLOCK) | + S(BSSGP_BVCFSM_E_RX_UNBLOCK) | + S(BSSGP_BVCFSM_E_RX_UNBLOCK_ACK) | + S(BSSGP_BVCFSM_E_REQ_BLOCK), + .out_state_mask = S(BSSGP_BVCFSM_S_BLOCKED) | + S(BSSGP_BVCFSM_S_WAIT_RESET_ACK) | + S(BSSGP_BVCFSM_S_UNBLOCKED), + .action = bssgp_bvc_fsm_unblocked, + .onenter = _onenter_tail, + }, +}; + +static struct osmo_fsm bssgp_bvc_fsm = { + .name = "BSSGP-BVC", + .states = bssgp_bvc_fsm_states, + .num_states = ARRAY_SIZE(bssgp_bvc_fsm_states), + .allstate_event_mask = S(BSSGP_BVCFSM_E_REQ_RESET) | + S(BSSGP_BVCFSM_E_RX_RESET), + .allstate_action = bssgp_bvc_fsm_allstate, + .timer_cb = bssgp_bvc_fsm_timer_cb, + .log_subsys = DLBSSGP, + .event_names = ptp_bvc_event_names, +}; + +static struct osmo_fsm_inst * +_bvc_fsm_alloc(void *ctx, struct gprs_ns2_inst *nsi, bool role_sgsn, uint16_t nsei, uint16_t bvci) +{ + struct osmo_fsm_inst *fi; + struct bvc_fsm_priv *bfp; + char idbuf[64]; + + /* TODO: encode our role in the id string? */ + snprintf(idbuf, sizeof(idbuf), "NSE%05u-BVC%05u", nsei, bvci); + + fi = osmo_fsm_inst_alloc(&bssgp_bvc_fsm, ctx, NULL, LOGL_INFO, idbuf); + if (!fi) + return NULL; + + bfp = talloc_zero(fi, struct bvc_fsm_priv); + if (!bfp) { + osmo_fsm_inst_free(fi); + return NULL; + } + fi->priv = bfp; + + bfp->nsi = nsi; + bfp->role_sgsn = role_sgsn; + bfp->nsei = nsei; + bfp->bvci = bvci; + + return fi; +} + +/*! Allocate a SIGNALING-BVC FSM for the BSS role (facing a remote SGSN). + * \param[in] ctx talloc context from which to allocate + * \param[in] nsi NS Instance on which this BVC operates + * \param[in] nsei NS Entity Identifier on which this BVC operates + * \param[in] features Feature [byte 0] and Extended Feature [byte 1] bitmap + * \returns newly-allocated FSM Instance; NULL in case of error */ +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_sig_bss(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint32_t features) +{ + struct osmo_fsm_inst *fi = _bvc_fsm_alloc(ctx, nsi, false, nsei, 0); + struct bvc_fsm_priv *bfp; + + if (!fi) + return NULL; + + bfp = fi->priv; + bfp->features.advertised = features; + + return fi; +} + +/*! Allocate a PTP-BVC FSM for the BSS role (facing a remote SGSN). + * \param[in] ctx talloc context from which to allocate + * \param[in] nsi NS Instance on which this BVC operates + * \param[in] nsei NS Entity Identifier on which this BVC operates + * \param[in] bvci BVCI of this FSM + * \param[in] ra_id Routing Area Identity of the cell (reported to SGSN) + * \param[in] cell_id Cell Identifier of the cell (reported to SGSN) + * \returns newly-allocated FSM Instance; NULL in case of error */ +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_ptp_bss(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, + uint16_t bvci, const struct gprs_ra_id *ra_id, uint16_t cell_id) +{ + struct osmo_fsm_inst *fi; + struct bvc_fsm_priv *bfp; + + OSMO_ASSERT(bvci >= 2); + OSMO_ASSERT(ra_id); + + fi = _bvc_fsm_alloc(ctx, nsi, false, nsei, bvci); + if (!fi) + return NULL; + + bfp = fi->priv; + bfp->ra_id = *ra_id; + bfp->cell_id = cell_id; + + return fi; +} + +/*! Allocate a SIGNALING-BVC FSM for the SGSN role (facing a remote BSS). + * \param[in] ctx talloc context from which to allocate + * \param[in] nsi NS Instance on which this BVC operates + * \param[in] nsei NS Entity Identifier on which this BVC operates + * \param[in] features Feature [byte 0] and Extended Feature [byte 1] bitmap + * \returns newly-allocated FSM Instance; NULL in case of error */ +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_sig_sgsn(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint32_t features) +{ + struct osmo_fsm_inst *fi = _bvc_fsm_alloc(ctx, nsi, true, nsei, 0); + struct bvc_fsm_priv *bfp; + + if (!fi) + return NULL; + + bfp = fi->priv; + bfp->features.advertised = features; + + return fi; +} + +/*! Allocate a PTP-BVC FSM for the SGSN role (facing a remote BSS). + * \param[in] ctx talloc context from which to allocate + * \param[in] nsi NS Instance on which this BVC operates + * \param[in] nsei NS Entity Identifier on which this BVC operates + * \param[in] bvci BVCI of this FSM + * \returns newly-allocated FSM Instance; NULL in case of error */ +struct osmo_fsm_inst * +bssgp_bvc_fsm_alloc_ptp_sgsn(void *ctx, struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci) +{ + struct osmo_fsm_inst *fi; + + OSMO_ASSERT(bvci >= 2); + + fi = _bvc_fsm_alloc(ctx, nsi, true, nsei, bvci); + if (!fi) + return NULL; + + return fi; +} + +/*! Set the 'operations' callbacks + private data. + * \param[in] fi FSM instance for which the data shall be set + * \param[in] ops BSSGP BVC FSM operations (call-back functions) to register + * \param[in] ops_priv opaque/private data pointer passed through to call-backs */ +void bssgp_bvc_fsm_set_ops(struct osmo_fsm_inst *fi, const struct bssgp_bvc_fsm_ops *ops, void *ops_priv) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + + bfp->ops = ops; + bfp->ops_priv = ops_priv; +} + +/*! Return if the given BVC FSM is in UNBLOCKED state. */ +bool bssgp_bvc_fsm_is_unblocked(struct osmo_fsm_inst *fi) +{ + return fi->state == BSSGP_BVCFSM_S_UNBLOCKED; +} + +/*! Determine the cause value why given BVC FSM is blocked. */ +uint8_t bssgp_bvc_fsm_get_block_cause(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + return bfp->block_cause; +} + +/*! Return the advertised features / extended features. */ +uint32_t bssgp_bvc_get_features_advertised(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + return bfp->features.advertised; +} + +/*! Return the received features / extended features. */ +uint32_t bssgp_bvc_get_features_received(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + return bfp->features.received; +} + +/*! Return the negotiated features / extended features. */ +uint32_t bssgp_bvc_get_features_negotiated(struct osmo_fsm_inst *fi) +{ + struct bvc_fsm_priv *bfp = fi->priv; + + OSMO_ASSERT(fi->fsm == &bssgp_bvc_fsm); + return bfp->features.negotiated; +} + +static __attribute__((constructor)) void on_dso_load_bvc_fsm(void) +{ + osmo_fsm_register(&bssgp_bvc_fsm); +} diff --git a/src/gb/gprs_bssgp2.c b/src/gb/gprs_bssgp2.c new file mode 100644 index 0000000..e741fb4 --- /dev/null +++ b/src/gb/gprs_bssgp2.c @@ -0,0 +1,240 @@ +/* BSSGP2 - second generation of BSSGP library */ + +/* (C) 2020 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 + + +/*! transmit BSSGP PDU over NS (PTP BVC) + * \param[in] nsi NS Instance through which to transmit + * \param[in] nsei NSEI of NSE through which to transmit + * \param[in] bvci BVCI through which to transmit + * \param[in] msg BSSGP PDU to transmit + * \returns 0 on success; negative on error */ +int bssgp2_nsi_tx_ptp(struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci, + struct msgb *msg, uint32_t lsp) +{ + struct osmo_gprs_ns2_prim nsp = {}; + int rc; + + if (!msg) + return 0; + + nsp.bvci = bvci; + nsp.nsei = nsei; + nsp.u.unitdata.link_selector = lsp; + + osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); + rc = gprs_ns2_recv_prim(nsi, &nsp.oph); + + return rc; +} + +/*! transmit BSSGP PDU over NS (SIGNALING BVC) + * \param[in] nsi NS Instance through which to transmit + * \param[in] nsei NSEI of NSE through which to transmit + * \param[in] msg BSSGP PDU to transmit + * \returns 0 on success; negative on error */ +int bssgp2_nsi_tx_sig(struct gprs_ns2_inst *nsi, uint16_t nsei, struct msgb *msg, uint32_t lsp) +{ + return bssgp2_nsi_tx_ptp(nsi, nsei, 0, msg, lsp); +} + +/*! Encode BSSGP BVC-BLOCK PDU as per TS 48.018 Section 10.4.8. */ +struct msgb *bssgp2_enc_bvc_block(uint16_t bvci, enum gprs_bssgp_cause cause) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_BLOCK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, (uint8_t *) &cause); + + return msg; +} + +/*! Encode BSSGP BVC-BLOCK-ACK PDU as per TS 48.018 Section 10.4.9. */ +struct msgb *bssgp2_enc_bvc_block_ack(uint16_t bvci) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_BLOCK_ACK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + + return msg; +} + +/*! Encode BSSGP BVC-UNBLOCK PDU as per TS 48.018 Section 10.4.10. */ +struct msgb *bssgp2_enc_bvc_unblock(uint16_t bvci) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_UNBLOCK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + + return msg; +} + +/*! Encode BSSGP BVC-UNBLOCK-ACK PDU as per TS 48.018 Section 10.4.11. */ +struct msgb *bssgp2_enc_bvc_unblock_ack(uint16_t bvci) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_UNBLOCK_ACK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + + return msg; +} + +/*! Encode BSSGP BVC-RESET PDU as per TS 48.018 Section 10.4.12. + * \param[in] bvci PTP BVCI to encode into the BVCI IE + * \param[in] cause BSSGP Cause value (reason for reset) + * \param[in] ra_id Routing Area ID to be encoded to CELL_ID IE (optional) + * \param[in] cell_id Cell ID to be encoded to CELL_ID IE (only if ra_id is non-NULL) + * \param[in] feat_bm Feature Bitmap (optional) + * \param[in] ext_feat_bm Extended Feature Bitmap (optional) */ +struct msgb *bssgp2_enc_bvc_reset(uint16_t bvci, enum gprs_bssgp_cause cause, + const struct gprs_ra_id *ra_id, uint16_t cell_id, + const uint8_t *feat_bm, const uint8_t *ext_feat_bm) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_RESET; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, (uint8_t *) &cause); + if (ra_id) { + uint8_t bssgp_cid[8]; + bssgp_create_cell_id(bssgp_cid, ra_id, cell_id); + msgb_tvlv_put(msg, BSSGP_IE_CELL_ID, sizeof(bssgp_cid), bssgp_cid); + } + + if (feat_bm) + msgb_tvlv_put(msg, BSSGP_IE_FEATURE_BITMAP, 1, feat_bm); + + if (ext_feat_bm) + msgb_tvlv_put(msg, BSSGP_IE_EXT_FEATURE_BITMAP, 1, feat_bm); + + return msg; +} + +/*! Encode BSSGP BVC-RESET-ACK PDU as per TS 48.018 Section 10.4.13. + * \param[in] bvci PTP BVCI to encode into the BVCI IE + * \param[in] ra_id Routing Area ID to be encoded to CELL_ID IE (optional) + * \param[in] cell_id Cell ID to be encoded to CELL_ID IE (only if ra_id is non-NULL) + * \param[in] feat_bm Feature Bitmap (optional) + * \param[in] ext_feat_bm Extended Feature Bitmap (optional) */ +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 *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint16_t _bvci = osmo_htons(bvci); + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_BVC_RESET_ACK; + + msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); + if (ra_id) { + uint8_t bssgp_cid[8]; + bssgp_create_cell_id(bssgp_cid, ra_id, cell_id); + msgb_tvlv_put(msg, BSSGP_IE_CELL_ID, sizeof(bssgp_cid), bssgp_cid); + } + + if (feat_bm) + msgb_tvlv_put(msg, BSSGP_IE_FEATURE_BITMAP, 1, feat_bm); + + if (ext_feat_bm) + msgb_tvlv_put(msg, BSSGP_IE_EXT_FEATURE_BITMAP, 1, feat_bm); + + return msg; +} + +/*! 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) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + + if (!msg) + return NULL; + + 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); + 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)); + + return msg; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 8abac74..e605d27 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -45,6 +45,27 @@ bssgp_vty_init; bssgp_nsi; +bssgp2_nsi_tx_ptp; +bssgp2_nsi_tx_sig; +bssgp2_enc_bvc_block; +bssgp2_enc_bvc_block_ack; +bssgp2_enc_bvc_unblock; +bssgp2_enc_bvc_unblock_ack; +bssgp2_enc_bvc_reset; +bssgp2_enc_bvc_reset_ack; +bssgp2_enc_status; + +bssgp_bvc_fsm_alloc_sig_bss; +bssgp_bvc_fsm_alloc_ptp_bss; +bssgp_bvc_fsm_alloc_sig_sgsn; +bssgp_bvc_fsm_alloc_ptp_sgsn; +bssgp_bvc_fsm_set_ops; +bssgp_bvc_fsm_is_unblocked; +bssgp_bvc_fsm_get_block_cause; +bssgp_bvc_get_features_advertised; +bssgp_bvc_get_features_received; +bssgp_bvc_get_features_negotiated; + osmo_fr_network_alloc; osmo_fr_link_alloc; osmo_fr_link_free; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icbe8e4f03b68fd73b8eae95f6f6cccd4fa9af95a Gerrit-Change-Number: 21598 Gerrit-PatchSet: 7 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 Thu Dec 10 10:07:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:07:14 +0000 Subject: Change in libosmocore[master]: logging: Assing different 8bit colors to built-in subsystems In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21599 ) Change subject: logging: Assing different 8bit colors to built-in subsystems ...................................................................... logging: Assing different 8bit colors to built-in subsystems The 16 ANSI colors we started to use for OpenBSC in 2008 were sufficient for those few sub-systems that occurred in the BSC/NITB. Over time, most sub-systems did not get colors anymore. Let's change that and assign more or less random colors from the 8bit color palette. Change-Id: Ia8c0f91a61fbca0441faf66b3f368f45f886187c --- M src/logging.c 1 file changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve diff --git a/src/logging.c b/src/logging.c index 0b4c1ff..efa108e 100644 --- a/src/logging.c +++ b/src/logging.c @@ -131,6 +131,7 @@ { 0, NULL }, }; +/* 256 color palette see https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit */ #define INT2IDX(x) (-1*(x)-1) static const struct log_info_cat internal_cat[OSMO_NUM_DLIB] = { [INT2IDX(DLGLOBAL)] = { /* -1 becomes 0 */ @@ -138,110 +139,131 @@ .description = "Library-internal global log family", .loglevel = LOGL_NOTICE, .enabled = 1, + .color = "\033[38;5;19m", }, [INT2IDX(DLLAPD)] = { /* -2 becomes 1 */ .name = "DLLAPD", .description = "LAPD in libosmogsm", .loglevel = LOGL_NOTICE, .enabled = 1, + .color = "\033[38;5;21m", }, [INT2IDX(DLINP)] = { .name = "DLINP", .description = "A-bis Intput Subsystem", .loglevel = LOGL_NOTICE, .enabled = 1, + .color = "\033[38;5;23m", }, [INT2IDX(DLMUX)] = { .name = "DLMUX", .description = "A-bis B-Subchannel TRAU Frame Multiplex", .loglevel = LOGL_NOTICE, .enabled = 1, + .color = "\033[38;5;25m", }, [INT2IDX(DLMI)] = { .name = "DLMI", .description = "A-bis Input Driver for Signalling", .enabled = 0, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;27m", }, [INT2IDX(DLMIB)] = { .name = "DLMIB", .description = "A-bis Input Driver for B-Channels (voice)", .enabled = 0, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;29m", }, [INT2IDX(DLSMS)] = { .name = "DLSMS", .description = "Layer3 Short Message Service (SMS)", .enabled = 1, .loglevel = LOGL_NOTICE, .color = OSMO_LOGCOLOR_BRIGHTWHITE, + .color = "\033[38;5;31m", }, [INT2IDX(DLCTRL)] = { .name = "DLCTRL", .description = "Control Interface", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;33m", }, [INT2IDX(DLGTP)] = { .name = "DLGTP", .description = "GPRS GTP library", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;35m", }, [INT2IDX(DLSTATS)] = { .name = "DLSTATS", .description = "Statistics messages and logging", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;37m", }, [INT2IDX(DLGSUP)] = { .name = "DLGSUP", .description = "Generic Subscriber Update Protocol", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;39m", }, [INT2IDX(DLOAP)] = { .name = "DLOAP", .description = "Osmocom Authentication Protocol", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;41m", }, [INT2IDX(DLSS7)] = { .name = "DLSS7", .description = "libosmo-sigtran Signalling System 7", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;43m", }, [INT2IDX(DLSCCP)] = { .name = "DLSCCP", .description = "libosmo-sigtran SCCP Implementation", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;45m", }, [INT2IDX(DLSUA)] = { .name = "DLSUA", .description = "libosmo-sigtran SCCP User Adaptation", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;47m", }, [INT2IDX(DLM3UA)] = { .name = "DLM3UA", .description = "libosmo-sigtran MTP3 User Adaptation", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;49m", }, [INT2IDX(DLMGCP)] = { .name = "DLMGCP", .description = "libosmo-mgcp Media Gateway Control Protocol", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;51m", }, [INT2IDX(DLJIBUF)] = { .name = "DLJIBUF", .description = "libosmo-netif Jitter Buffer", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;53m", }, [INT2IDX(DLRSPRO)] = { .name = "DLRSPRO", .description = "Remote SIM protocol", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;55m", }, [INT2IDX(DLNS)] = { .name = "DLNS", .description = "GPRS NS layer", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;57m", }, [INT2IDX(DLBSSGP)] = { .name = "DLBSSGP", .description = "GPRS BSSGP layer", .enabled = 1, .loglevel = LOGL_NOTICE, + .color = "\033[38;5;59m", }, }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8c0f91a61fbca0441faf66b3f368f45f886187c Gerrit-Change-Number: 21599 Gerrit-PatchSet: 7 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 Thu Dec 10 10:07:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:07:15 +0000 Subject: Change in libosmocore[master]: bssgp2: Encoding + Decoding functions for BVC and MS flow control In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21610 ) Change subject: bssgp2: Encoding + Decoding functions for BVC and MS flow control ...................................................................... bssgp2: Encoding + Decoding functions for BVC and MS flow control Change-Id: I9c89bb1c03550930c07aad7ff8f67129ee7a6320 Related: OS#4891 --- M include/osmocom/gprs/gprs_bssgp2.h M include/osmocom/gprs/protocol/gsm_08_18.h M src/gb/gprs_bssgp2.c M src/gb/libosmogb.map 4 files changed, 259 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified Objections: daniel: I would prefer this is not merged as is diff --git a/include/osmocom/gprs/gprs_bssgp2.h b/include/osmocom/gprs/gprs_bssgp2.h index 0ab3619..bf814cb 100644 --- a/include/osmocom/gprs/gprs_bssgp2.h +++ b/include/osmocom/gprs/gprs_bssgp2.h @@ -4,10 +4,41 @@ #include #include +struct bssgp2_flow_ctrl; struct gprs_ns2_inst; struct gprs_ra_id; struct msgb; +struct bssgp2_flow_ctrl { + uint8_t tag; + /* maximum bucket size (Bmax) in bytes */ + uint64_t bucket_size_max; + /*! bucket leak rate in _bytes_ per second */ + uint64_t bucket_leak_rate; + /* percentage how full the given bucket is */ + uint8_t bucket_full_ratio; + bool bucket_full_ratio_present; + union { + /*! FC-BVC specifi members */ + struct { + /*! default maximum bucket size per MS in bytes */ + uint64_t bmax_default_ms; + /*! default bucket leak rate (R) for MS flow control bucket */ + uint64_t r_default_ms; + + /*! average milliseconds of queueing delay for a BVC */ + uint32_t measurement; + bool measurement_present; + } bvc; + /*! FC-MS specifi members */ + struct { + /*! TLLI of the MS */ + uint32_t tlli; + } ms; + } u; +}; + + int bssgp2_nsi_tx_ptp(struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci, struct msgb *msg, uint32_t lsp); @@ -29,3 +60,11 @@ 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); + + +int bssgp2_dec_fc_bvc(struct bssgp2_flow_ctrl *fc, const struct tlv_parsed *tp); +struct msgb *bssgp2_enc_fc_bvc(const struct bssgp2_flow_ctrl *fc, enum bssgp_fc_granularity *gran); +struct msgb *bssgp2_enc_fc_bvc_ack(uint8_t tag); +int bssgp2_dec_fc_ms(struct bssgp2_flow_ctrl *fc, struct tlv_parsed *tp); +struct msgb *bssgp2_enc_fc_ms(const struct bssgp2_flow_ctrl *fc, enum bssgp_fc_granularity *gran); +struct msgb *bssgp2_enc_fc_ms_ack(uint32_t tlli, uint8_t tag); diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 0ce28f5..466b0c5 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -341,3 +341,11 @@ #define BSSGP_XFEAT_DCN 0x20 /* Dedicated CN */ #define BSSGP_XFEAT_eDRX 0x40 /* eDRX */ #define BSSGP_XFEAT_MSAD 0x80 /* MS-assisted Dedicated CN selection */ + +/* Flow Control Granularity (Section 11.3.102) */ +enum bssgp_fc_granularity { + BSSGP_FC_GRAN_100 = 0, + BSSGP_FC_GRAN_1000 = 1, + BSSGP_FC_GRAN_10000 = 2, + BSSGP_FC_GRAN_100000 = 3, +}; diff --git a/src/gb/gprs_bssgp2.c b/src/gb/gprs_bssgp2.c index e741fb4..a54a8d9 100644 --- a/src/gb/gprs_bssgp2.c +++ b/src/gb/gprs_bssgp2.c @@ -238,3 +238,209 @@ return msg; } + +static const unsigned int bssgp_fc_gran_tbl[] = { + [BSSGP_FC_GRAN_100] = 100, + [BSSGP_FC_GRAN_1000] = 1000, + [BSSGP_FC_GRAN_10000] = 10000, + [BSSGP_FC_GRAN_100000] = 100000, +}; + +/*! Decode a FLOW-CONTROL-BVC PDU as per TS 48.018 Section 10.4.4. + * \param[out] fc caller-allocated memory for parsed output + * \param[in] tp pre-parsed TLVs; caller must ensure mandatory IE presence/length + * \returns 0 on success; negative in case of error */ +int bssgp2_dec_fc_bvc(struct bssgp2_flow_ctrl *fc, const struct tlv_parsed *tp) +{ + unsigned int granularity = 100; + + /* optional "Flow Control Granularity IE" (11.3.102); applies to + * bucket_size_max, bucket_leak_rate and PFC FC params IE */ + if (TLVP_PRESENT(tp, BSSGP_IE_FLOW_CTRL_GRANULARITY)) { + uint8_t gran = *TLVP_VAL(tp, BSSGP_IE_FLOW_CTRL_GRANULARITY); + granularity = bssgp_fc_gran_tbl[gran & 3]; + } + + /* mandatory IEs */ + fc->tag = *TLVP_VAL(tp, BSSGP_IE_TAG); + fc->bucket_size_max = granularity * tlvp_val16be(tp, BSSGP_IE_BVC_BUCKET_SIZE); + fc->bucket_leak_rate = (granularity * tlvp_val16be(tp, BSSGP_IE_BUCKET_LEAK_RATE)) / 8; + fc->u.bvc.bmax_default_ms = granularity * tlvp_val16be(tp, BSSGP_IE_BMAX_DEFAULT_MS); + fc->u.bvc.r_default_ms = (granularity * tlvp_val16be(tp, BSSGP_IE_R_DEFAULT_MS)) / 8; + + /* optional / conditional */ + if (TLVP_PRESENT(tp, BSSGP_IE_BUCKET_FULL_RATIO)) { + fc->bucket_full_ratio_present = true; + fc->bucket_full_ratio = *TLVP_VAL(tp, BSSGP_IE_BUCKET_FULL_RATIO); + } else { + fc->bucket_full_ratio_present = false; + } + + if (TLVP_PRESENT(tp, BSSGP_IE_BVC_MEASUREMENT)) { + uint16_t val = tlvp_val16be(tp, BSSGP_IE_BVC_MEASUREMENT); + fc->u.bvc.measurement_present = true; + /* convert from centi-seconds to milli-seconds */ + if (val == 0xffff) + fc->u.bvc.measurement = 0xffffffff; + else + fc->u.bvc.measurement = val * 10; + } else { + fc->u.bvc.measurement_present = false; + } + + return 0; + +} + +/*! Encode a FLOW-CONTROL-BVC PDU as per TS 48.018 Section 10.4.4. + * \param[in] fc structure describing to-be-encoded FC parameters + * \param[in] gran if non-NULL: Encode using specified unit granularity + * \returns encoded PDU or NULL in case of error */ +struct msgb *bssgp2_enc_fc_bvc(const struct bssgp2_flow_ctrl *fc, enum bssgp_fc_granularity *gran) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + unsigned int granularity = 100; + + if (gran) + granularity = bssgp_fc_gran_tbl[*gran & 3]; + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC; + + msgb_tvlv_put(msg, BSSGP_IE_TAG, 1, &fc->tag); + msgb_tvlv_put_16be(msg, BSSGP_IE_BVC_BUCKET_SIZE, fc->bucket_size_max / granularity); + msgb_tvlv_put_16be(msg, BSSGP_IE_BUCKET_LEAK_RATE, fc->bucket_leak_rate * 8 / granularity); + msgb_tvlv_put_16be(msg, BSSGP_IE_BMAX_DEFAULT_MS, fc->u.bvc.bmax_default_ms / granularity); + msgb_tvlv_put_16be(msg, BSSGP_IE_R_DEFAULT_MS, fc->u.bvc.r_default_ms * 8 / granularity); + + if (fc->bucket_full_ratio_present) + msgb_tvlv_put(msg, BSSGP_IE_BUCKET_FULL_RATIO, 1, &fc->bucket_full_ratio); + + if (fc->u.bvc.measurement_present) { + uint16_t val; + /* convert from ms to cs */ + if (fc->u.bvc.measurement == 0xffffffff) + val = 0xffff; + else + val = fc->u.bvc.measurement / 10; + msgb_tvlv_put_16be(msg, BSSGP_IE_BVC_MEASUREMENT, val); + } + + if (gran) { + uint8_t val = *gran & 3; + msgb_tvlv_put(msg, BSSGP_IE_FLOW_CTRL_GRANULARITY, 1, &val); + } + + return msg; +} + +/*! Encode a FLOW-CONTROL-BVC-ACK PDU as per TS 48.018 Section 10.4.4. + * \param[in] tag the tag IE value to encode + * \returns encoded PDU or NULL in case of error */ +struct msgb *bssgp2_enc_fc_bvc_ack(uint8_t tag) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC_ACK; + + msgb_tvlv_put(msg, BSSGP_IE_TAG, 1, &tag); + + return msg; +} + +/*! Decode a FLOW-CONTROL-MS PDU as per TS 48.018 Section 10.4.6. + * \param[out] fc caller-allocated memory for parsed output + * \param[in] tp pre-parsed TLVs; caller must ensure mandatory IE presence/length + * \returns 0 on success; negative in case of error */ +int bssgp2_dec_fc_ms(struct bssgp2_flow_ctrl *fc, struct tlv_parsed *tp) +{ + unsigned int granularity = 100; + + /* optional "Flow Control Granularity IE" (11.3.102); applies to + * bucket_size_max, bucket_leak_rate and PFC FC params IE */ + if (TLVP_PRESENT(tp, BSSGP_IE_FLOW_CTRL_GRANULARITY)) { + uint8_t gran = *TLVP_VAL(tp, BSSGP_IE_FLOW_CTRL_GRANULARITY); + granularity = bssgp_fc_gran_tbl[gran & 3]; + } + + /* mandatory IEs */ + fc->u.ms.tlli = tlvp_val32be(tp, BSSGP_IE_TLLI); + fc->tag = *TLVP_VAL(tp, BSSGP_IE_TAG); + fc->bucket_size_max = granularity * tlvp_val16be(tp, BSSGP_IE_MS_BUCKET_SIZE); + fc->bucket_leak_rate = (granularity * tlvp_val16be(tp, BSSGP_IE_BUCKET_LEAK_RATE)) / 8; + + /* optional / conditional */ + if (TLVP_PRESENT(tp, BSSGP_IE_BUCKET_FULL_RATIO)) { + fc->bucket_full_ratio_present = true; + fc->bucket_full_ratio = *TLVP_VAL(tp, BSSGP_IE_BUCKET_FULL_RATIO); + } else { + fc->bucket_full_ratio_present = false; + } + + return 0; +} + +/*! Encode a FLOW-CONTROL-MS PDU as per TS 48.018 Section 10.4.6. + * \param[in] fc structure describing to-be-encoded FC parameters + * \param[in] gran if non-NULL: Encode using specified unit granularity + * \returns encoded PDU or NULL in case of error */ +struct msgb *bssgp2_enc_fc_ms(const struct bssgp2_flow_ctrl *fc, enum bssgp_fc_granularity *gran) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + unsigned int granularity = 100; + + if (gran) + granularity = bssgp_fc_gran_tbl[*gran & 3]; + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_MS; + + msgb_tvlv_put_32be(msg, BSSGP_IE_TLLI, fc->u.ms.tlli); + msgb_tvlv_put(msg, BSSGP_IE_TAG, 1, &fc->tag); + msgb_tvlv_put_16be(msg, BSSGP_IE_MS_BUCKET_SIZE, fc->bucket_size_max / granularity); + msgb_tvlv_put_16be(msg, BSSGP_IE_BUCKET_LEAK_RATE, fc->bucket_leak_rate * 8 / granularity); + + if (fc->bucket_full_ratio_present) + msgb_tvlv_put(msg, BSSGP_IE_BUCKET_FULL_RATIO, 1, &fc->bucket_full_ratio); + + if (gran) { + uint8_t val = *gran & 3; + msgb_tvlv_put(msg, BSSGP_IE_FLOW_CTRL_GRANULARITY, 1, &val); + } + + return msg; +} + +/*! Encode a FLOW-CONTROL-BVC-ACK PDU as per TS 48.018 Section 10.4.7. + * \param[in] tlli the TLLI IE value to encode + * \param[in] tag the tag IE value to encode + * \returns encoded PDU or NULL in case of error */ +struct msgb *bssgp2_enc_fc_ms_ack(uint32_t tlli, uint8_t tag) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + + if (!msg) + return NULL; + + bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); + bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC_ACK; + + msgb_tvlv_put_32be(msg, BSSGP_IE_TLLI, tlli); + msgb_tvlv_put(msg, BSSGP_IE_TAG, 1, &tag); + + return msg; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index e605d27..f8ad901 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -47,12 +47,18 @@ bssgp2_nsi_tx_ptp; bssgp2_nsi_tx_sig; +bssgp2_dec_fc_bvc; +bssgp2_dec_fc_ms; bssgp2_enc_bvc_block; bssgp2_enc_bvc_block_ack; bssgp2_enc_bvc_unblock; bssgp2_enc_bvc_unblock_ack; bssgp2_enc_bvc_reset; bssgp2_enc_bvc_reset_ack; +bssgp2_enc_fc_bvc; +bssgp2_enc_fc_bvc_ack; +bssgp2_enc_fc_ms; +bssgp2_enc_fc_ms_ack; bssgp2_enc_status; bssgp_bvc_fsm_alloc_sig_bss; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9c89bb1c03550930c07aad7ff8f67129ee7a6320 Gerrit-Change-Number: 21610 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 Thu Dec 10 10:07:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:07:16 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21611 ) Change subject: bssgp_bvc_fsm: Add basic BVC flow control rx/tx support ...................................................................... bssgp_bvc_fsm: Add basic BVC flow control rx/tx support The FSM doesn't actually implement the flow control logic, it only decodes / dispatches and encodes messages. Related: OS#4891 Change-Id: Ie59be6761177c43456898be9148727f15861a622 --- M include/osmocom/gprs/bssgp_bvc_fsm.h M src/gb/bssgp_bvc_fsm.c M src/gb/gprs_bssgp2.c 3 files changed, 44 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/bssgp_bvc_fsm.h b/include/osmocom/gprs/bssgp_bvc_fsm.h index 7c6fdeb..e69c205 100644 --- a/include/osmocom/gprs/bssgp_bvc_fsm.h +++ b/include/osmocom/gprs/bssgp_bvc_fsm.h @@ -4,6 +4,7 @@ struct gprs_ns2_inst; struct osmo_fsm_inst; struct gprs_ra_id; +struct bssgp2_flow_ctrl; enum bssp_ptp_bvc_fsm_state { BSSGP_BVCFSM_S_NULL, @@ -22,10 +23,13 @@ BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, BSSGP_BVCFSM_E_RX_RESET, BSSGP_BVCFSM_E_RX_RESET_ACK, + BSSGP_BVCFSM_E_RX_FC_BVC, + BSSGP_BVCFSM_E_RX_FC_BVC_ACK, /* Requests of the local user */ BSSGP_BVCFSM_E_REQ_BLOCK, /* data: uint8_t *cause */ 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 */ }; struct bssgp_bvc_fsm_ops { @@ -35,6 +39,7 @@ /* call-back notifying the user of a BVC-RESET event */ void (*reset_notification)(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, uint16_t cell_id, uint8_t cause, void *priv); + void (*rx_fc_bvc)(uint16_t nsei, uint16_t bvci, const struct bssgp2_flow_ctrl *fc, void *priv); }; struct osmo_fsm_inst * diff --git a/src/gb/bssgp_bvc_fsm.c b/src/gb/bssgp_bvc_fsm.c index d134acb..cc634a5 100644 --- a/src/gb/bssgp_bvc_fsm.c +++ b/src/gb/bssgp_bvc_fsm.c @@ -101,9 +101,12 @@ { BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, "RX-BVC-UNBLOCK-ACK" }, { BSSGP_BVCFSM_E_RX_RESET, "RX-BVC-RESET" }, { BSSGP_BVCFSM_E_RX_RESET_ACK, "RX-BVC-RESET-ACK" }, + { BSSGP_BVCFSM_E_RX_FC_BVC, "RX-FLOW-CONTROL-BVC" }, + { BSSGP_BVCFSM_E_RX_FC_BVC_ACK, "RX-FLOW-CONTROL-BVC-ACK" }, { BSSGP_BVCFSM_E_REQ_BLOCK, "REQ-BLOCK" }, { BSSGP_BVCFSM_E_REQ_UNBLOCK, "REQ-UNBLOCK" }, { BSSGP_BVCFSM_E_REQ_RESET, "REQ-RESET" }, + { BSSGP_BVCFSM_E_REQ_FC_BVC, "REQ-FLOW-CONTROL-BVC" }, { 0, NULL } }; @@ -132,6 +135,8 @@ uint32_t advertised; uint32_t received; uint32_t negotiated; + /* only used if BSSGP_XFEAT_GBIT is negotiated */ + enum bssgp_fc_granularity fc_granularity; } features; /* Cell Identification used by BSS when @@ -391,9 +396,11 @@ static void bssgp_bvc_fsm_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) { + struct bssgp2_flow_ctrl rx_fc, *tx_fc; struct bvc_fsm_priv *bfp = fi->priv; const struct tlv_parsed *tp = NULL; struct msgb *rx = NULL, *tx; + int rc; switch (event) { case BSSGP_BVCFSM_E_RX_UNBLOCK_ACK: @@ -459,6 +466,33 @@ fi_tx_sig(fi, tx); osmo_fsm_inst_state_chg(fi, BSSGP_BVCFSM_S_BLOCKED, T1_SECS, T1); break; + case BSSGP_BVCFSM_E_RX_FC_BVC: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* we assume osmo_tlv_prot_* has been used before calling here to ensure this */ + OSMO_ASSERT(bfp->role_sgsn); + rc = bssgp2_dec_fc_bvc(&rx_fc, tp); + if (rc < 0) { + _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + if (bfp->ops->rx_fc_bvc) + bfp->ops->rx_fc_bvc(bfp->nsei, bfp->bvci, &rx_fc, bfp->ops_priv); + tx = bssgp2_enc_fc_bvc_ack(rx_fc.tag); + fi_tx_ptp(fi, tx); + break; + case BSSGP_BVCFSM_E_RX_FC_BVC_ACK: + rx = data; + tp = (const struct tlv_parsed *) msgb_bcid(rx); + /* we assume osmo_tlv_prot_* has been used before calling here to ensure this */ + OSMO_ASSERT(!bfp->role_sgsn); + break; + case BSSGP_BVCFSM_E_REQ_FC_BVC: + tx_fc = data; + tx = bssgp2_enc_fc_bvc(tx_fc, bfp->features.negotiated & (BSSGP_XFEAT_GBIT << 8) ? + &bfp->features.fc_granularity : NULL); + fi_tx_ptp(fi, tx); + break; } } @@ -580,7 +614,10 @@ .in_event_mask = S(BSSGP_BVCFSM_E_RX_BLOCK) | S(BSSGP_BVCFSM_E_RX_UNBLOCK) | S(BSSGP_BVCFSM_E_RX_UNBLOCK_ACK) | - S(BSSGP_BVCFSM_E_REQ_BLOCK), + S(BSSGP_BVCFSM_E_REQ_BLOCK) | + S(BSSGP_BVCFSM_E_RX_FC_BVC) | + S(BSSGP_BVCFSM_E_RX_FC_BVC_ACK) | + S(BSSGP_BVCFSM_E_REQ_FC_BVC), .out_state_mask = S(BSSGP_BVCFSM_S_BLOCKED) | S(BSSGP_BVCFSM_S_WAIT_RESET_ACK) | S(BSSGP_BVCFSM_S_UNBLOCKED), diff --git a/src/gb/gprs_bssgp2.c b/src/gb/gprs_bssgp2.c index a54a8d9..5a8d41f 100644 --- a/src/gb/gprs_bssgp2.c +++ b/src/gb/gprs_bssgp2.c @@ -437,7 +437,7 @@ return NULL; bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); - bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC_ACK; + bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_MS_ACK; msgb_tvlv_put_32be(msg, BSSGP_IE_TLLI, tlli); msgb_tvlv_put(msg, BSSGP_IE_TAG, 1, &tag); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie59be6761177c43456898be9148727f15861a622 Gerrit-Change-Number: 21611 Gerrit-PatchSet: 5 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 Thu Dec 10 10:08:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:08:01 +0000 Subject: Change in osmo-sgsn[master]: gbproxy major rewrite for SGSN pool 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-sgsn/+/21612 to look at the new patch set (#2). Change subject: gbproxy major rewrite for SGSN pool support ...................................................................... gbproxy major rewrite for SGSN pool support Rewrite of a large part of osmo-gbproxy in order to prepare for SGSN pool support. The amount of changes are of such fundamental nature that it doesn't make sense to try to split this into hundreds of individual changesets. Related: OS#4472 Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 6 files changed, 867 insertions(+), 479 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/12/21612/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 Gerrit-Change-Number: 21612 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 Thu Dec 10 10:08:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:08:01 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index 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/+/21613 to look at the new patch set (#2). Change subject: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index ...................................................................... gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index As we now have gbproxy_bvc on both the SGSN and the BSS side with the same BVCI, using the BVCI alone will no longer render unique indexes. Related: OS#4472 Change-Id: I13f3c9e69562a56ad7d3742fdeb2ba48f134fdaa --- 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/13/21613/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I13f3c9e69562a56ad7d3742fdeb2ba48f134fdaa Gerrit-Change-Number: 21613 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 Thu Dec 10 10:08:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:08:01 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Introduce new DOBJ log category; log object allocation/release 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/+/21614 to look at the new patch set (#2). Change subject: gbproxy: Introduce new DOBJ log category; log object allocation/release ...................................................................... gbproxy: Introduce new DOBJ log category; log object allocation/release Related: OS#4472 Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 --- M include/osmocom/sgsn/debug.h M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c 4 files changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/14/21614/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 Gerrit-Change-Number: 21614 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 Thu Dec 10 10:08:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:08:01 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Don't create an extra msgb copy for SGSN DL SIG 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/+/21615 to look at the new patch set (#2). Change subject: gbproxy: Don't create an extra msgb copy for SGSN DL SIG ...................................................................... gbproxy: Don't create an extra msgb copy for SGSN DL SIG That copy may have made sense while we were doing patching/buffering, but we're not doing any of that anymore. Related: OS#4472 Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 --- M src/gbproxy/gb_proxy.c 1 file changed, 9 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/15/21615/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 Gerrit-Change-Number: 21615 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 Thu Dec 10 10:08:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:08:01 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement handling of BVC Flow Control 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/+/21616 to look at the new patch set (#2). Change subject: gbproxy: Implement handling of BVC Flow Control ...................................................................... gbproxy: Implement handling of BVC Flow Control We must locally terminate + acknowledge any inbound BSSGP-FC-BVC, and ourselves trigger the transmission of BSSGP-FC-BVC to each SGSN in the pool. Related: OS#4891 Depends: libosmcoore.git Ie59be6761177c43456898be9148727f15861a622 Change-Id: Ib6495e5de4bfcf748a98e08743d1a8f2565f8b69 --- M src/gbproxy/gb_proxy.c 1 file changed, 50 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/16/21616/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ib6495e5de4bfcf748a98e08743d1a8f2565f8b69 Gerrit-Change-Number: 21616 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 Thu Dec 10 10:17:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 10:17:23 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, daniel, lynxis lazus, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/openbsc/+/21646 to look at the new patch set (#6). Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Add very clear obsolescence / unmaintained warnings * add messages at start-up and to the VTY * users must explicitly confirm they want to run osmo-nitb Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b --- M manuals/OsmoNITB/chapters/overview.adoc M manuals/OsmoNITB/osmonitb-usermanual.adoc M openbsc/osmoappdesc.py M openbsc/src/libcommon/bsc_version.c M openbsc/src/osmo-nitb/bsc_hack.c M openbsc/tests/ctrl_test_runner.py M openbsc/tests/smpp_test_runner.py M openbsc/tests/vty_test_runner.py 8 files changed, 62 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/46/21646/6 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria 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 Dec 10 10:34:20 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 10:34:20 +0000 Subject: Change in libosmocore[master]: bssgp2: Encoding + Decoding functions for BVC and MS flow control In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21610 ) Change subject: bssgp2: Encoding + Decoding functions for BVC and MS flow control ...................................................................... Patch Set 3: (1 comment) I'll submit a fix for that https://gerrit.osmocom.org/c/libosmocore/+/21610/2/src/gb/gprs_bssgp2.c File src/gb/gprs_bssgp2.c: https://gerrit.osmocom.org/c/libosmocore/+/21610/2/src/gb/gprs_bssgp2.c at 421 PS2, Line 421: bgph->pdu_type = BSSGP_PDUT_FLOW_CONTROL_BVC_ACK; > Done Doesn't look like it -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9c89bb1c03550930c07aad7ff8f67129ee7a6320 Gerrit-Change-Number: 21610 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: Thu, 10 Dec 2020 10:34:20 +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 Dec 10 10:39:30 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 10:39:30 +0000 Subject: Change in libosmocore[master]: bssgp2: Encoding + Decoding functions for BVC and MS flow control In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21610 ) Change subject: bssgp2: Encoding + Decoding functions for BVC and MS flow control ...................................................................... Patch Set 3: nvm, sqashed in the next one -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9c89bb1c03550930c07aad7ff8f67129ee7a6320 Gerrit-Change-Number: 21610 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: Thu, 10 Dec 2020 10:39: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 Thu Dec 10 11:09:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 11:09:02 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/openbsc/+/21646 ) Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 11:09: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 Dec 10 11:47:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 11:47:54 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/20397 ) Change subject: sgsn: Use the new NS2 api ...................................................................... Patch Set 7: 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: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 11: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 Dec 10 11:51:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 11:51:55 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21640 ) Change subject: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT ...................................................................... Patch Set 1: I'm fine with increasing the sleep to 2 whenever it's needed, but I don't see the point in dropping the parameter and all the changes you did there. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 11:51: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 Thu Dec 10 11:52:59 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 11:52:59 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/21641/1/debian-stretch-titan/Dockerfile File debian-stretch-titan/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21641/1/debian-stretch-titan/Dockerfile at 47 PS1, Line 47: dpkg -i ./libfftranscode0_0.3_${DPKG_ARCH}.deb ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb && \ IIRC dpkg is not autoinstalling dependencies, so we need to make sure dependencies for libfftrasncode are installed if there's any. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 11:52: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 Thu Dec 10 11:54:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 11:54:15 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21573 ) Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... Patch Set 7: None of my comments was addressed/discussed. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 11:54: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 Thu Dec 10 11:57:40 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 11:57:40 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/openbsc/+/21646 ) Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 11:57: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 Dec 10 11:59:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 11:59:39 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/openbsc/+/21646 ) Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 11:59: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 Dec 10 12:02:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 12:02:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... Patch Set 6: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21484/6/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/21484/6/src/gb/gprs_ns2_udp.c at 383 PS6, Line 383: LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect. Maybe libosmocore is too old.\n"); worth printing the dialect value here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 12:02: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 Thu Dec 10 12:03:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 12:03:56 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework gprs_ns2_fr_connect*() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21486 ) Change subject: gprs_ns2: rework gprs_ns2_fr_connect*() ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 Gerrit-Change-Number: 21486 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 12: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 Dec 10 12:23:53 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 12:23:53 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 1: Code-Review+1 Valid point about the deps -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 12:23: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 Dec 10 12:39:10 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 12:39:10 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 1: Code-Review+2 Maybe add apt --fix-broken install just to be sure? -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 12: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 Dec 10 12:40:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 12:40:47 +0000 Subject: Change in libosmocore[master]: bssgp: Remove newly added log line warning about NOOP References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21647 ) Change subject: bssgp: Remove newly added log line warning about NOOP ...................................................................... bssgp: Remove newly added log line warning about NOOP osmo-pcu unit tests fail ue to this new log line. Let's rather simply leave a comment there, since anyway known apps will be migrating soon the new APIs. Fixes: fde19ed579c3145959301bbe75fde15509276040 Change-Id: Ib9bf528db08f7aaa4adaf7b6a320679a4f11a53d --- M src/gb/gprs_bssgp.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/21647/1 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index b5dec58..696c451 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -1352,7 +1352,9 @@ void bssgp_set_log_ss(int ss) { - LOGP(DLGLOBAL, LOGL_ERROR, "BSSGP has moved from DGPRS to DLGPRS, please update your code\n"); + /* BSSGP has moved from DGPRS to DLGPRS, please update your code if it's + * still calling this function + */ } /*! -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib9bf528db08f7aaa4adaf7b6a320679a4f11a53d Gerrit-Change-Number: 21647 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 Dec 10 12:40:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 12:40:56 +0000 Subject: Change in osmo-pcu[master]: migrate to DLBSSGP as log sub-system for BSSGP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21648 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... migrate to DLBSSGP as log sub-system for BSSGP Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Depends: libosmocore.git Change-Id I506190aae9217c0956e4b5764d1a0c0772268e93 --- M TODO-RELEASE M src/gprs_debug.cpp M src/gprs_debug.h M src/pcu_main.cpp M tests/tbf/TbfTest.cpp 5 files changed, 6 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/21648/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 40932ee..eee6aa2 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,4 +8,4 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line osmo-pcu update osmo-gsm-manuals dependency to > 0.3.0 for vty_cpu_sched.adoc include -osmo-pcu update libosmocore dependency > 1.4.x for osmo_fd_{read,write}_{enable,disable} +osmo-pcu update libosmocore dependency > 1.4.x for osmo_fd_{read,write}_{enable,disable}+DLBSSGP diff --git a/src/gprs_debug.cpp b/src/gprs_debug.cpp index da5974b..a790e3f 100644 --- a/src/gprs_debug.cpp +++ b/src/gprs_debug.cpp @@ -112,13 +112,6 @@ .loglevel = LOGL_NOTICE, .enabled = 1, }, - [DBSSGP] = { - .name = "DBSSGP", - .color = "\033[1;34m", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .loglevel = LOGL_NOTICE, - .enabled = 1, - }, [DPCU] = { .name = "DPCU", .color = "\033[1;35m", diff --git a/src/gprs_debug.h b/src/gprs_debug.h index 4c57633..84a0a07 100644 --- a/src/gprs_debug.h +++ b/src/gprs_debug.h @@ -27,6 +27,10 @@ }; #endif +/* we used to have DBSSGP definded in each application, and applications telling + * libosmogb which sub-system to use. That creates problems and has been deprecated */ +#define DBSSGP DLBSSGP + /* Debug Areas of the code */ enum { DCSN1, @@ -41,7 +45,6 @@ DTBFDL, DTBFUL, DNS, - DBSSGP, DPCU, aDebug_LastEntry }; diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index 2138fd9..b7cf9a9 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -242,7 +242,6 @@ osmo_stats_init(tall_pcu_ctx); rate_ctr_init(tall_pcu_ctx); - bssgp_set_log_ss(DBSSGP); pcu_vty_info.tall_ctx = tall_pcu_ctx; vty_init(&pcu_vty_info); diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 505f510..1a1dc6f 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3256,9 +3256,8 @@ osmo_init_logging2(tall_pcu_ctx, &gprs_log_info); log_set_use_color(osmo_stderr_target, 0); log_set_print_filename(osmo_stderr_target, 0); - bssgp_set_log_ss(DBSSGP); log_parse_category_mask(osmo_stderr_target, "DRLCMAC,1:DRLCMACDATA,3:DRLCMACDL,3:DRLCMACUL,3:" - "DRLCMACSCHED,1:DRLCMACMEAS,3:DNS,3:DBSSGP,3:DPCU,5:" + "DRLCMACSCHED,1:DRLCMACMEAS,3:DNS,3:DLBSSGP,3:DPCU,5:" "DL1IF,6:DTBF,1:DTBFUL,1:DTBFDL,1:DLGLOBAL,2:"); vty_init(&pcu_vty_info); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Gerrit-Change-Number: 21648 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 Dec 10 12:40:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 12:40:57 +0000 Subject: Change in osmo-pcu[master]: gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21649 ) Change subject: gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 ...................................................................... gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 Change-Id: I10505d9aebe65e1f0952df75b13951e2b40d6997 --- M doc/manuals/gb/bssgp.adoc M doc/manuals/gb/ns.adoc M doc/manuals/osmopcu-gb.adoc 3 files changed, 67 insertions(+), 67 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/49/21649/1 diff --git a/doc/manuals/gb/bssgp.adoc b/doc/manuals/gb/bssgp.adoc index 18f1842..7dcf3f8 100644 --- a/doc/manuals/gb/bssgp.adoc +++ b/doc/manuals/gb/bssgp.adoc @@ -4,14 +4,14 @@ === List of Messages The following tables list the BSSGP messages used by OsmoPCU, grouped -by their level of compliance with 3GPP TS 08.18. +by their level of compliance with 3GPP TS 48.018. -==== Messages Compliant With TS 08.18 +==== Messages Compliant With TS 48.018 -.Messages compliant with TS 08.18 +.Messages compliant with TS 48.018 [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== -| TS 08.18 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU +| TS 48.018 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU 6+<| *RL and BSSGP SAP Messages:* | 10.2.1 | 0x00 | <> | DL-UNITDATA | <- | Received | 10.2.2 | 0x01 | <> | UL-UNITDATA | -> | Sent @@ -44,10 +44,10 @@ [[not_impl]] ==== Messages Not Implemented by OsmoPCU -.3GPP TS 08.18 messages not implemented by OsmoPCU +.3GPP TS 48.018 messages not implemented by OsmoPCU [options="header",cols="10%,10%,80%"] |=== -| TS 08.18 ? | type code (hex) | Message +| TS 48.018 ? | type code (hex) | Message 3+<| *RL (relay) and BSSGP SAP Messages:* | 10.2.4 | 0x03 | PTM-UNITDATA 3+<| *GMM (GPRS mobility management) SAP Messages:* @@ -78,7 +78,7 @@ [[dl_unit_data]] ==== DL-UNITDATA -This message conforms to 3GPP TS 08.18 ? 10.2.1, with the following +This message conforms to 3GPP TS 48.018 ? 10.2.1, with the following limitations: * OsmoPCU does not support QoS @@ -87,7 +87,7 @@ ._DL-UNITDATA_ IE limitations [options="header",cols="10%,30%,60%"] |=== -| TS 08.18 ? | IE Name | Handling +| TS 48.018 ? | IE Name | Handling | 11.3.28 | QoS Profile | _ignored_ | 11.3.22 | MS Radio Access Capability | _ignored_ | 11.3.27 | Priority | _ignored_ @@ -100,7 +100,7 @@ [[ul_unit_data]] ==== UL-UNITDATA -This message conforms to 3GPP TS 08.18 ? 10.2.2, with the following limitations: +This message conforms to 3GPP TS 48.018 ? 10.2.2, with the following limitations: * OsmoPCU does not send optional IEs - PFI (? 12.3.42) and LSA Identifier List (? 11.3.18). @@ -114,7 +114,7 @@ [[paging_ps]] ==== PAGING PS -This message conforms to 3GPP TS 08.18 ? 10.3.1, with the following +This message conforms to 3GPP TS 48.018 ? 10.3.1, with the following limitations: * only IMSI and P-TMSI are parsed by OsmoPCU. @@ -122,7 +122,7 @@ ._DL-UNITDATA_ IE limitations [options="header",cols="10%,30%,60%"] |=== -| TS 08.18 ? | IE Name | Handling +| TS 48.018 ? | IE Name | Handling | 11.3.11 | DRX Parameters | _ignored_ | 11.3.6 | BVCI | _ignored_ | 11.3.17 | Location Are | _ignored_ @@ -174,7 +174,7 @@ [[bvc_reset]] ==== BVC-RESET -OsmoPCU never transmits optional Feature bitmap (3GPP TS 08.18 ? +OsmoPCU never transmits optional Feature bitmap (3GPP TS 48.018 ? 11.3.40) IE. Receiving BVC RESET will cause OsmoPCU to respond with "Unknown BVCI" @@ -183,24 +183,24 @@ [[reset_ack]] ==== BVC-RESET-ACK -This message conforms to 3GPP TS 08.18 ? 10.4.13. +This message conforms to 3GPP TS 48.018 ? 10.4.13. After receiving it OsmoPCU completes the RESET procedure for BVC -according to 3GPP TS 08.18 ? 8.4. +according to 3GPP TS 48.018 ? 8.4. [[unblock_ack]] ==== BVC-UNBLOCK-ACK -This message conforms to 3GPP TS 08.18 ? 10.4.11. +This message conforms to 3GPP TS 48.018 ? 10.4.11. After receiving it OsmoPCU completes the RESET procedure for BVC -according to 3GPP TS 08.18 ? 8.3. +according to 3GPP TS 48.018 ? 8.3. [[bvc_unblock]] ==== BVC-UNBLOCK -This message conforms to 3GPP TS 08.18 ? 10.4.10 and is send by -OsmoPCU as part of UNBLOCK procedure described in 3GPP TS 08.18 ? 8.3. +This message conforms to 3GPP TS 48.018 ? 10.4.10 and is send by +OsmoPCU as part of UNBLOCK procedure described in 3GPP TS 48.018 ? 8.3. [[flow_ms_ack]] ==== FLOW-CONTROL-MS-ACK @@ -217,11 +217,11 @@ [[flow_bvc]] ==== FLOW-CONTROL-BVC -This message conforms to 3GPP TS 08.18 ? 10.4.4, with the following +This message conforms to 3GPP TS 48.018 ? 10.4.4, with the following limitations: * OsmoPCU does not support Current Bucket Level (CBL) feature so - Bucket_Full Ratio (TS 08.18 ? 11.3.46) IE is not transmitted as part + Bucket_Full Ratio (TS 48.018 ? 11.3.46) IE is not transmitted as part of this message. [[flush_ll]] @@ -239,22 +239,22 @@ [[bssgp_status]] ==== STATUS -This message conforms to 3GPP TS 08.18 ? 10.4.14. +This message conforms to 3GPP TS 48.018 ? 10.4.14. === Information Elements Overview All of the IEs handled by OsmoPCU are listed below, with limitations -and additions to 3GPP TS 08.18 specified in more detail. +and additions to 3GPP TS 48.018 specified in more detail. -==== IEs Conforming to 3GPP TS 08.18 +==== IEs Conforming to 3GPP TS 48.018 The following Information Elements are accepted by OsmoPCU. Not all IEs are actually evaluated. -.IEs conforming to 3GPP TS 08.18 +.IEs conforming to 3GPP TS 48.018 [options="header",cols="5%,10%,40%,5%,40%"] |=== -| tag (hex) | TS 08.18 ? | IE name | <-/-> | Received/Sent by OsmoPCU +| tag (hex) | TS 48.018 ? | IE name | <-/-> | Received/Sent by OsmoPCU | 0x00 | 11.3.1 | Alignment Octets | <-/-> | Received/Sent | 0x01 | 11.3.2 | Bmax default MS | -> | Sent | 0x02 | 11.3.3 | BSS Area Indication | <- | Received @@ -301,12 +301,12 @@ | 0x3d | 11.3.47 | Service UTRAN CCO (Cell Change Order) | <- | Received |=== -==== IEs Not Conforming to 3GPP TS 08.18 +==== IEs Not Conforming to 3GPP TS 48.018 -.IEs not conforming to 3GPP TS 08.18 +.IEs not conforming to 3GPP TS 48.018 [options="header",cols="5%,10%,30%,55%"] |=== -| tag (hex) | TS 08.18 ? | IE name | Description +| tag (hex) | TS 48.018 ? | IE name | Description | 0x18 | 11.3.28 | QoS Profile | Received value is ignored. Sent value is hard-coded to 0x4 (3 octets). |=== @@ -417,7 +417,7 @@ ==== Tag This IE currently only used by OsmoPCU for Flow Control procedure (TS -08.18 ? 8.2). In other cases it's either ignored or unavailable. +48.018 ? 8.2). In other cases it's either ignored or unavailable. ==== Trace Reference @@ -494,8 +494,8 @@ In addition to the BVCI identifying the OsmoPCU side of BSSGP connection, there is also special BVCI which is accepted by OsmoPCU in -accordance with 3GPP TS 08.18 ? 5.4.1: BVCI = 0 represents signaling data +accordance with 3GPP TS 48.018 ? 5.4.1: BVCI = 0 represents signaling data between SGSN and PCU in contrast to PTP (Peer-To-Peer) user's data. The mapping between BSSGP PDUs and signaling or PTP BVCIs is available -in 3GPP TS 08.18 Table 5.4. +in 3GPP TS 48.018 Table 5.4. diff --git a/doc/manuals/gb/ns.adoc b/doc/manuals/gb/ns.adoc index c94e018..1dc2ed8 100644 --- a/doc/manuals/gb/ns.adoc +++ b/doc/manuals/gb/ns.adoc @@ -3,18 +3,18 @@ === List of Messages The following tables list the NS messages used by OsmoPCU, grouped by their -level of compliance with 3GPP TS 08.16. +level of compliance with 3GPP TS 48.016. -==== Messages Compliant With 3GPP TS 08.16 +==== Messages Compliant With 3GPP TS 48.016 The NS protocol is implemented inside libosmocore so none of the messages below are sent by OsmoPCU explicitly. Instead corresponding functions from libosmocore are called which send and receive messages as necessary. See <> for details on establishing NS connection. -.Messages compliant with 3GPP TS 08.16 +.Messages compliant with 3GPP TS 48.016 [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== -| TS 08.16 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU +| TS 48.016 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU | 9.2.10 | 0x00 | <> | NS-UNITDATA | <-/-> | Received/Sent | 9.2.5 | 0x02 | <> | NS-RESET | <-/-> | Received/Sent | 9.2.6 | 0x03 | <> | NS-RESET-ACK | <-/-> | Received/Sent @@ -33,7 +33,7 @@ ==== Messages Not Implemented by OsmoPCU -All the NS protocol messages from 3GPP TS 08.16 are implemented in OsmoPCU. +All the NS protocol messages from 3GPP TS 48.016 are implemented in OsmoPCU. === Details on Compliant NS Messages @@ -51,13 +51,13 @@ ==== NS-RESET This message is send by OsmoPCU in order to initiate reset procedure -described in 3GPP TS 08.16 ? 7.3. The expected reply is NS-RESET-ACK +described in 3GPP TS 48.016 ? 7.3. The expected reply is NS-RESET-ACK (<>) message. If no expected reply is received in 3 seconds than the sending is retried up to 3 times. When this message is received it is replied with NS-RESET-ACK (<>). -It might be ignored under conditions described in 3GPP TS 08.16 ? 7.3.1. +It might be ignored under conditions described in 3GPP TS 48.016 ? 7.3.1. -The message conforms to 3GPP TS 08.16 ? 9.2.5 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.5 specification. It contains Cause (<>), NSVCI (<>) and NSEI (<>) IEs. @@ -67,7 +67,7 @@ This message is sent as a response to proper NS-RESET (<>) message initiating reset procedure. -The message conforms to 3GPP TS 08.16 ? 9.2.6 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.6 specification. It contains NSVCI (<>) and NSEI (<>) IEs. @@ -79,9 +79,9 @@ When this message is sent by OsmoPCU corresponding NS-BLOCK-ACK (<>) reply is expected before NS-VC is actually marked as blocked. This behavior follows the blocking procedure described in -3GPP TS 08.16 ? 7.2. +3GPP TS 48.016 ? 7.2. -The message conforms to 3GPP TS 08.16 ? 9.2.3 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.3 specification. It contains Cause (<>) and NSVCI (<>) IEs. @@ -92,7 +92,7 @@ correct NS-BLOCK (<>) message. It is expected as a reply for NS-BLOCK (<>) message sent by OsmoPCU. -The message conforms to 3GPP TS 08.16 ? 9.2.4 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.4 specification. It contains NSVCI (<>) IE. @@ -104,9 +104,9 @@ this message is sent by OsmoPCU corresponding NS-UNBLOCK-ACK (<>) reply is expected before NS-VC is actually marked as unblocked. This behavior follows the blocking procedure described -in 3GPP TS 08.16 ? 7.2. +in 3GPP TS 48.016 ? 7.2. -The message conforms to 3GPP TS 08.16 ? 9.2.8 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.8 specification. [[ns_unblock_ack]] ==== NS-UNBLOCK-ACK @@ -115,7 +115,7 @@ is confirmed and thus NS-VC is marked as unblocked. This message is also sent as a reply to NS-UNBLOCK (<>) message. -The message conforms to 3GPP TS 08.16 ? 9.2.9 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.9 specification. [[ns_status]] ==== NS-STATUS @@ -123,10 +123,10 @@ This message is sent to inform other party about error conditions as a response to various unexpected PDUs or PDUs with unexpected/missing data. If this message is received for unknown NS-VC it is ignored in -accordance with 3GPP TS 08.16 ? 7.5.1, otherwise the error cause is +accordance with 3GPP TS 48.016 ? 7.5.1, otherwise the error cause is logged if present in NS-STATUS. -The message conforms to 3GPP TS 08.16 ? 9.2.7 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.7 specification. It contains Cause (<>) and might (depending on actual error) contain NSVCI (<>), NS PDU (<>) and BVCI @@ -136,13 +136,13 @@ ==== NS-ALIVE This message is sent periodically to test connectivity according to -3GPP TS 08.16 ? 4.5.3. The expected response is NS-ALIVE-ACK +3GPP TS 48.016 ? 4.5.3. The expected response is NS-ALIVE-ACK (<>). If no such response arrives within given amount of time (3 seconds) than another NS-ALIVE message is sent and failed test attempt is recorded. After 10 failed attempts NS connection is considered dead and OsmoPCU tries to reconnect. -The message conforms to 3GPP TS 08.16 ? 9.2.1 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.1 specification. [[ns_alive_ack]] ==== NS-ALIVE-ACK @@ -150,21 +150,21 @@ This message is sent automatically in reply to NS-ALIVE (<>) message. -The message conforms to 3GPP TS 08.16 ? 9.2.2 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.2 specification. === Information Elements Overview All of the IEs handled by OsmoPCU are listed below, with limitations and -additions to 3GPP TS 08.16 specified in more detail. +additions to 3GPP TS 48.016 specified in more detail. -==== IEs Conforming to 3GPP TS 08.16 +==== IEs Conforming to 3GPP TS 48.016 The following Information Elements are accepted by OsmoPCU. -.IEs conforming to 3GPP TS 08.16 +.IEs conforming to 3GPP TS 48.016 [options="header",cols="5%,10%,40%,5%,40%"] |=== -| tag (hex) | TS 08.16 ? | IE name | <-/-> | Received/Sent by OsmoPCU +| tag (hex) | TS 48.016 ? | IE name | <-/-> | Received/Sent by OsmoPCU | 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent | 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent | 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent @@ -172,9 +172,9 @@ | 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent |=== -==== IEs Not Conforming to 3GPP TS 08.16 +==== IEs Not Conforming to 3GPP TS 48.016 -All IEs defined in 3GPP TS 08.16 ? 10.3 are supported by OsmoPCU. +All IEs defined in 3GPP TS 48.016 ? 10.3 are supported by OsmoPCU. ==== Additional Attributes and Parameters @@ -185,18 +185,18 @@ [[ie_cause]] ==== Cause -This IE contains reason for a procedure or error as described in 3GPP TS 08.16 ? 10.3.2. +This IE contains reason for a procedure or error as described in 3GPP TS 48.016 ? 10.3.2. [[ie_nsvci]] ==== NSVCI -This IE represents NSVCI identity described in <> and 3GPP TS 08.16 ? 10.3.5. +This IE represents NSVCI identity described in <> and 3GPP TS 48.016 ? 10.3.5. [[ie_nspdu]] ==== NS PDU This IE contains PDU (possibly truncated) which cause error described -in NS-STATUS message (<>) as described in 3GPP TS 08.16 ? +in NS-STATUS message (<>) as described in 3GPP TS 48.016 ? 10.3.3. [[ie_nssdu]] @@ -207,13 +207,13 @@ [[ie_bvci]] ==== BVCI -This IE represents BSSGP identity described in <> and 3GPP TS 08.16 +This IE represents BSSGP identity described in <> and 3GPP TS 48.016 ? 10.3.1. [[ie_nsei]] ==== NSEI -This IE represents NSEI identity described in <> and 3GPP TS 08.16 ? +This IE represents NSEI identity described in <> and 3GPP TS 48.016 ? 10.3.6. [[ns_init]] diff --git a/doc/manuals/osmopcu-gb.adoc b/doc/manuals/osmopcu-gb.adoc index 00576c9..166059b 100644 --- a/doc/manuals/osmopcu-gb.adoc +++ b/doc/manuals/osmopcu-gb.adoc @@ -7,7 +7,7 @@ == Introduction This document describes the Gb interface of *OsmoPCU*. Based on 3GPP TS -08.16 and 08.18, this document indicates which of the 3GPP specified Gb +48.016 and 48.018, this document indicates which of the 3GPP specified Gb messages and IEs are implemented according to 3GPP specifications, which of these are not or not fully implemented, as well as OsmoPCU-specific extensions to the Gb interface not specified by 3GPP. @@ -23,8 +23,8 @@ |3GPP TS 08.58 | version 8.6.0 Release 1999 |3GPP TS 08.60 | version 8.2.1 Release 1999 |3GPP TS 12.21 | version 8.0.0 Release 1999 -|3GPP TS 08.16 | version 8.0.1 Release 1999 -|3GPP TS 08.18 | version 8.12.0 Release 1999 +|3GPP TS 48.016 | version 15.0.0 Release 15 +|3GPP TS 48.018 | version 15.0.0 Release 15 |=== .IETF documents referred to by his document @@ -74,8 +74,8 @@ BVCI:: BSSGP Virtual Connection Identifier For an explanation of those identifiers and their use in the NS and -BSSGP protocols, please see the relevant 3GPP specifications for NS (TS 08.16) -and BSSGP (TS 08.18). +BSSGP protocols, please see the relevant 3GPP specifications for NS (TS 48.016) +and BSSGP (TS 48.018). In most cases, all above identities belong to different namespaces and must be unique within their respective namespace and within the SGSN -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I10505d9aebe65e1f0952df75b13951e2b40d6997 Gerrit-Change-Number: 21649 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 Dec 10 12:40:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 12:40:57 +0000 Subject: Change in osmo-pcu[master]: gb manual: NS is implemented in libosmogb, not libosmocore References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21650 ) Change subject: gb manual: NS is implemented in libosmogb, not libosmocore ...................................................................... gb manual: NS is implemented in libosmogb, not libosmocore Change-Id: Ie833370d9839017cbc508912992fb084ee879fe3 --- M doc/manuals/gb/ns.adoc 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/50/21650/1 diff --git a/doc/manuals/gb/ns.adoc b/doc/manuals/gb/ns.adoc index 1dc2ed8..fbcd380 100644 --- a/doc/manuals/gb/ns.adoc +++ b/doc/manuals/gb/ns.adoc @@ -7,8 +7,8 @@ ==== Messages Compliant With 3GPP TS 48.016 -The NS protocol is implemented inside libosmocore so none of the messages below are sent by OsmoPCU explicitly. -Instead corresponding functions from libosmocore are called which send and receive messages as necessary. See <> for details +The NS protocol is implemented inside libosmogb so none of the messages below are sent by OsmoPCU explicitly. +Instead corresponding functions from libosmogb are called which send and receive messages as necessary. See <> for details on establishing NS connection. .Messages compliant with 3GPP TS 48.016 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie833370d9839017cbc508912992fb084ee879fe3 Gerrit-Change-Number: 21650 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 Dec 10 12:41:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 12:41:13 +0000 Subject: Change in libosmocore[master]: bssgp: Remove newly added log line warning about NOOP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21647 ) Change subject: bssgp: Remove newly added log line warning about NOOP ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib9bf528db08f7aaa4adaf7b6a320679a4f11a53d Gerrit-Change-Number: 21647 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 10 Dec 2020 12: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 Thu Dec 10 12:41:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 12:41:50 +0000 Subject: Change in osmo-pcu[master]: gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21649 ) Change subject: gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I10505d9aebe65e1f0952df75b13951e2b40d6997 Gerrit-Change-Number: 21649 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 10 Dec 2020 12:41: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 Dec 10 12:43:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 12:43:18 +0000 Subject: Change in osmo-pcu[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21648 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Gerrit-Change-Number: 21648 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 10 Dec 2020 12: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 Dec 10 12:43:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 12:43:42 +0000 Subject: Change in osmo-pcu[master]: gb manual: NS is implemented in libosmogb, not libosmocore In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21650 ) Change subject: gb manual: NS is implemented in libosmogb, not libosmocore ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie833370d9839017cbc508912992fb084ee879fe3 Gerrit-Change-Number: 21650 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 10 Dec 2020 12:43: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 Dec 10 12:47:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 12:47:11 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/21641/1/debian-stretch-titan/Dockerfile File debian-stretch-titan/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21641/1/debian-stretch-titan/Dockerfile at 47 PS1, Line 47: dpkg -i ./libfftranscode0_0.3_${DPKG_ARCH}.deb ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb && \ > IIRC dpkg is not autoinstalling dependencies, so we need to make sure dependencies for libfftrasncod [?] It worked for me, but we can add: apt install -f which will take care of missing dependencies if any. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 12:47:11 +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 Dec 10 12:47:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 12:47:24 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+2 > > Maybe add > apt --fix-broken install > just to be sure? ACK! -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 12:47: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 Thu Dec 10 12:48:32 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 12:48:32 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21640 ) Change subject: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT ...................................................................... Patch Set 1: > Patch Set 1: > > I'm fine with increasing the sleep to 2 whenever it's needed, but I don't see the point in dropping the parameter and all the changes you did there. I don't see the point in having this parameter, why do we need it? -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 12:48: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 Thu Dec 10 12:52:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 12:52:19 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21640 ) Change subject: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT ...................................................................... Patch Set 1: > Patch Set 1: > > > Patch Set 1: > > > > I'm fine with increasing the sleep to 2 whenever it's needed, but I don't see the point in dropping the parameter and all the changes you did there. > > I don't see the point in having this parameter, why do we need it? Well as you can see different BTS requires different timings, so by moving all of them to use 2 instead of 0 you are making whol?e set of tests take a lot longer to complete. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 12:52: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 Thu Dec 10 12:52:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 12:52:28 +0000 Subject: Change in libosmocore[master]: bssgp: Remove newly added log line warning about NOOP In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21647 ) Change subject: bssgp: Remove newly added log line warning about NOOP ...................................................................... bssgp: Remove newly added log line warning about NOOP osmo-pcu unit tests fail ue to this new log line. Let's rather simply leave a comment there, since anyway known apps will be migrating soon the new APIs. Fixes: fde19ed579c3145959301bbe75fde15509276040 Change-Id: Ib9bf528db08f7aaa4adaf7b6a320679a4f11a53d --- M src/gb/gprs_bssgp.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index b5dec58..696c451 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -1352,7 +1352,9 @@ void bssgp_set_log_ss(int ss) { - LOGP(DLGLOBAL, LOGL_ERROR, "BSSGP has moved from DGPRS to DLGPRS, please update your code\n"); + /* BSSGP has moved from DGPRS to DLGPRS, please update your code if it's + * still calling this function + */ } /*! -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib9bf528db08f7aaa4adaf7b6a320679a4f11a53d Gerrit-Change-Number: 21647 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 Dec 10 13:00:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 13:00:13 +0000 Subject: Change in osmo-pcu[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21648 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... Patch Set 1: I think we need to consider old log files with a "logging level bssgp" line. I'll think about it. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Gerrit-Change-Number: 21648 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 13:00: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 Thu Dec 10 13:01:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 13:01:20 +0000 Subject: Change in openbsc[master]: Add very clear obsolescence / unmaintained warnings In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/openbsc/+/21646 ) Change subject: Add very clear obsolescence / unmaintained warnings ...................................................................... Add very clear obsolescence / unmaintained warnings * add messages at start-up and to the VTY * users must explicitly confirm they want to run osmo-nitb Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b --- M manuals/OsmoNITB/chapters/overview.adoc M manuals/OsmoNITB/osmonitb-usermanual.adoc M openbsc/osmoappdesc.py M openbsc/src/libcommon/bsc_version.c M openbsc/src/osmo-nitb/bsc_hack.c M openbsc/tests/ctrl_test_runner.py M openbsc/tests/smpp_test_runner.py M openbsc/tests/vty_test_runner.py 8 files changed, 62 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve daniel: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/manuals/OsmoNITB/chapters/overview.adoc b/manuals/OsmoNITB/chapters/overview.adoc index d161af3..2db7a42 100644 --- a/manuals/OsmoNITB/chapters/overview.adoc +++ b/manuals/OsmoNITB/chapters/overview.adoc @@ -4,6 +4,14 @@ This manual should help you getting started with OsmoNITB. It will cover aspects of configuring and running the OsmoNITB. +WARNING:: osmo-nitb is obsolete since 2017. It is not actively maintained, +and it lack several man-years of development effort that went into the +so-called post-NITB stack consisting of separate OsmoBSC, OsmoMSC, +OsmoMGW and OsmoHLR. You should not use this software except for +archaeological purpose. You will be on your own. Do not contact the +developers about any issues you may experience while running unsuported, +obsolete software! + [[intro_overview]] === About OsmoNITB diff --git a/manuals/OsmoNITB/osmonitb-usermanual.adoc b/manuals/OsmoNITB/osmonitb-usermanual.adoc index 5058d02..ca2551e 100644 --- a/manuals/OsmoNITB/osmonitb-usermanual.adoc +++ b/manuals/OsmoNITB/osmonitb-usermanual.adoc @@ -1,10 +1,17 @@ :gfdl-enabled: :program-name: OsmoNITB -OsmoNITB User Manual -==================== +OBSOLETE OsmoNITB User Manual +============================= Harald Welte +WARNING:: osmo-nitb is obsolete since 2017. It is not actively maintained, +and it lack several man-years of development effort that went into the +so-called post-NITB stack consisting of separate OsmoBSC, OsmoMSC, +OsmoMGW and OsmoHLR. You should not use this software except for +archaeological purpose. You will be on your own. Do not contact the +developers about any issues you may experience while running unsuported, +obsolete software! include::./common/chapters/preface.adoc[] diff --git a/openbsc/osmoappdesc.py b/openbsc/osmoappdesc.py index af949e8..ba3ccf9 100644 --- a/openbsc/osmoappdesc.py +++ b/openbsc/osmoappdesc.py @@ -39,10 +39,11 @@ apps = [(4242, "src/osmo-bsc/osmo-bsc-sccplite", "OsmoBSC", "osmo-bsc-sccplite"), (4244, "src/osmo-bsc_nat/osmo-bsc_nat", "OsmoBSCNAT", "nat"), (4243, "src/osmo-bsc_mgcp/osmo-bsc_mgcp", "OpenBSC MGCP", "mgcp"), - (4242, "src/osmo-nitb/osmo-nitb", "OpenBSC", "nitb"), + (4242, "src/osmo-nitb/osmo-nitb --yes-i-really-want-to-run-prehistoric-software", "OpenBSC", "nitb"), ] vty_command = ["./src/osmo-nitb/osmo-nitb", "-c", - "doc/examples/osmo-nitb/nanobts/osmo-nitb.cfg"] + "doc/examples/osmo-nitb/nanobts/osmo-nitb.cfg", + "--yes-i-really-want-to-run-prehistoric-software"] vty_app = apps[3] # reference apps[] entry for osmo-nitb diff --git a/openbsc/src/libcommon/bsc_version.c b/openbsc/src/libcommon/bsc_version.c index f0369bf..9111a0e 100644 --- a/openbsc/src/libcommon/bsc_version.c +++ b/openbsc/src/libcommon/bsc_version.c @@ -19,12 +19,19 @@ #include "../../bscconfig.h" +#define DIVIDER "======================================================================\r\n" const char *openbsc_copyright = "Copyright (C) 2008-2016 Harald Welte, Holger Freyther\r\n" "Contributions by Daniel Willmann, Jan L?bbe, Stefan Schmidt\r\n" "Dieter Spaar, Andreas Eversberg, Sylvain Munaut, Neels Hofmeyr\r\n\r\n" "License AGPLv3+: GNU AGPL version 3 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"; + "There is NO WARRANTY, to the extent permitted by law.\r\n" DIVIDER + "WARNING: You should not run osmo-nitb except for archaeological purpose.\r\n" + "It is ancient, unmaintained and obsolete for several years. But you seem\r\n" + "to insist on using obsolete and known-broken software that ignores years \r\n" + "of hard development work. That's your choice, but you have been warned.\r\n" + "DON'T EVER BOTHER THE DEVELOPERS IF YOU ENCOUNTER PROBLEMS WITH IT!!!\r\n" + "See https://osmocom.org/projects/cellular-infrastructure/wiki/Osmocom_Network_In_The_Box\r\n" DIVIDER; diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c index 4950f4c..9ce5e12 100644 --- a/openbsc/src/osmo-nitb/bsc_hack.c +++ b/openbsc/src/osmo-nitb/bsc_hack.c @@ -65,6 +65,7 @@ static int daemonize = 0; static const char *mncc_sock_path = NULL; static int use_db_counter = 1; +static bool yes_i_really_want = false; /* timer to store statistics */ #define DB_SYNC_INTERVAL 60, 0 @@ -115,6 +116,7 @@ while (1) { int option_index = 0, c; static struct option long_options[] = { + {"yes-i-really-want-to-run-prehistoric-software", 0, 0, 0}, {"help", 0, 0, 'h'}, {"debug", 1, 0, 'd'}, {"daemonize", 0, 0, 'D'}, @@ -139,6 +141,10 @@ break; switch (c) { + case 0: + if (option_index == 0) + yes_i_really_want = true; + break; case 'h': print_usage(); print_help(); @@ -282,6 +288,28 @@ /* Parse options */ handle_options(argc, argv); +#define DIVIDER "======================================================================\n" + if (!yes_i_really_want) { + fprintf(stderr, DIVIDER + "ERROR: You should not run osmo-nitb. It is ancient, unmaintained and\n" + "obsolete for several years. If you really want to ignore years of hard work on\n" + "the new post-NITB stack (osmo-bsc, osmo-mgw, osmo-msc, osmo-hlr, osmo-stp),\n" + "you may ues the '--yes-i-really-want-to-run-prehistoric-software' command line\n" + "argument. DON'T EVER BOTHER THE DEVELOPERS IF YOU ENCOUNTER PROBLEMS WITH IT!!!\n" + "Use https://osmocom.org/projects/cellular-infrastructure/wiki/Osmocom_Network_In_The_Box\n" + DIVIDER); + exit(2); + } else { + fprintf(stderr, DIVIDER + "WARNING: You should not run osmo-nitb except for archaeological purpose.\n" + "It is ancient, unmaintained and obsolete for several years. But you seem\n" + "to insist on using obsolete and known-broken software that ignores years \n" + "of hard development work. That's your choice, but you have been warned.\n" + "DON'T EVER BOTHER THE DEVELOPERS IF YOU ENCOUNTER PROBLEMS WITH IT!!!\n" + "Use https://osmocom.org/projects/cellular-infrastructure/wiki/Osmocom_Network_In_The_Box\n" + DIVIDER); + } + /* Allocate global gsm_network struct; choose socket/internal MNCC */ rc = bsc_network_alloc(mncc_sock_path? mncc_sock_from_cc : int_mncc_recv); diff --git a/openbsc/tests/ctrl_test_runner.py b/openbsc/tests/ctrl_test_runner.py index a1d4195..7724f77 100755 --- a/openbsc/tests/ctrl_test_runner.py +++ b/openbsc/tests/ctrl_test_runner.py @@ -468,7 +468,8 @@ def ctrl_command(self): return ["./src/osmo-nitb/osmo-nitb", "-c", - "doc/examples/osmo-nitb/nanobts/osmo-nitb.cfg", "-l", "test_hlr.sqlite3"] + "doc/examples/osmo-nitb/nanobts/osmo-nitb.cfg", "-l", "test_hlr.sqlite3", + "--yes-i-really-want-to-run-prehistoric-software"] def ctrl_app(self): return (4249, "./src/osmo-nitb/osmo-nitb", "OsmoBSC", "nitb") diff --git a/openbsc/tests/smpp_test_runner.py b/openbsc/tests/smpp_test_runner.py index a34d7ba..b518ebb 100755 --- a/openbsc/tests/smpp_test_runner.py +++ b/openbsc/tests/smpp_test_runner.py @@ -64,7 +64,8 @@ def vty_command(self): return ["./src/osmo-nitb/osmo-nitb", "-c", - "doc/examples/osmo-nitb/nanobts/osmo-nitb.cfg"] + "doc/examples/osmo-nitb/nanobts/osmo-nitb.cfg", + "--yes-i-really-want-to-run-prehistoric-software"] def vty_app(self): return (4242, "./src/osmo-nitb/osmo-nitb", "OpenBSC", "nitb") diff --git a/openbsc/tests/vty_test_runner.py b/openbsc/tests/vty_test_runner.py index 8044e61..a1293be 100755 --- a/openbsc/tests/vty_test_runner.py +++ b/openbsc/tests/vty_test_runner.py @@ -171,7 +171,8 @@ def vty_command(self): return ["./src/osmo-nitb/osmo-nitb", "-c", - "doc/examples/osmo-nitb/nanobts/osmo-nitb.cfg"] + "doc/examples/osmo-nitb/nanobts/osmo-nitb.cfg", + "--yes-i-really-want-to-run-prehistoric-software"] def vty_app(self): return (4242, "./src/osmo-nitb/osmo-nitb", "OpenBSC", "nitb") -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b Gerrit-Change-Number: 21646 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter 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 Thu Dec 10 13:05:26 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 13:05:26 +0000 Subject: Change in osmo-bsc[master]: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21607 ) Change subject: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED ...................................................................... Patch Set 2: > Patch Set 2: Code-Review+1 > > Wouldn't it make sense to handle this inside the macro/inline-functions? > > If you check inside nm_bb_transc_fsm_state_chg(), then you don't have to change the callers, and it would be a genric solution. > > In fact, we could even consider introducing an osmo_fsm flag that would make such transitions quiet for certain fsm "classes" that set the flag. I am not sure if blocking loop-transitions is valid for all other states. Maybe in some state(s) it's expected to leave and enter the same state again to re-initialize something? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Gerrit-Change-Number: 21607 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 13:05: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 Thu Dec 10 13:38:53 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 13:38:53 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: Hello pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/21641 to look at the new patch set (#2). Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... debian-stretch-titan: use dpkg to install libfftranscode For some magic reason, apt segfaults while installing the DEBs: $ apt install ./libfftranscode0_0.3_${DPKG_ARCH}.deb \ ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb WARNING: apt does not have a stable CLI interface. Use with caution in scripts. Reading package lists... Segmentation fault (core dumped) so it kind of confirms the warning about its stability ;) Change-Id: I7f3288161577b055145afe89de7dff50853760f5 --- M debian-stretch-titan/Dockerfile 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/41/21641/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria 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 Thu Dec 10 13:38:53 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 13:38:53 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT 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/+/21640 to look at the new patch set (#2). Change subject: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT ...................................................................... ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT There has been a lot of changes merged to both osmo-{bsc,bts}, so now the later seems to be respawning faster then before. Because of that, osmo-bts-trx is now reaching the limit of 500 runs on Jenkins right in the middle of ttcn3-bts-test execution: respawn.sh: exiting after 500 runs causing the remaining test cases to fail due to: "BTS_Tests.ttcn:253 : Timeout waiting for RSL bring up" Most likely, the IUT respawns several times in the windows between the test cases, i.e. after TITAN finishes one test case and before it starts another. Let's instruct respawn.sh to sleep 1 second before starting the process again. Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 5 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/40/21640/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 2 Gerrit-Owner: 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 Dec 10 13:44:45 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 13:44:45 +0000 Subject: Change in osmo-pcu[master]: gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21649 ) Change subject: gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I10505d9aebe65e1f0952df75b13951e2b40d6997 Gerrit-Change-Number: 21649 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 13: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 Thu Dec 10 13:47:37 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 13:47:37 +0000 Subject: Change in osmo-pcu[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21648 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... Patch Set 1: Code-Review+1 > Patch Set 1: > > I think we need to consider old log files with a "logging level bssgp" line. I'll think about it. I think logging_vty_add_deprecated_subsys(ctx, "bssgp") should do the trick. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Gerrit-Change-Number: 21648 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 13:47: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 Dec 10 13:53:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 13:53:39 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 13:53: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 Dec 10 14:14:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:14:44 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 2: I filed a debian bug, I'll add the link here once it was accepted/published by bugs.debian.org -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 14:14: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 Dec 10 14:16:40 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 14:16:40 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 2: > Patch Set 2: > > I filed a debian bug, I'll add the link here once it was accepted/published by bugs.debian.org Thanks! In case anyone wants to see a back-trace: https://pastebin.ubuntu.com/p/pPv9BNdJM8/ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 14:16:40 +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 Dec 10 14:19:06 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 14:19:06 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/21641/1/debian-stretch-titan/Dockerfile File debian-stretch-titan/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21641/1/debian-stretch-titan/Dockerfile at 47 PS1, Line 47: dpkg -i ./libfftranscode0_0.3_${DPKG_ARCH}.deb ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb && \ > It worked for me, but we can add: [?] Done -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 14:19:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes 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 Thu Dec 10 14:22:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 14:22:08 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 14:22: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 Dec 10 14:24:38 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:24:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote 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/+/21573 to look at the new patch set (#8). Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... gprs_ns2_sns: rework IP-SNS initial remote The IP-SNS requires at least one initial remote address of the SGSN. However it should be multiple initial remote address instead of a single in case the interface might fail. Rework the SNS to support multiple initial remote addresses. Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/libosmogb.map 6 files changed, 364 insertions(+), 190 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/21573/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 Gerrit-PatchSet: 8 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 Thu Dec 10 14:24:38 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:24:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: use different binds for the initial connection 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/+/21574 to look at the new patch set (#8). Change subject: gprs_ns2_sns: use different binds for the initial connection ...................................................................... gprs_ns2_sns: use different binds for the initial connection In case the first bind is not working the SNS would never build a succesful connection to the SGSN. Iterate over all binds by using an offset. Instead of tracking the binds use an offset instead of a direct pointer. This might result in skipping the order of the next bind. Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb --- M src/gb/gprs_ns2_sns.c 1 file changed, 13 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/21574/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb Gerrit-Change-Number: 21574 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus 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 Dec 10 14:24:40 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:24:40 +0000 Subject: Change in libosmocore[master]: fixup vty sns References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21651 ) Change subject: fixup vty sns ...................................................................... fixup vty sns Change-Id: Ifc328455129ee3025b174d608e7c238e4252773b --- M src/gb/gprs_ns2_vty2.c 1 file changed, 11 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/21651/1 diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 2c7d00d..9f2036e 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1080,7 +1080,7 @@ struct osmo_sockaddr_str remote_str; /* argv[2] */ struct osmo_sockaddr remote; uint16_t port = atoi(argv[3]); - int rc; + int count; if (nse->ll != GPRS_NS2_LL_UDP) { vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); @@ -1102,20 +1102,20 @@ return CMD_WARNING; } - rc = gprs_ns2_sns_del_endpoint(nse, &remote); - if (rc) { + if (gprs_ns2_sns_del_endpoint(nse, &remote)) { vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); return CMD_WARNING; } - /* TODO: - * - check if sns has endpoints - * - if !empty -> CMD SUCCESS - * - remove sns fsm - * - set to LL/DIALECT to undef - */ - - if (llist_empty(&nse->nsvc)) { + 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->ll = GPRS_NS2_LL_UNDEF; nse->dialect = NS2_DIALECT_UNDEF; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc328455129ee3025b174d608e7c238e4252773b Gerrit-Change-Number: 21651 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 Dec 10 14:24:41 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:24:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2: make nsvc argument const References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21652 ) Change subject: gprs_ns2: make nsvc argument const ...................................................................... gprs_ns2: make nsvc argument const The nsvc isn't change. It can be const Change-Id: Ie5052f02781d7fdc639456c6f02515a927cee1f3 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_fr.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/52/21652/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index e9c91aa..876e97e 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -246,7 +246,7 @@ int dscp, struct gprs_ns2_vc_bind **result); int gprs_ns2_is_frgre_bind(struct gprs_ns2_vc_bind *bind); -uint16_t gprs_ns2_fr_nsvc_dlci(struct gprs_ns2_vc *nsvc); +uint16_t gprs_ns2_fr_nsvc_dlci(const struct gprs_ns2_vc *nsvc); struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_nse( struct gprs_ns2_nse *nse, diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 167f624..0dcb05b 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -711,7 +711,7 @@ * \param[in] nsvc * \return the dlci or 0 on error. 0 is not a valid dlci. */ -uint16_t gprs_ns2_fr_nsvc_dlci(struct gprs_ns2_vc *nsvc) +uint16_t gprs_ns2_fr_nsvc_dlci(const struct gprs_ns2_vc *nsvc) { struct priv_vc *vcpriv; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie5052f02781d7fdc639456c6f02515a927cee1f3 Gerrit-Change-Number: 21652 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 Dec 10 14:24:41 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:24:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21653 ) Change subject: gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role ...................................................................... gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role Change-Id: I277b805e588ba68536789b4a64a428ea0b31728a --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_fr.c 2 files changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21653/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 876e97e..8c61788 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -183,6 +183,7 @@ struct gprs_ns2_inst *nsi, const char *netif); const char *gprs_ns2_fr_bind_netif(struct gprs_ns2_vc_bind *bind); +enum osmo_fr_role gprs_ns2_fr_bind_role(struct gprs_ns2_vc_bind *bind); int gprs_ns2_fr_bind(struct gprs_ns2_inst *nsi, const char *name, const char *netif, diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 0dcb05b..6e761f6 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -555,6 +555,21 @@ return rc; } +/*! Return the frame relay role of a bind + * \param[in] bind The bind + * \return the frame relay role or -EINVAL if bind is not frame relay + */ +enum osmo_fr_role gprs_ns2_fr_bind_role(struct gprs_ns2_vc_bind *bind) +{ + struct priv_bind *priv; + + if (bind->driver != &vc_driver_fr) + return -EINVAL; + + priv = bind->priv; + return priv->link->role; +} + /*! Return the network interface of the bind * \param[in] bind The bind * \return the network interface -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I277b805e588ba68536789b4a64a428ea0b31728a Gerrit-Change-Number: 21653 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 Dec 10 14:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:24:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_sns_write_vty() References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21654 ) Change subject: gprs_ns2: add gprs_ns2_sns_write_vty() ...................................................................... gprs_ns2: add gprs_ns2_sns_write_vty() Change-Id: I7d0041287f5489db827d989d21efb1def537bdb0 --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 2 files changed, 23 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/54/21654/1 diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index f47fe10..e030e2f 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -238,6 +238,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 ns2_prim_status_ind(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 990adac..8e38086 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -1534,6 +1535,27 @@ } } +/*! 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 + * \param[in] stats Whether or not statistics shall also be printed */ +void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse) +{ + struct ns2_sns_state *gss; + struct osmo_sockaddr_str addr_str; + struct sns_endpoint *endpoint; + + if (!nse->bss_sns_fi) + return; + + 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); + vty_out(vty, "ip-sns %s %s %d%s", + "somegroup", addr_str.ip, addr_str.port, VTY_NEWLINE); + } +} + static struct sns_endpoint *ns2_get_sns_endpoint(struct ns2_sns_state *state, const struct osmo_sockaddr *saddr) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7d0041287f5489db827d989d21efb1def537bdb0 Gerrit-Change-Number: 21654 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 Dec 10 14:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:24:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: fixup: change dlci / nsvci order References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21655 ) Change subject: gprs_ns2_vty: fixup: change dlci / nsvci order ...................................................................... gprs_ns2_vty: fixup: change dlci / nsvci order Change-Id: I1304df449c5109e6ab0eab0a65a3a9f3b993def3 --- M src/gb/gprs_ns2_vty2.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/21655/1 diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 9f2036e..9303c09 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -483,7 +483,7 @@ }; DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, - "nsvc fr NETIF nsvci <0-65535> dlci <16-1007>", + "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" @@ -497,8 +497,8 @@ struct gprs_ns2_vc *nsvc; struct gprs_ns2_nse *nse = vty->index; const char *netif = argv[0]; - uint16_t nsvci = atoi(argv[1]); - uint16_t dlci = atoi(argv[2]); + uint16_t dlci = atoi(argv[1]); + uint16_t nsvci = atoi(argv[2]); bool dialect_modified = false; bool ll_modified = false; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1304df449c5109e6ab0eab0a65a3a9f3b993def3 Gerrit-Change-Number: 21655 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 Dec 10 14:24:42 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:24:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: vty2: config_write References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21656 ) Change subject: gprs_ns2: vty2: config_write ...................................................................... gprs_ns2: vty2: config_write Change-Id: Idb7d867d76ef6deb5d087d50e99ecdd5e620cd79 --- M src/gb/gprs_ns2_vty2.c 1 file changed, 145 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/21656/1 diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 9303c09..d23e2f2 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -79,6 +79,19 @@ { 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; @@ -268,9 +281,140 @@ 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 %d%s", addr_str.ip, addr_str.port, + VTY_NEWLINE); + } + } + if (vbind->accept_ipaccess) + vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); + /* TODO: dscp */ + 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 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 nsvci %d %s %d%s", + nsvc->bind->name, nsvc->nsvci, + addr_str.ip, addr_str.port, VTY_NEWLINE); + break; + case 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 %d%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 %d nsvci %d%s", + netif, dlci, nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR_GRE: + break; + } +} + +static void config_write_nse(struct vty *vty, struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc; + + vty_out(vty, " nse %d%s", nse->nsei, VTY_NEWLINE); + switch (nse->dialect) { + case NS2_DIALECT_SNS: + gprs_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) { - /* TODO: */ + struct gprs_ns2_nse *nse; + struct vty_bind *vbind; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + llist_for_each_entry(vbind, &binds, list) { + config_write_vbind(vty, vbind); + } + + llist_for_each_entry(nse, &vty_nsi->nse, list) { + if (!nse->persistent) + continue; + + config_write_nse(vty, nse); + } + + // TODO timer + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idb7d867d76ef6deb5d087d50e99ecdd5e620cd79 Gerrit-Change-Number: 21656 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 Dec 10 14:25:15 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:25:15 +0000 Subject: Change in libosmocore[master]: fixup vty sns In-Reply-To: References: Message-ID: lynxis lazus has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21651 ) Change subject: fixup vty sns ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc328455129ee3025b174d608e7c238e4252773b Gerrit-Change-Number: 21651 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 14:25:52 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:25:52 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: fixup: change dlci / nsvci order In-Reply-To: References: Message-ID: lynxis lazus has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21655 ) Change subject: gprs_ns2_vty: fixup: change dlci / nsvci order ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1304df449c5109e6ab0eab0a65a3a9f3b993def3 Gerrit-Change-Number: 21655 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 14:25:55 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:25:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: vty2: config_write In-Reply-To: References: Message-ID: lynxis lazus has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21656 ) Change subject: gprs_ns2: vty2: config_write ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idb7d867d76ef6deb5d087d50e99ecdd5e620cd79 Gerrit-Change-Number: 21656 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 14:26:03 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 10 Dec 2020 14:26:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_sns_write_vty() In-Reply-To: References: Message-ID: lynxis lazus has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21654 ) Change subject: gprs_ns2: add gprs_ns2_sns_write_vty() ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7d0041287f5489db827d989d21efb1def537bdb0 Gerrit-Change-Number: 21654 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 14:39:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:39:14 +0000 Subject: Change in osmo-sgsn[master]: migrate to DLBSSGP as log sub-system for BSSGP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... migrate to DLBSSGP as log sub-system for BSSGP Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Depends: libosmocore.git Change-Id I506190aae9217c0956e4b5764d1a0c0772268e93 --- M include/osmocom/sgsn/debug.h M src/gbproxy/gb_proxy_main.c M src/sgsn/sgsn_main.c M tests/sgsn/sgsn_test.c 4 files changed, 7 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/57/21657/1 diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index 29d500d..507b70c 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -24,7 +24,6 @@ DREF, DGPRS, DNS, - DBSSGP, DLLC, DSNDCP, DSLHC, diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index c7ff78c..373b128 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -209,10 +209,11 @@ .description = "GPRS Network Service (NS)", .enabled = 1, .loglevel = LOGL_INFO, }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_DEBUG, + [DOBJ] = { + .name = "DOBJ", + .description = "GbProxy object allocation/release", + .enabled = 1, + .color = "\033[38;5;121m" }, }; @@ -288,7 +289,7 @@ } gprs_ns2_vty_init(gbcfg->nsi, NULL); - bssgp_set_log_ss(DBSSGP); + logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "gssgp"); 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 e51336b..0277f6f 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -312,11 +312,6 @@ .description = "GPRS Network Service (NS)", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, [DLLC] = { .name = "DLLC", .description = "GPRS Logical Link Control Protocol (LLC)", @@ -424,7 +419,7 @@ rate_ctr_init(tall_sgsn_ctx); gprs_ns_set_log_ss(DNS); - bssgp_set_log_ss(DBSSGP); + logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "bssgp"); sgsn_nsi = gprs_ns_instantiate(&sgsn_ns_cb, tall_sgsn_ctx); if (!sgsn_nsi) { diff --git a/tests/sgsn/sgsn_test.c b/tests/sgsn/sgsn_test.c index 7399573..0574620 100644 --- a/tests/sgsn/sgsn_test.c +++ b/tests/sgsn/sgsn_test.c @@ -1625,11 +1625,6 @@ .description = "GPRS Network Service (NS)", .enabled = 1, .loglevel = LOGL_INFO, }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, [DLLC] = { .name = "DLLC", .description = "GPRS Logical Link Control Protocol (LLC)", -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Gerrit-Change-Number: 21657 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 Dec 10 14:39:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:39:39 +0000 Subject: Change in osmo-pcu[master]: migrate to DLBSSGP as log sub-system for BSSGP 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/osmo-pcu/+/21648 to look at the new patch set (#2). Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... migrate to DLBSSGP as log sub-system for BSSGP Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Depends: libosmocore.git Change-Id I506190aae9217c0956e4b5764d1a0c0772268e93 --- M TODO-RELEASE M src/gprs_debug.cpp M src/gprs_debug.h M src/pcu_main.cpp M tests/tbf/TbfTest.cpp 5 files changed, 9 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/21648/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Gerrit-Change-Number: 21648 Gerrit-PatchSet: 2 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 Thu Dec 10 14:40:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:40:00 +0000 Subject: Change in osmo-pcu[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21648 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Gerrit-Change-Number: 21648 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 14:40: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 Dec 10 14:40:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:40:04 +0000 Subject: Change in osmo-pcu[master]: gb manual: NS is implemented in libosmogb, not libosmocore In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21650 ) Change subject: gb manual: NS is implemented in libosmogb, not libosmocore ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie833370d9839017cbc508912992fb084ee879fe3 Gerrit-Change-Number: 21650 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 14:40: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 Dec 10 14:40:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:40:10 +0000 Subject: Change in osmo-pcu[master]: gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21649 ) Change subject: gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 ...................................................................... gb manual: 08.16 -> 48.016 / 08.18 -> 48.018 Change-Id: I10505d9aebe65e1f0952df75b13951e2b40d6997 --- M doc/manuals/gb/bssgp.adoc M doc/manuals/gb/ns.adoc M doc/manuals/osmopcu-gb.adoc 3 files changed, 67 insertions(+), 67 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/doc/manuals/gb/bssgp.adoc b/doc/manuals/gb/bssgp.adoc index 18f1842..7dcf3f8 100644 --- a/doc/manuals/gb/bssgp.adoc +++ b/doc/manuals/gb/bssgp.adoc @@ -4,14 +4,14 @@ === List of Messages The following tables list the BSSGP messages used by OsmoPCU, grouped -by their level of compliance with 3GPP TS 08.18. +by their level of compliance with 3GPP TS 48.018. -==== Messages Compliant With TS 08.18 +==== Messages Compliant With TS 48.018 -.Messages compliant with TS 08.18 +.Messages compliant with TS 48.018 [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== -| TS 08.18 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU +| TS 48.018 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU 6+<| *RL and BSSGP SAP Messages:* | 10.2.1 | 0x00 | <> | DL-UNITDATA | <- | Received | 10.2.2 | 0x01 | <> | UL-UNITDATA | -> | Sent @@ -44,10 +44,10 @@ [[not_impl]] ==== Messages Not Implemented by OsmoPCU -.3GPP TS 08.18 messages not implemented by OsmoPCU +.3GPP TS 48.018 messages not implemented by OsmoPCU [options="header",cols="10%,10%,80%"] |=== -| TS 08.18 ? | type code (hex) | Message +| TS 48.018 ? | type code (hex) | Message 3+<| *RL (relay) and BSSGP SAP Messages:* | 10.2.4 | 0x03 | PTM-UNITDATA 3+<| *GMM (GPRS mobility management) SAP Messages:* @@ -78,7 +78,7 @@ [[dl_unit_data]] ==== DL-UNITDATA -This message conforms to 3GPP TS 08.18 ? 10.2.1, with the following +This message conforms to 3GPP TS 48.018 ? 10.2.1, with the following limitations: * OsmoPCU does not support QoS @@ -87,7 +87,7 @@ ._DL-UNITDATA_ IE limitations [options="header",cols="10%,30%,60%"] |=== -| TS 08.18 ? | IE Name | Handling +| TS 48.018 ? | IE Name | Handling | 11.3.28 | QoS Profile | _ignored_ | 11.3.22 | MS Radio Access Capability | _ignored_ | 11.3.27 | Priority | _ignored_ @@ -100,7 +100,7 @@ [[ul_unit_data]] ==== UL-UNITDATA -This message conforms to 3GPP TS 08.18 ? 10.2.2, with the following limitations: +This message conforms to 3GPP TS 48.018 ? 10.2.2, with the following limitations: * OsmoPCU does not send optional IEs - PFI (? 12.3.42) and LSA Identifier List (? 11.3.18). @@ -114,7 +114,7 @@ [[paging_ps]] ==== PAGING PS -This message conforms to 3GPP TS 08.18 ? 10.3.1, with the following +This message conforms to 3GPP TS 48.018 ? 10.3.1, with the following limitations: * only IMSI and P-TMSI are parsed by OsmoPCU. @@ -122,7 +122,7 @@ ._DL-UNITDATA_ IE limitations [options="header",cols="10%,30%,60%"] |=== -| TS 08.18 ? | IE Name | Handling +| TS 48.018 ? | IE Name | Handling | 11.3.11 | DRX Parameters | _ignored_ | 11.3.6 | BVCI | _ignored_ | 11.3.17 | Location Are | _ignored_ @@ -174,7 +174,7 @@ [[bvc_reset]] ==== BVC-RESET -OsmoPCU never transmits optional Feature bitmap (3GPP TS 08.18 ? +OsmoPCU never transmits optional Feature bitmap (3GPP TS 48.018 ? 11.3.40) IE. Receiving BVC RESET will cause OsmoPCU to respond with "Unknown BVCI" @@ -183,24 +183,24 @@ [[reset_ack]] ==== BVC-RESET-ACK -This message conforms to 3GPP TS 08.18 ? 10.4.13. +This message conforms to 3GPP TS 48.018 ? 10.4.13. After receiving it OsmoPCU completes the RESET procedure for BVC -according to 3GPP TS 08.18 ? 8.4. +according to 3GPP TS 48.018 ? 8.4. [[unblock_ack]] ==== BVC-UNBLOCK-ACK -This message conforms to 3GPP TS 08.18 ? 10.4.11. +This message conforms to 3GPP TS 48.018 ? 10.4.11. After receiving it OsmoPCU completes the RESET procedure for BVC -according to 3GPP TS 08.18 ? 8.3. +according to 3GPP TS 48.018 ? 8.3. [[bvc_unblock]] ==== BVC-UNBLOCK -This message conforms to 3GPP TS 08.18 ? 10.4.10 and is send by -OsmoPCU as part of UNBLOCK procedure described in 3GPP TS 08.18 ? 8.3. +This message conforms to 3GPP TS 48.018 ? 10.4.10 and is send by +OsmoPCU as part of UNBLOCK procedure described in 3GPP TS 48.018 ? 8.3. [[flow_ms_ack]] ==== FLOW-CONTROL-MS-ACK @@ -217,11 +217,11 @@ [[flow_bvc]] ==== FLOW-CONTROL-BVC -This message conforms to 3GPP TS 08.18 ? 10.4.4, with the following +This message conforms to 3GPP TS 48.018 ? 10.4.4, with the following limitations: * OsmoPCU does not support Current Bucket Level (CBL) feature so - Bucket_Full Ratio (TS 08.18 ? 11.3.46) IE is not transmitted as part + Bucket_Full Ratio (TS 48.018 ? 11.3.46) IE is not transmitted as part of this message. [[flush_ll]] @@ -239,22 +239,22 @@ [[bssgp_status]] ==== STATUS -This message conforms to 3GPP TS 08.18 ? 10.4.14. +This message conforms to 3GPP TS 48.018 ? 10.4.14. === Information Elements Overview All of the IEs handled by OsmoPCU are listed below, with limitations -and additions to 3GPP TS 08.18 specified in more detail. +and additions to 3GPP TS 48.018 specified in more detail. -==== IEs Conforming to 3GPP TS 08.18 +==== IEs Conforming to 3GPP TS 48.018 The following Information Elements are accepted by OsmoPCU. Not all IEs are actually evaluated. -.IEs conforming to 3GPP TS 08.18 +.IEs conforming to 3GPP TS 48.018 [options="header",cols="5%,10%,40%,5%,40%"] |=== -| tag (hex) | TS 08.18 ? | IE name | <-/-> | Received/Sent by OsmoPCU +| tag (hex) | TS 48.018 ? | IE name | <-/-> | Received/Sent by OsmoPCU | 0x00 | 11.3.1 | Alignment Octets | <-/-> | Received/Sent | 0x01 | 11.3.2 | Bmax default MS | -> | Sent | 0x02 | 11.3.3 | BSS Area Indication | <- | Received @@ -301,12 +301,12 @@ | 0x3d | 11.3.47 | Service UTRAN CCO (Cell Change Order) | <- | Received |=== -==== IEs Not Conforming to 3GPP TS 08.18 +==== IEs Not Conforming to 3GPP TS 48.018 -.IEs not conforming to 3GPP TS 08.18 +.IEs not conforming to 3GPP TS 48.018 [options="header",cols="5%,10%,30%,55%"] |=== -| tag (hex) | TS 08.18 ? | IE name | Description +| tag (hex) | TS 48.018 ? | IE name | Description | 0x18 | 11.3.28 | QoS Profile | Received value is ignored. Sent value is hard-coded to 0x4 (3 octets). |=== @@ -417,7 +417,7 @@ ==== Tag This IE currently only used by OsmoPCU for Flow Control procedure (TS -08.18 ? 8.2). In other cases it's either ignored or unavailable. +48.018 ? 8.2). In other cases it's either ignored or unavailable. ==== Trace Reference @@ -494,8 +494,8 @@ In addition to the BVCI identifying the OsmoPCU side of BSSGP connection, there is also special BVCI which is accepted by OsmoPCU in -accordance with 3GPP TS 08.18 ? 5.4.1: BVCI = 0 represents signaling data +accordance with 3GPP TS 48.018 ? 5.4.1: BVCI = 0 represents signaling data between SGSN and PCU in contrast to PTP (Peer-To-Peer) user's data. The mapping between BSSGP PDUs and signaling or PTP BVCIs is available -in 3GPP TS 08.18 Table 5.4. +in 3GPP TS 48.018 Table 5.4. diff --git a/doc/manuals/gb/ns.adoc b/doc/manuals/gb/ns.adoc index c94e018..1dc2ed8 100644 --- a/doc/manuals/gb/ns.adoc +++ b/doc/manuals/gb/ns.adoc @@ -3,18 +3,18 @@ === List of Messages The following tables list the NS messages used by OsmoPCU, grouped by their -level of compliance with 3GPP TS 08.16. +level of compliance with 3GPP TS 48.016. -==== Messages Compliant With 3GPP TS 08.16 +==== Messages Compliant With 3GPP TS 48.016 The NS protocol is implemented inside libosmocore so none of the messages below are sent by OsmoPCU explicitly. Instead corresponding functions from libosmocore are called which send and receive messages as necessary. See <> for details on establishing NS connection. -.Messages compliant with 3GPP TS 08.16 +.Messages compliant with 3GPP TS 48.016 [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== -| TS 08.16 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU +| TS 48.016 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU | 9.2.10 | 0x00 | <> | NS-UNITDATA | <-/-> | Received/Sent | 9.2.5 | 0x02 | <> | NS-RESET | <-/-> | Received/Sent | 9.2.6 | 0x03 | <> | NS-RESET-ACK | <-/-> | Received/Sent @@ -33,7 +33,7 @@ ==== Messages Not Implemented by OsmoPCU -All the NS protocol messages from 3GPP TS 08.16 are implemented in OsmoPCU. +All the NS protocol messages from 3GPP TS 48.016 are implemented in OsmoPCU. === Details on Compliant NS Messages @@ -51,13 +51,13 @@ ==== NS-RESET This message is send by OsmoPCU in order to initiate reset procedure -described in 3GPP TS 08.16 ? 7.3. The expected reply is NS-RESET-ACK +described in 3GPP TS 48.016 ? 7.3. The expected reply is NS-RESET-ACK (<>) message. If no expected reply is received in 3 seconds than the sending is retried up to 3 times. When this message is received it is replied with NS-RESET-ACK (<>). -It might be ignored under conditions described in 3GPP TS 08.16 ? 7.3.1. +It might be ignored under conditions described in 3GPP TS 48.016 ? 7.3.1. -The message conforms to 3GPP TS 08.16 ? 9.2.5 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.5 specification. It contains Cause (<>), NSVCI (<>) and NSEI (<>) IEs. @@ -67,7 +67,7 @@ This message is sent as a response to proper NS-RESET (<>) message initiating reset procedure. -The message conforms to 3GPP TS 08.16 ? 9.2.6 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.6 specification. It contains NSVCI (<>) and NSEI (<>) IEs. @@ -79,9 +79,9 @@ When this message is sent by OsmoPCU corresponding NS-BLOCK-ACK (<>) reply is expected before NS-VC is actually marked as blocked. This behavior follows the blocking procedure described in -3GPP TS 08.16 ? 7.2. +3GPP TS 48.016 ? 7.2. -The message conforms to 3GPP TS 08.16 ? 9.2.3 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.3 specification. It contains Cause (<>) and NSVCI (<>) IEs. @@ -92,7 +92,7 @@ correct NS-BLOCK (<>) message. It is expected as a reply for NS-BLOCK (<>) message sent by OsmoPCU. -The message conforms to 3GPP TS 08.16 ? 9.2.4 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.4 specification. It contains NSVCI (<>) IE. @@ -104,9 +104,9 @@ this message is sent by OsmoPCU corresponding NS-UNBLOCK-ACK (<>) reply is expected before NS-VC is actually marked as unblocked. This behavior follows the blocking procedure described -in 3GPP TS 08.16 ? 7.2. +in 3GPP TS 48.016 ? 7.2. -The message conforms to 3GPP TS 08.16 ? 9.2.8 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.8 specification. [[ns_unblock_ack]] ==== NS-UNBLOCK-ACK @@ -115,7 +115,7 @@ is confirmed and thus NS-VC is marked as unblocked. This message is also sent as a reply to NS-UNBLOCK (<>) message. -The message conforms to 3GPP TS 08.16 ? 9.2.9 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.9 specification. [[ns_status]] ==== NS-STATUS @@ -123,10 +123,10 @@ This message is sent to inform other party about error conditions as a response to various unexpected PDUs or PDUs with unexpected/missing data. If this message is received for unknown NS-VC it is ignored in -accordance with 3GPP TS 08.16 ? 7.5.1, otherwise the error cause is +accordance with 3GPP TS 48.016 ? 7.5.1, otherwise the error cause is logged if present in NS-STATUS. -The message conforms to 3GPP TS 08.16 ? 9.2.7 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.7 specification. It contains Cause (<>) and might (depending on actual error) contain NSVCI (<>), NS PDU (<>) and BVCI @@ -136,13 +136,13 @@ ==== NS-ALIVE This message is sent periodically to test connectivity according to -3GPP TS 08.16 ? 4.5.3. The expected response is NS-ALIVE-ACK +3GPP TS 48.016 ? 4.5.3. The expected response is NS-ALIVE-ACK (<>). If no such response arrives within given amount of time (3 seconds) than another NS-ALIVE message is sent and failed test attempt is recorded. After 10 failed attempts NS connection is considered dead and OsmoPCU tries to reconnect. -The message conforms to 3GPP TS 08.16 ? 9.2.1 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.1 specification. [[ns_alive_ack]] ==== NS-ALIVE-ACK @@ -150,21 +150,21 @@ This message is sent automatically in reply to NS-ALIVE (<>) message. -The message conforms to 3GPP TS 08.16 ? 9.2.2 specification. +The message conforms to 3GPP TS 48.016 ? 9.2.2 specification. === Information Elements Overview All of the IEs handled by OsmoPCU are listed below, with limitations and -additions to 3GPP TS 08.16 specified in more detail. +additions to 3GPP TS 48.016 specified in more detail. -==== IEs Conforming to 3GPP TS 08.16 +==== IEs Conforming to 3GPP TS 48.016 The following Information Elements are accepted by OsmoPCU. -.IEs conforming to 3GPP TS 08.16 +.IEs conforming to 3GPP TS 48.016 [options="header",cols="5%,10%,40%,5%,40%"] |=== -| tag (hex) | TS 08.16 ? | IE name | <-/-> | Received/Sent by OsmoPCU +| tag (hex) | TS 48.016 ? | IE name | <-/-> | Received/Sent by OsmoPCU | 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent | 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent | 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent @@ -172,9 +172,9 @@ | 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent |=== -==== IEs Not Conforming to 3GPP TS 08.16 +==== IEs Not Conforming to 3GPP TS 48.016 -All IEs defined in 3GPP TS 08.16 ? 10.3 are supported by OsmoPCU. +All IEs defined in 3GPP TS 48.016 ? 10.3 are supported by OsmoPCU. ==== Additional Attributes and Parameters @@ -185,18 +185,18 @@ [[ie_cause]] ==== Cause -This IE contains reason for a procedure or error as described in 3GPP TS 08.16 ? 10.3.2. +This IE contains reason for a procedure or error as described in 3GPP TS 48.016 ? 10.3.2. [[ie_nsvci]] ==== NSVCI -This IE represents NSVCI identity described in <> and 3GPP TS 08.16 ? 10.3.5. +This IE represents NSVCI identity described in <> and 3GPP TS 48.016 ? 10.3.5. [[ie_nspdu]] ==== NS PDU This IE contains PDU (possibly truncated) which cause error described -in NS-STATUS message (<>) as described in 3GPP TS 08.16 ? +in NS-STATUS message (<>) as described in 3GPP TS 48.016 ? 10.3.3. [[ie_nssdu]] @@ -207,13 +207,13 @@ [[ie_bvci]] ==== BVCI -This IE represents BSSGP identity described in <> and 3GPP TS 08.16 +This IE represents BSSGP identity described in <> and 3GPP TS 48.016 ? 10.3.1. [[ie_nsei]] ==== NSEI -This IE represents NSEI identity described in <> and 3GPP TS 08.16 ? +This IE represents NSEI identity described in <> and 3GPP TS 48.016 ? 10.3.6. [[ns_init]] diff --git a/doc/manuals/osmopcu-gb.adoc b/doc/manuals/osmopcu-gb.adoc index 00576c9..166059b 100644 --- a/doc/manuals/osmopcu-gb.adoc +++ b/doc/manuals/osmopcu-gb.adoc @@ -7,7 +7,7 @@ == Introduction This document describes the Gb interface of *OsmoPCU*. Based on 3GPP TS -08.16 and 08.18, this document indicates which of the 3GPP specified Gb +48.016 and 48.018, this document indicates which of the 3GPP specified Gb messages and IEs are implemented according to 3GPP specifications, which of these are not or not fully implemented, as well as OsmoPCU-specific extensions to the Gb interface not specified by 3GPP. @@ -23,8 +23,8 @@ |3GPP TS 08.58 | version 8.6.0 Release 1999 |3GPP TS 08.60 | version 8.2.1 Release 1999 |3GPP TS 12.21 | version 8.0.0 Release 1999 -|3GPP TS 08.16 | version 8.0.1 Release 1999 -|3GPP TS 08.18 | version 8.12.0 Release 1999 +|3GPP TS 48.016 | version 15.0.0 Release 15 +|3GPP TS 48.018 | version 15.0.0 Release 15 |=== .IETF documents referred to by his document @@ -74,8 +74,8 @@ BVCI:: BSSGP Virtual Connection Identifier For an explanation of those identifiers and their use in the NS and -BSSGP protocols, please see the relevant 3GPP specifications for NS (TS 08.16) -and BSSGP (TS 08.18). +BSSGP protocols, please see the relevant 3GPP specifications for NS (TS 48.016) +and BSSGP (TS 48.018). In most cases, all above identities belong to different namespaces and must be unique within their respective namespace and within the SGSN -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I10505d9aebe65e1f0952df75b13951e2b40d6997 Gerrit-Change-Number: 21649 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 Thu Dec 10 14:40:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:40:10 +0000 Subject: Change in osmo-pcu[master]: gb manual: NS is implemented in libosmogb, not libosmocore In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21650 ) Change subject: gb manual: NS is implemented in libosmogb, not libosmocore ...................................................................... gb manual: NS is implemented in libosmogb, not libosmocore Change-Id: Ie833370d9839017cbc508912992fb084ee879fe3 --- M doc/manuals/gb/ns.adoc 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/doc/manuals/gb/ns.adoc b/doc/manuals/gb/ns.adoc index 1dc2ed8..fbcd380 100644 --- a/doc/manuals/gb/ns.adoc +++ b/doc/manuals/gb/ns.adoc @@ -7,8 +7,8 @@ ==== Messages Compliant With 3GPP TS 48.016 -The NS protocol is implemented inside libosmocore so none of the messages below are sent by OsmoPCU explicitly. -Instead corresponding functions from libosmocore are called which send and receive messages as necessary. See <> for details +The NS protocol is implemented inside libosmogb so none of the messages below are sent by OsmoPCU explicitly. +Instead corresponding functions from libosmogb are called which send and receive messages as necessary. See <> for details on establishing NS connection. .Messages compliant with 3GPP TS 48.016 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie833370d9839017cbc508912992fb084ee879fe3 Gerrit-Change-Number: 21650 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 Dec 10 14:41:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:41:14 +0000 Subject: Change in osmo-sgsn[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... migrate to DLBSSGP as log sub-system for BSSGP Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Depends: libosmocore.git Change-Id I506190aae9217c0956e4b5764d1a0c0772268e93 --- M include/osmocom/sgsn/debug.h M src/gbproxy/gb_proxy_main.c M src/sgsn/sgsn_main.c M tests/sgsn/sgsn_test.c 4 files changed, 7 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/57/21657/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Gerrit-Change-Number: 21657 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 14:41:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 14:41:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21573 ) Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 14:41: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 Dec 10 14:42:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:42:44 +0000 Subject: Change in osmo-sgsn[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... migrate to DLBSSGP as log sub-system for BSSGP Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Depends: libosmocore.git Change-Id I506190aae9217c0956e4b5764d1a0c0772268e93 --- M include/osmocom/sgsn/debug.h M src/gbproxy/gb_proxy_main.c M src/sgsn/sgsn_main.c M tests/sgsn/sgsn_test.c 4 files changed, 2 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/57/21657/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Gerrit-Change-Number: 21657 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 14:42:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 14:42:44 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Introduce new DOBJ log category; log object allocation/release 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/+/21614 to look at the new patch set (#4). Change subject: gbproxy: Introduce new DOBJ log category; log object allocation/release ...................................................................... gbproxy: Introduce new DOBJ log category; log object allocation/release Related: OS#4472 Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 --- M include/osmocom/sgsn/debug.h M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c 4 files changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/14/21614/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 Gerrit-Change-Number: 21614 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 Thu Dec 10 14:52:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 14:52:30 +0000 Subject: Change in osmo-sgsn[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Gerrit-Change-Number: 21657 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 14: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 Thu Dec 10 15:00:33 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 15:00:33 +0000 Subject: Change in osmo-sgsn[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Gerrit-Change-Number: 21657 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15:00: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 Dec 10 15:00:41 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 15:00:41 +0000 Subject: Change in osmo-sgsn[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... migrate to DLBSSGP as log sub-system for BSSGP Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Depends: libosmocore.git Change-Id I506190aae9217c0956e4b5764d1a0c0772268e93 --- M include/osmocom/sgsn/debug.h M src/gbproxy/gb_proxy_main.c M src/sgsn/sgsn_main.c M tests/sgsn/sgsn_test.c 4 files changed, 2 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index 29d500d..507b70c 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -24,7 +24,6 @@ DREF, DGPRS, DNS, - DBSSGP, DLLC, DSNDCP, DSLHC, diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index c7ff78c..a9c132e 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -209,11 +209,6 @@ .description = "GPRS Network Service (NS)", .enabled = 1, .loglevel = LOGL_INFO, }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, }; static const struct log_info gprs_log_info = { @@ -288,7 +283,7 @@ } gprs_ns2_vty_init(gbcfg->nsi, NULL); - bssgp_set_log_ss(DBSSGP); + 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 e51336b..0277f6f 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -312,11 +312,6 @@ .description = "GPRS Network Service (NS)", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, [DLLC] = { .name = "DLLC", .description = "GPRS Logical Link Control Protocol (LLC)", @@ -424,7 +419,7 @@ rate_ctr_init(tall_sgsn_ctx); gprs_ns_set_log_ss(DNS); - bssgp_set_log_ss(DBSSGP); + logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "bssgp"); sgsn_nsi = gprs_ns_instantiate(&sgsn_ns_cb, tall_sgsn_ctx); if (!sgsn_nsi) { diff --git a/tests/sgsn/sgsn_test.c b/tests/sgsn/sgsn_test.c index 7399573..0574620 100644 --- a/tests/sgsn/sgsn_test.c +++ b/tests/sgsn/sgsn_test.c @@ -1625,11 +1625,6 @@ .description = "GPRS Network Service (NS)", .enabled = 1, .loglevel = LOGL_INFO, }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, [DLLC] = { .name = "DLLC", .description = "GPRS Logical Link Control Protocol (LLC)", -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I69ee10b6fad1da2053cf6f3ae99d3ecf62a144ce Gerrit-Change-Number: 21657 Gerrit-PatchSet: 3 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 Dec 10 15:19:22 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 15:19:22 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... debian-stretch-titan: use dpkg to install libfftranscode For some magic reason, apt segfaults while installing the DEBs: $ apt install ./libfftranscode0_0.3_${DPKG_ARCH}.deb \ ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb WARNING: apt does not have a stable CLI interface. Use with caution in scripts. Reading package lists... Segmentation fault (core dumped) so it kind of confirms the warning about its stability ;) Change-Id: I7f3288161577b055145afe89de7dff50853760f5 --- M debian-stretch-titan/Dockerfile 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved fixeria: Verified diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile index 4b288d0..3c9f672 100644 --- a/debian-stretch-titan/Dockerfile +++ b/debian-stretch-titan/Dockerfile @@ -44,5 +44,6 @@ RUN DPKG_ARCH="$(dpkg --print-architecture)" && export $DPKG_ARCH && \ wget https://ftp.osmocom.org/binaries/libfftranscode/libfftranscode0_0.3_${DPKG_ARCH}.deb && \ wget https://ftp.osmocom.org/binaries/libfftranscode/libfftranscode-dev_0.3_${DPKG_ARCH}.deb && \ - apt install ./libfftranscode0_0.3_${DPKG_ARCH}.deb ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb && \ + dpkg -i ./libfftranscode0_0.3_${DPKG_ARCH}.deb ./libfftranscode-dev_0.3_${DPKG_ARCH}.deb && \ + apt install --fix-broken && \ rm libfftranscode*.deb -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria 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 Thu Dec 10 15:19:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:19:50 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: use dpkg to install libfftranscode In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21641 ) Change subject: debian-stretch-titan: use dpkg to install libfftranscode ...................................................................... Patch Set 2: > Patch Set 2: > > > Patch Set 2: > > > > I filed a debian bug, I'll add the link here once it was accepted/published by bugs.debian.org > > Thanks! In case anyone wants to see a back-trace: https://pastebin.ubuntu.com/p/pPv9BNdJM8/ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977041 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7f3288161577b055145afe89de7dff50853760f5 Gerrit-Change-Number: 21641 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15:19: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 Dec 10 15:21:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:21:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_sns_add: fix wrong udp port in SNS ADD message In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21619 ) Change subject: pcu: TC_sns_add: fix wrong udp port in SNS ADD message ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9bbbf1431468a452df324a7559518496e3eb48e3 Gerrit-Change-Number: 21619 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15:21: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 Dec 10 15:21:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:21:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: remove TODO expect FLOW-CONTROL BVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21620 ) Change subject: pcu: SNS: remove TODO expect FLOW-CONTROL BVC ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I142c87d496f08d603ab8e1e13c5a29ebe6596bb0 Gerrit-Change-Number: 21620 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15: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 Dec 10 15:21:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:21:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_add_existent In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21621 ) Change subject: pcu: SNS: add TC_sns_add_existent ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I096bcbe38d82d08a150a2f8e56f6bc02353273a1 Gerrit-Change-Number: 21621 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15:21: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 Dec 10 15:21:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:21:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_sns_add: fix wrong udp port in SNS ADD message In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21619 ) Change subject: pcu: TC_sns_add: fix wrong udp port in SNS ADD message ...................................................................... pcu: TC_sns_add: fix wrong udp port in SNS ADD message When sending the SNS ADD in the test case the ip/port to add must be different from the current NSVCs. Fixes: 90f1974fb040 ("NS_Emulation: Support multiple NS-VC within one NSE (NS-VCG)") Change-Id: I9bbbf1431468a452df324a7559518496e3eb48e3 --- M pcu/PCU_Tests_SNS.ttcn 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/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index cd0cc67..40a0877 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -147,7 +147,7 @@ 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].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig[idx_add].nsvc[0]; 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, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9bbbf1431468a452df324a7559518496e3eb48e3 Gerrit-Change-Number: 21619 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 Thu Dec 10 15:21:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:21:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: remove TODO expect FLOW-CONTROL BVC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21620 ) Change subject: pcu: SNS: remove TODO expect FLOW-CONTROL BVC ...................................................................... pcu: SNS: remove TODO expect FLOW-CONTROL BVC It should not be expected in a new NSVC. Change-Id: I142c87d496f08d603ab8e1e13c5a29ebe6596bb0 --- M pcu/PCU_Tests_SNS.ttcn 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/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index 40a0877..5c03b94 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -417,7 +417,6 @@ activate(as_rx_alive_tx_ack(idx := 2)); f_outgoing_ns_alive(2); - /* TODO: Should we expect FLOW-CONTROL BVC here too? */ setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I142c87d496f08d603ab8e1e13c5a29ebe6596bb0 Gerrit-Change-Number: 21620 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 Thu Dec 10 15:21:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:21:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: add TC_sns_add_existent In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21621 ) Change subject: pcu: SNS: add TC_sns_add_existent ...................................................................... pcu: SNS: add TC_sns_add_existent Try to add via SNS an already existent NSVC which should fail. Change-Id: I096bcbe38d82d08a150a2f8e56f6bc02353273a1 --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 12 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/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index 5c03b94..937e30e 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -143,7 +143,7 @@ rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); } -function f_outgoing_sns_add(integer idx_add, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0) +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; @@ -153,13 +153,13 @@ 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, omit, v4)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].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, omit, omit, v6)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, cause, omit, v6)); } } @@ -420,6 +420,14 @@ setverdict(pass); } +/* Test adding an already present IP endpoint at runtime */ +testcase TC_sns_add_nack() runs on RAW_Test_CT { + f_sns_bringup_1c1u(); + + f_outgoing_sns_add(idx_add := 0, w_sig := 0, w_user := 1, idx := 0, cause := NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + setverdict(pass); +} + /* Test deleting IP endpoints at runtime */ testcase TC_sns_del() runs on RAW_Test_CT { f_sns_bringup_1c1u(); @@ -473,6 +481,7 @@ execute( TC_sns_1c1u_so_bvc_reset() ); execute( TC_sns_1c1u_so_bvc_reset_too_early() ); execute( TC_sns_add() ); + execute( TC_sns_add_nack() ); execute( TC_sns_del() ); execute( TC_sns_chg_weight() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I096bcbe38d82d08a150a2f8e56f6bc02353273a1 Gerrit-Change-Number: 21621 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 Thu Dec 10 15:21:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:21:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: SNS: fix typo In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21622 ) Change subject: pcu: SNS: fix typo ...................................................................... pcu: SNS: fix typo Change-Id: Iedb6b3f38d87ea3ac29c4bcaaf50e771b0b8a750 --- M pcu/PCU_Tests_SNS.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index 937e30e..aed363b 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -407,7 +407,7 @@ testcase TC_sns_add() runs on RAW_Test_CT { f_sns_bringup_1c1u(); - /* crate another NS codec port on the tester side */ + /* create another NS codec port on the tester side */ f_init_ns_codec(mp_nsconfig, 2); f_outgoing_sns_add(idx_add := 2, w_sig := 0, w_user := 1, idx := 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iedb6b3f38d87ea3ac29c4bcaaf50e771b0b8a750 Gerrit-Change-Number: 21622 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 Dec 10 15:23:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:23:15 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: get rid of magic numbers for E1 slots In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21385 ) Change subject: mgcp_client: get rid of magic numbers for E1 slots ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iee134d70f05883fcd2e58e0b9c78ed70aea16695 Gerrit-Change-Number: 21385 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15:23: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 Dec 10 15:23:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:23:17 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: get rid of magic numbers for E1 slots In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21385 ) Change subject: mgcp_client: get rid of magic numbers for E1 slots ...................................................................... mgcp_client: get rid of magic numbers for E1 slots use NUM_E1_TS-1 instead of 31 in relation of E1 timeslot count Change-Id: Iee134d70f05883fcd2e58e0b9c78ed70aea16695 --- M src/libosmo-mgcp-client/Makefile.am M src/libosmo-mgcp-client/mgcp_client.c 2 files changed, 4 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libosmo-mgcp-client/Makefile.am b/src/libosmo-mgcp-client/Makefile.am index 61b7822..ca2695a 100644 --- a/src/libosmo-mgcp-client/Makefile.am +++ b/src/libosmo-mgcp-client/Makefile.am @@ -9,6 +9,7 @@ -Wall \ $(LIBOSMOCORE_CFLAGS) \ $(LIBOSMOVTY_CFLAGS) \ + $(LIBOSMOABIS_CFLAGS) \ $(COVERAGE_CFLAGS) \ $(NULL) diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 6f4c1f3..a134273 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -30,6 +30,8 @@ #include #include +#include + #include #include @@ -957,7 +959,7 @@ /* An E1 line has a maximum of 32 timeslots, while the first (ts=0) is * reserverd for framing and alignment, so we can not use it here. */ - if (ts == 0 || ts > 31) { + if (ts == 0 || ts > NUM_E1_TS-1) { LOGP(DLMGCP, LOGL_ERROR, "Cannot compose MGCP e1-endpoint name (%s), E1-timeslot number (%u) is invalid!\n", epname, ts); talloc_free(epname); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iee134d70f05883fcd2e58e0b9c78ed70aea16695 Gerrit-Change-Number: 21385 Gerrit-PatchSet: 5 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 Thu Dec 10 15:23:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:23:40 +0000 Subject: Change in osmo-bts[master]: log: rsl_rx_chan_activ: show chan type as human readable string In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21077 ) Change subject: log: rsl_rx_chan_activ: show chan type as human readable string ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3acf6c18309d3b4093dbc295be622363cb6dbcdc Gerrit-Change-Number: 21077 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15:23: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 Dec 10 15:23:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:23:42 +0000 Subject: Change in osmo-bts[master]: log: rsl_rx_chan_activ: show chan type as human readable string In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21077 ) Change subject: log: rsl_rx_chan_activ: show chan type as human readable string ...................................................................... log: rsl_rx_chan_activ: show chan type as human readable string Change-Id: I3acf6c18309d3b4093dbc295be622363cb6dbcdc --- M src/common/rsl.c 1 file changed, 4 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/rsl.c b/src/common/rsl.c index 30fa259..f7f336a 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1309,8 +1309,10 @@ /* 9.3.53 MultiRate Control */ /* 9.3.54 Supported Codec Types */ - LOGPLCHAN(lchan, DRSL, LOGL_INFO, "chan_nr=%s type=0x%02x mode=%s\n", - rsl_chan_nr_str(dch->chan_nr), type, gsm48_chan_mode_name(lchan->tch_mode)); + LOGPLCHAN(lchan, DRSL, LOGL_INFO, "chan_nr=%s type=0x%02x=%s mode=%s\n", + rsl_chan_nr_str(dch->chan_nr), + type, get_value_string(rsl_act_type_names, type), + gsm48_chan_mode_name(lchan->tch_mode)); /* Connecting PDCH on dyn TS goes via PCU instead. */ if (ts->pchan == GSM_PCHAN_TCH_F_TCH_H_PDCH -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3acf6c18309d3b4093dbc295be622363cb6dbcdc Gerrit-Change-Number: 21077 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Thu Dec 10 15:24:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:24:39 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tchh: fix frame number and fill FACCH gap In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21329 ) Change subject: sched_lchan_tchh: fix frame number and fill FACCH gap ...................................................................... Patch Set 2: > Patch Set 2: > > (1 comment) > > Regarding the frame numbers, not sure why you prefer to stay with the remapping API. This is a performance critical part of the implementation, and storing frame numbers together with the Uplink measurements in a ring-buffer would be a significant improvement, since you don't need to do any for / if / assert() at all. I don't want to block you, but still would prefer the ring-buffer approach. > > Regarding the measurements, it's still unclear to me why do you memcpy() samples averaged over the whole FACCH/H block. My proposal was to keep averaging samples as usual, like there is no FACCH/H at all. I think we need to schedule a Jitsi call, but let's see if I can propose something in the form of a patch today. Can you two please coordinate to exchange your ideas on that? It's 9 days later now without any progress. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1ad9fa3815feb2b4da608ab7df716a87ba1f2f91 Gerrit-Change-Number: 21329 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 15: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 Thu Dec 10 15:24:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:24:57 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: invalidate hard-coded Measurement results In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21422 ) Change subject: firmware/layer1: invalidate hard-coded Measurement results ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I136307baef3fa2ddd1d5cec2a7f8c9e6d4602499 Gerrit-Change-Number: 21422 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15: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 Thu Dec 10 15:25:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:25:06 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: clarify the content of Measurement results In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21421 ) Change subject: firmware/layer1: clarify the content of Measurement results ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3203790c529f93d0084c82136645683a26faf986 Gerrit-Change-Number: 21421 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15: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 Thu Dec 10 15:25:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:25:09 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: clarify the content of Measurement results In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21421 ) Change subject: firmware/layer1: clarify the content of Measurement results ...................................................................... firmware/layer1: clarify the content of Measurement results Change-Id: I3203790c529f93d0084c82136645683a26faf986 Related: I26546dcbc853166e351d00260936b1b9d584ae03 --- M src/target/firmware/layer1/prim_utils.c 1 file changed, 15 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/src/target/firmware/layer1/prim_utils.c b/src/target/firmware/layer1/prim_utils.c index c85da71..9c58d15 100644 --- a/src/target/firmware/layer1/prim_utils.c +++ b/src/target/firmware/layer1/prim_utils.c @@ -43,10 +43,22 @@ /* lapdm header */ 0x01, 0x03, 0x49, - /* Measurement report */ - 0x06, 0x15, 0x36, 0x36, 0x01, 0xC0, 0x00, 0x00, + /* RR Management messages, Measurement Report */ + 0x06, 0x15, + + /* Measurement results (see 3GPP TS 44.018, section 10.5.2.20): + * 0... .... = BA-USED: 0 + * .0.. .... = DTX-USED: DTX was not used + * ..11 0110 = RXLEV-FULL-SERVING-CELL: -57 <= x < -56 dBm (54) + * 0... .... = 3G-BA-USED: 0 + * .0.. .... = MEAS-VALID: The measurement results are valid + * ..11 0110 = RXLEV-SUB-SERVING-CELL: -57 <= x < -56 dBm (54) + * 0... .... = SI23_BA_USED: 0 + * .000 .... = RXQUAL-FULL-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) + * .... 000. = RXQUAL-SUB-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) + * .... ...1 11.. .... = NO-NCELL-M: Neighbour cell information not available */ + 0x36, 0x36, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00 }; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3203790c529f93d0084c82136645683a26faf986 Gerrit-Change-Number: 21421 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 Dec 10 15:25:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:25:09 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: invalidate hard-coded Measurement results In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21422 ) Change subject: firmware/layer1: invalidate hard-coded Measurement results ...................................................................... firmware/layer1: invalidate hard-coded Measurement results This is what the L1 sends to the network before the first SACCH block is received from the higher layers. The indicated values are of course invalid because they're hard-coded. According to 3GPP TS 44.018, table 10.5.2.20.1: 0 The measurement results are valid 1 The measurement results are not valid Change-Id: I136307baef3fa2ddd1d5cec2a7f8c9e6d4602499 Related: I7da767e146aec7cef1de71e4d735d6a02b6c5642 Related: SYS#4918 --- M src/target/firmware/layer1/prim_utils.c 1 file changed, 2 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/target/firmware/layer1/prim_utils.c b/src/target/firmware/layer1/prim_utils.c index 9c58d15..7beab5f 100644 --- a/src/target/firmware/layer1/prim_utils.c +++ b/src/target/firmware/layer1/prim_utils.c @@ -51,13 +51,13 @@ * .0.. .... = DTX-USED: DTX was not used * ..11 0110 = RXLEV-FULL-SERVING-CELL: -57 <= x < -56 dBm (54) * 0... .... = 3G-BA-USED: 0 - * .0.. .... = MEAS-VALID: The measurement results are valid + * .1.. .... = MEAS-VALID: The measurement results are not valid * ..11 0110 = RXLEV-SUB-SERVING-CELL: -57 <= x < -56 dBm (54) * 0... .... = SI23_BA_USED: 0 * .000 .... = RXQUAL-FULL-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) * .... 000. = RXQUAL-SUB-SERVING-CELL: BER < 0.2%, Mean value 0.14% (0) * .... ...1 11.. .... = NO-NCELL-M: Neighbour cell information not available */ - 0x36, 0x36, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x36, 0x76, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I136307baef3fa2ddd1d5cec2a7f8c9e6d4602499 Gerrit-Change-Number: 21422 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 Dec 10 15:25:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:25:51 +0000 Subject: Change in osmo-sgsn[master]: mm_state_gb_fsm: Handle implicit detach from mm_standby In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 ) Change subject: mm_state_gb_fsm: Handle implicit detach from mm_standby ...................................................................... mm_state_gb_fsm: Handle implicit detach from mm_standby Change-Id: I63d04a2dcdc17b4df6616c515641c435d919c787 Related: OS#2737 --- M src/sgsn/gprs_mm_state_gb_fsm.c 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/sgsn/gprs_mm_state_gb_fsm.c b/src/sgsn/gprs_mm_state_gb_fsm.c index 811f0c2..d3f2ea3 100644 --- a/src/sgsn/gprs_mm_state_gb_fsm.c +++ b/src/sgsn/gprs_mm_state_gb_fsm.c @@ -68,6 +68,9 @@ case E_MM_PDU_RECEPTION: mm_state_gb_fsm_state_chg(fi, ST_MM_READY); break; + case E_MM_IMPLICIT_DETACH: + mm_state_gb_fsm_state_chg(fi, ST_MM_IDLE); + break; } } @@ -86,7 +89,7 @@ .action = st_mm_ready, }, [ST_MM_STANDBY] = { - .in_event_mask = X(E_MM_PDU_RECEPTION), + .in_event_mask = X(E_MM_PDU_RECEPTION) | X(E_MM_IMPLICIT_DETACH), .out_state_mask = X(ST_MM_IDLE) | X(ST_MM_READY), .name = "Standby", .action = st_mm_standby, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/17080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I63d04a2dcdc17b4df6616c515641c435d919c787 Gerrit-Change-Number: 17080 Gerrit-PatchSet: 4 Gerrit-Owner: daniel 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 Thu Dec 10 15:26:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:26:03 +0000 Subject: Change in osmo-trx[master]: vty: fix swapped documentation for 'filler type' command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21604 ) Change subject: vty: fix swapped documentation for 'filler type' command ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ieb3bbc4fb30f303c47555ca77d03a9e965bc72b5 Gerrit-Change-Number: 21604 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 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 Dec 10 15:26:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:26:06 +0000 Subject: Change in osmo-trx[master]: vty: fix swapped documentation for 'filler type' command In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21604 ) Change subject: vty: fix swapped documentation for 'filler type' command ...................................................................... vty: fix swapped documentation for 'filler type' command vty_cmd_string_from_valstr() expands the given 'struct value_string' sequentionally, so the order of entries in both filler_{types,docs} shall match (regardless of the value assigned). Change-Id: Ieb3bbc4fb30f303c47555ca77d03a9e965bc72b5 --- M CommonLibs/trx_vty.c 1 file changed, 1 insertion(+), 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/CommonLibs/trx_vty.c b/CommonLibs/trx_vty.c index e672928..0bb83fe 100644 --- a/CommonLibs/trx_vty.c +++ b/CommonLibs/trx_vty.c @@ -68,8 +68,8 @@ }; static const struct value_string filler_docs[] = { - { FILLER_ZERO, "Send an empty burst (default)" }, { FILLER_DUMMY, "Send a Dummy Burst on C0 (TRX0) and empty burst on other channels" }, + { FILLER_ZERO, "Send an empty burst (default)" }, { FILLER_NORM_RAND, "Send a GMSK modulated Normal Burst with random bits (spectrum mask testing)" }, { FILLER_EDGE_RAND, "Send an 8-PSK modulated Normal Burst with random bits (spectrum mask testing)" }, { FILLER_ACCESS_RAND, "Send an Access Burst with random bits (Rx/Tx alignment testing)" }, -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ieb3bbc4fb30f303c47555ca77d03a9e965bc72b5 Gerrit-Change-Number: 21604 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 Dec 10 15:26:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:26:30 +0000 Subject: Change in osmo-trx[master]: ipc-driver-test: Allow setting dir prefix for UD socket In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21594 ) Change subject: ipc-driver-test: Allow setting dir prefix for UD socket ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc Gerrit-Change-Number: 21594 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 15:26: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 Dec 10 15:26:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:26:32 +0000 Subject: Change in osmo-trx[master]: ipc-driver-test: Allow setting dir prefix for UD socket In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21594 ) Change subject: ipc-driver-test: Allow setting dir prefix for UD socket ...................................................................... ipc-driver-test: Allow setting dir prefix for UD socket Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc --- M Transceiver52M/device/ipc/ipc-driver-test.c M Transceiver52M/device/ipc/shm.h 2 files changed, 24 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/ipc/ipc-driver-test.c b/Transceiver52M/device/ipc/ipc-driver-test.c index da53463..d8284c7 100644 --- a/Transceiver52M/device/ipc/ipc-driver-test.c +++ b/Transceiver52M/device/ipc/ipc-driver-test.c @@ -49,6 +49,7 @@ #include "ipc_sock.h" #define DEFAULT_SHM_NAME "/osmo-trx-ipc-driver-shm2" +#define IPC_SOCK_PATH_PREFIX "/tmp" static void *tall_ctx; struct ipc_sock_state *global_ipc_sock_state; @@ -63,6 +64,11 @@ static struct ipc_shm_region *decoded_region; +static struct { + int msocknum; + char *ud_prefix_dir; +} cmdline_cfg; + static const struct log_info_cat default_categories[] = { [DMAIN] = { .name = "DMAIN", @@ -185,8 +191,8 @@ chan_info = ipc_prim->u.open_cnf.chan_info; for (i = 0; i < num_chans; i++) { - snprintf(chan_info->chan_ipc_sk_path, sizeof(chan_info->chan_ipc_sk_path), "%s_%d", - IPC_SOCK_PATH_PREFIX, i); + snprintf(chan_info->chan_ipc_sk_path, sizeof(chan_info->chan_ipc_sk_path),"%s/ipc_sock%d_%d", + cmdline_cfg.ud_prefix_dir, cmdline_cfg.msocknum, i); /* FIXME: dynamc chan limit, currently 8 */ if (i < 8) ipc_sock_init(chan_info->chan_ipc_sk_path, &global_ctrl_socks[i], ipc_chan_sock_accept, i); @@ -413,20 +419,20 @@ { printf("ipc-driver-test Usage:\n" " -h --help This message\n" + " -u --unix-sk-dir DIR Existing directory where to create the Master socket\n" " -n --sock-num NR Master socket suffix number NR\n"); } -static int msocknum = 0; - static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; const struct option long_options[] = { { "help", 0, 0, 'h' }, + { "unix-sk-dir", 1, 0, 'u' }, { "sock-num", 1, 0, 'n' }, { 0, 0, 0, 0 } }; - c = getopt_long(argc, argv, "hn:", long_options, &option_index); + c = getopt_long(argc, argv, "hu:n:", long_options, &option_index); if (c == -1) break; @@ -435,9 +441,13 @@ print_help(); exit(0); break; - case 'n': - msocknum = atoi(optarg); + case 'u': + cmdline_cfg.ud_prefix_dir = talloc_strdup(tall_ctx, optarg); break; + case 'n': + cmdline_cfg.msocknum = atoi(optarg); + break; + default: exit(2); break; @@ -452,14 +462,19 @@ int main(int argc, char **argv) { - char ipc_msock_path[sizeof(IPC_SOCK_PATH_PREFIX) + 3]; + char ipc_msock_path[128]; tall_ctx = talloc_named_const(NULL, 0, "OsmoTRX"); msgb_talloc_ctx_init(tall_ctx, 0); osmo_init_logging2(tall_ctx, &log_infox); log_enable_multithread(); handle_options(argc, argv); - snprintf(ipc_msock_path, sizeof(ipc_msock_path), "%s%d", IPC_SOCK_PATH_PREFIX, msocknum); + + if (!cmdline_cfg.ud_prefix_dir) + cmdline_cfg.ud_prefix_dir = talloc_strdup(tall_ctx, IPC_SOCK_PATH_PREFIX); + + + snprintf(ipc_msock_path, sizeof(ipc_msock_path), "%s/ipc_sock%d", cmdline_cfg.ud_prefix_dir, cmdline_cfg.msocknum); LOGP(DMAIN, LOGL_INFO, "Starting %s\n", argv[0]); ipc_sock_init(ipc_msock_path, &global_ipc_sock_state, ipc_sock_accept, 0); diff --git a/Transceiver52M/device/ipc/shm.h b/Transceiver52M/device/ipc/shm.h index fcddd54..46c3add 100644 --- a/Transceiver52M/device/ipc/shm.h +++ b/Transceiver52M/device/ipc/shm.h @@ -79,8 +79,6 @@ ////////////////// // Master socket ////////////////// - -#define IPC_SOCK_PATH_PREFIX "/tmp/ipc_sock" #define IPC_SOCK_API_VERSION 1 /* msg_type */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I35282b38a1d560fb3440fe0aa9a27808d9d116cc Gerrit-Change-Number: 21594 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen 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 Dec 10 15:27:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:27:16 +0000 Subject: Change in osmo-bsc[master]: hodec 2: prefer moving TCH/H from half-used dyn TS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21236 ) Change subject: hodec 2: prefer moving TCH/H from half-used dyn TS ...................................................................... hodec 2: prefer moving TCH/H from half-used dyn TS Change-Id: I427dc9faa3790c24119127ae227d8cc802dd50e6 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/handover_test.c 2 files changed, 23 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/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 4e54368..9fab1fc 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -1368,6 +1368,17 @@ || 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; +} + /* 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. */ @@ -1384,10 +1395,17 @@ goto return_other; /* The two lchans have identical ratings, prefer picking a dynamic timeslot: free PDCH and allow more timeslot - * type flexibility for further congestion resolution. If both are dynamic, it does not matter which one is - * picked. */ - if (lchan_is_on_dynamic_ts(other_cand->lchan)) + * type flexibility for further congestion resolution. */ + if (lchan_is_on_dynamic_ts(other_cand->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; + /* 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; + } /* keep the same candidate. */ return; diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 62c01f0..28d87db 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -1765,10 +1765,9 @@ "congestion-check", "expect-chan", "0", "1", "ack-chan", - /* Not so good: should move the half-used TCH/H instead of "halving" another dyn TS */ - "expect-ho", "0", "4", + "expect-ho", "0", "3", "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/HH", "TCH/H-", "TCH/H-", "PDCH", "-", "-", + "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/HH", "PDCH", "TCH/HH", "PDCH", "-", "-", NULL }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21236 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I427dc9faa3790c24119127ae227d8cc802dd50e6 Gerrit-Change-Number: 21236 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 Thu Dec 10 15:27:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:27:27 +0000 Subject: Change in osmo-bts[master]: vty: fix dump_lchan_trx_ts(): dump dedicated channels only In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21450 ) Change subject: vty: fix dump_lchan_trx_ts(): dump dedicated channels only ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 Gerrit-Change-Number: 21450 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 15: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 Dec 10 15:27:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:27:37 +0000 Subject: Change in osmo-bts[master]: vty: fix dump_lchan_trx_ts(): dump dedicated channels only In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21450 ) Change subject: vty: fix dump_lchan_trx_ts(): dump dedicated channels only ...................................................................... vty: fix dump_lchan_trx_ts(): dump dedicated channels only It does not make sense to dump CCCH/CBCH as dedicated channels: OsmoBTS# show lchan BTS 0, TRX 0, Timeslot 0, Lchan 4: Type CCCH State: ACTIVE BS (Downlink) Power Control (autonomous): Channel reduction: 0 dB (max 0 dB) TRX reduction: 0 dB Actual / Nominal power: 13 dBm / 13 dBm MS (Uplink) Power Control (autonomous): Current power level: 0, -39 dBm (max 0, -39 dBm) Channel Mode / Codec: SIGNALLING LAPDm SAPIs: DCCH --, SACCH -- Valid System Information: 0x00000060 MS Timing Offset: 0, propagation delay: 0 symbols Radio Link Failure Counter 'S': 0 so let's only dump SDCCH, TCH/F, and TCH/H. Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 --- M src/common/vty.c 1 file changed, 9 insertions(+), 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 ada871a..7284bfa 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1449,7 +1449,15 @@ const struct gsm_lchan *lchan = &ts->lchan[lchan_nr]; if (lchan->state == LCHAN_S_NONE) continue; - dump_cb(vty, lchan); + switch (lchan->type) { + case GSM_LCHAN_SDCCH: + case GSM_LCHAN_TCH_F: + case GSM_LCHAN_TCH_H: + dump_cb(vty, lchan); + break; + default: + continue; + } } return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7880de56a93cc9fa4ca576b094cef35ee269822 Gerrit-Change-Number: 21450 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 Thu Dec 10 15:28:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:28:03 +0000 Subject: Change in osmo-bsc[master]: gsm_lchan_name: assert on NULL lchan In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21637 ) Change subject: gsm_lchan_name: assert on NULL lchan ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If4d12cb1d95ee2a89244bb8f27df839871667387 Gerrit-Change-Number: 21637 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 15:28: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 Dec 10 15:28:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 15:28:05 +0000 Subject: Change in osmo-bsc[master]: gsm_lchan_name: assert on NULL lchan In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21637 ) Change subject: gsm_lchan_name: assert on NULL lchan ...................................................................... gsm_lchan_name: assert on NULL lchan Steve Langasek submitted some patches against downstream osmo-bsc 1.3.0 because some possible null derefences were detected by the compiler on Ubuntu s390x. Code has eveolved since then and patch doesn't apply directly anymore, since related code changed (we now use osmo_count in bsc_subscr_get). The compiled allegedly claimed some null dereference in gsm_lchan_name. In general code using that function seems to be doing checks for existing lchan before calling it, or assuming the lchan pointer is not null, so I couldn't find any major issue. However, let's add a OSMO_ASSERT to make sure we can easily identify the issue if an issue ever happens there, since the gsm_lchan_name should clearly only be called on non null pointers. Change-Id: If4d12cb1d95ee2a89244bb8f27df839871667387 --- M include/osmocom/bsc/gsm_data.h 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 6904266..584c0e6 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -937,6 +937,7 @@ static inline char *gsm_lchan_name(const struct gsm_lchan *lchan) { + OSMO_ASSERT(lchan); return lchan->name; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If4d12cb1d95ee2a89244bb8f27df839871667387 Gerrit-Change-Number: 21637 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 Thu Dec 10 15:30:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 15:30:25 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#6). ( https://gerrit.osmocom.org/c/docker-playground/+/21263 ) Change subject: Introduce osmo-ran docker image set up ...................................................................... Introduce osmo-ran docker image set up See osmo-ran/README.md in this commit for a description. Related: SYS#4889 Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 --- M jenkins-common.sh M make/Makefile A osmo-ran/Dockerfile A osmo-ran/Makefile A osmo-ran/README.md A osmo-ran/Release.key A osmo-ran/jenkins.sh A osmo-ran/osmocom/osmo-bsc.cfg A osmo-ran/osmocom/osmo-bts-trx.cfg A osmo-ran/osmocom/osmo-mgw.cfg A osmo-ran/osmocom/osmo-pcu.cfg A osmo-ran/osmocom/osmo-trx-ipc.cfg A osmo-ran/osmocom/osmo-trx-uhd.cfg A osmo-ran/split/jenkins-split.sh A osmo-ran/split/ran-bsc_mgw/Dockerfile A osmo-ran/split/ran-bsc_mgw/Makefile A osmo-ran/split/ran-bsc_mgw/Release.key A osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg A osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg A osmo-ran/split/ran-bts_pcu/Dockerfile A osmo-ran/split/ran-bts_pcu/Makefile A osmo-ran/split/ran-bts_pcu/Release.key A osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg A osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg A osmo-ran/split/ran-trx-ipc/Dockerfile A osmo-ran/split/ran-trx-ipc/Makefile A osmo-ran/split/ran-trx-ipc/Release.key A osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg A osmo-ran/split/ran-trx-uhd/Dockerfile A osmo-ran/split/ran-trx-uhd/Makefile A osmo-ran/split/ran-trx-uhd/Release.key A osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg A systemd/Dockerfile A systemd/Makefile 34 files changed, 1,278 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/63/21263/6 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 15:53:46 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 10 Dec 2020 15:53:46 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tchh: fix frame number and fill FACCH gap In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21329 ) Change subject: sched_lchan_tchh: fix frame number and fill FACCH gap ...................................................................... Patch Set 2: > It's 9 days later now without any progress. Sorry, I was/am busy with other tasks. Is it a high-priority one? I see 'Normal' in Redmine. > Can you two please coordinate to exchange your ideas on that? Don't get me wrong (it might be a cultural barrier), but I would expect the author of this change to schedule a call or contact me somehow, not vice versa. I am generally interested to get the measurement logic fixed, and I offered my help, but I have other tasks to work on, and it's impossible to keep everything in mind. Since I didn't get any response back so far, I assume that either the author has more important tasks to work on, or no further clarification/discussion is needed. Feel free to ping me in the IRC/Jabber, so we can discuss possible solutions. Alternatively, I can take care of this task once I am finished the BS Power Control (soon). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1ad9fa3815feb2b4da608ab7df716a87ba1f2f91 Gerrit-Change-Number: 21329 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 15:53: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 Thu Dec 10 16:11:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 16:11:26 +0000 Subject: =?UTF-8?Q?Change_in_openbsc=5Bmaster=5D=3A_Bump_version=3A_1=2E3=2E3=2E4-e5e69_=E2=86=92_1=2E4=2E0?= References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/openbsc/+/21658 ) Change subject: Bump version: 1.3.3.4-e5e69 ? 1.4.0 ...................................................................... Bump version: 1.3.3.4-e5e69 ? 1.4.0 Change-Id: I80698b962666b94310a84306149d67ae09153c8e --- M debian/changelog 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/58/21658/1 diff --git a/debian/changelog b/debian/changelog index 170c84d..6d6405b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +openbsc (1.4.0) unstable; urgency=medium + + [ Harald Welte ] + * Migrate from BSC_FD_* to OSMO_FD_* + * Add very clear obsolescence / unmaintained warnings + + [ Pau Espin Pedrol ] + * bsc-nat: generate coredump and exit upon SIGABRT received + * osmo-nitb: generate coredump and exit upon SIGABRT received + + -- Pau Espin Pedrol Thu, 10 Dec 2020 17:07:14 +0100 + openbsc (1.3.3) unstable; urgency=medium [ Keith ] -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I80698b962666b94310a84306149d67ae09153c8e Gerrit-Change-Number: 21658 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 Dec 10 16:13:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 16:13:27 +0000 Subject: Change in osmo-bsc[master]: handover_test: log sending ho complete References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21659 ) Change subject: handover_test: log sending ho complete ...................................................................... handover_test: log sending ho complete Change-Id: I540e880f9aafb92be03c35086340de1968b26836 --- M tests/handover/handover_test.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/59/21659/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 08bc26d..4ee02c2 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -618,6 +618,11 @@ send_est_ind(lchan); osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RTP_READY, 0); + if (success) + fprintf(stderr, "- Send HO COMPLETE for %s\n", gsm_lchan_name(lchan)); + else + fprintf(stderr, "- Send HO FAIL to %s\n", gsm_lchan_name(lchan)); + rh = (struct abis_rsl_rll_hdr *) msgb_put(msg, sizeof(*rh)); rh->c.msg_discr = ABIS_RSL_MDISC_RLL; rh->c.msg_type = RSL_MT_DATA_IND; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I540e880f9aafb92be03c35086340de1968b26836 Gerrit-Change-Number: 21659 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 Dec 10 16:13:28 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 16:13:28 +0000 Subject: Change in osmo-bsc[master]: handover_test: send ho detection References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21660 ) Change subject: handover_test: send ho detection ...................................................................... handover_test: send ho detection So far we skipped the HO Detection message, because the FSM also accepts a handover when the Handover Complete arrives without a Detection. Rather model the real behavior. Also send the EST IND message and RTP-ready events from the ho detection. Change-Id: Ib676e74f23ef9cd1b55262117822b0e110013bdc --- M tests/handover/handover_test.c 1 file changed, 44 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/60/21660/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 4ee02c2..41211ac 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -605,7 +605,32 @@ abis_rsl_rcvmsg(msg); } -/* send handover complete */ +static void send_ho_detect(struct gsm_lchan *lchan) +{ + struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL"); + struct abis_rsl_rll_hdr *rh; + uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + + fprintf(stderr, "- Send HO DETECT for %s\n", gsm_lchan_name(lchan)); + + rh = (struct abis_rsl_rll_hdr *) msgb_put(msg, sizeof(*rh)); + rh->c.msg_discr = ABIS_RSL_MDISC_DED_CHAN; + rh->c.msg_type = RSL_MT_HANDO_DET; + rh->ie_chan = RSL_IE_CHAN_NR; + rh->chan_nr = chan_nr; + rh->ie_link_id = RSL_IE_LINK_IDENT; + rh->link_id = 0x00; + + msg->dst = lchan->ts->trx->bts->c0->rsl_link; + msg->l2h = (unsigned char *)rh; + + abis_rsl_rcvmsg(msg); + + send_est_ind(lchan); + osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RTP_READY, 0); + +} + static void send_ho_complete(struct gsm_lchan *lchan, bool success) { struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL"); @@ -615,9 +640,6 @@ struct gsm48_hdr *gh; struct gsm48_ho_cpl *hc; - send_est_ind(lchan); - osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RTP_READY, 0); - if (success) fprintf(stderr, "- Send HO COMPLETE for %s\n", gsm_lchan_name(lchan)); else @@ -975,6 +997,22 @@ return CMD_SUCCESS; } +DEFUN(ho_detection, ho_detection_cmd, + "ho-detect", + "Send Handover Detection to the most recent HO target lchan\n") +{ + if (!got_chan_req) { + 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(chan_req_lchan); + return CMD_SUCCESS; +} + DEFUN(ho_complete, ho_complete_cmd, "ho-complete", "Send Handover Complete for the most recent HO target lchan\n") @@ -1005,6 +1043,7 @@ _expect_chan_activ(to); _ack_chan_activ(to); _expect_ho_req(from); + send_ho_detect(to); send_ho_complete(to, true); lchan_release_ack(from); return CMD_SUCCESS; @@ -1135,6 +1174,7 @@ 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); install_element(CONFIG_NODE, &expect_ho_cmd); install_element(CONFIG_NODE, &ho_failed_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib676e74f23ef9cd1b55262117822b0e110013bdc Gerrit-Change-Number: 21660 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 Dec 10 16:13:29 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 16:13:29 +0000 Subject: Change in osmo-bsc[master]: handover_test: adjust logging for reproducability References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21661 ) Change subject: handover_test: adjust logging for reproducability ...................................................................... handover_test: adjust logging for reproducability Do not show source file and line numbers in the log, so that the log output remains unchanged for unrelated changes. Also show the log level. Change-Id: I8ebcaf16cd14881a3a41616dcff175e173db9ae8 --- M tests/handover/handover_test.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/21661/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 41211ac..da620a5 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -1295,9 +1295,11 @@ osmo_init_logging2(ctx, &log_info); + log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_NONE); log_set_print_category(osmo_stderr_target, 1); log_set_print_category_hex(osmo_stderr_target, 0); - log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); + log_set_print_level(osmo_stderr_target, 1); + log_set_print_timestamp(osmo_stderr_target, 0); osmo_fsm_log_addr(false); bsc_network_alloc(); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8ebcaf16cd14881a3a41616dcff175e173db9ae8 Gerrit-Change-Number: 21661 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 Dec 10 16:13:29 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 16:13:29 +0000 Subject: Change in osmo-bsc[master]: handover_test: set a fake osmo_mgcpc_ep_ci pointer References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21662 ) Change subject: handover_test: set a fake osmo_mgcpc_ep_ci pointer ...................................................................... handover_test: set a fake osmo_mgcpc_ep_ci pointer The handover_fsm activates voice on a target lchan only when the source lchan has an osmo_mgcpc_ep_ci pointer for the BTS side. Since that struct is opaque, set a fake pointer and override the osmo_mgcpc_ep_ci_name() function so that the pointer is never dereferenced. This more accurately models the RTP stream setup events during handover. Change-Id: Ibc22001bf9e9874dd3f44f0acac8b6a4c1069aa7 --- M tests/handover/handover_test.c 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/62/21662/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index da620a5..8d93a6f 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -381,6 +381,8 @@ lchan->fi->state = LCHAN_ST_ESTABLISHED; lchan->ts->fi->state = TS_ST_IN_USE; lchan->type = full_rate ? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H; + /* Fake osmo_mgcpc_ep_ci to indicate that the lchan is used for voice */ + lchan->mgw_endpoint_ci_bts = (void*)1; if (lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) lchan->ts->pchan_is = full_rate ? GSM_PCHAN_TCH_F : GSM_PCHAN_TCH_H; @@ -1393,3 +1395,11 @@ void osmo_bsc_sigtran_reset(void) {} void bssmap_reset_alloc(void) {} void bssmap_reset_is_conn_ready(void) {} +const char *osmo_mgcpc_ep_name(const struct osmo_mgcpc_ep *ep) +{ + return "fake-ep"; +} +const char *osmo_mgcpc_ep_ci_name(const struct osmo_mgcpc_ep_ci *ci) +{ + return "fake-ci"; +} -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibc22001bf9e9874dd3f44f0acac8b6a4c1069aa7 Gerrit-Change-Number: 21662 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 Dec 10 16:13:37 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 16:13:37 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21640 ) Change subject: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/21640/2/ttcn3-bts-test/jenkins.sh File ttcn3-bts-test/jenkins.sh: https://gerrit.osmocom.org/c/docker-playground/+/21640/2/ttcn3-bts-test/jenkins.sh at 37 PS2, Line 37: -e "SLEEP_BEFORE_RESPAWN=1" \ Is this a flag for sleeping or the actual time we should sleep? If the latter then the commit message is off-by-one. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Thu, 10 Dec 2020 16:13: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 Thu Dec 10 16:14:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 16:14:11 +0000 Subject: Change in osmo-bsc[master]: handover_test: log sending ho complete In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21659 ) Change subject: handover_test: log sending ho complete ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I540e880f9aafb92be03c35086340de1968b26836 Gerrit-Change-Number: 21659 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 10 Dec 2020 16:14: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 Dec 10 16:15:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 16:15:52 +0000 Subject: Change in osmo-bsc[master]: handover_test: send ho detection In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21660 ) Change subject: handover_test: send ho detection ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib676e74f23ef9cd1b55262117822b0e110013bdc Gerrit-Change-Number: 21660 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 10 Dec 2020 16:15: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 Dec 10 16:21:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 16:21:00 +0000 Subject: Change in osmo-bsc[master]: handover_test: set a fake osmo_mgcpc_ep_ci pointer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21662 ) Change subject: handover_test: set a fake osmo_mgcpc_ep_ci pointer ...................................................................... Patch Set 1: Code-Review+1 A bit hacky, maybe better adding an static struct and pass a pointer to it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibc22001bf9e9874dd3f44f0acac8b6a4c1069aa7 Gerrit-Change-Number: 21662 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 10 Dec 2020 16: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 Thu Dec 10 16:22:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 16:22:45 +0000 Subject: Change in osmo-bsc[master]: handover_test: adjust logging for reproducability In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21661 ) Change subject: handover_test: adjust logging for reproducability ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21661/1/tests/handover/handover_test.c File tests/handover/handover_test.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21661/1/tests/handover/handover_test.c at 1302 PS1, Line 1302: log_set_print_timestamp(osmo_stderr_target, 0); while at it: I don't see color being disabled (is it by default?). It's worth disabling it since color may change in the future (and we already had issues in the past with unit tests using colors and color otput changing due to a bug being fixed). -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8ebcaf16cd14881a3a41616dcff175e173db9ae8 Gerrit-Change-Number: 21661 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 16:22: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 Dec 10 16:26:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 16:26:13 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21640 ) Change subject: ttcn3-bts-test: fix: sleep 2 seconds before respawning the IUT ...................................................................... Patch Set 2: I'm still not understanding why you change the sleep time for virtual and why you insist on removing the parameter. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Thu, 10 Dec 2020 16:26: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 Thu Dec 10 16:44:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 16:44:43 +0000 Subject: =?UTF-8?Q?Change_in_openbsc=5Bmaster=5D=3A_Bump_version=3A_1=2E3=2E3=2E4-e5e69_=E2=86=92_1=2E4=2E0?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/openbsc/+/21658 ) Change subject: Bump version: 1.3.3.4-e5e69 ? 1.4.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I80698b962666b94310a84306149d67ae09153c8e Gerrit-Change-Number: 21658 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 16:44: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 Dec 10 16:44:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 10 Dec 2020 16:44:46 +0000 Subject: =?UTF-8?Q?Change_in_openbsc=5Bmaster=5D=3A_Bump_version=3A_1=2E3=2E3=2E4-e5e69_=E2=86=92_1=2E4=2E0?= In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/openbsc/+/21658 ) Change subject: Bump version: 1.3.3.4-e5e69 ? 1.4.0 ...................................................................... Bump version: 1.3.3.4-e5e69 ? 1.4.0 Change-Id: I80698b962666b94310a84306149d67ae09153c8e --- M debian/changelog 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index 170c84d..6d6405b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +openbsc (1.4.0) unstable; urgency=medium + + [ Harald Welte ] + * Migrate from BSC_FD_* to OSMO_FD_* + * Add very clear obsolescence / unmaintained warnings + + [ Pau Espin Pedrol ] + * bsc-nat: generate coredump and exit upon SIGABRT received + * osmo-nitb: generate coredump and exit upon SIGABRT received + + -- Pau Espin Pedrol Thu, 10 Dec 2020 17:07:14 +0100 + openbsc (1.3.3) unstable; urgency=medium [ Keith ] -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/21658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I80698b962666b94310a84306149d67ae09153c8e Gerrit-Change-Number: 21658 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 Dec 10 17:13:06 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 17:13:06 +0000 Subject: Change in osmo-sgsn[master]: gbproxy major rewrite for SGSN pool support In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 ) Change subject: gbproxy major rewrite for SGSN pool support ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21612/4/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21612/4/src/gbproxy/gb_proxy_vty.c at 223 PS4, Line 223: vty_out(vty, "NSE not found%s", VTY_NEWLINE); This breaks jenkins/VTY test expectations -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 Gerrit-Change-Number: 21612 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-Comment-Date: Thu, 10 Dec 2020 17:13: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 Thu Dec 10 17:13:13 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 17:13:13 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Don't create an extra msgb copy for SGSN DL SIG In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 ) Change subject: gbproxy: Don't create an extra msgb copy for SGSN DL SIG ...................................................................... Patch Set 4: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21615/4/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21615/4/src/gbproxy/gb_proxy.c at 929 PS4, Line 929: msgb_free(msg); We should not free the msg here at all, this is done in gprs_ns_prim_status_cb() https://gerrit.osmocom.org/c/osmo-sgsn/+/21615/4/src/gbproxy/gb_proxy.c at 1030 PS4, Line 1030: msgb_free(msg); Same (and it's used in the line just below) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 Gerrit-Change-Number: 21615 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-Comment-Date: Thu, 10 Dec 2020 17:13: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 Thu Dec 10 17:13:28 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 17:13:28 +0000 Subject: Change in osmo-sgsn[master]: gbproxy major rewrite for SGSN pool support In-Reply-To: References: Message-ID: daniel has uploaded a new patch set (#5) to the change originally created by laforge. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 ) Change subject: gbproxy major rewrite for SGSN pool support ...................................................................... gbproxy major rewrite for SGSN pool support Rewrite of a large part of osmo-gbproxy in order to prepare for SGSN pool support. The amount of changes are of such fundamental nature that it doesn't make sense to try to split this into hundreds of individual changesets. Related: OS#4472 Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/vty_test_runner.py 7 files changed, 868 insertions(+), 480 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/12/21612/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 Gerrit-Change-Number: 21612 Gerrit-PatchSet: 5 Gerrit-Owner: laforge 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 Thu Dec 10 17:13:28 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 17:13:28 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Don't create an extra msgb copy for SGSN DL SIG In-Reply-To: References: Message-ID: daniel has uploaded a new patch set (#5) to the change originally created by laforge. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 ) Change subject: gbproxy: Don't create an extra msgb copy for SGSN DL SIG ...................................................................... gbproxy: Don't create an extra msgb copy for SGSN DL SIG That copy may have made sense while we were doing patching/buffering, but we're not doing any of that anymore. Related: OS#4472 Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 --- M src/gbproxy/gb_proxy.c 1 file changed, 9 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/15/21615/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 Gerrit-Change-Number: 21615 Gerrit-PatchSet: 5 Gerrit-Owner: laforge 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 Thu Dec 10 17:13:29 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 17:13:29 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix bvci check in gbprox_rx_ptp_from_* References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21663 ) Change subject: gbproxy: Fix bvci check in gbprox_rx_ptp_from_* ...................................................................... gbproxy: Fix bvci check in gbprox_rx_ptp_from_* The check for bvci in _rx_ptp_from_* was always false. Change-Id: I16a0284ba3201c146c307db6997a416589d7e693 Related: OS#4472 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/63/21663/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 06023c4..ed4dbeb 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -250,7 +250,7 @@ LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); - if (ns_bvci == 0 && ns_bvci == 1) { + if (ns_bvci == 0 || ns_bvci == 1) { LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not PTP\n", log_pfx, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } @@ -360,7 +360,7 @@ LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); - if (ns_bvci == 0 && ns_bvci == 1) { + if (ns_bvci == 0 || ns_bvci == 1) { LOGP(DGPRS, LOGL_NOTICE, "%s BVCI is not PTP\n", log_pfx); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I16a0284ba3201c146c307db6997a416589d7e693 Gerrit-Change-Number: 21663 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 Dec 10 17:18:14 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 17:18:14 +0000 Subject: Change in osmo-sgsn[master]: gbproxy major rewrite for SGSN pool support In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 ) Change subject: gbproxy major rewrite for SGSN pool support ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 Gerrit-Change-Number: 21612 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 10 Dec 2020 17: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 Thu Dec 10 17:19:18 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 17:19:18 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21613 ) Change subject: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I13f3c9e69562a56ad7d3742fdeb2ba48f134fdaa Gerrit-Change-Number: 21613 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 10 Dec 2020 17:19: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 Dec 10 17:19:52 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 17:19:52 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Introduce new DOBJ log category; log object allocation/release In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 ) Change subject: gbproxy: Introduce new DOBJ log category; log object allocation/release ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 Gerrit-Change-Number: 21614 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 10 Dec 2020 17:19: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 Dec 10 17:21:04 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 10 Dec 2020 17:21:04 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Don't create an extra msgb copy for SGSN DL SIG In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 ) Change subject: gbproxy: Don't create an extra msgb copy for SGSN DL SIG ...................................................................... Patch Set 5: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21615/4/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21615/4/src/gbproxy/gb_proxy.c at 929 PS4, Line 929: msgb_free(msg); > We should not free the msg here at all, this is done in gprs_ns_prim_status_cb() Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21615/4/src/gbproxy/gb_proxy.c at 1030 PS4, Line 1030: msgb_free(msg); > Same (and it's used in the line just below) Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 Gerrit-Change-Number: 21615 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 10 Dec 2020 17:21:04 +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 Thu Dec 10 20:29:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 20:29:31 +0000 Subject: Change in titan.TestPorts.AF_PACKET[master]: guard against race between socket(AF_PACKET) and bind() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21664 ) Change subject: guard against race between socket(AF_PACKET) and bind() ...................................................................... guard against race between socket(AF_PACKET) and bind() An AF_PACKET socket will immediately receive packets of _all_ interfaces until it is bound to one specific interface. This introduces a race condition between the socket() and the bind() syscall. Let's use the ifindex passed for each packet in recvmsg() to drop any packets received for other interfaces. Change-Id: Icd0b23eb1d6f75ca3a05e5dd1a569fa389903fdf --- M src/AF_PACKET_PT.cc 1 file changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/titan.TestPorts.AF_PACKET refs/changes/64/21664/1 diff --git a/src/AF_PACKET_PT.cc b/src/AF_PACKET_PT.cc index 3f46216..a1ccfe8 100644 --- a/src/AF_PACKET_PT.cc +++ b/src/AF_PACKET_PT.cc @@ -118,14 +118,23 @@ return; if (is_readable) { + struct sockaddr_ll sll; + socklen_t sll_len = sizeof(sll); int rc; - rc = read(fd, mRxBuf, sizeof(mRxBuf)); + rc = recvfrom(fd, mRxBuf, sizeof(mRxBuf), 0, (struct sockaddr *)&sll, &sll_len); if (rc < 0) TTCN_error("Error reading from socket: %s", strerror(errno)); if (rc == 0) TTCN_error("Dead socket: %s", strerror(errno)); + /* ignore any packets that we might have received for a different inerface, between + * the socket() and the bind() call */ + if (sll.sll_ifindex != mIfindex) + return; + + /* TODO: report the other meta-data fields like sll_pkttype via the port */ + incoming_message(AF__PACKET__Unitdata(OCTETSTRING(rc, mRxBuf))); } } -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21664 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: Icd0b23eb1d6f75ca3a05e5dd1a569fa389903fdf Gerrit-Change-Number: 21664 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 Dec 10 20:55:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 20:55:17 +0000 Subject: Change in titan.TestPorts.AF_PACKET[master]: guard against race between socket(AF_PACKET) and bind() In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21664 ) Change subject: guard against race between socket(AF_PACKET) and bind() ...................................................................... guard against race between socket(AF_PACKET) and bind() An AF_PACKET socket will immediately receive packets of _all_ interfaces until it is bound to one specific interface. This introduces a race condition between the socket() and the bind() syscall. Let's use the ifindex passed for each packet in recvmsg() to drop any packets received for other interfaces. Change-Id: Icd0b23eb1d6f75ca3a05e5dd1a569fa389903fdf --- M src/AF_PACKET_PT.cc 1 file changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/titan.TestPorts.AF_PACKET refs/changes/64/21664/2 -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21664 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: Icd0b23eb1d6f75ca3a05e5dd1a569fa389903fdf Gerrit-Change-Number: 21664 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 Thu Dec 10 21:01:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:01:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr.c: Skip extraneous FIONBIO References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21665 ) Change subject: gprs_ns2_fr.c: Skip extraneous FIONBIO ...................................................................... gprs_ns2_fr.c: Skip extraneous FIONBIO The socket is marked non-blocking inside osmo_fd_register(), there is no need to do it twice. Change-Id: I2068ce8280357b14970d01e5c86de5c59c933650 --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/65/21665/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 8befe1c..c774e11 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -303,7 +303,7 @@ { struct sockaddr_ll addr; int ifindex; - int fd, rc, on = 1; + int fd, rc; ifindex = devname2ifindex(ifname); if (ifindex < 0) { @@ -322,14 +322,6 @@ return fd; } - if (ioctl(fd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "cannot set this socket unblocking: %s\n", - strerror(errno)); - close(fd); - return -EINVAL; - } - rc = bind(fd, (struct sockaddr *)&addr, sizeof(addr)); if (rc < 0) { LOGP(DLNS, LOGL_ERROR, "Can not bind for interface %s\n", ifname); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2068ce8280357b14970d01e5c86de5c59c933650 Gerrit-Change-Number: 21665 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 Dec 10 21:01:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:01:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: guard against race between socket(AF_PACKET) and bind() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21666 ) Change subject: gprs_ns2_fr: guard against race between socket(AF_PACKET) and bind() ...................................................................... gprs_ns2_fr: guard against race between socket(AF_PACKET) and bind() An AF_PACKET socket will immediately receive packets of _all_ interfaces until it is bound to one specific interface. This introduces a race condition between the socket() and the bind() syscall. Let's use the ifindex passed for each packet in recvmsg() to drop any packets received for other interfaces. Change-Id: I8f708ba4f9b7f76525acce17b24a8f7b125a1c1c Related: SYS#5245 --- M src/gb/gprs_ns2_fr.c 1 file changed, 23 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/66/21666/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index c774e11..0e4e2d3 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -86,6 +86,7 @@ struct osmo_fd fd; char netif[IF_NAMESIZE]; struct osmo_fr_link *link; + int ifindex; bool if_running; }; @@ -196,12 +197,14 @@ 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 sockaddr_ll sll; + socklen_t sll_len = sizeof(sll); int rc = 0; if (!msg) return -ENOMEM; - rc = read(bfd->fd, msg->data, NS_ALLOC_SIZE); + 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)); @@ -210,6 +213,11 @@ goto out_err; } + /* ignore any packets that we might have received for a different interface, between + * the socket() and the bind() call */ + if (sll.sll_ifindex != priv->ifindex) + goto out_err; + msgb_put(msg, rc); msg->dst = priv->link; return osmo_fr_rx(msg); @@ -299,18 +307,11 @@ return ifr.ifr_ifindex; } -static int open_socket(const char *ifname) +static int open_socket(int ifindex) { struct sockaddr_ll addr; - int ifindex; int fd, rc; - ifindex = devname2ifindex(ifname); - if (ifindex < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not get interface index for interface %s\n", ifname); - return ifindex; - } - memset(&addr, 0, sizeof(addr)); addr.sll_family = AF_PACKET; addr.sll_protocol = htons(ETH_P_ALL); @@ -318,13 +319,16 @@ fd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); if (fd < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not get socket for interface %s. Are you root or have CAP_RAW_SOCKET?\n", ifname); + LOGP(DLNS, LOGL_ERROR, "Can not create AF_PACKET socket. Are you root or have CAP_RAW_SOCKET?\n"); return fd; } + /* there's a race condition between the above syscall and the bind() call below, + * causing other packets to be received in between */ + rc = bind(fd, (struct sockaddr *)&addr, sizeof(addr)); if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not bind for interface %s\n", ifname); + LOGP(DLNS, LOGL_ERROR, "Can not bind AF_PACKET socket to ifindex %d\n", ifindex); close(fd); return rc; } @@ -496,7 +500,14 @@ fr_link->tx_cb = fr_tx_cb; fr_link->tx_cb_data = bind; priv->link = fr_link; - priv->fd.fd = rc = open_socket(netif); + + priv->ifindex = devname2ifindex(netif); + if (priv->ifindex < 0) { + LOGP(DLNS, LOGL_ERROR, "Can not get interface index for interface %s\n", netif); + goto err_fr; + } + + priv->fd.fd = rc = open_socket(priv->ifindex); if (rc < 0) goto err_fr; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f708ba4f9b7f76525acce17b24a8f7b125a1c1c Gerrit-Change-Number: 21666 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 Dec 10 21:08:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:08:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: use ETH_P_HDLC instead of ETH_P_ALL References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21667 ) Change subject: gprs_ns2_fr: use ETH_P_HDLC instead of ETH_P_ALL ...................................................................... gprs_ns2_fr: use ETH_P_HDLC instead of ETH_P_ALL When opening the socket, use ETH_P_HLDC to restrict the socket to packet received on HLDC interfaces. This avoids packets from random other (ethernet, ...) interfaces to appear before we can bind() it to the actual hdlc-net-device we're interested in. We still are racing against other HLDC net-devices, but those have lower PPS and throughput ratese as 1G/10G or even higher speed ethernet devices that might exist on the same machine. Change-Id: I6a556e6e2d012c17a2777cc8b30fed0f318db178 --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/67/21667/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 0e4e2d3..2d5b021 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -317,7 +317,7 @@ addr.sll_protocol = htons(ETH_P_ALL); addr.sll_ifindex = ifindex; - fd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); + 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"); return fd; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6a556e6e2d012c17a2777cc8b30fed0f318db178 Gerrit-Change-Number: 21667 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 Dec 10 21:10:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:10:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: guard against race between socket(AF_PACKET) and bind() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21666 ) Change subject: gprs_ns2_fr: guard against race between socket(AF_PACKET) and bind() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f708ba4f9b7f76525acce17b24a8f7b125a1c1c Gerrit-Change-Number: 21666 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 21:10: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 Dec 10 21:10:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:10:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr.c: Skip extraneous FIONBIO In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21665 ) Change subject: gprs_ns2_fr.c: Skip extraneous FIONBIO ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2068ce8280357b14970d01e5c86de5c59c933650 Gerrit-Change-Number: 21665 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 21:10: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 Dec 10 21:10:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:10:51 +0000 Subject: Change in titan.TestPorts.AF_PACKET[master]: guard against race between socket(AF_PACKET) and bind() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21664 ) Change subject: guard against race between socket(AF_PACKET) and bind() ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21664 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: Icd0b23eb1d6f75ca3a05e5dd1a569fa389903fdf Gerrit-Change-Number: 21664 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 21:10: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 Dec 10 21:10:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:10:53 +0000 Subject: Change in titan.TestPorts.AF_PACKET[master]: guard against race between socket(AF_PACKET) and bind() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21664 ) Change subject: guard against race between socket(AF_PACKET) and bind() ...................................................................... guard against race between socket(AF_PACKET) and bind() An AF_PACKET socket will immediately receive packets of _all_ interfaces until it is bound to one specific interface. This introduces a race condition between the socket() and the bind() syscall. Let's use the ifindex passed for each packet in recvmsg() to drop any packets received for other interfaces. Change-Id: Icd0b23eb1d6f75ca3a05e5dd1a569fa389903fdf --- M src/AF_PACKET_PT.cc 1 file changed, 10 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/src/AF_PACKET_PT.cc b/src/AF_PACKET_PT.cc index 3f46216..aa2def6 100644 --- a/src/AF_PACKET_PT.cc +++ b/src/AF_PACKET_PT.cc @@ -118,14 +118,23 @@ return; if (is_readable) { + struct sockaddr_ll sll; + socklen_t sll_len = sizeof(sll); int rc; - rc = read(fd, mRxBuf, sizeof(mRxBuf)); + rc = recvfrom(fd, mRxBuf, sizeof(mRxBuf), 0, (struct sockaddr *)&sll, &sll_len); if (rc < 0) TTCN_error("Error reading from socket: %s", strerror(errno)); if (rc == 0) TTCN_error("Dead socket: %s", strerror(errno)); + /* ignore any packets that we might have received for a different interface, between + * the socket() and the bind() call */ + if (sll.sll_ifindex != mIfindex) + return; + + /* TODO: report the other meta-data fields like sll_pkttype via the port */ + incoming_message(AF__PACKET__Unitdata(OCTETSTRING(rc, mRxBuf))); } } -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21664 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: Icd0b23eb1d6f75ca3a05e5dd1a569fa389903fdf Gerrit-Change-Number: 21664 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 Thu Dec 10 21:13:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:13:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps: Update AF_PACKET dependency to version with socket/bind race fix References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21668 ) Change subject: deps: Update AF_PACKET dependency to version with socket/bind race fix ...................................................................... deps: Update AF_PACKET dependency to version with socket/bind race fix Change-Id: Icd773273d3ff8ff6d36ce472b8bd2e8a9b1e2e19 --- M deps/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/68/21668/1 diff --git a/deps/Makefile b/deps/Makefile index 5435da2..61bab99 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 +titan.TestPorts.AF_PACKET_commit= 0.1-1-gcd69809 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 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icd773273d3ff8ff6d36ce472b8bd2e8a9b1e2e19 Gerrit-Change-Number: 21668 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 Dec 10 21:13:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:13:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: use ETH_P_HDLC instead of ETH_P_ALL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21667 ) Change subject: gprs_ns2_fr: use ETH_P_HDLC instead of ETH_P_ALL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6a556e6e2d012c17a2777cc8b30fed0f318db178 Gerrit-Change-Number: 21667 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 21:13: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 Dec 10 21:13:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:13:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr.c: Skip extraneous FIONBIO In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21665 ) Change subject: gprs_ns2_fr.c: Skip extraneous FIONBIO ...................................................................... gprs_ns2_fr.c: Skip extraneous FIONBIO The socket is marked non-blocking inside osmo_fd_register(), there is no need to do it twice. Change-Id: I2068ce8280357b14970d01e5c86de5c59c933650 --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 9 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 8befe1c..c774e11 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -303,7 +303,7 @@ { struct sockaddr_ll addr; int ifindex; - int fd, rc, on = 1; + int fd, rc; ifindex = devname2ifindex(ifname); if (ifindex < 0) { @@ -322,14 +322,6 @@ return fd; } - if (ioctl(fd, FIONBIO, (unsigned char *)&on) < 0) { - LOGP(DLGLOBAL, LOGL_ERROR, - "cannot set this socket unblocking: %s\n", - strerror(errno)); - close(fd); - return -EINVAL; - } - rc = bind(fd, (struct sockaddr *)&addr, sizeof(addr)); if (rc < 0) { LOGP(DLNS, LOGL_ERROR, "Can not bind for interface %s\n", ifname); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2068ce8280357b14970d01e5c86de5c59c933650 Gerrit-Change-Number: 21665 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 Dec 10 21:13:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:13:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: guard against race between socket(AF_PACKET) and bind() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21666 ) Change subject: gprs_ns2_fr: guard against race between socket(AF_PACKET) and bind() ...................................................................... gprs_ns2_fr: guard against race between socket(AF_PACKET) and bind() An AF_PACKET socket will immediately receive packets of _all_ interfaces until it is bound to one specific interface. This introduces a race condition between the socket() and the bind() syscall. Let's use the ifindex passed for each packet in recvmsg() to drop any packets received for other interfaces. Change-Id: I8f708ba4f9b7f76525acce17b24a8f7b125a1c1c Related: SYS#5245 --- M src/gb/gprs_ns2_fr.c 1 file changed, 23 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index c774e11..0e4e2d3 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -86,6 +86,7 @@ struct osmo_fd fd; char netif[IF_NAMESIZE]; struct osmo_fr_link *link; + int ifindex; bool if_running; }; @@ -196,12 +197,14 @@ 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 sockaddr_ll sll; + socklen_t sll_len = sizeof(sll); int rc = 0; if (!msg) return -ENOMEM; - rc = read(bfd->fd, msg->data, NS_ALLOC_SIZE); + 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)); @@ -210,6 +213,11 @@ goto out_err; } + /* ignore any packets that we might have received for a different interface, between + * the socket() and the bind() call */ + if (sll.sll_ifindex != priv->ifindex) + goto out_err; + msgb_put(msg, rc); msg->dst = priv->link; return osmo_fr_rx(msg); @@ -299,18 +307,11 @@ return ifr.ifr_ifindex; } -static int open_socket(const char *ifname) +static int open_socket(int ifindex) { struct sockaddr_ll addr; - int ifindex; int fd, rc; - ifindex = devname2ifindex(ifname); - if (ifindex < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not get interface index for interface %s\n", ifname); - return ifindex; - } - memset(&addr, 0, sizeof(addr)); addr.sll_family = AF_PACKET; addr.sll_protocol = htons(ETH_P_ALL); @@ -318,13 +319,16 @@ fd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); if (fd < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not get socket for interface %s. Are you root or have CAP_RAW_SOCKET?\n", ifname); + LOGP(DLNS, LOGL_ERROR, "Can not create AF_PACKET socket. Are you root or have CAP_RAW_SOCKET?\n"); return fd; } + /* there's a race condition between the above syscall and the bind() call below, + * causing other packets to be received in between */ + rc = bind(fd, (struct sockaddr *)&addr, sizeof(addr)); if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not bind for interface %s\n", ifname); + LOGP(DLNS, LOGL_ERROR, "Can not bind AF_PACKET socket to ifindex %d\n", ifindex); close(fd); return rc; } @@ -496,7 +500,14 @@ fr_link->tx_cb = fr_tx_cb; fr_link->tx_cb_data = bind; priv->link = fr_link; - priv->fd.fd = rc = open_socket(netif); + + priv->ifindex = devname2ifindex(netif); + if (priv->ifindex < 0) { + LOGP(DLNS, LOGL_ERROR, "Can not get interface index for interface %s\n", netif); + goto err_fr; + } + + priv->fd.fd = rc = open_socket(priv->ifindex); if (rc < 0) goto err_fr; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f708ba4f9b7f76525acce17b24a8f7b125a1c1c Gerrit-Change-Number: 21666 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 Dec 10 21:13:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:13:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: use ETH_P_HDLC instead of ETH_P_ALL In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21667 ) Change subject: gprs_ns2_fr: use ETH_P_HDLC instead of ETH_P_ALL ...................................................................... gprs_ns2_fr: use ETH_P_HDLC instead of ETH_P_ALL When opening the socket, use ETH_P_HLDC to restrict the socket to packet received on HLDC interfaces. This avoids packets from random other (ethernet, ...) interfaces to appear before we can bind() it to the actual hdlc-net-device we're interested in. We still are racing against other HLDC net-devices, but those have lower PPS and throughput ratese as 1G/10G or even higher speed ethernet devices that might exist on the same machine. Change-Id: I6a556e6e2d012c17a2777cc8b30fed0f318db178 --- M src/gb/gprs_ns2_fr.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_fr.c b/src/gb/gprs_ns2_fr.c index 0e4e2d3..2d5b021 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -317,7 +317,7 @@ addr.sll_protocol = htons(ETH_P_ALL); addr.sll_ifindex = ifindex; - fd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); + 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"); return fd; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6a556e6e2d012c17a2777cc8b30fed0f318db178 Gerrit-Change-Number: 21667 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 Dec 10 21:14:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:14:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps: Update AF_PACKET dependency to version with socket/bind race fix In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21668 ) Change subject: deps: Update AF_PACKET dependency to version with socket/bind race fix ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icd773273d3ff8ff6d36ce472b8bd2e8a9b1e2e19 Gerrit-Change-Number: 21668 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 10 Dec 2020 21: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 Thu Dec 10 21:14:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:14:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps: Update AF_PACKET dependency to version with socket/bind race fix In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21668 ) Change subject: deps: Update AF_PACKET dependency to version with socket/bind race fix ...................................................................... deps: Update AF_PACKET dependency to version with socket/bind race fix Change-Id: Icd773273d3ff8ff6d36ce472b8bd2e8a9b1e2e19 --- 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 5435da2..61bab99 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 +titan.TestPorts.AF_PACKET_commit= 0.1-1-gcd69809 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 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icd773273d3ff8ff6d36ce472b8bd2e8a9b1e2e19 Gerrit-Change-Number: 21668 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 Dec 10 21:14:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:14:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21635 ) Change subject: gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie087ee8e8adfb963d21f35c60628214d4297250d Gerrit-Change-Number: 21635 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 21:14: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 Dec 10 21:14:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:14:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21635 ) Change subject: gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) ...................................................................... gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms) Change-Id: Ie087ee8e8adfb963d21f35c60628214d4297250d Closes: SYS#5210 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 134 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/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 5e81c13..655e396 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2393,6 +2393,37 @@ f_cleanup(); } +/*********************************************************************** + * FLOW-CONTROL-MS procedure + ***********************************************************************/ + +private function f_TC_fc_ms(charstring id) runs on BSSGP_ConnHdlr { + var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci; + + var template (value) PDU_BSSGP fc_tx := ts_BVC_FC_MS(g_pars.tlli, 100, 200, '12'O); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP fc_rx := tr_BVC_FC_MS(g_pars.tlli, 100, 200, '12'O); + var template (value) PDU_BSSGP ack_tx := ts_BVC_FC_MS_ACK(g_pars.tlli, '12'O); + + f_pcu2sgsn(fc_tx, fc_rx, use_sig := false); + f_sgsn2pcu(ack_tx, ack_tx, use_sig := false); + + setverdict(pass); +} +/* 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; + /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ + + f_cleanup(); +} + + control { execute( TC_BVC_bringup() ); @@ -2456,6 +2487,7 @@ execute( TC_flush_ll() ); execute( TC_fc_bvc() ); + execute( TC_fc_ms() ); } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index ba05f7d..c532772 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1262,6 +1262,108 @@ } } + 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 := { + bssgpPduType := '28'O, + tLLI := ts_BSSGP_TLLI(tlli), + tag := { + iEI := '1E'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + unstructured_Value := tag + }, + mS_Bucket_Size := { + iEI := '12'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + bmax := f_oct_or_wc(bmax, 2) + }, + bucket_Leak_Rate := { + iEI := '03'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + r_Value := f_oct_or_wc(bucket_leak_rate, 2) + }, + bucket_Full_Ratio := omit, + flow_Control_Granularity := omit + } + } + template (present) PDU_BSSGP tr_BVC_FC_MS(template (present) GprsTlli tlli := ?, + template (present) uint16_t bmax := ?, + template (present) uint16_t bucket_leak_rate := ?, + template (present) OCT1 tag := ?) := { + pDU_BSSGP_FLOW_CONTROL_MS := { + bssgpPduType := '28'O, + tLLI := ts_BSSGP_TLLI(tlli), + tag := { + iEI := '1E'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + unstructured_Value := tag + }, + mS_Bucket_Size := { + iEI := '12'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + bmax := f_oct_or_wc(bmax, 2) + }, + bucket_Leak_Rate := { + iEI := '03'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + r_Value := f_oct_or_wc(bucket_leak_rate, 2) + }, + bucket_Full_Ratio := *, + flow_Control_Granularity := * + } + } + + template (value) PDU_BSSGP ts_BVC_FC_MS_ACK(template (value) GprsTlli tlli, + template (value) OCT1 tag) := { + + pDU_BSSGP_FLOW_CONTROL_MS_ACK := { + bssgpPduType := '29'O, + tLLI := ts_BSSGP_TLLI(tlli), + tag := { + iEI := '1E'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + unstructured_Value := tag + } + } + } + template (present) PDU_BSSGP tr_BVC_FC_MS_ACK(template (present) GprsTlli tlli, + template (present) OCT1 tag := ?) := { + + pDU_BSSGP_FLOW_CONTROL_MS_ACK := { + bssgpPduType := '29'O, + tLLI := tr_BSSGP_TLLI(tlli), + tag := { + iEI := '1E'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + unstructured_Value := tag + } + } + } + template PDU_BSSGP ts_BSSGP_STATUS(template BssgpBvci bvci, template BssgpCause cause, PDU_BSSGP pdu) := { pDU_BSSGP_STATUS := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie087ee8e8adfb963d21f35c60628214d4297250d Gerrit-Change-Number: 21635 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 Dec 10 21:16:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 21:16:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Don't create an extra msgb copy for SGSN DL SIG In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 ) Change subject: gbproxy: Don't create an extra msgb copy for SGSN DL SIG ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 Gerrit-Change-Number: 21615 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 10 Dec 2020 21:16: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 Dec 10 22:42:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 10 Dec 2020 22:42:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21669 ) Change subject: sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port ...................................................................... sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port For 12+ days, suspend/resume related SGSN + PCU TTCN3 tets have been failing. It was the introduction of the BSSGP_CT:GLOBAL test port in I40d973d80709f5d56f59247e8647b52754f09bc8 + I805372f3024a0ec2491a24422e02c0bc6dc669d2 which caused the related PDUs now to no longer show up where they used to. Change-Id: I1977302fef4868dc1c330bc6f48f6a6608949393 Closes: OS#4902 --- M library/BSSGP_Emulation.ttcnpp M pcu/PCU_Tests.ttcn M pcu/SGSN_Components.ttcn M sgsn/SGSN_Tests.ttcn 4 files changed, 12 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/21669/1 diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 633eee2..5eef645 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -155,6 +155,7 @@ /* one port array for each client; allows talking to up to 3 BVC/Cell (handover, ...) */ port BSSGP_PT BSSGP[3]; /* PTP-BVC */ port BSSGP_PT BSSGP_SIG[3]; /* Signaling BVC */ + port BSSGP_PT BSSGP_GLOBAL[3]; /* Signaling BVC */ port BSSGP_PROC_PT BSSGP_PROC[3]; /* registration / deregistration */ }; diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index dad0873..0c56348 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -327,7 +327,7 @@ T.start(2.0); alt { - [] BSSGP_SIG[0].receive(tr_BSSGP_SUSPEND(tlli, mp_gb_cfg.bvc[0].cell_id.ra_id)) { + [] BSSGP_GLOBAL[0].receive(tr_BSSGP_SUSPEND(tlli, mp_gb_cfg.bvc[0].cell_id.ra_id)) { setverdict(pass); } [] T.timeout { diff --git a/pcu/SGSN_Components.ttcn b/pcu/SGSN_Components.ttcn index ca1dec6..18f3992 100644 --- a/pcu/SGSN_Components.ttcn +++ b/pcu/SGSN_Components.ttcn @@ -101,6 +101,7 @@ connect(self:BSSGP_PROC[i], vc_BVC:BSSGP_PROC); f_bssgp_client_register(mmctx.imsi, mmctx.tlli); } + connect(self:BSSGP_GLOBAL[0], bssgp_component:GLOBAL); } /* Establish BSSGP connection to PCU */ diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 0b298bb..8e7d6e4 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -480,14 +480,17 @@ connect(vc_conn:BSSGP[0], gb[0].vc_BSSGP_BVC[0]:BSSGP_SP); connect(vc_conn:BSSGP_SIG[0], gb[0].vc_BSSGP_BVC[0]:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[0], gb[0].vc_BSSGP_BVC[0]:BSSGP_PROC); + connect(vc_conn:BSSGP_GLOBAL[0], gb[0].vc_BSSGP:GLOBAL); connect(vc_conn:BSSGP[1], gb[1].vc_BSSGP_BVC[0]:BSSGP_SP); connect(vc_conn:BSSGP_SIG[1], gb[1].vc_BSSGP_BVC[0]:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[1], gb[1].vc_BSSGP_BVC[0]:BSSGP_PROC); + connect(vc_conn:BSSGP_GLOBAL[1], gb[1].vc_BSSGP:GLOBAL); connect(vc_conn:BSSGP[2], gb[2].vc_BSSGP_BVC[0]:BSSGP_SP); connect(vc_conn:BSSGP_SIG[2], gb[2].vc_BSSGP_BVC[0]:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[2], gb[2].vc_BSSGP_BVC[0]:BSSGP_PROC); + connect(vc_conn:BSSGP_GLOBAL[2], gb[2].vc_BSSGP:GLOBAL); /* FIXME: support multiple RNCs */ if (g_ranap_enable) { @@ -868,13 +871,13 @@ friend function f_bssgp_suspend(integer ran_idx := 0) runs on BSSGP_ConnHdlr return OCT1 { timer T := 5.0; var PDU_BSSGP rx_pdu; - BSSGP_SIG[ran_idx].send(ts_BSSGP_SUSPEND(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); + BSSGP_GLOBAL[ran_idx].send(ts_BSSGP_SUSPEND(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); T.start; alt { - [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { + [] BSSGP_GLOBAL[ran_idx].receive(tr_BSSGP_SUSPEND_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { return rx_pdu.pDU_BSSGP_SUSPEND_ACK.suspend_Reference_Number.suspend_Reference_Number_value; } - [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { + [] BSSGP_GLOBAL[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); mtc.stop; } @@ -888,11 +891,11 @@ friend function f_bssgp_resume(OCT1 susp_ref, integer ran_idx := 0) runs on BSSGP_ConnHdlr { timer T := 5.0; - BSSGP_SIG[ran_idx].send(ts_BSSGP_RESUME(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, susp_ref)); + BSSGP_GLOBAL[ran_idx].send(ts_BSSGP_RESUME(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, susp_ref)); T.start; alt { - [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); - [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, + [] BSSGP_GLOBAL[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); + [] BSSGP_GLOBAL[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) { setverdict(fail, "RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli); mtc.stop; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1977302fef4868dc1c330bc6f48f6a6608949393 Gerrit-Change-Number: 21669 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 Dec 10 23:03:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:03:27 +0000 Subject: Change in osmo-gsm-tester[master]: cfg templates: log level and source basename last, log no category-hex In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 ) Change subject: cfg templates: log level and source basename last, log no category-hex ...................................................................... cfg templates: log level and source basename last, log no category-hex Makes for saner log output in stderr files. Change-Id: I2755beffd18d6779367c04e4aaaed119d66eb3be --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl M src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl 17 files changed, 51 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/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 150a4e9..9d0493d 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -974,6 +974,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty @@ -1001,6 +1004,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl index 66fa9e5..dd27da0 100644 --- a/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl index d4f73ad..7419729 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-oc2g.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl index b816036..5bc6cd4 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl index 2533354..a27f57d 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl index b202880..10a44e2 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl index 2276c86..64985e8 100644 --- a/src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bts-virtual.cfg.tmpl @@ -3,6 +3,9 @@ logging color 1 logging print extended-timestamp 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging level abis debug logging level oml debug logging level pag debug diff --git a/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl index 782f1e8..24ab520 100644 --- a/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl @@ -6,6 +6,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level ip info logging level tun info diff --git a/src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl index b573620..9c9cd4e 100644 --- a/src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-hlr.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl index 970d53c..7522fed 100644 --- a/src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-mgcpgw.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl index bf7fc2b..39cde5f 100644 --- a/src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-msc.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl index f5eb03e..ef2efd0 100644 --- a/src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-pcu-oc2g.cfg.tmpl @@ -3,7 +3,8 @@ logging print extended-timestamp 1 logging print category 1 logging print category-hex 0 - logging print file basename + logging print level 1 + logging print file basename last logging level set-all info line vty no login diff --git a/src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl index c0e6cd2..2943204 100644 --- a/src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-pcu-sysmo.cfg.tmpl @@ -3,7 +3,8 @@ logging print extended-timestamp 1 logging print category 1 logging print category-hex 0 - logging print file basename + logging print level 1 + logging print file basename last logging level set-all info line vty no login diff --git a/src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl index 7445609..9e44250 100644 --- a/src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-pcu.cfg.tmpl @@ -3,7 +3,8 @@ logging print extended-timestamp 1 logging print category 1 logging print category-hex 0 - logging print file basename + logging print level 1 + logging print file basename last logging level set-all info line vty no login diff --git a/src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl index 7d12ab5..729c917 100644 --- a/src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-sgsn.cfg.tmpl @@ -6,6 +6,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl index c180e82..c081ad7 100644 --- a/src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-stp.cfg.tmpl @@ -3,6 +3,9 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging print extended-timestamp 1 logging level set-all debug line vty diff --git a/src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl index 55e285a..d7996fe 100644 --- a/src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-trx.cfg.tmpl @@ -5,8 +5,10 @@ logging filter all 1 logging color 1 logging print category 1 + logging print category-hex 0 + logging print level 1 + logging print file basename last logging timestamp 1 - logging print file basename logging print extended-timestamp 1 logging level set-all info logging level ctr notice -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21503 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: I2755beffd18d6779367c04e4aaaed119d66eb3be Gerrit-Change-Number: 21503 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 Thu Dec 10 23:11:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:11:19 +0000 Subject: Change in osmo-gsm-tester[master]: configure fixed ARFCN per bts In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 ) Change subject: configure fixed ARFCN per bts ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/sysmocom/resources.conf.prod File sysmocom/resources.conf.prod: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511/2/sysmocom/resources.conf.prod at 37 PS2, Line 37: - arfcn: 870 > See sysmocom/default.conf: [?] the automatic arfcn overlay is gone with this patch. the idea is that you always configure the arfcns in the resources.conf when there are two trx to be used. i didn't realize there's still a default arfcn in defaults.conf i also didn't realize that there's a mod file setting more trx after the fact, so i thought all of our tests use only one trx. so imo resources.conf should then put two fixed arfcns in the list that stay that way. (a scenario mod could still put a different arfcn there if we wanted that) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 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: I0a6c60544226f4261f9106013478d6a27fc39f38 Gerrit-Change-Number: 21511 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 23:11: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 Thu Dec 10 23:15:59 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:15:59 +0000 Subject: Change in osmo-gsm-tester[master]: implement test.get_log_output() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21515 ) Change subject: implement test.get_log_output() ...................................................................... Patch Set 3: > Patch Set 2: > > I'm not sure what are you attempting here, AFAIR we already printing test output to the junit file. > And if you want to put specific output instead (like a one line summarizing some KPIs) that can be done from within the test. This is being used by srsLTE objects/tests already. The key element is getting a partial log, for ReportFragment. A test like handover.py has an overall PASS/FAIL entry in the jenkins junit, but there are also N sub-fragments representing a part of the test (like bts connect). The use of this is so that when i click on jenkins on a fragment, i only see the logging for that part of the test. it saves scrolling in the overall log output to find the right place, and possibly confuse things. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21515 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: Idfa0a45f3e6a18dd4fe692e81d732c70b5cffb76 Gerrit-Change-Number: 21515 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 10 Dec 2020 23:15: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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: add osmo_vty.py 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/+/21504 to look at the new patch set (#4). Change subject: add osmo_vty.py ...................................................................... add osmo_vty.py To trigger manual handovers, I need a VTY interface. The non-trivial parts of this are copied from osmo-python-tests osmo_interact_vty.py. Will be used in the upcoming handover_2G test suite in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I7c17b143b7c690b8c4105ee7c6272670046fa91d --- A src/osmo_gsm_tester/obj/osmo_vty.py 1 file changed, 247 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/04/21504/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 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: I7c17b143b7c690b8c4105ee7c6272670046fa91d Gerrit-Change-Number: 21504 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: add bsc.vty: always keep a BSC VTY connection ready 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/+/21505 to look at the new patch set (#4). Change subject: add bsc.vty: always keep a BSC VTY connection ready ...................................................................... add bsc.vty: always keep a BSC VTY connection ready The BSC's VTY port will be used to trigger manual handover, and to retrieve a list of active lchans from the BSC, in the upcoming handover_2G test suite, I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I06652db04fc9e48748f3c2196334f5352e9cc48a --- M src/osmo_gsm_tester/obj/bsc_osmo.py M src/osmo_gsm_tester/obj/osmo_vty.py M src/osmo_gsm_tester/testenv.py 3 files changed, 21 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/05/21505/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 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: I06652db04fc9e48748f3c2196334f5352e9cc48a Gerrit-Change-Number: 21505 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: log reserved resources 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/+/21510 to look at the new patch set (#4). Change subject: log reserved resources ...................................................................... log reserved resources On non-debug log level, show something like this at the beginning of each suite: 03:45:49.439720 tst handover:sysmo+secondbts-trx-b200: RESERVED RESOURCES for handover: bts sysmoBTS 1002 Ettus B200 ip_address 10.42.42.2 10.42.42.3 10.42.42.4 10.42.42.5 10.42.42.6 10.42.42.7 modem sierra_1st sierra_2nd Change-Id: Ic23556eafee654c93d13c5ef405028da09bd51d7 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/resource.py M src/osmo_gsm_tester/core/suite.py 3 files changed, 67 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/10/21510/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 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: Ic23556eafee654c93d13c5ef405028da09bd51d7 Gerrit-Change-Number: 21510 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: configure fixed ARFCN per bts 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-gsm-tester/+/21511 to look at the new patch set (#4). Change subject: configure fixed ARFCN per bts ...................................................................... configure fixed ARFCN per bts Remove ARFCNs as a concept from resource pool, assign a fixed ARFCN to each BTS and TRX in the resource pools. Using ARFCNs on specific bands as resources was an idea that is hard to implement, because specific BTS dictate selection of bands which influences which ARFCNs can be picked. That means reserving ARFCN resources is only possible after reserving specific BTS resources, but the tester is currently not capable of such two-stage resolution. Writing handover tests, I got the problem that both BTS in a scenario attempt to use the same ARFCN. The by far easiest solution is to assign one fixed ARFCN to each BTS and TRX. If ever needed, a scenario modifier can still configure different ARFCNs. (Due to uncertainty about OC2G operation stability, I prefer to leave OC2G on ARFCN 50, as it happened to end up being configured before this patch.) Change-Id: I0a6c60544226f4261f9106013478d6a27fc39f38 --- M selftest/resource_test/conf/resources.conf M selftest/resource_test/resource_test.ok M selftest/resource_test/resource_test.py M selftest/suite_test/resources.conf M src/osmo_gsm_tester/core/schema.py M src/osmo_gsm_tester/obj/bts_nanobts.py M src/osmo_gsm_tester/obj/bts_oc2g.py M sysmocom/defaults.conf M sysmocom/resources.conf.prod M sysmocom/resources.conf.rnd 10 files changed, 30 insertions(+), 179 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/11/21511/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 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: I0a6c60544226f4261f9106013478d6a27fc39f38 Gerrit-Change-Number: 21511 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: process: add get_output_mark() and grep_output() 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-gsm-tester/+/21512 to look at the new patch set (#4). Change subject: process: add get_output_mark() and grep_output() ...................................................................... process: add get_output_mark() and grep_output() Allow showing log lines matching specific regexes, from a specific start point of a log. My use case is to echo the handover related logging after an expected handover failed, so that the reason is visible already in the console output of a jenkins run. So far I would need to open the endless bsc log and look up the matching place in it to get a conclusion about why a handover failed. Change-Id: Ib6569f7486e9d961bd79a5f24232e58d053667a1 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 53 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/12/21512/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 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: Ib6569f7486e9d961bd79a5f24232e58d053667a1 Gerrit-Change-Number: 21512 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: implement test.get_log_output() 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-gsm-tester/+/21515 to look at the new patch set (#4). Change subject: implement test.get_log_output() ...................................................................... implement test.get_log_output() Retrieve a test's own logging. The aim is to provide logging belonging to a given report fragment in the junit XML output, will be used by upcoming test.report_fragment() feature. Change-Id: Idfa0a45f3e6a18dd4fe692e81d732c70b5cffb76 --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py 2 files changed, 42 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/15/21515/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21515 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: Idfa0a45f3e6a18dd4fe692e81d732c70b5cffb76 Gerrit-Change-Number: 21515 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: add test.report_fragment() 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/+/21516 to look at the new patch set (#4). Change subject: add test.report_fragment() ...................................................................... add test.report_fragment() Allow enriching the junit output with arbitrary subtasks within a test. The current aim is, for handover tests, to not just show that a test failed, but to show exactly which steps worked and which didn't, e.g.: handover.py/01_bts0_started PASSED handover.py/02.1_ms0_attach PASSED handover.py/02.2_ms1_attach PASSED handover.py/02.3_subscribed_in_msc PASSED handover.py/03_call_established PASSED handover.py/04.1_bts1_started FAILED In this case it is immediately obvious from looking at the jenkins results analyzer that bts1 is the cause of the test failure, and it is visible which parts of the test are flaky, over time. First user Will be the upcoming handover_2G suite, in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.ok.ign M selftest/suite_test/suite_test.py A selftest/suite_test/suitedirA/test_suite/test_report_fragment.py M src/osmo_gsm_tester/core/report.py M src/osmo_gsm_tester/core/test.py 6 files changed, 174 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/16/21516/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 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: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 Gerrit-Change-Number: 21516 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: OsmoCtrl cleanup: get_var(), set_var(), get_trap() 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/+/21564 to look at the new patch set (#2). Change subject: OsmoCtrl cleanup: get_var(), set_var(), get_trap() ...................................................................... OsmoCtrl cleanup: get_var(), set_var(), get_trap() CTRL interface interaction was mostly inherited from the first legacy implementation of osmo-gsm-tester, and it was a pain to look at from the start. Now, while I'm close to the topic, I want this to improve: Properly match a GET_REPLY/SET_REPLY to a sent GET/SET by the message ID. Completely drop the do_get() and do_set(), which were not useful for correct handling of the CTRL request and response messaging. The API to use by callers is set_var(), get_var()/get_int_var() and get_trap(). These call the internal _sendrecv() (or for TRAP only _recv()) functions. Make it so that tese work both on an already connected OsmoCtrl, as well as one that needs to establish a (short) connection, so that both are trivially possible: # one CTRL connection stays open with OsmoCtrl(...) as ctrl: ctrl.get_var('var1') ctrl.get_var('var2') ctrl.get_var('var3') and # get_var() opens a connection, does the GET and closes again OsmoCtrl(...).get_var('var1') Do away with doubling the instances OsmoCtrl and e.g. OsmoBscCtrl. Rather make OsmoBscCtrl a child class of OsmoCtrl, which means that we no longer have bsc.ctrl().ctrl(), just bsc.ctrl(). Have VERB_* constants instead of dup'd strings. Apply to / simplify all callers of OsmoCtrl. Some of these changes are similar to recently added OsmoVty. Change-Id: Id561e5a55d8057a997a8ec9e7fa6f94840194df1 --- M src/osmo_gsm_tester/obj/bsc_osmo.py M src/osmo_gsm_tester/obj/msc_osmo.py M src/osmo_gsm_tester/obj/nitb_osmo.py M src/osmo_gsm_tester/obj/osmo_ctrl.py 4 files changed, 186 insertions(+), 127 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/64/21564/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21564 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: Id561e5a55d8057a997a8ec9e7fa6f94840194df1 Gerrit-Change-Number: 21564 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: osmo_ctrl.py: add RateCounters 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/+/21522 to look at the new patch set (#4). Change subject: osmo_ctrl.py: add RateCounters ...................................................................... osmo_ctrl.py: add RateCounters First user will be the upcoming handover_2G/handover.py test in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: Id799b3bb81eb9c04d13c26ff611e40363920300e --- A selftest/rate_ctrs_test/_prep.py A selftest/rate_ctrs_test/rate_ctrs_test.err A selftest/rate_ctrs_test/rate_ctrs_test.ok A selftest/rate_ctrs_test/rate_ctrs_test.py M src/osmo_gsm_tester/obj/osmo_ctrl.py 5 files changed, 453 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/22/21522/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21522 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: Id799b3bb81eb9c04d13c26ff611e40363920300e Gerrit-Change-Number: 21522 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: add handover_2G suite, with handover.py test 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-gsm-tester/+/21523 to look at the new patch set (#4). Change subject: add handover_2G suite, with handover.py test ...................................................................... add handover_2G suite, with handover.py test Via VTY, handover two lchans of a voice call from bts0 to bts1 and back. New scenarios/bts1-* allow selecting various types for bts1, complementing the already existing files for selecting bts0. Change-Id: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 --- M src/osmo_gsm_tester/testenv.py A sysmocom/handover-suites.conf A sysmocom/scenarios/bts1-nanobts.conf A sysmocom/scenarios/bts1-oc2g.conf A sysmocom/scenarios/bts1-octphy.conf A sysmocom/scenarios/bts1-sysmo.conf A sysmocom/scenarios/bts1-trx-b200.conf A sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf A sysmocom/scenarios/bts1-trx-lms.conf A sysmocom/scenarios/bts1-trx-sysmocell5000.conf A sysmocom/scenarios/bts1-trx-umtrx.conf A sysmocom/suites/handover_2G/handover.py A sysmocom/suites/handover_2G/suite.conf 13 files changed, 309 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/23/21523/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 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: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 Gerrit-Change-Number: 21523 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 Thu Dec 10 23:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:32 +0000 Subject: Change in osmo-gsm-tester[master]: process output: do not leak ANSI colors past logged stdout/stderr 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/+/21565 to look at the new patch set (#2). Change subject: process output: do not leak ANSI colors past logged stdout/stderr ...................................................................... process output: do not leak ANSI colors past logged stdout/stderr In jenkins, I still saw incidents of the entire log becoming colored after a colored stderr snippet was printed to the log. Make absolutely sure that no unterminated ANSI coloring is leaked. Change-Id: Ib9ac1eea4a12d6d43ac8614491f016bbe9ca17b1 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/65/21565/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21565 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: Ib9ac1eea4a12d6d43ac8614491f016bbe9ca17b1 Gerrit-Change-Number: 21565 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 Thu Dec 10 23:41:37 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:41:37 +0000 Subject: Change in osmo-gsm-tester[master]: keep Ctrl connections open for bsc, msc and nitb objects References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21670 ) Change subject: keep Ctrl connections open for bsc, msc and nitb objects ...................................................................... keep Ctrl connections open for bsc, msc and nitb objects The pattern to use 'with' to keep a CTRL connection open adds indents to every test script that wants to avoid multiple reconnections to the CTRL. Instead, keeping a single open connection that is cleaned up on {bsc,msc,nitb} object cleanup ensures that a) the program started up successfully and opened a CTRL port, b) always has a CTRL open without having to worry about it and c) keeps test scripts less complex/indented/crufted. (These are all current users of the OsmoCtrl API.) Change-Id: I53fedbe569c5ccbc4b1a17dafe1f8d1bb8200b24 --- M src/osmo_gsm_tester/obj/bsc_osmo.py M src/osmo_gsm_tester/obj/msc_osmo.py M src/osmo_gsm_tester/obj/nitb_osmo.py M src/osmo_gsm_tester/testenv.py 4 files changed, 37 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/70/21670/1 diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index 510063a..877db29 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -50,6 +50,7 @@ self.mgw = mgw self.stp = stp self.vty = None + self.ctrl = None def start(self): self.log('Starting osmo-bsc') @@ -84,6 +85,9 @@ self.vty = OsmoBscVty(self) self.vty.connect() + self.ctrl = OsmoBscCtrl(self) + self.ctrl.connect() + def configure(self): self.config_file = self.run_dir.new_file('osmo-bsc.cfg') self.dbg(config_file=self.config_file) @@ -149,10 +153,8 @@ # over this list, we have a 1:1 match in indexes. return self.bts.index(bts) - def bts_is_connected(self, bts, use_ctrl=None): - if use_ctrl is None: - use_ctrl = self.ctrl() - return use_ctrl.bts_is_connected(self.bts_num(bts)) + def bts_is_connected(self, bts): + return self.ctrl.bts_is_connected(self.bts_num(bts)) def running(self): return not self.process.terminated() @@ -161,9 +163,9 @@ if self.vty is not None: self.vty.disconnect() self.vty = None - - def ctrl(self): - return OsmoBscCtrl(self) + if self.ctrl is not None: + self.ctrl.disconnect() + self.ctrl = None class OsmoBscCtrl(osmo_ctrl.OsmoCtrl): def __init__(self, bsc, port=4249): diff --git a/src/osmo_gsm_tester/obj/msc_osmo.py b/src/osmo_gsm_tester/obj/msc_osmo.py index 5a7c0ba..550fb87 100644 --- a/src/osmo_gsm_tester/obj/msc_osmo.py +++ b/src/osmo_gsm_tester/obj/msc_osmo.py @@ -49,6 +49,7 @@ self.mgw = mgw self.stp = stp self.smsc = smsc.Smsc((ip_address.get('addr'), 2775)) + self.ctrl = None def start(self): self.log('Starting osmo-msc') @@ -75,6 +76,9 @@ self.testenv.remember_to_stop(self.process) self.process.launch() + self.ctrl = OsmoMscCtrl(self) + self.ctrl.connect() + def configure(self): self.config_file = self.run_dir.new_file('osmo-msc.cfg') self.dbg(config_file=self.config_file) @@ -147,7 +151,7 @@ return all([(imsi in attached) for imsi in imsis]) def imsi_list_attached(self): - return OsmoMscCtrl(self).subscriber_list_active() + return self.ctrl.subscriber_list_active() def set_emergency_call_msisdn(self, msisdn): self.dbg('Setting Emergency Call MSISDN', msisdn=msisdn) @@ -156,6 +160,11 @@ def running(self): return not self.process.terminated() + def cleanup(self): + if self.ctrl is not None: + self.ctrl.disconnect() + self.ctrl = None + class OsmoMscCtrl(osmo_ctrl.OsmoCtrl): def __init__(self, msc, port=4255): diff --git a/src/osmo_gsm_tester/obj/nitb_osmo.py b/src/osmo_gsm_tester/obj/nitb_osmo.py index ea00a75..a978b71 100644 --- a/src/osmo_gsm_tester/obj/nitb_osmo.py +++ b/src/osmo_gsm_tester/obj/nitb_osmo.py @@ -36,6 +36,7 @@ self.ip_address = ip_address self.bts = [] self.smsc = smsc.Smsc((ip_address.get('addr'), 2775)) + self.ctrl = None def start(self): self.log('Starting osmo-nitb') @@ -62,6 +63,9 @@ self.testenv.remember_to_stop(self.process) self.process.launch() + self.ctrl = OsmoNitbCtrl(self) + self.ctrl.connect() + def configure(self): self.config_file = self.run_dir.new_file('osmo-nitb.cfg') self.dbg(config_file=self.config_file) @@ -134,11 +138,11 @@ raise log.Error("Auth algo %r selected and no KI specified" % algo) self.log('Add subscriber', msisdn=msisdn, imsi=modem.imsi()) - OsmoNitbCtrl(self).subscriber_add(modem.imsi(), msisdn, modem.ki(), algo) + return self.ctrl.subscriber_add(modem.imsi(), msisdn, modem.ki(), algo) def subscriber_delete(self, modem): self.log('Delete subscriber', imsi=modem.imsi()) - OsmoNitbCtrl(self).subscriber_delete(modem.imsi()) + return self.ctrl.subscriber_delete(modem.imsi()) def subscriber_attached(self, *modems): return self.imsi_attached(*[m.imsi() for m in modems]) @@ -149,14 +153,18 @@ return all([(imsi in attached) for imsi in imsis]) def imsi_list_attached(self): - return OsmoNitbCtrl(self).subscriber_list_active() + return self.ctrl.subscriber_list_active() def bts_is_connected(self, bts): - return OsmoNitbCtrl(self).bts_is_connected(self.bts_num(bts)) + return self.ctrl.bts_is_connected(self.bts_num(bts)) def running(self): return not self.process.terminated() + def cleanup(self): + if self.ctrl is not None: + self.ctrl.disconnect() + self.ctrl = None class OsmoNitbCtrl(osmo_ctrl.OsmoCtrl): def __init__(self, nitb, port=4249): diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index b3db84f..dc7aee0 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -194,7 +194,9 @@ from .obj.nitb_osmo import OsmoNitb if ip_address is None: ip_address = self.ip_address() - return OsmoNitb(self, ip_address) + nitb_obj = OsmoNitb(self, ip_address) + self.register_for_cleanup(nitb_obj) + return nitb_obj def hlr(self, ip_address=None): from .obj.hlr_osmo import OsmoHlr @@ -230,7 +232,9 @@ from .obj import msc_osmo if ip_address is None: ip_address = self.ip_address() - return msc_osmo.OsmoMsc(self, hlr, mgcpgw, stp, ip_address) + msc_obj = msc_osmo.OsmoMsc(self, hlr, mgcpgw, stp, ip_address) + self.register_for_cleanup(msc_obj) + return msc_obj def bsc(self, msc, mgw, stp, ip_address=None): from .obj.bsc_osmo import OsmoBsc -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21670 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: I53fedbe569c5ccbc4b1a17dafe1f8d1bb8200b24 Gerrit-Change-Number: 21670 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 Dec 10 23:42:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:04 +0000 Subject: Change in osmo-gsm-tester[master]: add osmo_vty.py In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 ) Change subject: add osmo_vty.py ...................................................................... add osmo_vty.py To trigger manual handovers, I need a VTY interface. The non-trivial parts of this are copied from osmo-python-tests osmo_interact_vty.py. Will be used in the upcoming handover_2G test suite in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I7c17b143b7c690b8c4105ee7c6272670046fa91d --- A src/osmo_gsm_tester/obj/osmo_vty.py 1 file changed, 247 insertions(+), 0 deletions(-) diff --git a/src/osmo_gsm_tester/obj/osmo_vty.py b/src/osmo_gsm_tester/obj/osmo_vty.py new file mode 100644 index 0000000..3f8abf7 --- /dev/null +++ b/src/osmo_gsm_tester/obj/osmo_vty.py @@ -0,0 +1,247 @@ +# osmo_gsm_tester: VTY connection +# +# Copyright (C) 2020 by sysmocom - s.f.m.c. GmbH +# +# Author: Neels Hofmeyr +# +# 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 . + +import socket +import struct +import re +import time +import sys + +from ..core import log +from ..core.event_loop import MainLoop + +class VtyInterfaceExn(Exception): + pass + +class OsmoVty(log.Origin): + '''Suggested usage: + with OsmoVty(...) as vty: + vty.cmds('enable', 'configure network', 'net') + response = vty.cmd('foo 1 2 3') + print('\n'.join(response)) + + Using 'with' ensures that the connection is closed again. + There should not be nested 'with' statements on this object. + ''' + +############## +# PROTECTED +############## + + def __init__(self, host, port, prompt=None): + super().__init__(log.C_BUS, 'Vty', host=host, port=port) + self.host = host + self.port = port + self.sck = None + self.prompt = prompt + self.re_prompt = None + self.this_node = None + self.this_prompt_char = None + self.last_node = None + self.last_prompt_char = None + + def try_connect(self): + '''Do a connection attempt, return True when successful, False otherwise. + Does not raise exceptions, but logs them to the debug log.''' + assert self.sck is None + try: + self.dbg('Connecting') + sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + try: + sck.connect((self.host, self.port)) + except: + sck.close() + raise + # set self.sck only after the connect was successful + self.sck = sck + return True + except: + self.dbg('Failed to connect', sys.exc_info()[0]) + return False + + def _command(self, command_str, timeout=10, strict=True): + '''Send a command and return the response.''' + # (copied from https://git.osmocom.org/python/osmo-python-tests/tree/osmopy/osmo_interact/vty.py) + self.dbg('Sending', command_str=command_str) + self.sck.send(command_str.encode()) + + waited_since = time.time() + received_lines = [] + last_line = '' + + # (not using MainLoop.wait() to accumulate received responses across + # iterations) + while True: + new_data = self.sck.recv(4096).decode('utf-8') + + last_line = "%s%s" % (last_line, new_data) + + if last_line: + # Separate the received response into lines. + # But note: the VTY logging currently separates with '\n\r', not '\r\n', + # see _vty_output() in libosmocore logging_vty.c. + # So we need to jump through hoops to not separate 'abc\n\rdef' as + # [ 'abc', '', 'def' ]; but also not to convert '\r\n\r\n' to '\r\n\n' ('\r{\r\n}\n') + # Simplest is to just drop all the '\r' and only care about the '\n'. + last_line = last_line.replace('\r', '') + lines = last_line.splitlines() + if last_line.endswith('\n'): + received_lines.extend(lines) + last_line = "" + else: + # if pkt buffer ends in the middle of a line, we need to keep + # last non-finished line: + received_lines.extend(lines[:-1]) + last_line = lines[-1] + + match = self.re_prompt.match(last_line) + if not match: + if time.time() - waited_since > timeout: + raise IOError("Failed to read data (did the app crash?)") + MainLoop.sleep(.1) + continue + + self.last_node = self.this_node + self.last_prompt_char = self.this_prompt_char + self.this_node = match.group(1) or None + self.this_prompt_char = match.group(2) + break + + # expecting to have received the command we sent as echo, remove it + clean_command_str = command_str.strip() + if clean_command_str.endswith('?'): + clean_command_str = clean_command_str[:-1] + if received_lines and received_lines[0] == clean_command_str: + received_lines = received_lines[1:] + if len(received_lines) > 1: + self.dbg('Received\n|', '\n| '.join(received_lines), '\n') + elif len(received_lines) == 1: + self.dbg('Received', repr(received_lines[0])) + + if received_lines == ['% Unknown command.']: + errmsg = 'VTY reports unknown command: %r' % command_str + if strict: + raise VtyInterfaceExn(errmsg) + else: + self.log('ignoring error:', errmsg) + + return received_lines + +######################## +# PUBLIC - INTERNAL API +######################## + + def connect(self, timeout=30): + '''Connect to the VTY self.host and self.port, retry for 'timeout' seconds. + connect() and disconnect() are called implicitly when using the 'with' statement. + See class OsmoVty's doc. + ''' + MainLoop.wait(self.try_connect, timestep=3, timeout=timeout) + self.sck.setblocking(1) + + # read first prompt + # (copied from https://git.osmocom.org/python/osmo-python-tests/tree/osmopy/osmo_interact/vty.py) + self.this_node = None + self.this_prompt_char = '>' # slight cheat for initial prompt char + self.last_node = None + self.last_prompt_char = None + + data = self.sck.recv(4096) + if not self.prompt: + b = data + b = b[b.rfind(b'\n') + 1:] + while b and (b[0] < ord('A') or b[0] > ord('z')): + b = b[1:] + prompt_str = b.decode('utf-8') + if '>' in prompt_str: + self.prompt = prompt_str[:prompt_str.find('>')] + self.dbg(prompt=self.prompt) + if not self.prompt: + raise VtyInterfaceExn('Could not find application name; needed to decode prompts.' + ' Initial data was: %r' % data) + self.re_prompt = re.compile('^%s(?:\(([\w-]*)\))?([#>]) (.*)$' % self.prompt) + + def disconnect(self): + '''Disconnect. + connect() and disconnect() are called implicitly when using the 'with' statement. + See class OsmoVty's doc. + ''' + if self.sck is None: + return + self.dbg('Disconnecting') + self.sck.close() + self.sck = None + +################### +# PUBLIC (test API included) +################### + + def cmd(self, command_str, timeout=10, strict=True): + '''Send one VTY command and return its response. + Return a list of strings, one string per line, without line break characters: + [ 'first line', 'second line', 'third line' ] + When strict==False, do not raise exceptions on '% Unknown command'. + If the connection is not yet open, briefly connect for only this command and disconnect again. If it is open, + use the open connection and leave it open. + ''' + # allow calling for both already connected VTY as well as establishing + # a connection just for this command. + if self.sck is None: + with self: + return self.cmd(command_str, timeout, strict) + + # (copied from https://git.osmocom.org/python/osmo-python-tests/tree/osmopy/osmo_interact/vty.py) + command_str = command_str or '\r' + if command_str[-1] not in '?\r\t': + command_str = command_str + '\r' + + received_lines = self._command(command_str, timeout, strict) + + # send escape to cancel the '?' command line + if command_str[-1] == '?': + self._command('\x03', timeout) + + return received_lines + + def cmds(self, *cmds, timeout=10, strict=True): + '''Send a series of commands and return each command's response: + cmds('foo', 'bar', 'baz') --> [ ['foo line 1','foo line 2'], ['bar line 1'], ['baz line 1']] + When strict==False, do not raise exceptions on '% Unknown command'. + If the connection is not yet open, briefly connect for only these commands and disconnect again. If it is + open, use the open connection and leave it open. + ''' + # allow calling for both already connected VTY as well as establishing + # a connection just for this command. + if self.sck is None: + with self: + return self.cmds(*cmds, timeout=timeout, strict=strict) + + responses = [] + for cmd in cmds: + responses.append(self.cmd(cmd, timeout, strict)) + return responses + + def __enter__(self): + self.connect() + return self + + def __exit__(self, *exc_info): + self.disconnect() + +# vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21504 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: I7c17b143b7c690b8c4105ee7c6272670046fa91d Gerrit-Change-Number: 21504 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:04 +0000 Subject: Change in osmo-gsm-tester[master]: add bsc.vty: always keep a BSC VTY connection ready In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 ) Change subject: add bsc.vty: always keep a BSC VTY connection ready ...................................................................... add bsc.vty: always keep a BSC VTY connection ready The BSC's VTY port will be used to trigger manual handover, and to retrieve a list of active lchans from the BSC, in the upcoming handover_2G test suite, I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I06652db04fc9e48748f3c2196334f5352e9cc48a --- M src/osmo_gsm_tester/obj/bsc_osmo.py M src/osmo_gsm_tester/obj/osmo_vty.py M src/osmo_gsm_tester/testenv.py 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index 1763dcd..bd8649b 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -20,10 +20,11 @@ import os import re import pprint +import re from ..core import log, util, config, template, process from ..core import schema -from . import osmo_ctrl, pcap_recorder +from . import osmo_ctrl, osmo_vty, pcap_recorder def on_register_schemas(): config_schema = { @@ -48,6 +49,7 @@ self.msc = msc self.mgw = mgw self.stp = stp + self.vty = None def start(self): self.log('Starting osmo-bsc') @@ -79,6 +81,9 @@ self.testenv.remember_to_stop(self.process) self.process.launch() + self.vty = OsmoBscVty(self) + self.vty.connect() + def configure(self): self.config_file = self.run_dir.new_file('osmo-bsc.cfg') self.dbg(config_file=self.config_file) @@ -150,6 +155,10 @@ def running(self): return not self.process.terminated() + def cleanup(self): + if self.vty is not None: + self.vty.disconnect() + self.vty = None class OsmoBscCtrl(log.Origin): PORT = 4249 @@ -178,4 +187,9 @@ return True return False +class OsmoBscVty(osmo_vty.OsmoVty): + def __init__(self, bsc, port=4242): + self.bsc = bsc + super().__init__(self.bsc.addr(), port) + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/osmo_vty.py b/src/osmo_gsm_tester/obj/osmo_vty.py index 3f8abf7..6fee5dc 100644 --- a/src/osmo_gsm_tester/obj/osmo_vty.py +++ b/src/osmo_gsm_tester/obj/osmo_vty.py @@ -38,6 +38,9 @@ Using 'with' ensures that the connection is closed again. There should not be nested 'with' statements on this object. + + Note that test env objects (like tenv.bsc()) may keep a VTY connected until the test exits. A 'with' should not + be used on those. ''' ############## diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index a74891d..ebc8f91 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -235,7 +235,9 @@ from .obj.bsc_osmo import OsmoBsc if ip_address is None: ip_address = self.ip_address() - return OsmoBsc(self, msc, mgw, stp, ip_address) + bsc_obj = OsmoBsc(self, msc, mgw, stp, ip_address) + self.register_for_cleanup(bsc_obj) + return bsc_obj def stp(self, ip_address=None): from .obj.stp_osmo import OsmoStp -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21505 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: I06652db04fc9e48748f3c2196334f5352e9cc48a Gerrit-Change-Number: 21505 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:04 +0000 Subject: Change in osmo-gsm-tester[master]: bsc: add active lchan matching via vty In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 ) Change subject: bsc: add active lchan matching via vty ...................................................................... bsc: add active lchan matching via vty Will be used in upcoming handover_2G test suite in I0b2671304165a1aaae2b386af46fbd8b098e3bd8, which needs to verify that a handover actually ended up on the expected lchan. Change-Id: I03df8f3ae2ee47930eee311c7ce104c36dbb3154 --- M src/osmo_gsm_tester/obj/bsc_osmo.py 1 file changed, 49 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index bd8649b..158bf93 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -192,4 +192,53 @@ self.bsc = bsc super().__init__(self.bsc.addr(), port) + def get_active_lchans(self): + lchan_summary = self.cmd('show lchan summary') + + re_lchan_summary = re.compile('BTS ([0-9]+), TRX ([0-9]+), Timeslot ([0-9]+) *([^,]*), Lchan ([0-9]+),.* State ([A-Za-z_]+).*') + active_lchans = set() + for line in lchan_summary: + m = re_lchan_summary.match(line) + if m: + bts, trx, ts, lchan_type, subslot, state = m.groups() + active_lchans.add('%s-%s-%s-%s %s %s' % (bts, trx, ts, subslot, lchan_type, state)) + if not active_lchans: + self.dbg('No active lchans') + else: + self.dbg('Active lchans:\n|', '\n| '.join(active_lchans), '\n'); + return active_lchans + + def active_lchans_match(self, expected=[], not_expected=[]): + active_lchans = self.get_active_lchans() + matches = [] + mismatches = [] + + for expected_lchan in expected: + found = False + for active_lchan in active_lchans: + if active_lchan.startswith(expected_lchan): + found = True + break + if found: + matches.append(expected_lchan) + else: + mismatches.append('missing: ' + expected_lchan) + + for not_expected_lchan in not_expected: + found = False + for active_lchan in active_lchans: + if active_lchan.startswith(not_expected_lchan): + found = True + break + if not found: + matches.append('not: ' + not_expected_lchan) + else: + mismatches.append('unexpected: ' + not_expected_lchan) + + if matches: + self.log('Found matching lchan activity (%d of %d requirements):' % (len(matches), len(expected) + len(not_expected)), matches) + if mismatches: + self.err('Found unexpected lchan activity (%d of %d requirements):' % (len(mismatches), len(expected) + len(not_expected)), mismatches) + return not mismatches + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21506 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: I03df8f3ae2ee47930eee311c7ce104c36dbb3154 Gerrit-Change-Number: 21506 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:05 +0000 Subject: Change in osmo-gsm-tester[master]: bts: allow configuring ARFCN and BSIC: add to schema In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21507 ) Change subject: bts: allow configuring ARFCN and BSIC: add to schema ...................................................................... bts: allow configuring ARFCN and BSIC: add to schema resources.conf is already allowed to set these, but in order to let scenarios and suites modify these values, they need to be in the schema. Change-Id: I8e0583e9208d563c66b0bdc9f25b1b74f92403c2 --- M src/osmo_gsm_tester/obj/bts.py 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/bts.py b/src/osmo_gsm_tester/obj/bts.py index 5b43642..76a6875 100644 --- a/src/osmo_gsm_tester/obj/bts.py +++ b/src/osmo_gsm_tester/obj/bts.py @@ -35,6 +35,7 @@ 'channel_allocator': schema.CHAN_ALLOCATOR, 'gprs_mode': schema.GPRS_MODE, 'emergency_calls_allowed': schema.BOOL_STR, + 'base_station_id_code': schema.UINT, 'num_trx': schema.UINT, 'max_trx': schema.UINT, 'trx_list[].addr': schema.IPV4, @@ -46,6 +47,7 @@ 'trx_list[].power_supply.type': schema.STR, 'trx_list[].power_supply.device': schema.STR, 'trx_list[].power_supply.port': schema.STR, + 'trx_list[].arfcn': schema.UINT, } schema.register_resource_schema('bts', resource_schema) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21507 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: I8e0583e9208d563c66b0bdc9f25b1b74f92403c2 Gerrit-Change-Number: 21507 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:06 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:06 +0000 Subject: Change in osmo-gsm-tester[master]: log passed tests In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 ) Change subject: log passed tests ...................................................................... log passed tests In the end of a test suite, do not omit the passed tests. For example, running handover against N BTS combinations, it was hard to summarize which BTS models actually succeeded, with only the failures listed. Besides the "FAIL" listings, now print something like this in the end: PASS: handover:sysmo+secondbts-trx-b200 (pass: 1) pass: handover.py (198.8 sec) PASS: handover:sysmo+secondbts-trx-umtrx (pass: 1) pass: handover.py (192.7 sec) PASS: handover:trx-b200+secondbts-trx-umtrx (pass: 1) pass: handover.py (193.1 sec) Change-Id: Ib85a5b90e267c2ed2f844691187ecadc8939b1bb --- M src/osmo_gsm_tester/core/report.py 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index d2c68c5..c3390fe 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -164,12 +164,14 @@ return testcase def trial_to_text(trial): + suite_passes = [] suite_failures = [] count_fail = 0 count_pass = 0 for suite in trial.suites: if suite.passed(): count_pass += 1 + suite_passes.append(suite_to_text(suite)) else: count_fail += 1 suite_failures.append(suite_to_text(suite)) @@ -181,6 +183,7 @@ summary.append('%d suites passed' % count_pass) msg = [', '.join(summary)] msg.extend(suite_failures) + msg.extend(suite_passes) return '\n'.join(msg) def suite_to_text(suite): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21509 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: Ib85a5b90e267c2ed2f844691187ecadc8939b1bb Gerrit-Change-Number: 21509 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 23:42:07 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:07 +0000 Subject: Change in osmo-gsm-tester[master]: log reserved resources In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 ) Change subject: log reserved resources ...................................................................... log reserved resources On non-debug log level, show something like this at the beginning of each suite: 03:45:49.439720 tst handover:sysmo+secondbts-trx-b200: RESERVED RESOURCES for handover: bts sysmoBTS 1002 Ettus B200 ip_address 10.42.42.2 10.42.42.3 10.42.42.4 10.42.42.5 10.42.42.6 10.42.42.7 modem sierra_1st sierra_2nd Change-Id: Ic23556eafee654c93d13c5ef405028da09bd51d7 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/resource.py M src/osmo_gsm_tester/core/suite.py 3 files changed, 67 insertions(+), 0 deletions(-) diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 9d0493d..dfc8d41 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -145,6 +145,16 @@ label: m7802 path: /wavecom_1 tst test_suite: DBG: FileWatch: unscheduling watch +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 ---------------------------------------------- trial test_suite hello_world.py @@ -364,6 +374,16 @@ path: /wavecom_1 [resource.py:[LINENR]] tst test_suite: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 [suite.py:[LINENR]] ---------------------------------------------- trial test_suite hello_world.py @@ -509,6 +529,16 @@ path: /wavecom_1 [resource.py:[LINENR]] tst test_suite: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 [suite.py:[LINENR]] ---------------------------------------------- trial test_suite hello_world.py @@ -650,6 +680,16 @@ path: /wavecom_1 [resource.py:[LINENR]] tst test_suite: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 [suite.py:[LINENR]] resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace', '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', 'addr': '10.42.42.53', @@ -841,6 +881,16 @@ path: /wavecom_1 [resource.py:[LINENR]] tst test_suite: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst test_suite: RESERVED RESOURCES for test_suite: +bts + sysmoCell 5000 + sysmoCell 5000 + sysmoBTS 1002 +ip_address + 10.42.42.1 +modem + m7801 + m7802 [suite.py:[LINENR]] resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace', '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]', 'addr': '10.42.42.53', @@ -944,6 +994,9 @@ addr: 10.42.42.2 [resource.py:[LINENR]] tst suiteC: DBG: FileWatch: unscheduling watch [util.py:[LINENR]] +tst suiteC: RESERVED RESOURCES for suiteC: +ip_address + 10.42.42.2 [suite.py:[LINENR]] ---------------------------------------------- trial suiteC test_template_overlay.py diff --git a/src/osmo_gsm_tester/core/resource.py b/src/osmo_gsm_tester/core/resource.py index 621522b..223a8f9 100644 --- a/src/osmo_gsm_tester/core/resource.py +++ b/src/osmo_gsm_tester/core/resource.py @@ -485,6 +485,18 @@ def __repr__(self): return 'resources(%s)=%s' % (self.origin.name(), pprint.pformat(self.reserved)) + def __str__(self): + return repr(self) + + def summary_str(self, prefix=''): + lines = [] + for key, reserved_list in sorted(self.reserved.items()): + lines.append(key) + for item in reserved_list: + label = item.get('label') or item.get('addr') or item.get('type') or item.get('_hash') or '?' + lines.append(' ' + label) + return prefix + ('\n' + prefix).join(lines) + def get(self, kind, specifics=None): if specifics is None: specifics = {} diff --git a/src/osmo_gsm_tester/core/suite.py b/src/osmo_gsm_tester/core/suite.py index 3860d19..3e9ecbf 100644 --- a/src/osmo_gsm_tester/core/suite.py +++ b/src/osmo_gsm_tester/core/suite.py @@ -160,6 +160,8 @@ raise RuntimeError('Attempt to reserve resources twice for a SuiteRun') self.log('reserving resources in', self.resources_pool.state_dir, '...') self.reserved_resources = self.resources_pool.reserve(self, self.resource_requirements(), self.resource_modifiers()) + # short summary of labels + self.log('RESERVED RESOURCES for ' + self.suite_name() + ':\n' + self.reserved_resources.summary_str()) def get_reserved_resource(self, resource_class_str, specifics): return self.reserved_resources.get(resource_class_str, specifics=specifics) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21510 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: Ic23556eafee654c93d13c5ef405028da09bd51d7 Gerrit-Change-Number: 21510 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:07 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:07 +0000 Subject: Change in osmo-gsm-tester[master]: configure fixed ARFCN per bts In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 ) Change subject: configure fixed ARFCN per bts ...................................................................... configure fixed ARFCN per bts Remove ARFCNs as a concept from resource pool, assign a fixed ARFCN to each BTS and TRX in the resource pools. Using ARFCNs on specific bands as resources was an idea that is hard to implement, because specific BTS dictate selection of bands which influences which ARFCNs can be picked. That means reserving ARFCN resources is only possible after reserving specific BTS resources, but the tester is currently not capable of such two-stage resolution. Writing handover tests, I got the problem that both BTS in a scenario attempt to use the same ARFCN. The by far easiest solution is to assign one fixed ARFCN to each BTS and TRX. If ever needed, a scenario modifier can still configure different ARFCNs. (Due to uncertainty about OC2G operation stability, I prefer to leave OC2G on ARFCN 50, as it happened to end up being configured before this patch.) Change-Id: I0a6c60544226f4261f9106013478d6a27fc39f38 --- M selftest/resource_test/conf/resources.conf M selftest/resource_test/resource_test.ok M selftest/resource_test/resource_test.py M selftest/suite_test/resources.conf M src/osmo_gsm_tester/core/schema.py M src/osmo_gsm_tester/obj/bts_nanobts.py M src/osmo_gsm_tester/obj/bts_oc2g.py M sysmocom/defaults.conf M sysmocom/resources.conf.prod M sysmocom/resources.conf.rnd 10 files changed, 30 insertions(+), 179 deletions(-) diff --git a/selftest/resource_test/conf/resources.conf b/selftest/resource_test/conf/resources.conf index 84d0ab9..71d8ee0 100644 --- a/selftest/resource_test/conf/resources.conf +++ b/selftest/resource_test/conf/resources.conf @@ -43,28 +43,6 @@ - 'a5_0' - 'a5_1' -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 - modem: - label: sierra_1 path: '/sierra_1' diff --git a/selftest/resource_test/resource_test.ok b/selftest/resource_test/resource_test.ok index 5f7d5f6..64cf39b 100644 --- a/selftest/resource_test/resource_test.ok +++ b/selftest/resource_test/resource_test.ok @@ -19,37 +19,7 @@ 'suites_dir': ['[PATH]/selftest/resource_test/conf/suite_test'], 'trial_dir': '[PATH]/selftest/resource_test/conf/trial'} *** all resources: -{'arfcn': [{'_hash': 'e620569450f8259b3f0212ec19c285dd07df063c', - 'arfcn': '512', - 'band': 'GSM-1800'}, - {'_hash': '022621e513c5a5bf33b77430a1e9c886be676fa1', - 'arfcn': '514', - 'band': 'GSM-1800'}, - {'_hash': '3199abf375a1dd899e554e9d63a552e06d7f38bf', - 'arfcn': '516', - 'band': 'GSM-1800'}, - {'_hash': '57aa7bd1da62495f2857ae6b859193dd592a0a02', - 'arfcn': '518', - 'band': 'GSM-1800'}, - {'_hash': '53dd2e2682b736f427abd2ce59a9a50ca8130678', - 'arfcn': '520', - 'band': 'GSM-1800'}, - {'_hash': '31687a5e6d5140a4b3877606ca5f18244f11d706', - 'arfcn': '540', - 'band': 'GSM-1900'}, - {'_hash': '1def43a5c88a83cdb21279eacab0679ea08ffaf3', - 'arfcn': '542', - 'band': 'GSM-1900'}, - {'_hash': '1d6e3b08a3861fd4d748f111295ec5a93ecd3d23', - 'arfcn': '544', - 'band': 'GSM-1900'}, - {'_hash': '8fb36927de15466fcdbee01f7f65704c312cb36c', - 'arfcn': '546', - 'band': 'GSM-1900'}, - {'_hash': 'dc9ce027a257da087f31a5bc1ee6b4abd2637369', - 'arfcn': '548', - 'band': 'GSM-1900'}], - 'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', +{'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', 'addr': '10.42.42.114', 'band': 'GSM-1800', 'ciphers': ['a5_0', 'a5_1'], @@ -116,13 +86,6 @@ *** end: all resources - request some resources ---- testowner: Verifying 2 x arfcn (candidates: 10) ---- testowner: DBG: Picked - _hash: e620569450f8259b3f0212ec19c285dd07df063c - arfcn: '512' - band: GSM-1800 -- _hash: 022621e513c5a5bf33b77430a1e9c886be676fa1 - arfcn: '514' - band: GSM-1800 --- testowner: Verifying 2 x bts (candidates: 3) --- testowner: DBG: Picked - _hash: d2aa7c1124943de352351b650ca0c751784da6b6 addr: 10.42.42.114 @@ -169,13 +132,6 @@ label: sierra_2 path: /sierra_2 --- testowner: DBG: FileWatch: scheduling watch for directory [PATH]/selftest/resource_test/conf/test_work/state_dir ---- testowner: Reserving 2 x arfcn (candidates: 10) ---- testowner: DBG: Picked - _hash: e620569450f8259b3f0212ec19c285dd07df063c - arfcn: '512' - band: GSM-1800 -- _hash: 022621e513c5a5bf33b77430a1e9c886be676fa1 - arfcn: '514' - band: GSM-1800 --- testowner: Reserving 2 x bts (candidates: 3) --- testowner: DBG: Picked - _hash: d2aa7c1124943de352351b650ca0c751784da6b6 addr: 10.42.42.114 @@ -223,15 +179,6 @@ path: /sierra_2 --- testowner: DBG: FileWatch: unscheduling watch ~~~ currently reserved: -arfcn: -- _hash: e620569450f8259b3f0212ec19c285dd07df063c - _reserved_by: testowner-123-1490837279 - arfcn: '512' - band: GSM-1800 -- _hash: 022621e513c5a5bf33b77430a1e9c886be676fa1 - _reserved_by: testowner-123-1490837279 - arfcn: '514' - band: GSM-1800 bts: - _hash: d2aa7c1124943de352351b650ca0c751784da6b6 _reserved_by: testowner-123-1490837279 @@ -286,15 +233,7 @@ ~~~ end: currently reserved ~~~ with modifiers: -resources(testowner)={'arfcn': [{'_hash': 'e620569450f8259b3f0212ec19c285dd07df063c', - '_reserved_by': 'testowner-123-1490837279', - 'arfcn': '512', - 'band': 'GSM-1800'}, - {'_hash': '022621e513c5a5bf33b77430a1e9c886be676fa1', - '_reserved_by': 'testowner-123-1490837279', - 'arfcn': '514', - 'band': 'GSM-1800'}], - 'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', +resources(testowner)={'bts': [{'_hash': 'd2aa7c1124943de352351b650ca0c751784da6b6', '_reserved_by': 'testowner-123-1490837279', 'addr': '10.42.42.114', 'band': 'GSM-1800', @@ -345,24 +284,19 @@ 3rd subset should not match, pass 4th subset should not match, pass *** concurrent allocation: ---- testowner1: Verifying 2 x arfcn (candidates: 10) --- testowner1: Verifying 2 x bts (candidates: 3) --- testowner1: Verifying 1 x ip_address (candidates: 5) --- testowner1: Verifying 2 x modem (candidates: 4) ---- testowner1: Reserving 2 x arfcn (candidates: 10) --- testowner1: Reserving 2 x bts (candidates: 3) --- testowner1: Reserving 1 x ip_address (candidates: 5) --- testowner1: Reserving 2 x modem (candidates: 4) - 2nd instance reserve() start ---- testowner2: Verifying 2 x arfcn (candidates: 10) --- testowner2: Verifying 2 x bts (candidates: 3) --- testowner2: Verifying 1 x ip_address (candidates: 5) --- testowner2: Verifying 2 x modem (candidates: 4) ---- testowner2: Reserving 2 x arfcn (candidates: 8) --- testowner2: Reserving 2 x bts (candidates: 1) --- testowner2: Unable to reserve resources, too many currently reserved. Waiting until some are available again - 1st instance free() ---- testowner2: Reserving 2 x arfcn (candidates: 10) --- testowner2: Reserving 2 x bts (candidates: 3) --- testowner2: Reserving 1 x ip_address (candidates: 5) --- testowner2: Reserving 2 x modem (candidates: 4) diff --git a/selftest/resource_test/resource_test.py b/selftest/resource_test/resource_test.py index 13cce97..f793a42 100755 --- a/selftest/resource_test/resource_test.py +++ b/selftest/resource_test/resource_test.py @@ -81,7 +81,6 @@ want = { 'ip_address': [ { 'times': 1 } ], 'bts': [ { 'type': 'osmo-bts-sysmo', 'times': 1 , 'ciphers': ['a5_1']}, { 'type': 'osmo-bts-trx', 'times': 1 } ], - 'arfcn': [ { 'band': 'GSM-1800', 'times': 2 } ], 'modem': [ { 'times': 2 , 'ciphers': ['a5_0', 'a5_1']} ], } modifiers = { diff --git a/selftest/suite_test/resources.conf b/selftest/suite_test/resources.conf index bd121cb..ff6fc9e 100644 --- a/selftest/suite_test/resources.conf +++ b/selftest/suite_test/resources.conf @@ -70,29 +70,6 @@ - nominal_power: 12 max_power_red: 1 -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 - modem: - label: m7801 path: '/wavecom_0' diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py index d56d6ec..89c4494 100644 --- a/src/osmo_gsm_tester/core/schema.py +++ b/src/osmo_gsm_tester/core/schema.py @@ -375,12 +375,10 @@ util.run_python_file_method(module_name, 'on_register_schemas', False) -_RESOURCE_TYPES = ['ip_address', 'arfcn'] +_RESOURCE_TYPES = ['ip_address',] _RESOURCES_SCHEMA = { 'ip_address[].addr': IPV4, - 'arfcn[].arfcn': INT, - 'arfcn[].band': BAND, } _CONFIG_SCHEMA = {} diff --git a/src/osmo_gsm_tester/obj/bts_nanobts.py b/src/osmo_gsm_tester/obj/bts_nanobts.py index 03730a6..25efc7f 100644 --- a/src/osmo_gsm_tester/obj/bts_nanobts.py +++ b/src/osmo_gsm_tester/obj/bts_nanobts.py @@ -65,16 +65,6 @@ def conf_for_bsc(self): values = self.conf_for_bsc_prepare() - # Hack until we have proper ARFCN resource allocation support (OS#2230) - band = values.get('band') - trx_list = values.get('trx_list') - if band == 'GSM-1900': - for trx_i in range(len(trx_list)): - config.overlay(trx_list[trx_i], { 'arfcn' : str(531 + trx_i * 2) }) - elif band == 'GSM-900': - for trx_i in range(len(trx_list)): - config.overlay(trx_list[trx_i], { 'arfcn' : str(50 + trx_i * 2) }) - config.overlay(values, { 'osmobsc_bts_type': 'nanobts' }) self.dbg(conf=values) diff --git a/src/osmo_gsm_tester/obj/bts_oc2g.py b/src/osmo_gsm_tester/obj/bts_oc2g.py index 2d55637..7761ce3 100644 --- a/src/osmo_gsm_tester/obj/bts_oc2g.py +++ b/src/osmo_gsm_tester/obj/bts_oc2g.py @@ -78,12 +78,6 @@ def conf_for_bsc(self): values = self.conf_for_bsc_prepare() - # Hack until we have proper ARFCN resource allocation support (OS#2230) - band = values.get('band') - trx_list = values.get('trx_list') - if band == 'GSM-900': - for trx_i in range(len(trx_list)): - config.overlay(trx_list[trx_i], { 'arfcn' : str(50 + trx_i * 2) }) self.dbg(conf=values) return values diff --git a/sysmocom/defaults.conf b/sysmocom/defaults.conf index 7704857..7f1368b 100644 --- a/sysmocom/defaults.conf +++ b/sysmocom/defaults.conf @@ -37,7 +37,6 @@ trx_list: - nominal_power: 23 max_power_red: 0 - arfcn: 868 timeslot_list: - phys_chan_config: CCCH+SDCCH4 - phys_chan_config: SDCCH8 @@ -49,7 +48,6 @@ - phys_chan_config: PDCH - nominal_power: 23 max_power_red: 0 - arfcn: 872 timeslot_list: - phys_chan_config: TCH/F - phys_chan_config: SDCCH8 diff --git a/sysmocom/resources.conf.prod b/sysmocom/resources.conf.prod index 01a03f1..0444cf4 100644 --- a/sysmocom/resources.conf.prod +++ b/sysmocom/resources.conf.prod @@ -23,6 +23,8 @@ ipa_unit_id: 1 addr: 10.42.42.114 band: GSM-1800 + trx_list: + - arfcn: 868 direct_pcu: true ciphers: [a5_0, a5_1, a5_3] @@ -31,6 +33,9 @@ ipa_unit_id: 6 addr: 10.42.42.50 band: GSM-1800 + trx_list: + - arfcn: 850 + - arfcn: 852 ciphers: [a5_0, a5_1, a5_3] osmo_trx: type: uhd @@ -46,6 +51,9 @@ ipa_unit_id: 12 addr: 10.42.42.54 band: GSM-1800 + trx_list: + - arfcn: 854 + - arfcn: 856 ciphers: [a5_0, a5_1, a5_3] osmo_trx: type: uhd @@ -60,6 +68,8 @@ ipa_unit_id: 11 addr: 10.42.42.53 band: GSM-1800 + trx_list: + - arfcn: 858 ciphers: [a5_0, a5_1, a5_3] osmo_trx: type: lms @@ -76,6 +86,8 @@ ipa_unit_id: 15 addr: 10.42.42.53 band: GSM-1800 + trx_list: + - arfcn: 860 ciphers: [a5_0, a5_1] osmo_trx: type: lms @@ -96,6 +108,7 @@ type: 'intellinet' device: '10.42.42.250' port: '5' + arfcn: 862 osmo_trx: type: sc5 launch_trx: true @@ -111,6 +124,7 @@ trx_list: - hw_addr: 00:0c:90:2e:80:1e net_device: enp2s0 + arfcn: 864 - label: NanoBTS-ONW-1900 type: nanobts @@ -122,6 +136,8 @@ type: 'intellinet' device: '10.42.42.250' port: '1' + arfcn: 533 + - arfcn: 535 - label: NanoBTS-ONW-900 type: nanobts @@ -134,23 +150,29 @@ type: 'intellinet' device: '10.42.42.250' port: '2' + arfcn: 52 - addr: 10.42.42.122 power_supply: type: 'intellinet' device: '10.42.42.250' port: '3' + arfcn: 54 - label: OsmoBTS Virtual type: osmo-bts-virtual ipa_unit_id: 13 addr: 10.42.42.55 band: GSM-1800 + trx_list: + - arfcn: 882 - label: OC-2G type: osmo-bts-oc2g ipa_unit_id: 14 addr: 10.42.42.100 band: GSM-900 + trx_list: + - arfcn: 50 direct_pcu: true ciphers: [a5_0, a5_1, a5_3] @@ -175,28 +197,6 @@ ssh_user: jenkins ssh_addr: 10.42.42.117 -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 - modem: - label: sierra_1st path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.2/1-5.2.2' diff --git a/sysmocom/resources.conf.rnd b/sysmocom/resources.conf.rnd index 4ce39d1..d9a6720 100644 --- a/sysmocom/resources.conf.rnd +++ b/sysmocom/resources.conf.rnd @@ -19,6 +19,8 @@ band: GSM-1800 direct_pcu: true ciphers: [a5_0, a5_1, a5_3] + trx_list: + - arfcn: 868 - label: Ettus B200 type: osmo-bts-trx @@ -34,6 +36,8 @@ trx_ip: 127.0.0.1 dev_args: "type=b200,serial=30A9FFB" ciphers: [a5_0, a5_1, a5_3] + trx_list: + - arfcn: 870 - label: NanoBTS-ONW-1900 type: nanobts @@ -45,28 +49,7 @@ type: 'sispm' device: '01:01:55:2e:b6' port: '1' - -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 + arfcn: 533 modem: - label: sierra_1st -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21511 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: I0a6c60544226f4261f9106013478d6a27fc39f38 Gerrit-Change-Number: 21511 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 23:42:07 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:07 +0000 Subject: Change in osmo-gsm-tester[master]: process: add get_output_mark() and grep_output() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 ) Change subject: process: add get_output_mark() and grep_output() ...................................................................... process: add get_output_mark() and grep_output() Allow showing log lines matching specific regexes, from a specific start point of a log. My use case is to echo the handover related logging after an expected handover failed, so that the reason is visible already in the console output of a jenkins run. So far I would need to open the endless bsc log and look up the matching place in it to get a conclusion about why a handover failed. Change-Id: Ib6569f7486e9d961bd79a5f24232e58d053667a1 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 0b96f2e..bff8dba 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -23,6 +23,7 @@ import signal from abc import ABCMeta, abstractmethod from datetime import datetime +import re from . import log from .event_loop import MainLoop @@ -320,13 +321,24 @@ self.poll() return self.process_obj is not None and self.result is None - def get_output(self, which): - ''' Read process output ''' + @staticmethod + def end_ansi_colors(txt): + '''Make sure no ANSI colors leak out of logging output''' + color_off = '\033[0;m' + color_any = '\033[' + if txt.rfind(color_any) > txt.rfind(color_off): + return txt + color_off + return txt + + def get_output(self, which, since_mark=0): + ''' Read process output. For since_mark, see get_output_mark(). ''' path = self.get_output_file(which) if path is None: return None - with open(path, 'r') as f2: - return f2.read() + with open(path, 'r') as f: + if since_mark > 0: + f.seek(since_mark) + return f.read() def get_output_file(self, which): ''' Return filename for given output ''' @@ -344,11 +356,44 @@ tail = min(len(out), tail) return prefix + ('\n' + prefix).join(out[-tail:]) - def get_stdout(self): - return self.get_output('stdout') + def get_output_mark(self, which): + '''Usage: + # remember a start marker + my_mark = my_process.get_output_mark('stderr') - def get_stderr(self): - return self.get_output('stderr') + do_actions_that_produce_log_output() + + my_log = my_process.get_output('stderr', since_mark=my_mark) + # my_log contains the stderr of that process since the start marker. + ''' + path = self.get_output_file(which) + if path is None: + return None + with open(path, 'r') as f: + return f.seek(0, 2) + + def grep_output(self, which, regex, since_mark=0, line_nrs=False): + lines = self.get_output(which, since_mark=since_mark).splitlines() + if not lines: + return None + matches = [] + r = re.compile(regex) + line_nr = since_mark + for line in lines: + line_nr += 1 + if r.search(line): + line = self.end_ansi_colors(line) + if line_nrs: + matches.append((line_nr, line)) + else: + matches.append(line) + return matches + + def get_stdout(self, since_mark=0): + return self.get_output('stdout', since_mark=since_mark) + + def get_stderr(self, since_mark=0): + return self.get_output('stderr', since_mark=since_mark) def get_stdout_tail(self, tail=10, prefix=''): return self.get_output_tail('stdout', tail, prefix) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21512 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: Ib6569f7486e9d961bd79a5f24232e58d053667a1 Gerrit-Change-Number: 21512 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 23:42:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:08 +0000 Subject: Change in osmo-gsm-tester[master]: fix: line nr in test name in wrong places In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21541 ) Change subject: fix: line nr in test name in wrong places ...................................................................... fix: line nr in test name in wrong places test.Test() overrides name() in order to provide source line number information. However, overriding name() is the wrong place for that, as name() is also often used for identifying an object - when listing the tests of a suite, the line number should not appear in the test name. For example, the line number sometimes ends up in the test results in jenkins, making 'foo.py' and 'foo.py:23' two distinct report items. Instead, add a separate function Origin.src() that defaults to name(), but specific classes can override src() if they wish to provide more detailed information with the object name. Override src() in Test, not name(). Use src() in backtraces. The suite_test.ok shows that the backtracing in the log remains unchanged, but the place where the test name is printed is corrected: I am 'test_suite' / 'hello_world.py:23' becomes I am 'test_suite' / 'hello_world.py' (Notice that "[LINENR]" in suite_test.ok is a masking of an actual number, done within the selftest suite) Change-Id: I0c4698fa2b3db3de777d8b6dcdcee84e433c62b7 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py 3 files changed, 17 insertions(+), 11 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index dfc8d41..2c49c19 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -160,7 +160,7 @@ trial test_suite hello_world.py ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py:[LINENR]' [test_suite?hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] @@ -187,7 +187,7 @@ ---------------------------------------------- trial test_suite test_error.py ---------------------------------------------- -tst test_error.py:[LINENR]: I am 'test_suite' / 'test_error.py:[LINENR]' [test_suite?test_error.py:[LINENR]] [test_error.py:[LINENR]] +tst test_error.py:[LINENR]: I am 'test_suite' / 'test_error.py' [test_suite?test_error.py:[LINENR]] [test_error.py:[LINENR]] tst test_error.py:[LINENR]: ERR: AssertionError: test_error.py:[LINENR]: assert False [test_suite?test_error.py:[LINENR]] [test_error.py:[LINENR]: assert False] tst test_error.py:[LINENR]: Test FAILED (N.N sec) [test_suite?test_error.py:[LINENR]] [test.py:[LINENR]] --------------------------------------------------------------------- @@ -212,7 +212,7 @@ ---------------------------------------------- trial test_suite test_fail.py ---------------------------------------------- -tst test_fail.py:[LINENR]: I am 'test_suite' / 'test_fail.py:[LINENR]' [test_suite?test_fail.py:[LINENR]] [test_fail.py:[LINENR]] +tst test_fail.py:[LINENR]: I am 'test_suite' / 'test_fail.py' [test_suite?test_fail.py:[LINENR]] [test_fail.py:[LINENR]] tst test_fail.py:[LINENR]: ERR: EpicFail: This failure is expected [test_suite?test_fail.py:[LINENR]] [test_fail.py:[LINENR]] tst test_fail.py:[LINENR]: Test FAILED (N.N sec) [test_suite?test_fail.py:[LINENR]] [test.py:[LINENR]] --------------------------------------------------------------------- @@ -389,7 +389,7 @@ trial test_suite hello_world.py ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py:[LINENR]' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] @@ -544,7 +544,7 @@ trial test_suite hello_world.py ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py:[LINENR]' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] @@ -745,7 +745,7 @@ trial test_suite hello_world.py ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py:[LINENR]' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index b8182f5..2b8db62 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -222,7 +222,7 @@ if origin is None: name = '-' elif isinstance(origin, Origin): - name = origin.name() + name = origin.src() # only log ancestry when there is more than one if origin._parent is not None: deeper_origins = origin.ancestry_str() @@ -447,6 +447,12 @@ def name(self): return self._name or self.__class__.__name__ + def src(self): + '''subclasses may override this to provide more detailed source + information with the name, for a backtrace. For example, a line number + in a test script.''' + return self.name() + __str__ = name __repr__ = name @@ -476,7 +482,7 @@ return origins def ancestry_str(self): - return '?'.join([o.name() for o in self.ancestry()]) + return '?'.join([o.src() for o in self.ancestry()]) def highest_ancestor(self): if self._parent: diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index fd3ac04..896eb4c 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -102,11 +102,11 @@ for log_tgt in self.log_targets: log_tgt.remove() - def name(self): + def src(self): l = log.get_line_for_src(self.path) if l is not None: - return '%s:%s' % (self._name, l) - return super().name() + return '%s:%s' % (self.name(), l) + return self.name() def elapsed_time(self): 'time elapsed since test was started' -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21541 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: I0c4698fa2b3db3de777d8b6dcdcee84e433c62b7 Gerrit-Change-Number: 21541 Gerrit-PatchSet: 3 Gerrit-Owner: neels 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 Dec 10 23:42:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:08 +0000 Subject: Change in osmo-gsm-tester[master]: typo / newline in selftest log output In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21542 ) Change subject: typo / newline in selftest log output ...................................................................... typo / newline in selftest log output ...because it otherwise causes confusing selftest log changes in upcoming I0972c66b9165bd7f2b0b387e0335172849199193 Change-Id: I1eec31c5baba5ef33d0c8441b1e94a00d79af9bf --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suitedirB/suiteC/test_template_overlay.py M selftest/template_test/template_test.ok M selftest/template_test/template_test.py 4 files changed, 4 insertions(+), 6 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 2c49c19..caf5a5b 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -1003,8 +1003,7 @@ ---------------------------------------------- tst test_template_overlay.py:[LINENR]: - Testing: expect to fail on invalid templates overlay dir [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/nonexistent-templatedir [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py] [testenv.py:[LINENR]] -tst test_template_overlay.py:[LINENR]: sucess: setting non-existing templates dir raised RuntimeError [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] -tst test_template_overlay.py:[LINENR]: [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +tst test_template_overlay.py:[LINENR]: success: setting non-existing templates dir raised RuntimeError [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/mytemplatedir [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py] [testenv.py:[LINENR]] --- ReservedResources: DBG: requesting use of ip_address {specifics={}} [resource.py:[LINENR]] tst suiteC: Using 1 x ip_address (candidates: 1) [resource.py:[LINENR]] diff --git a/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py b/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py index 2dd9378..7d35138 100644 --- a/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py +++ b/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py @@ -11,7 +11,7 @@ sys.stderr.write('Error: setting non-existing templates dir should raise RuntimeError\n') assert(False) except RuntimeError: - print('sucess: setting non-existing templates dir raised RuntimeError\n') + print('success: setting non-existing templates dir raised RuntimeError') pass mytemplatedir = os.path.join(os.path.dirname(__file__), 'mytemplatedir') diff --git a/selftest/template_test/template_test.ok b/selftest/template_test/template_test.ok index 718ef6e..39b0cd3 100644 --- a/selftest/template_test/template_test.ok +++ b/selftest/template_test/template_test.ok @@ -189,8 +189,7 @@ bind val_ip_address - Testing: expect to fail on invalid templates dir -sucess: setting non-existing templates dir raised RuntimeError - +success: setting non-existing templates dir raised RuntimeError - Testing: template directory overlay (still can find default one?) cnf Templates: DBG: rendering osmo-nitb.cfg.tmpl ! Configuration rendered by osmo-gsm-tester diff --git a/selftest/template_test/template_test.py b/selftest/template_test/template_test.py index 52976e5..9dc967f 100755 --- a/selftest/template_test/template_test.py +++ b/selftest/template_test/template_test.py @@ -89,7 +89,7 @@ assert(False) except RuntimeError: # not logging exception to omit non-constant path name from expected output - print('sucess: setting non-existing templates dir raised RuntimeError\n') + print('success: setting non-existing templates dir raised RuntimeError') pass mytemplatedir = os.path.join(os.path.dirname(__file__), 'mytemplatedir') -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21542 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: I1eec31c5baba5ef33d0c8441b1e94a00d79af9bf Gerrit-Change-Number: 21542 Gerrit-PatchSet: 3 Gerrit-Owner: neels 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 Dec 10 23:42:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:08 +0000 Subject: Change in osmo-gsm-tester[master]: do not redirect_stdout in test scripts In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21513 ) Change subject: do not redirect_stdout in test scripts ...................................................................... do not redirect_stdout in test scripts In a test, I called print() on a multi-line string and saw the log showing each line 0.2 seconds apart. redirect.stdout seems to be pretty inefficient. Instead, put a print() function into the testenv, to directly call log() on the strings passed to print(). The initial idea for redirect_stdout was that we could print() in any deeper functions called from a test script. But we have no such nested print() anywhere, only in test scripts themselves. As a result of this, a multi-line print() in test scripts now no longer puts the log prefix (timestamp, test name...) and suffix (backtrace / source position) to each single line, but prints the multiline block between a single log prefix and suffix -- exactly like the log() function does everywhere else. I actually briefly implemented adding the log prefix to each separate line everywhere, but decided that it is not a good idea: in some places we log config file snippets and other lists, and prepending the log prefix to each line makes pasting such a snippet from (say) a jenkins log super cumbersome. And the log prefix (backtrace) attached on each separate line makes multiline blocks very noisy, unreadable. Change-Id: I0972c66b9165bd7f2b0b387e0335172849199193 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 4 files changed, 24 insertions(+), 55 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index caf5a5b..3790e1a 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -161,9 +161,9 @@ ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: one +two +three [test_suite?hello_world.py:[LINENR]] tst hello_world.py:[LINENR] Test passed (N.N sec) [test_suite?hello_world.py] --------------------------------------------------------------------- trial test_suite PASS @@ -390,9 +390,9 @@ ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: one +two +three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR] Test passed (N.N sec) [test_suite?hello_world.py] [test.py:[LINENR]] --------------------------------------------------------------------- trial test_suite PASS @@ -545,9 +545,9 @@ ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: one +two +three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR] Test passed (N.N sec) [test_suite?hello_world.py] [test.py:[LINENR]] --------------------------------------------------------------------- trial test_suite PASS @@ -746,9 +746,9 @@ ---------------------------------------------- tst hello_world.py:[LINENR]: hello world [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: one [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: two [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] -tst hello_world.py:[LINENR]: three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] +tst hello_world.py:[LINENR]: one +two +three [test_suite?hello_world.py:[LINENR]] [hello_world.py:[LINENR]] tst hello_world.py:[LINENR] Test passed (N.N sec) [test_suite?hello_world.py] [test.py:[LINENR]] --------------------------------------------------------------------- trial test_suite PASS @@ -946,10 +946,10 @@ trial test_suite test_suite_params.py ---------------------------------------------- tst test_suite_params.py:[LINENR]: starting test [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] -tst test_suite_params.py:[LINENR]: SPECIFIC SUITE CONFIG: {'some_suite_global_param': 'heyho', [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] -tst test_suite_params.py:[LINENR]: 'test_suite_params': {'one_bool_parameter': 'true', [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] -tst test_suite_params.py:[LINENR]: 'second_list_parameter': ['23', '45']}, [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] -tst test_suite_params.py:[LINENR]: 'test_timeout': {'timeout': '1'}} [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] +tst test_suite_params.py:[LINENR]: SPECIFIC SUITE CONFIG: {'some_suite_global_param': 'heyho', + 'test_suite_params': {'one_bool_parameter': 'true', + 'second_list_parameter': ['23', '45']}, + 'test_timeout': {'timeout': '1'}} [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR]: SPECIFIC TEST CONFIG: {'one_bool_parameter': 'true', 'second_list_parameter': ['23', '45']} [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR] Test passed (N.N sec) [test_suite?test_suite_params.py] [test.py:[LINENR]] diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index 2b8db62..7a13bdd 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -21,7 +21,6 @@ import sys import time import traceback -import contextlib import atexit from datetime import datetime # we need this for strftime as the one from time doesn't carry microsecond info from inspect import getframeinfo, stack @@ -466,9 +465,6 @@ def _set_log_category(self, category): self._log_category = category - def redirect_stdout(self): - return contextlib.redirect_stdout(SafeRedirectStdout(self)) - def ancestry(self): origins = [] n = 10 @@ -501,37 +497,6 @@ '''same as log.err() but passes this object to skip looking up an origin''' err(*messages, _origin=self, _src=_src, **named_items) -class SafeRedirectStdout: - ''' - To be able to use 'print' in test scripts, this is used to redirect stdout - to a test class' log() function. However, it turns out doing that breaks - python debugger sessions -- it uses extended features of stdout, and will - fail dismally if it finds this wrapper in sys.stdout. Luckily, overriding - __getattr__() to return the original sys.__stdout__ attributes for anything - else than write() makes the debugger session work nicely again! - ''' - _log_line_buf = None - - def __init__(self, origin): - self.origin = origin - - def write(self, message): - lines = message.splitlines() - if not lines: - return - if self._log_line_buf: - lines[0] = self._log_line_buf + lines[0] - self._log_line_buf = None - if not message.endswith('\n'): - self._log_line_buf = lines[-1] - lines = lines[:-1] - for line in lines: - _log(messages=(line,), - origin=self.origin, level=L_LOG, src=2) - - def __getattr__(self, name): - return sys.__stdout__.__getattribute__(name) - def trace(exc_info=None, origin=None): if exc_info is None: exc_info = sys.exc_info() diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 896eb4c..cf910ea 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -71,9 +71,8 @@ self.status = Test.UNKNOWN self.start_timestamp = time.time() testenv_obj = testenv.setup(self.suite_run, self) - with self.redirect_stdout(): - util.run_python_file('%s.%s' % (self.suite_run.definition.name(), self.basename), - self.path) + util.run_python_file('%s.%s' % (self.suite_run.definition.name(), self.basename), + self.path) if self.status == Test.UNKNOWN: self.set_pass() except Exception as e: diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index ebc8f91..b3db84f 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -43,6 +43,7 @@ Sms = None process = None tenv = None +print = None class Timeout(Exception): pass @@ -351,12 +352,15 @@ self.log('using BVCI', bvci) return bvci + def print(self, *messages, **named_items): + log_module.log(*messages, _origin=self.test(), _src=3, **named_items) + def setup(suite_run, _test): from .core.event_loop import MainLoop from .obj.sms import Sms as Sms_class - global test, log, dbg, err, wait, wait_no_raise, sleep, poll, prompt, Sms, process, tenv + global test, log, dbg, err, wait, wait_no_raise, sleep, poll, prompt, Sms, process, tenv, print test = _test log = test.log @@ -370,6 +374,7 @@ Sms = Sms_class process = process_module prompt = tenv.prompt + print = tenv.print return tenv # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21513 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: I0972c66b9165bd7f2b0b387e0335172849199193 Gerrit-Change-Number: 21513 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:08 +0000 Subject: Change in osmo-gsm-tester[master]: log: process.py: fix weird space in stdout/stderr log output In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21514 ) Change subject: log: process.py: fix weird space in stdout/stderr log output ...................................................................... log: process.py: fix weird space in stdout/stderr log output Log output before: stdout: | line1 | line2 | line3 After: stdout: | line1 | line2 | line3 Change-Id: I4202e7dfbb550acaf55a6c6487fc07819ab18b94 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index bff8dba..9cde7de 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -291,13 +291,13 @@ m = self.get_stdout_tail(prefix='| ') if not m: return - self.log('stdout:\n', m, '\n') + self.log('stdout:', '\n' + m, '\n') def log_stderr_tail(self): m = self.get_stderr_tail(prefix='| ') if not m: return - self.log('stderr:\n', m, '\n') + self.log('stderr:', '\n' + m, '\n') def close_output_logs(self): for k, v in self.outputs.items(): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21514 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: I4202e7dfbb550acaf55a6c6487fc07819ab18b94 Gerrit-Change-Number: 21514 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:09 +0000 Subject: Change in osmo-gsm-tester[master]: implement test.get_log_output() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21515 ) Change subject: implement test.get_log_output() ...................................................................... implement test.get_log_output() Retrieve a test's own logging. The aim is to provide logging belonging to a given report fragment in the junit XML output, will be used by upcoming test.report_fragment() feature. Change-Id: Idfa0a45f3e6a18dd4fe692e81d732c70b5cffb76 --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py 2 files changed, 42 insertions(+), 0 deletions(-) diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index 7a13bdd..a573f05 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -264,6 +264,15 @@ lines.insert(0, '') self.log_write_func('\n'.join(lines)) + def get_mark(self): + # implemented in FileLogTarget + return 0 + + def get_output(self, since_mark=0): + # implemented in FileLogTarget + return '' + + def level_str(level): if level == L_TRACEBACK: return L_TRACEBACK @@ -569,6 +578,21 @@ def log_file_path(self): return self.path + def get_mark(self): + if self.path is None: + return 0 + # return current file length + with open(self.path, 'r') as logfile: + return logfile.seek(0, 2) + + def get_output(self, since_mark=0): + if self.path is None: + return '' + with open(self.path, 'r') as logfile: + if since_mark: + logfile.seek(since_mark) + return logfile.read() + def run_logging_exceptions(func, *func_args, return_on_failure=None, **func_kwargs): try: return func(*func_args, **func_kwargs) diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index cf910ea..ec85c45 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -165,4 +165,22 @@ else: return 'test log file not available' + def log_file(self): + for lt in self.log_targets: + if isinstance(lt, log.FileLogTarget): + return lt + return None + + def get_log_mark(self): + lt = self.log_file() + if lt is None: + return 0 + return lt.get_mark() + + def get_log_output(self, since_mark=0): + lt = self.log_file() + if lt is None: + return '' + return lt.get_output(since_mark) + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21515 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: Idfa0a45f3e6a18dd4fe692e81d732c70b5cffb76 Gerrit-Change-Number: 21515 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 23:42:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:09 +0000 Subject: Change in osmo-gsm-tester[master]: add test.report_fragment() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 ) Change subject: add test.report_fragment() ...................................................................... add test.report_fragment() Allow enriching the junit output with arbitrary subtasks within a test. The current aim is, for handover tests, to not just show that a test failed, but to show exactly which steps worked and which didn't, e.g.: handover.py/01_bts0_started PASSED handover.py/02.1_ms0_attach PASSED handover.py/02.2_ms1_attach PASSED handover.py/02.3_subscribed_in_msc PASSED handover.py/03_call_established PASSED handover.py/04.1_bts1_started FAILED In this case it is immediately obvious from looking at the jenkins results analyzer that bts1 is the cause of the test failure, and it is visible which parts of the test are flaky, over time. First user Will be the upcoming handover_2G suite, in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.ok.ign M selftest/suite_test/suite_test.py A selftest/suite_test/suitedirA/test_suite/test_report_fragment.py M src/osmo_gsm_tester/core/report.py M src/osmo_gsm_tester/core/test.py 6 files changed, 174 insertions(+), 12 deletions(-) diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 3790e1a..9f60b70 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -168,15 +168,67 @@ --------------------------------------------------------------------- trial test_suite PASS --------------------------------------------------------------------- -PASS: test_suite (pass: 1, skip: 7) +PASS: test_suite (pass: 1, skip: 8) pass: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py skip: test_error.py skip: test_fail.py skip: test_fail_raise.py + skip: test_report_fragment.py skip: test_suite_params.py skip: test_timeout.py +- run report fragment test + +--------------------------------------------------------------------- +trial test_suite +--------------------------------------------------------------------- + +---------------------------------------------- +trial test_suite test_report_fragment.py +---------------------------------------------- +tst test_report_fragment.py:[LINENR]: a step in the first fragment [test_suite?test_report_fragment.py:[LINENR]] +tst test_report_fragment.py:[LINENR]: ----- Report fragment: test_suite/test_report_fragment.py/fragment1: pass (N.Ns) [test_suite?test_report_fragment.py:[LINENR]] +tst test_report_fragment.py:[LINENR]: a step in the second fragment [test_suite?test_report_fragment.py:[LINENR]] +tst test_report_fragment.py:[LINENR]: ----- Report fragment: test_suite/test_report_fragment.py/fragment2: pass (N.Ns) [test_suite?test_report_fragment.py:[LINENR]] +tst test_report_fragment.py:[LINENR]: a step in the third fragment [test_suite?test_report_fragment.py:[LINENR]] +tst test_report_fragment.py:[LINENR]: ----- Report fragment: test_suite/test_report_fragment.py/fragment3: FAIL (N.Ns) [test_suite?test_report_fragment.py:[LINENR]] +tst test_report_fragment.py:[LINENR]: ERR: Exception: failure in the third fragment [test_suite?test_report_fragment.py:[LINENR]] +tst test_report_fragment.py:[LINENR]: Test FAILED (N.N sec) [test_suite?test_report_fragment.py:[LINENR]] +--------------------------------------------------------------------- +trial test_suite FAIL +--------------------------------------------------------------------- +FAIL: test_suite (fail: 1, skip: 8) + skip: hello_world.py (N.N sec) + skip: mo_mt_sms.py + skip: mo_sms.py + skip: test_error.py + skip: test_fail.py + skip: test_fail_raise.py + FAIL: test_report_fragment.py (N.N sec) Exception: failure in the third fragment + skip: test_suite_params.py + skip: test_timeout.py + + +################################### junit XML: + +---------------------------------------------- +trial test_suite hello_world.py +---------------------------------------------- +[TIMESTAMP] tst hello_world.py:[LINENR]: hello world +[TIMESTAMP] tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py' +[TIMESTAMP] tst hello_world.py:[LINENR]: one +two +three +[TIMESTAMP] tst hello_world.py:[LINENR] Test passed (N.N sec) +test log file not availabletest log file not availabletest log file not availabletest log file not availabletest log file not availablefailure in the third fragment[BACKTRACE] +raise Exception('failure in the third fragment') + +Exception: failure in the third fragment +test log file not availabletest log file not available +################################### + + - a test with an error @@ -193,13 +245,14 @@ --------------------------------------------------------------------- trial test_suite FAIL --------------------------------------------------------------------- -FAIL: test_suite (fail: 1, skip: 7) +FAIL: test_suite (fail: 1, skip: 8) skip: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py FAIL: test_error.py (N.N sec) AssertionError: test_error.py:[LINENR]: assert False skip: test_fail.py skip: test_fail_raise.py + skip: test_report_fragment.py (N.N sec) skip: test_suite_params.py skip: test_timeout.py @@ -218,13 +271,14 @@ --------------------------------------------------------------------- trial test_suite FAIL --------------------------------------------------------------------- -FAIL: test_suite (fail: 1, skip: 7) +FAIL: test_suite (fail: 1, skip: 8) skip: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py skip: test_error.py (N.N sec) FAIL: test_fail.py (N.N sec) EpicFail: This failure is expected skip: test_fail_raise.py + skip: test_report_fragment.py (N.N sec) skip: test_suite_params.py skip: test_timeout.py @@ -242,13 +296,14 @@ --------------------------------------------------------------------- trial test_suite FAIL --------------------------------------------------------------------- -FAIL: test_suite (fail: 1, skip: 7) +FAIL: test_suite (fail: 1, skip: 8) skip: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py skip: test_error.py (N.N sec) skip: test_fail.py (N.N sec) FAIL: test_fail_raise.py (N.N sec) ExpectedFail: This failure is expected + skip: test_report_fragment.py (N.N sec) skip: test_suite_params.py skip: test_timeout.py - test with half empty scenario @@ -397,13 +452,14 @@ --------------------------------------------------------------------- trial test_suite PASS --------------------------------------------------------------------- -PASS: test_suite (pass: 1, skip: 7) +PASS: test_suite (pass: 1, skip: 8) pass: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py skip: test_error.py skip: test_fail.py skip: test_fail_raise.py + skip: test_report_fragment.py skip: test_suite_params.py skip: test_timeout.py - test with scenario @@ -552,13 +608,14 @@ --------------------------------------------------------------------- trial test_suite PASS --------------------------------------------------------------------- -PASS: test_suite (pass: 1, skip: 7) +PASS: test_suite (pass: 1, skip: 8) pass: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py skip: test_error.py skip: test_fail.py skip: test_fail_raise.py + skip: test_report_fragment.py skip: test_suite_params.py skip: test_timeout.py - test with scenario and modifiers @@ -753,13 +810,14 @@ --------------------------------------------------------------------- trial test_suite PASS --------------------------------------------------------------------- -PASS: test_suite (pass: 1, skip: 7) +PASS: test_suite (pass: 1, skip: 8) pass: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py skip: test_error.py skip: test_fail.py skip: test_fail_raise.py + skip: test_report_fragment.py skip: test_suite_params.py skip: test_timeout.py - test with suite-specific config @@ -962,13 +1020,14 @@ --------------------------------------------------------------------- trial test_suite FAIL --------------------------------------------------------------------- -FAIL: test_suite (fail: 1, pass: 1, skip: 6) +FAIL: test_suite (fail: 1, pass: 1, skip: 7) skip: hello_world.py skip: mo_mt_sms.py skip: mo_sms.py skip: test_error.py skip: test_fail.py skip: test_fail_raise.py + skip: test_report_fragment.py pass: test_suite_params.py (N.N sec) FAIL: test_timeout.py (N.N sec) Error: test_timeout.py:[LINENR] Test Timeout triggered: 1 seconds elapsed [test_suite?test_timeout.py:[LINENR]?test_timeout.py] - test with template overlay diff --git a/selftest/suite_test/suite_test.ok.ign b/selftest/suite_test/suite_test.ok.ign index 460da92..d8f0224 100644 --- a/selftest/suite_test/suite_test.ok.ign +++ b/selftest/suite_test/suite_test.ok.ign @@ -1,6 +1,11 @@ /[^ ]*/selftest/ [PATH]/selftest/ \.py:[0-9]* .py:[LINENR] \([0-9.]+ sec\) (N.N sec) +\([0-9.]+s\) (N.Ns) {combining_scenarios='resources', scenario='foo'}:.* {combining_scenarios='resources', scenario='foo'}: [RESOURCE_DICT] test_suite-[0-9]*-[0-9]* test_suite-[ID_NUM]-[ID_NUM] suiteC-[0-9]*-[0-9]* suiteC-[ID_NUM]-[ID_NUM] +line [0-9]+ line [LINENR] +[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9]+ [TIMESTAMP] +time="[0-9]+" time="[VAL]" +timestamp="[^"]+" timestamp="[TIMESTAMP]" diff --git a/selftest/suite_test/suite_test.py b/selftest/suite_test/suite_test.py index 9708037..be4b3c4 100755 --- a/selftest/suite_test/suite_test.py +++ b/selftest/suite_test/suite_test.py @@ -3,6 +3,7 @@ import sys import _prep import shutil +import re from osmo_gsm_tester.core import log from osmo_gsm_tester.core import config from osmo_gsm_tester.core import util @@ -11,6 +12,8 @@ from osmo_gsm_tester.core import suite from osmo_gsm_tester.core.schema import generate_schemas, get_all_schema +import xml.etree.ElementTree as et + config.override_conf = os.path.join(os.path.dirname(sys.argv[0]), 'paths.conf') example_trial_dir = os.path.join('test_trial_tmp') @@ -51,6 +54,15 @@ results = s.run_tests('hello_world.py') print(report.suite_to_text(s)) +print('- run report fragment test') +results = s.run_tests('test_report_fragment.py') +print(report.suite_to_text(s)) +xml = et.tostring(report.suite_to_junit(s)).decode('utf-8') +xml = re.sub('Traceback.*raise', '[BACKTRACE]\nraise', xml, flags=re.M + re.DOTALL) +print('\n\n################################### junit XML:\n' + + xml + + '\n###################################\n\n') + log.style_change(src=True) #log.style_change(trace=True) print('\n- a test with an error') diff --git a/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py b/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py new file mode 100644 index 0000000..06ff37d --- /dev/null +++ b/selftest/suite_test/suitedirA/test_suite/test_report_fragment.py @@ -0,0 +1,11 @@ +from osmo_gsm_tester.testenv import * + +with test.report_fragment('fragment1'): + print('a step in the first fragment') + +with test.report_fragment('fragment2'): + print('a step in the second fragment') + +with test.report_fragment('fragment3'): + print('a step in the third fragment') + raise Exception('failure in the third fragment') diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index c3390fe..c5e185f 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -132,14 +132,37 @@ testsuite.set('time', str(math.ceil(suite.duration))) testsuite.set('tests', str(len(suite.tests))) passed, skipped, failed, errors = suite.count_test_results() - testsuite.set('errors', str(errors)) - testsuite.set('failures', str(failed)) - testsuite.set('skipped', str(skipped)) - testsuite.set('disabled', str(skipped)) for suite_test in suite.tests: testcase = test_to_junit(suite_test) testcase.set('classname', suite.name()) testsuite.append(testcase) + + for report_fragment in suite_test.report_fragments: + full_name = '%s/%s' % (suite_test.name(), report_fragment.name) + el = et.Element('testcase') + el.set('name', full_name) + el.set('time', str(math.ceil(report_fragment.duration))) + if report_fragment.result == test.Test.SKIP: + et.SubElement(el, 'skipped') + skipped += 1 + elif report_fragment.result == test.Test.FAIL: + failure = et.SubElement(el, 'failure') + failure.set('type', suite_test.fail_type or 'failure') + failed += 1 + elif report_fragment.result != test.Test.PASS: + error = et.SubElement(el, 'error') + error.text = 'could not run' + errors += 1 + + if report_fragment.output: + sout = et.SubElement(el, 'system-out') + sout.text = escape_xml_invalid_characters(report_fragment.output) + testsuite.append(el) + + testsuite.set('errors', str(errors)) + testsuite.set('failures', str(failed)) + testsuite.set('skipped', str(skipped)) + testsuite.set('disabled', str(skipped)) return testsuite def test_to_junit(t): diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index ec85c45..3f86c6d 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -43,6 +43,7 @@ self._config_test_specific = config_test_specific self.path = os.path.join(self.suite_run.definition.suite_dir, self.basename) self.status = Test.UNKNOWN + self.report_fragments = [] self.start_timestamp = 0 self.duration = 0 self.fail_type = None @@ -183,4 +184,55 @@ return '' return lt.get_output(since_mark) + def report_fragment(self, name, result=None, **kwargs): + return Test.ReportFragment(parent_test=self, name=name, result=result, **kwargs) + + class ReportFragment: + '''Add additional test results in junit XML. + Convenient method that includes a test log: + with test.report_fragment('foo'): + do_test_steps() + + Or manually add a report fragment directly: + test.report_fragment('foo', result = test.PASS if worked else test.FAIL) + ''' + + def __init__(self, parent_test, name, result=None, output=None, since_mark=None, start_time=0.0): + self.parent_test = parent_test + self.name = name + self.result = Test.UNKNOWN + self.duration = 0.0 + self.output = output + self.start_time = start_time + self.log_mark = since_mark + assert name not in (x.name for x in self.parent_test.report_fragments) + self.parent_test.report_fragments.append(self) + if result is not None: + self.got_result(result) + + def __str__(self): + return '%s/%s/%s: %s (%.1fs)' % (self.parent_test.suite_run.name(), + self.parent_test.name(), self.name, self.result, self.duration) + + def __enter__(self): + self.start_time = self.parent_test.elapsed_time() + self.log_mark = self.parent_test.get_log_mark() + + def __exit__(self, *exc_info): + self.got_result(self.parent_test.PASS if exc_info[0] is None else self.parent_test.FAIL, + exc_info=exc_info) + + def got_result(self, result, exc_info=None): + self.result = result + self.duration = self.parent_test.elapsed_time() - self.start_time + if self.log_mark is not None and self.output is None: + self.output = self.parent_test.get_log_output(since_mark=self.log_mark) + if exc_info is not None and exc_info[0] is not None: + o = [] + if self.output: + o.append(self.output) + o.extend(traceback.format_exception(*exc_info)) + self.output = '\n'.join(o) + self.parent_test.log('----- Report fragment:', self) + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21516 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: I4ca9100b6f8db24d1f7e0a09b3b7ba88b8ae3b59 Gerrit-Change-Number: 21516 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:09 +0000 Subject: Change in osmo-gsm-tester[master]: report fragment: strip ansi colors from junit XML In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21517 ) Change subject: report fragment: strip ansi colors from junit XML ...................................................................... report fragment: strip ansi colors from junit XML Jenkins does support showing ANSI colors on the web, but apparently not in the junit results output. Strip ansi colors from report fragment text, to make it less annoying to read those on jenkins. Change-Id: I656ecc23bbfd3f25bdf012c890e0c998168844d3 --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/report.py 2 files changed, 6 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index a573f05..f7c210a 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -22,6 +22,7 @@ import time import traceback import atexit +import re from datetime import datetime # we need this for strftime as the one from time doesn't carry microsecond info from inspect import getframeinfo, stack diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index c5e185f..476fa0b 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -41,11 +41,15 @@ invalid_xml_char_ranges_str = ['%s-%s' % (chr(low), chr(high)) for (low, high) in invalid_xml_char_ranges] invalid_xml_char_ranges_regex = re.compile('[%s]' % ''.join(invalid_xml_char_ranges_str)) +ansi_color_re = re.compile('\033[0-9;]{1,4}m') def escape_xml_invalid_characters(str): replacement_char = '\uFFFD' # Unicode replacement character return invalid_xml_char_ranges_regex.sub(replacement_char, escape(str)) +def strip_ansi_colors(text): + return ''.join(ansi_color_re.split(text)) + def hash_info_to_junit(testsuite, hash_info): properties = et.SubElement(testsuite, 'properties') for key, val in hash_info.items(): @@ -156,7 +160,7 @@ if report_fragment.output: sout = et.SubElement(el, 'system-out') - sout.text = escape_xml_invalid_characters(report_fragment.output) + sout.text = escape_xml_invalid_characters(strip_ansi_colors(report_fragment.output)) testsuite.append(el) testsuite.set('errors', str(errors)) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21517 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: I656ecc23bbfd3f25bdf012c890e0c998168844d3 Gerrit-Change-Number: 21517 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:10 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: set socket timeout In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21518 ) Change subject: ctrl: set socket timeout ...................................................................... ctrl: set socket timeout The blocking CTRL socket must have a timeout. So far we have always been reading from the CTRL socket in a blocking way. So far we are always lucky that we are indeed getting a response to receive. Should the CTRL interface ever fail to answer, the tester would be stuck infinitely. Change-Id: I20091daf13981dc3d0d894af5a65c23f4db0471d --- M src/osmo_gsm_tester/obj/osmo_ctrl.py 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index 312e1e9..891cc48 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -55,6 +55,7 @@ self.sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sck.connect((self.host, self.port)) self.sck.setblocking(1) + self.sck.settimeout(10) def disconnect(self): self.dbg('Disconnecting') -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21518 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: I20091daf13981dc3d0d894af5a65c23f4db0471d Gerrit-Change-Number: 21518 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:11 +0000 Subject: Change in osmo-gsm-tester[master]: ctrl: increment message IDs for CTRL commands In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21519 ) Change subject: ctrl: increment message IDs for CTRL commands ...................................................................... ctrl: increment message IDs for CTRL commands Implicitly use distinct IDs for CTRL commands. This is a prerequisite for matching GET_REPLY IDs to GET IDs, to correctly handle CTRL responses without counting on being lucky. Rather use 'use_id' as var name instead of overloading the 'id' keyword. Change-Id: I698faa013eb14f88759685d50d925f5d82d80aa0 --- M src/osmo_gsm_tester/obj/osmo_ctrl.py 1 file changed, 16 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index 891cc48..c2dd7e3 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -33,6 +33,12 @@ self.host = host self.port = port self.sck = None + self._next_id = 0 + + def next_id(self): + ret = self._next_id + self._next_id += 1 + return ret def prefix_ipa_ctrl_header(self, data): if isinstance(data, str): @@ -72,13 +78,19 @@ self.dbg('Receiving', data=data) return data - def do_set(self, var, value, id=0): - setmsg = "SET %s %s %s" %(id, var, value) + def do_set(self, var, value, use_id=None): + if use_id is None: + use_id = self.next_id() + setmsg = "SET %s %s %s" %(use_id, var, value) self._send(setmsg) + return use_id - def do_get(self, var, id=0): - getmsg = "GET %s %s" %(id, var) + def do_get(self, var, use_id=None): + if use_id is None: + use_id = self.next_id() + getmsg = "GET %s %s" %(use_id, var) self._send(getmsg) + return use_id def __enter__(self): self.connect() -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21519 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: I698faa013eb14f88759685d50d925f5d82d80aa0 Gerrit-Change-Number: 21519 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:12 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:12 +0000 Subject: Change in osmo-gsm-tester[master]: OsmoCtrl cleanup: get_var(), set_var(), get_trap() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21564 ) Change subject: OsmoCtrl cleanup: get_var(), set_var(), get_trap() ...................................................................... OsmoCtrl cleanup: get_var(), set_var(), get_trap() CTRL interface interaction was mostly inherited from the first legacy implementation of osmo-gsm-tester, and it was a pain to look at from the start. Now, while I'm close to the topic, I want this to improve: Properly match a GET_REPLY/SET_REPLY to a sent GET/SET by the message ID. Completely drop the do_get() and do_set(), which were not useful for correct handling of the CTRL request and response messaging. The API to use by callers is set_var(), get_var()/get_int_var() and get_trap(). These call the internal _sendrecv() (or for TRAP only _recv()) functions. Make it so that tese work both on an already connected OsmoCtrl, as well as one that needs to establish a (short) connection, so that both are trivially possible: # one CTRL connection stays open with OsmoCtrl(...) as ctrl: ctrl.get_var('var1') ctrl.get_var('var2') ctrl.get_var('var3') and # get_var() opens a connection, does the GET and closes again OsmoCtrl(...).get_var('var1') Do away with doubling the instances OsmoCtrl and e.g. OsmoBscCtrl. Rather make OsmoBscCtrl a child class of OsmoCtrl, which means that we no longer have bsc.ctrl().ctrl(), just bsc.ctrl(). Have VERB_* constants instead of dup'd strings. Apply to / simplify all callers of OsmoCtrl. Some of these changes are similar to recently added OsmoVty. Change-Id: Id561e5a55d8057a997a8ec9e7fa6f94840194df1 --- M src/osmo_gsm_tester/obj/bsc_osmo.py M src/osmo_gsm_tester/obj/msc_osmo.py M src/osmo_gsm_tester/obj/nitb_osmo.py M src/osmo_gsm_tester/obj/osmo_ctrl.py 4 files changed, 186 insertions(+), 127 deletions(-) diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index 158bf93..510063a 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -149,8 +149,10 @@ # over this list, we have a 1:1 match in indexes. return self.bts.index(bts) - def bts_is_connected(self, bts): - return OsmoBscCtrl(self).bts_is_connected(self.bts_num(bts)) + def bts_is_connected(self, bts, use_ctrl=None): + if use_ctrl is None: + use_ctrl = self.ctrl() + return use_ctrl.bts_is_connected(self.bts_num(bts)) def running(self): return not self.process.terminated() @@ -160,32 +162,16 @@ self.vty.disconnect() self.vty = None -class OsmoBscCtrl(log.Origin): - PORT = 4249 - BTS_OML_STATE_VAR = "bts.%d.oml-connection-state" - BTS_OML_STATE_RE = re.compile("GET_REPLY (\d+) bts.\d+.oml-connection-state (?P\w+)") - - def __init__(self, bsc): - self.bsc = bsc - super().__init__(log.C_BUS, 'CTRL(%s:%d)' % (self.bsc.addr(), OsmoBscCtrl.PORT)) - def ctrl(self): - return osmo_ctrl.OsmoCtrl(self.bsc.addr(), OsmoBscCtrl.PORT) + return OsmoBscCtrl(self) + +class OsmoBscCtrl(osmo_ctrl.OsmoCtrl): + def __init__(self, bsc, port=4249): + self.bsc = bsc + super().__init__(bsc.addr(), port) def bts_is_connected(self, bts_num): - with self.ctrl() as ctrl: - ctrl.do_get(OsmoBscCtrl.BTS_OML_STATE_VAR % bts_num) - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - res = OsmoBscCtrl.BTS_OML_STATE_RE.match(answer_str) - if res: - oml_state = str(res.group('oml_state')) - if oml_state == 'connected': - return True - return False + return self.get_var('bts.%d.oml-connection-state' % bts_num) == 'connected' class OsmoBscVty(osmo_vty.OsmoVty): def __init__(self, bsc, port=4242): diff --git a/src/osmo_gsm_tester/obj/msc_osmo.py b/src/osmo_gsm_tester/obj/msc_osmo.py index 67e1d31..5a7c0ba 100644 --- a/src/osmo_gsm_tester/obj/msc_osmo.py +++ b/src/osmo_gsm_tester/obj/msc_osmo.py @@ -157,29 +157,12 @@ return not self.process.terminated() -class OsmoMscCtrl(log.Origin): - PORT = 4255 - SUBSCR_LIST_ACTIVE_VAR = 'subscriber-list-active-v1' - - def __init__(self, msc): +class OsmoMscCtrl(osmo_ctrl.OsmoCtrl): + def __init__(self, msc, port=4255): self.msc = msc - super().__init__(log.C_BUS, 'CTRL(%s:%d)' % (self.msc.addr(), self.PORT)) - - def ctrl(self): - return osmo_ctrl.OsmoCtrl(self.msc.addr(), self.PORT) + super().__init__(self.msc.addr(), port) def subscriber_list_active(self): - aslist_str = "" - with self.ctrl() as ctrl: - ctrl.do_get(self.SUBSCR_LIST_ACTIVE_VAR) - # This is legacy code from the old osmo-gsm-tester. - # looks like this doesn't work for long data. - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - aslist_str = answer_str - return aslist_str + return self.get_var('subscriber-list-active-v1').replace('\n', ' ') # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/nitb_osmo.py b/src/osmo_gsm_tester/obj/nitb_osmo.py index a424927..ea00a75 100644 --- a/src/osmo_gsm_tester/obj/nitb_osmo.py +++ b/src/osmo_gsm_tester/obj/nitb_osmo.py @@ -158,22 +158,10 @@ return not self.process.terminated() -class OsmoNitbCtrl(log.Origin): - PORT = 4249 - SUBSCR_MODIFY_VAR = 'subscriber-modify-v1' - SUBSCR_MODIFY_REPLY_RE = re.compile("SET_REPLY (\d+) %s OK" % SUBSCR_MODIFY_VAR) - SUBSCR_DELETE_VAR = 'subscriber-delete-v1' - SUBSCR_DELETE_REPLY_RE = re.compile("SET_REPLY (\d+) %s Removed" % SUBSCR_DELETE_VAR) - SUBSCR_LIST_ACTIVE_VAR = 'subscriber-list-active-v1' - BTS_OML_STATE_VAR = "bts.%d.oml-connection-state" - BTS_OML_STATE_RE = re.compile("GET_REPLY (\d+) bts.\d+.oml-connection-state (?P\w+)") - - def __init__(self, nitb): +class OsmoNitbCtrl(osmo_ctrl.OsmoCtrl): + def __init__(self, nitb, port=4249): self.nitb = nitb - super().__init__(log.C_BUS, 'CTRL(%s:%d)' % (self.nitb.addr(), OsmoNitbCtrl.PORT)) - - def ctrl(self): - return osmo_ctrl.OsmoCtrl(self.nitb.addr(), OsmoNitbCtrl.PORT) + super().__init__(nitb.addr(), port) def subscriber_add(self, imsi, msisdn, ki=None, algo=None): if algo: @@ -181,54 +169,17 @@ else: value = '%s,%s' % (imsi, msisdn) - with self.ctrl() as ctrl: - ctrl.do_set(OsmoNitbCtrl.SUBSCR_MODIFY_VAR, value) - data = ctrl.receive() - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - res = OsmoNitbCtrl.SUBSCR_MODIFY_REPLY_RE.match(answer_str) - if not res: - raise RuntimeError('Cannot create subscriber %r (answer=%r)' % (imsi, answer_str)) - self.dbg('Created subscriber', imsi=imsi, msisdn=msisdn) + assert self.set_var('subscriber-modify-v1', value) == 'OK' + self.dbg('Created subscriber', imsi=imsi, msisdn=msisdn) def subscriber_delete(self, imsi): - with self.ctrl() as ctrl: - ctrl.do_set(OsmoNitbCtrl.SUBSCR_DELETE_VAR, imsi) - data = ctrl.receive() - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - res = OsmoNitbCtrl.SUBSCR_DELETE_REPLY_RE.match(answer_str) - if not res: - raise RuntimeError('Cannot delete subscriber %r (answer=%r)' % (imsi, answer_str)) - self.dbg('Deleted subscriber', imsi=imsi) + assert self.set_var('subscriber-delete-v1', imsi) == 'Removed' + self.dbg('Deleted subscriber', imsi=imsi) def subscriber_list_active(self): - aslist_str = "" - with self.ctrl() as ctrl: - ctrl.do_get(OsmoNitbCtrl.SUBSCR_LIST_ACTIVE_VAR) - # This is legacy code from the old osmo-gsm-tester. - # looks like this doesn't work for long data. - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - aslist_str = answer_str - return aslist_str + return self.get_var('subscriber-list-active-v1').replace('\n', ' ') def bts_is_connected(self, bts_num): - with self.ctrl() as ctrl: - ctrl.do_get(OsmoNitbCtrl.BTS_OML_STATE_VAR % bts_num) - data = ctrl.receive() - while (len(data) > 0): - (answer, data) = ctrl.remove_ipa_ctrl_header(data) - answer_str = answer.decode('utf-8') - answer_str = answer_str.replace('\n', ' ') - res = OsmoNitbCtrl.BTS_OML_STATE_RE.match(answer_str) - if res: - oml_state = str(res.group('oml_state')) - if oml_state == 'connected': - return True - return False + return self.get_var('bts.%d.oml-connection-state' % bts_num) == 'connected' # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index c2dd7e3..644025f 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -20,8 +20,20 @@ import socket import struct +import re from ..core import log +from ..core.event_loop import MainLoop + +VERB_SET = 'SET' +VERB_GET = 'GET' +VERB_SET_REPLY = 'SET_REPLY' +VERB_GET_REPLY = 'GET_REPLY' +VERB_TRAP = 'TRAP' +VERB_ERROR = 'ERROR' +RECV_VERBS = (VERB_GET_REPLY, VERB_SET_REPLY, VERB_TRAP, VERB_ERROR) +recv_re = re.compile('(%s) ([0-9]+) (.*)' % ('|'.join(RECV_VERBS)), + re.MULTILINE + re.DOTALL) class CtrlInterfaceExn(Exception): pass @@ -56,41 +68,168 @@ raise CtrlInterfaceExn("Wrong protocol in answer!") return data[4:plen+3], data[plen+3:] - def connect(self): - self.dbg('Connecting') - self.sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.sck.connect((self.host, self.port)) + def try_connect(self): + '''Do a connection attempt, return True when successful, False otherwise. + Does not raise exceptions, but logs them to the debug log.''' + assert self.sck is None + try: + self.dbg('Connecting') + sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + try: + sck.connect((self.host, self.port)) + except: + sck.close() + raise + # set self.sck only after the connect was successful + self.sck = sck + return True + except: + self.dbg('Failed to connect', sys.exc_info()[0]) + return False + + def connect(self, timeout=30): + '''Connect to the CTRL self.host and self.port, retry for 'timeout' seconds.''' + MainLoop.wait(self.try_connect, timestep=3, timeout=timeout) self.sck.setblocking(1) self.sck.settimeout(10) def disconnect(self): + if self.sck is None: + return self.dbg('Disconnecting') - if self.sck is not None: - self.sck.close() + self.sck.close() + self.sck = None - def _send(self, data): + def _recv(self, verbs, match_args=None, match_id=None, attempts=10, length=1024): + '''Receive until a response matching the verbs / args / msg-id is obtained from CTRL. + The general socket timeout applies for each attempt made, see connect(). + Multiple attempts may be necessary if, for example, intermediate + messages are received that do not relate to what is expected, like + TRAPs that are not interesting. + + To receive a GET_REPLY / SET_REPLY: + verb, rx_id, val = _recv(('GET_REPLY', 'ERROR'), match_id=used_id) + if verb == 'ERROR': + raise CtrlInterfaceExn() + print(val) + + To receive a TRAP: + verb, rx_id, val = _recv('TRAP', 'bts_connection_status connected') + # val == 'bts_connection_status connected' + + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + + # allow calling for both already connected VTY as well as establishing + # a connection just for this command. + if self.sck is None: + with self: + return self._recv(verbs, match_args=match_args, + match_id=match_id, attempts=attempts, length=length) + + if isinstance(verbs, str): + verbs = (verbs, ) + + for i in range(attempts): + data = self.sck.recv(length) + self.dbg('Receiving', data=data) + while len(data) > 0: + msg, data = self.remove_ipa_ctrl_header(data) + msg_str = msg.decode('utf-8') + + m = recv_re.fullmatch(msg_str) + if m is None: + raise CtrlInterfaceExn('Received garbage: %r' % data) + + rx_verb, rx_id, rx_args = m.groups() + rx_id = int(rx_id) + + if match_id is not None and match_id != rx_id: + continue + + if verbs and rx_verb not in verbs: + continue + + if match_args and not rx_args.startswith(match_args): + continue + + return rx_verb, rx_id, rx_args + raise CtrlInterfaceExn('No answer found: ' + reply_header) + + def _sendrecv(self, verb, send_args, *recv_args, use_id=None, **recv_kwargs): + '''Send a request and receive a matching response. + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + if self.sck is None: + with self: + return self._sendrecv(verb, send_args, *recv_args, use_id=use_id, **recv_kwargs) + + if use_id is None: + use_id = self.next_id() + + # send + data = '{verb} {use_id} {send_args}'.format(**locals()) self.dbg('Sending', data=data) data = self.prefix_ipa_ctrl_header(data) self.sck.send(data) - def receive(self, length = 1024): - data = self.sck.recv(length) - self.dbg('Receiving', data=data) - return data + # receive reply + recv_kwargs['match_id'] = use_id + return self._recv(*recv_args, **recv_kwargs) - def do_set(self, var, value, use_id=None): - if use_id is None: - use_id = self.next_id() - setmsg = "SET %s %s %s" %(use_id, var, value) - self._send(setmsg) - return use_id + def set_var(self, var, value): + '''Set the value of a specific variable on a CTRL interface, and return the response, e.g.: + assert set_var('subscriber-modify-v1', '901701234567,2342') == 'OK' + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + verb, rx_id, args = self._sendrecv(VERB_SET, '%s %s' % (var, value), (VERB_SET_REPLY, VERB_ERROR)) - def do_get(self, var, use_id=None): - if use_id is None: - use_id = self.next_id() - getmsg = "GET %s %s" %(use_id, var) - self._send(getmsg) - return use_id + if verb == VERB_ERROR: + raise CtrlInterfaceExn('SET %s = %s returned %r' % (var, value, ' '.join((verb, str(rx_id), args)))) + + var_and_space = var + ' ' + if not args.startswith(var_and_space): + raise CtrlInterfaceExn('SET %s = %s returned SET_REPLY for different var: %r' + % (var, value, ' '.join((verb, str(rx_id), args)))) + + return args[len(var_and_space):] + + def get_var(self, var): + '''Get the value of a specific variable from a CTRL interface: + assert get_var('bts.0.oml-connection-state') == 'connected' + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + verb, rx_id, args = self._sendrecv(VERB_GET, var, (VERB_GET_REPLY, VERB_ERROR)) + + if verb == VERB_ERROR: + raise CtrlInterfaceExn('GET %s returned %r' % (var, ' '.join((verb, str(rx_id), args)))) + + var_and_space = var + ' ' + if not args.startswith(var_and_space): + raise CtrlInterfaceExn('GET %s returned GET_REPLY for different var: %r' + % (var, value, ' '.join((verb, str(rx_id), args)))) + + return args[len(var_and_space):] + + def get_int_var(self, var): + '''Same as get_var() but return an int''' + return int(self.get_var(var)) + + def get_trap(self, name): + '''Read from CTRL until a TRAP of this name is received. + If name is None, any TRAP is returned. + If the CTRL is not connected yet, open and close a connection for + this operation only. + ''' + verb, rx_id, args = self._recv(VERB_TRAP, name) + name_and_space = var + ' ' + # _recv() should ensure this: + assert args.startswith(name_and_space) + return args[len(name_and_space):] def __enter__(self): self.connect() -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21564 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: Id561e5a55d8057a997a8ec9e7fa6f94840194df1 Gerrit-Change-Number: 21564 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Dec 10 23:42:12 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:12 +0000 Subject: Change in osmo-gsm-tester[master]: keep Ctrl connections open for bsc, msc and nitb objects In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21670 ) Change subject: keep Ctrl connections open for bsc, msc and nitb objects ...................................................................... keep Ctrl connections open for bsc, msc and nitb objects The pattern to use 'with' to keep a CTRL connection open adds indents to every test script that wants to avoid multiple reconnections to the CTRL. Instead, keeping a single open connection that is cleaned up on {bsc,msc,nitb} object cleanup ensures that a) the program started up successfully and opened a CTRL port, b) always has a CTRL open without having to worry about it and c) keeps test scripts less complex/indented/crufted. (These are all current users of the OsmoCtrl API.) Change-Id: I53fedbe569c5ccbc4b1a17dafe1f8d1bb8200b24 --- M src/osmo_gsm_tester/obj/bsc_osmo.py M src/osmo_gsm_tester/obj/msc_osmo.py M src/osmo_gsm_tester/obj/nitb_osmo.py M src/osmo_gsm_tester/testenv.py 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/osmo_gsm_tester/obj/bsc_osmo.py b/src/osmo_gsm_tester/obj/bsc_osmo.py index 510063a..877db29 100644 --- a/src/osmo_gsm_tester/obj/bsc_osmo.py +++ b/src/osmo_gsm_tester/obj/bsc_osmo.py @@ -50,6 +50,7 @@ self.mgw = mgw self.stp = stp self.vty = None + self.ctrl = None def start(self): self.log('Starting osmo-bsc') @@ -84,6 +85,9 @@ self.vty = OsmoBscVty(self) self.vty.connect() + self.ctrl = OsmoBscCtrl(self) + self.ctrl.connect() + def configure(self): self.config_file = self.run_dir.new_file('osmo-bsc.cfg') self.dbg(config_file=self.config_file) @@ -149,10 +153,8 @@ # over this list, we have a 1:1 match in indexes. return self.bts.index(bts) - def bts_is_connected(self, bts, use_ctrl=None): - if use_ctrl is None: - use_ctrl = self.ctrl() - return use_ctrl.bts_is_connected(self.bts_num(bts)) + def bts_is_connected(self, bts): + return self.ctrl.bts_is_connected(self.bts_num(bts)) def running(self): return not self.process.terminated() @@ -161,9 +163,9 @@ if self.vty is not None: self.vty.disconnect() self.vty = None - - def ctrl(self): - return OsmoBscCtrl(self) + if self.ctrl is not None: + self.ctrl.disconnect() + self.ctrl = None class OsmoBscCtrl(osmo_ctrl.OsmoCtrl): def __init__(self, bsc, port=4249): diff --git a/src/osmo_gsm_tester/obj/msc_osmo.py b/src/osmo_gsm_tester/obj/msc_osmo.py index 5a7c0ba..550fb87 100644 --- a/src/osmo_gsm_tester/obj/msc_osmo.py +++ b/src/osmo_gsm_tester/obj/msc_osmo.py @@ -49,6 +49,7 @@ self.mgw = mgw self.stp = stp self.smsc = smsc.Smsc((ip_address.get('addr'), 2775)) + self.ctrl = None def start(self): self.log('Starting osmo-msc') @@ -75,6 +76,9 @@ self.testenv.remember_to_stop(self.process) self.process.launch() + self.ctrl = OsmoMscCtrl(self) + self.ctrl.connect() + def configure(self): self.config_file = self.run_dir.new_file('osmo-msc.cfg') self.dbg(config_file=self.config_file) @@ -147,7 +151,7 @@ return all([(imsi in attached) for imsi in imsis]) def imsi_list_attached(self): - return OsmoMscCtrl(self).subscriber_list_active() + return self.ctrl.subscriber_list_active() def set_emergency_call_msisdn(self, msisdn): self.dbg('Setting Emergency Call MSISDN', msisdn=msisdn) @@ -156,6 +160,11 @@ def running(self): return not self.process.terminated() + def cleanup(self): + if self.ctrl is not None: + self.ctrl.disconnect() + self.ctrl = None + class OsmoMscCtrl(osmo_ctrl.OsmoCtrl): def __init__(self, msc, port=4255): diff --git a/src/osmo_gsm_tester/obj/nitb_osmo.py b/src/osmo_gsm_tester/obj/nitb_osmo.py index ea00a75..a978b71 100644 --- a/src/osmo_gsm_tester/obj/nitb_osmo.py +++ b/src/osmo_gsm_tester/obj/nitb_osmo.py @@ -36,6 +36,7 @@ self.ip_address = ip_address self.bts = [] self.smsc = smsc.Smsc((ip_address.get('addr'), 2775)) + self.ctrl = None def start(self): self.log('Starting osmo-nitb') @@ -62,6 +63,9 @@ self.testenv.remember_to_stop(self.process) self.process.launch() + self.ctrl = OsmoNitbCtrl(self) + self.ctrl.connect() + def configure(self): self.config_file = self.run_dir.new_file('osmo-nitb.cfg') self.dbg(config_file=self.config_file) @@ -134,11 +138,11 @@ raise log.Error("Auth algo %r selected and no KI specified" % algo) self.log('Add subscriber', msisdn=msisdn, imsi=modem.imsi()) - OsmoNitbCtrl(self).subscriber_add(modem.imsi(), msisdn, modem.ki(), algo) + return self.ctrl.subscriber_add(modem.imsi(), msisdn, modem.ki(), algo) def subscriber_delete(self, modem): self.log('Delete subscriber', imsi=modem.imsi()) - OsmoNitbCtrl(self).subscriber_delete(modem.imsi()) + return self.ctrl.subscriber_delete(modem.imsi()) def subscriber_attached(self, *modems): return self.imsi_attached(*[m.imsi() for m in modems]) @@ -149,14 +153,18 @@ return all([(imsi in attached) for imsi in imsis]) def imsi_list_attached(self): - return OsmoNitbCtrl(self).subscriber_list_active() + return self.ctrl.subscriber_list_active() def bts_is_connected(self, bts): - return OsmoNitbCtrl(self).bts_is_connected(self.bts_num(bts)) + return self.ctrl.bts_is_connected(self.bts_num(bts)) def running(self): return not self.process.terminated() + def cleanup(self): + if self.ctrl is not None: + self.ctrl.disconnect() + self.ctrl = None class OsmoNitbCtrl(osmo_ctrl.OsmoCtrl): def __init__(self, nitb, port=4249): diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index b3db84f..dc7aee0 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -194,7 +194,9 @@ from .obj.nitb_osmo import OsmoNitb if ip_address is None: ip_address = self.ip_address() - return OsmoNitb(self, ip_address) + nitb_obj = OsmoNitb(self, ip_address) + self.register_for_cleanup(nitb_obj) + return nitb_obj def hlr(self, ip_address=None): from .obj.hlr_osmo import OsmoHlr @@ -230,7 +232,9 @@ from .obj import msc_osmo if ip_address is None: ip_address = self.ip_address() - return msc_osmo.OsmoMsc(self, hlr, mgcpgw, stp, ip_address) + msc_obj = msc_osmo.OsmoMsc(self, hlr, mgcpgw, stp, ip_address) + self.register_for_cleanup(msc_obj) + return msc_obj def bsc(self, msc, mgw, stp, ip_address=None): from .obj.bsc_osmo import OsmoBsc -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21670 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: I53fedbe569c5ccbc4b1a17dafe1f8d1bb8200b24 Gerrit-Change-Number: 21670 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 23:42:14 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:14 +0000 Subject: Change in osmo-gsm-tester[master]: osmo_ctrl.py: add RateCounters In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21522 ) Change subject: osmo_ctrl.py: add RateCounters ...................................................................... osmo_ctrl.py: add RateCounters First user will be the upcoming handover_2G/handover.py test in I0b2671304165a1aaae2b386af46fbd8b098e3bd8. Change-Id: Id799b3bb81eb9c04d13c26ff611e40363920300e --- A selftest/rate_ctrs_test/_prep.py A selftest/rate_ctrs_test/rate_ctrs_test.err A selftest/rate_ctrs_test/rate_ctrs_test.ok A selftest/rate_ctrs_test/rate_ctrs_test.py M src/osmo_gsm_tester/obj/osmo_ctrl.py 5 files changed, 453 insertions(+), 0 deletions(-) diff --git a/selftest/rate_ctrs_test/_prep.py b/selftest/rate_ctrs_test/_prep.py new file mode 100644 index 0000000..773f190 --- /dev/null +++ b/selftest/rate_ctrs_test/_prep.py @@ -0,0 +1,16 @@ +import sys, os + +script_dir = sys.path[0] +top_dir = os.path.join(script_dir, '..', '..') +src_dir = os.path.join(top_dir, 'src') + +# to find the osmo_gsm_tester py module +sys.path.append(src_dir) + +from osmo_gsm_tester.core import log + +log.TestsTarget() +log.set_all_levels(log.L_DBG) + +if '-v' in sys.argv: + log.style_change(trace=True) diff --git a/selftest/rate_ctrs_test/rate_ctrs_test.err b/selftest/rate_ctrs_test/rate_ctrs_test.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/selftest/rate_ctrs_test/rate_ctrs_test.err diff --git a/selftest/rate_ctrs_test/rate_ctrs_test.ok b/selftest/rate_ctrs_test/rate_ctrs_test.ok new file mode 100644 index 0000000..489f58f --- /dev/null +++ b/selftest/rate_ctrs_test/rate_ctrs_test.ok @@ -0,0 +1,155 @@ +- empty RateCounters() +| +- initialized RateCounters, single var +| rate_ctr.abs.inst.0.var = 0 +- incremented inst.var +| rate_ctr.abs.inst.0.var = 1 +- incremented inst.var again +| rate_ctr.abs.inst.0.var = 2 +- incremented inst.var by 5 +| rate_ctr.abs.inst.0.var = 7 +- initialized RateCounters, two vars +| rate_ctr.abs.inst.0.foo = 0 +| rate_ctr.abs.inst.0.var = 0 +- incremented foo and var +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 1 +- incremented var again +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 2 +- incremented foo by 5 +| rate_ctr.abs.inst.0.foo = 6 +| rate_ctr.abs.inst.0.var = 2 +- initialized RateCounters, two vars, three instances +| rate_ctr.abs.inst.0.foo = 0 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 0 +| rate_ctr.abs.inst.1.var = 0 +| rate_ctr.abs.inst.2.foo = 0 +| rate_ctr.abs.inst.2.var = 0 +- incremented foo and var on separate instances +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 0 +| rate_ctr.abs.inst.1.var = 1 +| rate_ctr.abs.inst.2.foo = 0 +| rate_ctr.abs.inst.2.var = 0 +- incremented var on instance 2 +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 0 +| rate_ctr.abs.inst.1.var = 1 +| rate_ctr.abs.inst.2.foo = 0 +| rate_ctr.abs.inst.2.var = 1 +- incremented foo by 5 on instances 1,2 +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 5 +| rate_ctr.abs.inst.1.var = 1 +| rate_ctr.abs.inst.2.foo = 5 +| rate_ctr.abs.inst.2.var = 1 +- copy +| rate_ctr.abs.inst.0.foo = 1 +| rate_ctr.abs.inst.0.var = 0 +| rate_ctr.abs.inst.1.foo = 5 +| rate_ctr.abs.inst.1.var = 1 +| rate_ctr.abs.inst.2.foo = 5 +| rate_ctr.abs.inst.2.var = 1 +- increment two vars by 100 on all three instances +| rate_ctr.abs.inst.0.foo = 101 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +- subtract original copy +| rate_ctr.abs.inst.0.foo = 100 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 100 +| rate_ctr.abs.inst.1.var = 100 +| rate_ctr.abs.inst.2.foo = 100 +| rate_ctr.abs.inst.2.var = 100 +- add original copy +| rate_ctr.abs.inst.0.foo = 101 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +- increment types per_hour, per_day by 23 +| rate_ctr.abs.inst.0.foo = 101 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +| rate_ctr.per_day.inst.0.foo = 23 +| rate_ctr.per_day.inst.0.moo = 23 +| rate_ctr.per_day.inst.0.var = 23 +| rate_ctr.per_day.inst.1.foo = 23 +| rate_ctr.per_day.inst.1.moo = 23 +| rate_ctr.per_day.inst.1.var = 23 +| rate_ctr.per_day.inst.2.foo = 23 +| rate_ctr.per_day.inst.2.moo = 23 +| rate_ctr.per_day.inst.2.var = 23 +| rate_ctr.per_hour.inst.0.foo = 23 +| rate_ctr.per_hour.inst.0.moo = 23 +| rate_ctr.per_hour.inst.0.var = 23 +| rate_ctr.per_hour.inst.1.foo = 23 +| rate_ctr.per_hour.inst.1.moo = 23 +| rate_ctr.per_hour.inst.1.var = 23 +| rate_ctr.per_hour.inst.2.foo = 23 +| rate_ctr.per_hour.inst.2.moo = 23 +| rate_ctr.per_hour.inst.2.var = 23 +- copy +| rate_ctr.abs.inst.0.foo = 101 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +| rate_ctr.per_day.inst.0.foo = 23 +| rate_ctr.per_day.inst.0.moo = 23 +| rate_ctr.per_day.inst.0.var = 23 +| rate_ctr.per_day.inst.1.foo = 23 +| rate_ctr.per_day.inst.1.moo = 23 +| rate_ctr.per_day.inst.1.var = 23 +| rate_ctr.per_day.inst.2.foo = 23 +| rate_ctr.per_day.inst.2.moo = 23 +| rate_ctr.per_day.inst.2.var = 23 +| rate_ctr.per_hour.inst.0.foo = 23 +| rate_ctr.per_hour.inst.0.moo = 23 +| rate_ctr.per_hour.inst.0.var = 23 +| rate_ctr.per_hour.inst.1.foo = 23 +| rate_ctr.per_hour.inst.1.moo = 23 +| rate_ctr.per_hour.inst.1.var = 23 +| rate_ctr.per_hour.inst.2.foo = 23 +| rate_ctr.per_hour.inst.2.moo = 23 +| rate_ctr.per_hour.inst.2.var = 23 +- match? True +- increment foo +| rate_ctr.abs.inst.0.foo = 102 +| rate_ctr.abs.inst.0.var = 100 +| rate_ctr.abs.inst.1.foo = 105 +| rate_ctr.abs.inst.1.var = 101 +| rate_ctr.abs.inst.2.foo = 105 +| rate_ctr.abs.inst.2.var = 101 +| rate_ctr.per_day.inst.0.foo = 23 +| rate_ctr.per_day.inst.0.moo = 23 +| rate_ctr.per_day.inst.0.var = 23 +| rate_ctr.per_day.inst.1.foo = 23 +| rate_ctr.per_day.inst.1.moo = 23 +| rate_ctr.per_day.inst.1.var = 23 +| rate_ctr.per_day.inst.2.foo = 23 +| rate_ctr.per_day.inst.2.moo = 23 +| rate_ctr.per_day.inst.2.var = 23 +| rate_ctr.per_hour.inst.0.foo = 23 +| rate_ctr.per_hour.inst.0.moo = 23 +| rate_ctr.per_hour.inst.0.var = 23 +| rate_ctr.per_hour.inst.1.foo = 23 +| rate_ctr.per_hour.inst.1.moo = 23 +| rate_ctr.per_hour.inst.1.var = 23 +| rate_ctr.per_hour.inst.2.foo = 23 +| rate_ctr.per_hour.inst.2.moo = 23 +| rate_ctr.per_hour.inst.2.var = 23 +- match? False diff --git a/selftest/rate_ctrs_test/rate_ctrs_test.py b/selftest/rate_ctrs_test/rate_ctrs_test.py new file mode 100755 index 0000000..935bd9d --- /dev/null +++ b/selftest/rate_ctrs_test/rate_ctrs_test.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +import _prep + +from osmo_gsm_tester.obj.osmo_ctrl import * + +rc = RateCounters() +print('- empty RateCounters()' + rc.str()) + +rc = RateCounters('inst', 'var') +print('- initialized RateCounters, single var' + rc.str()) +rc.inc('inst', 'var') +print('- incremented inst.var' + rc.str()) +rc.inc('inst', 'var') +print('- incremented inst.var again' + rc.str()) +rc.inc('inst', 'var', 5) +print('- incremented inst.var by 5' + rc.str()) + +rc = RateCounters('inst', ('foo', 'var')) +print('- initialized RateCounters, two vars' + rc.str()) +rc.inc('inst', ('foo', 'var')) +print('- incremented foo and var' + rc.str()) +rc.inc('inst', 'var') +print('- incremented var again' + rc.str()) +rc.inc('inst', 'foo', 5) +print('- incremented foo by 5' + rc.str()) + +rc = RateCounters('inst', ('foo', 'var'), instances=range(3)) +print('- initialized RateCounters, two vars, three instances' + rc.str()) +rc.inc('inst', 'foo', instances=0) +rc.inc('inst', 'var', instances=1) +print('- incremented foo and var on separate instances' + rc.str()) +rc.inc('inst', 'var', instances=2) +print('- incremented var on instance 2' + rc.str()) +rc.inc('inst', 'foo', 5, instances=(1,2)) +print('- incremented foo by 5 on instances 1,2' + rc.str()) + +rc_rel = rc.copy() +print('- copy' + rc_rel.str()) +rc.inc('inst', ('foo', 'var'), 100, instances=range(3)) +print('- increment two vars by 100 on all three instances' + rc.str()) +rc.subtract(rc_rel) +print('- subtract original copy' + rc.str()) +rc.add(rc_rel) +print('- add original copy' + rc.str()) + +rc.inc('inst', ('foo', 'var', 'moo'), 23, instances=range(3), kinds=('per_hour', 'per_day')) +print('- increment types per_hour, per_day by 23' + rc.str()) + +rc2 = rc.copy() +print('- copy' + rc2.str()) +print('- match? ', (rc == rc2)) +rc2.inc('inst', 'foo') +print('- increment foo' + rc2.str()) +print('- match? ', (rc == rc2)) + +# vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index 644025f..6c4ac87 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -238,4 +238,230 @@ def __exit__(self, *exc_info): self.disconnect() +class RateCountersExn(log.Error): + pass + +class RateCounters(dict): + '''Usage example: + counter_names = ( + 'handover:completed', + 'handover:stopped', + 'handover:no_channel', + 'handover:timeout', + 'handover:failed', + 'handover:error', + ) + + # initialize the listing of CTRL vars of the counters to watch. + # First on the 'bsc' node: + # rate_ctr.abs.bsc.0.handover:completed + # rate_ctr.abs.bsc.0.handover:stopped + # ... + counters = RateCounters('bsc', counter_names, from_ctrl=bsc.ctrl) + + # And also add counters for two 'bts' instances: + # rate_ctr.abs.bts.0.handover:completed + # rate_ctr.abs.bts.0.handover:stopped + # ... + # rate_ctr.abs.bts.1.handover:completed + # ... + counters.add(RateCounters('bts', counter_names, instances=(0, 1))) + + # read initial counter values, from the bsc_ctrl, as set in + # counters.from_ctrl in the RateCounters() constructor above. + counters.read() + + # Do some actions that should increment counters in the SUT + do_a_handover() + + if approach_without_wait: + # increment the counters as expected + counters.inc('bts', 'handover:completed') + + # read counters from CTRL again, and fail if they differ + counters.verify() + + if approach_with_wait: + # you can wait for counters to change. counters.changed() does not + # modify counters' values, just reads values from CTRL and stores + # the changes in counters.diff. + wait(counters.changed, timeout=20) + + # log which counters changed by how much, found in counters.diff + # after each counters.changed() call: + print(counters.diff.str(skip_zero_vals=True)) + + if check_all_vals: + # Assert all values: + expected_diff = counters.copy().clear() + expected_diff.inc('bts', 'handover:completed', instances=(0, 1)) + counters.diff.expect(expected_diff) + else: + # Assert only some specific counters: + expected_diff = RateCounters() + expected_diff.inc('bts', 'handover:completed', instances=(0, 1)) + counters.diff.expect(expected_diff) + + # update counters to the last read values if desired + counters.add(counters.diff) + ''' + + def __init__(self, instance_names=(), counter_names=(), instances=0, kinds='abs', init_val=0, from_ctrl=None): + def init_cb(var): + self[var] = init_val + RateCounters.for_each(init_cb, instance_names, counter_names, instances, kinds, results=False) + self.from_ctrl = from_ctrl + self.diff = None + + @staticmethod + def for_each(callback_func, instance_names, counter_names, instances=0, kinds='abs', results=True): + '''Call callback_func for a set of rate counter var names, mostly + called by more convenient functions. See inc() for a comprehensive + explanation. + ''' + if type(instance_names) is str: + instance_names = (instance_names, ) + if type(counter_names) is str: + counter_names = (counter_names, ) + if type(kinds) is str: + kinds = (kinds, ) + if type(instances) is int: + instances = (instances, ) + if results is True: + results = RateCounters() + elif results is False: + results = None + for instance_name in instance_names: + for instance_nr in instances: + for counter_name in counter_names: + for kind in kinds: + var = 'rate_ctr.{kind}.{instance_name}.{instance_nr}.{counter_name}'.format(**locals()) + result = callback_func(var) + if results is not None: + results[var] = result + return results + + def __str__(self): + return self.str(', ', '') + + def str(self, sep='\n| ', prefix='\n| ', vals=None, skip_zero_vals=False): + '''The 'vals' arg is useful to print a plain dict() of counter values like a RateCounters class. + By default print self.''' + if vals is None: + vals = self + return prefix + sep.join('%s = %d' % (var, val) for var, val in sorted(vals.items()) + if (not skip_zero_vals) or (val != 0)) + + def inc(self, instance_names, counter_names, inc=1, instances=0, kinds='abs'): + '''Increment a set of counters. + inc('xyz', 'val') --> rate_ctr.abs.xyz.0.val += 1 + + inc('xyz', ('foo', 'bar')) --> rate_ctr.abs.xyz.0.foo += 1 + rate_ctr.abs.xyz.0.bar += 1 + + inc(('xyz', 'pqr'), 'val') --> rate_ctr.abs.xyz.0.val += 1 + rate_ctr.abs.pqr.0.val += 1 + + inc('xyz', 'val', instances=range(3)) + --> rate_ctr.abs.xyz.0.val += 1 + rate_ctr.abs.xyz.1.val += 1 + rate_ctr.abs.xyz.2.val += 1 + ''' + def inc_cb(var): + val = self.get(var, 0) + val += inc + self[var] = val + return val + RateCounters.for_each(inc_cb, instance_names, counter_names, instances, kinds, results=False) + return self + + def add(self, rate_counters): + '''Add the given values up to the values in self. + rate_counters can be a RateCounters instance or a plain dict of CTRL + var as key and counter integer as value. + ''' + for var, add_val in rate_counters.items(): + val = self.get(var, 0) + val += add_val + self[var] = val + return self + + def subtract(self, rate_counters): + '''Same as add(), but subtract values from self instead. + Useful to verify counters relative to an arbitrary reference.''' + for var, subtract_val in rate_counters.items(): + val = self.get(var, 0) + val -= subtract_val + self[var] = val + return self + + + def clear(self, val=0): + '''Set all counts to 0 (or a specific value)''' + for var in self.keys(): + self[var] = val + return self + + def copy(self): + '''Return a copy of all keys and values stored in self.''' + cpy = RateCounters(from_ctrl = self.from_ctrl) + cpy.update(self) + return cpy + + def read(self): + '''Read all counters from the CTRL connection passed to RateCounters(from_ctrl=x). + The CTRL must be connected, e.g. + with bsc.ctrl() as ctrl: + counters = RateCounters(ctrl) + counters.read() + ''' + for var in self.keys(): + self[var] = self.from_ctrl.get_int_var(var) + self.from_ctrl.dbg('Read counters:', self.str()) + return self + + def verify(self): + '''Read counters from CTRL and assert that they match the current counts''' + got_vals = self.copy() + got_vals.read() + got_vals.expect(self) + + def changed(self): + '''Read counters from CTRL, and return True if anyone is different now. + Store the difference in counts in self.diff (replace self.diff for + each changed() call). The counts in self are never modified.''' + self.diff = None + got_vals = self.copy() + got_vals.read() + if self != got_vals: + self.diff = got_vals + self.diff.subtract(self) + self.from_ctrl.dbg('Changed counters:', self.diff.str(skip_zero_vals=True)) + return True + return False + + def expect(self, expect_vals): + '''Iterate expect_vals and fail if any counter value differs from self. + expect_vals can be a RateCounters instance or a plain dict of CTRL + var as key and counter integer as value. + ''' + ok = 0 + errs = [] + for var, expect_val in expect_vals.items(): + got_val = self.get(var) + if got_val is None: + errs.append('expected {var} == {expect_val}, but no such value found'.format(**locals())) + continue + if got_val != expect_val: + errs.append('expected {var} == {expect_val}, but is {got_val}'.format(**locals())) + continue + ok += 1 + if errs: + self.from_ctrl.dbg('Expected rate counters:', self.str(vals=expect_vals)) + self.from_ctrl.dbg('Got rate counters:', self.str()) + raise RateCountersExn('%d of %d rate counters mismatch:' % (len(errs), len(errs) + ok), '\n| ' + '\n| '.join(errs)) + else: + self.from_ctrl.log('Verified %d rate counters' % ok) + self.from_ctrl.dbg('Verified %d rate counters:' % ok, expect_vals) + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21522 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: Id799b3bb81eb9c04d13c26ff611e40363920300e Gerrit-Change-Number: 21522 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:14 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:14 +0000 Subject: Change in osmo-gsm-tester[master]: add handover_2G suite, with handover.py test In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 ) Change subject: add handover_2G suite, with handover.py test ...................................................................... add handover_2G suite, with handover.py test Via VTY, handover two lchans of a voice call from bts0 to bts1 and back. New scenarios/bts1-* allow selecting various types for bts1, complementing the already existing files for selecting bts0. Change-Id: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 --- M src/osmo_gsm_tester/testenv.py A sysmocom/handover-suites.conf A sysmocom/scenarios/bts1-nanobts.conf A sysmocom/scenarios/bts1-oc2g.conf A sysmocom/scenarios/bts1-octphy.conf A sysmocom/scenarios/bts1-sysmo.conf A sysmocom/scenarios/bts1-trx-b200.conf A sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf A sysmocom/scenarios/bts1-trx-lms.conf A sysmocom/scenarios/bts1-trx-sysmocell5000.conf A sysmocom/scenarios/bts1-trx-umtrx.conf A sysmocom/suites/handover_2G/handover.py A sysmocom/suites/handover_2G/suite.conf 13 files changed, 309 insertions(+), 0 deletions(-) diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index dc7aee0..e1d3a0a 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -31,6 +31,7 @@ from .core import resource from .core.event_loop import MainLoop +test = None suite = None log = None dbg = None diff --git a/sysmocom/handover-suites.conf b/sysmocom/handover-suites.conf new file mode 100644 index 0000000..623bbfb --- /dev/null +++ b/sysmocom/handover-suites.conf @@ -0,0 +1,36 @@ +- handover_2G:nanobts+bts1-oc2g +- handover_2G:nanobts+bts1-octphy +- handover_2G:nanobts+bts1-trx-lms +- handover_2G:nanobts+bts1-trx-lms-limenet-micro +- handover_2G:nanobts+bts1-trx-sysmocell5000 +- handover_2G:nanobts+bts1-sysmo +- handover_2G:nanobts+bts1-trx-b200 +- handover_2G:nanobts+bts1-trx-umtrx +- handover_2G:oc2g+bts1-octphy +- handover_2G:oc2g+bts1-trx-lms +- handover_2G:oc2g+bts1-trx-lms-limenet-micro +- handover_2G:oc2g+bts1-trx-sysmocell5000 +- handover_2G:oc2g+bts1-sysmo +- handover_2G:oc2g+bts1-trx-b200 +- handover_2G:oc2g+bts1-trx-umtrx +- handover_2G:octphy+bts1-trx-lms +- handover_2G:octphy+bts1-trx-lms-limenet-micro +- handover_2G:octphy+bts1-trx-sysmocell5000 +- handover_2G:octphy+bts1-sysmo +- handover_2G:octphy+bts1-trx-b200 +- handover_2G:octphy+bts1-trx-umtrx +- handover_2G:trx-lms+bts1-trx-lms-limenet-micro +- handover_2G:trx-lms+bts1-trx-sysmocell5000 +- handover_2G:trx-lms+bts1-sysmo +- handover_2G:trx-lms+bts1-trx-b200 +- handover_2G:trx-lms+bts1-trx-umtrx +- handover_2G:trx-lms-limenet-micro+bts1-trx-sysmocell5000 +- handover_2G:trx-lms-limenet-micro+bts1-sysmo +- handover_2G:trx-lms-limenet-micro+bts1-trx-b200 +- handover_2G:trx-lms-limenet-micro+bts1-trx-umtrx +- handover_2G:trx-sysmocell5000+bts1-sysmo +- handover_2G:trx-sysmocell5000+bts1-trx-b200 +- handover_2G:trx-sysmocell5000+bts1-trx-umtrx +- handover_2G:sysmo+bts1-trx-b200 +- handover_2G:sysmo+bts1-trx-umtrx +- handover_2G:trx-b200+bts1-trx-umtrx diff --git a/sysmocom/scenarios/bts1-nanobts.conf b/sysmocom/scenarios/bts1-nanobts.conf new file mode 100644 index 0000000..2425b7f --- /dev/null +++ b/sysmocom/scenarios/bts1-nanobts.conf @@ -0,0 +1,4 @@ +resources: + bts: + - {} + - type: nanobts diff --git a/sysmocom/scenarios/bts1-oc2g.conf b/sysmocom/scenarios/bts1-oc2g.conf new file mode 100644 index 0000000..ff45d8e --- /dev/null +++ b/sysmocom/scenarios/bts1-oc2g.conf @@ -0,0 +1,4 @@ +resources: + bts: + - {} + - type: osmo-bts-oc2g diff --git a/sysmocom/scenarios/bts1-octphy.conf b/sysmocom/scenarios/bts1-octphy.conf new file mode 100644 index 0000000..2eb51d1 --- /dev/null +++ b/sysmocom/scenarios/bts1-octphy.conf @@ -0,0 +1,4 @@ +resources: + bts: + - {} + - type: osmo-bts-octphy diff --git a/sysmocom/scenarios/bts1-sysmo.conf b/sysmocom/scenarios/bts1-sysmo.conf new file mode 100644 index 0000000..fa466a8 --- /dev/null +++ b/sysmocom/scenarios/bts1-sysmo.conf @@ -0,0 +1,4 @@ +resources: + bts: + - {} + - type: osmo-bts-sysmo diff --git a/sysmocom/scenarios/bts1-trx-b200.conf b/sysmocom/scenarios/bts1-trx-b200.conf new file mode 100644 index 0000000..9927b88 --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-b200.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: Ettus B200 + type: osmo-bts-trx diff --git a/sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf b/sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf new file mode 100644 index 0000000..e0536ec --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-lms-limenet-micro.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: LimeNET-Micro + type: osmo-bts-trx diff --git a/sysmocom/scenarios/bts1-trx-lms.conf b/sysmocom/scenarios/bts1-trx-lms.conf new file mode 100644 index 0000000..df644c0 --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-lms.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: LimeSDR-USB + type: osmo-bts-trx diff --git a/sysmocom/scenarios/bts1-trx-sysmocell5000.conf b/sysmocom/scenarios/bts1-trx-sysmocell5000.conf new file mode 100644 index 0000000..d5d3069 --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-sysmocell5000.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: sysmoCell 5000 + type: osmo-bts-trx diff --git a/sysmocom/scenarios/bts1-trx-umtrx.conf b/sysmocom/scenarios/bts1-trx-umtrx.conf new file mode 100644 index 0000000..e8504bf --- /dev/null +++ b/sysmocom/scenarios/bts1-trx-umtrx.conf @@ -0,0 +1,5 @@ +resources: + bts: + - {} + - label: UmTRX + type: osmo-bts-trx diff --git a/sysmocom/suites/handover_2G/handover.py b/sysmocom/suites/handover_2G/handover.py new file mode 100755 index 0000000..a65b56f --- /dev/null +++ b/sysmocom/suites/handover_2G/handover.py @@ -0,0 +1,222 @@ +#!/usr/bin/env python3 +from osmo_gsm_tester.testenv import * +from osmo_gsm_tester.obj.osmo_ctrl import * + +hlr = tenv.hlr() +bts0 = tenv.bts() +bts1 = tenv.bts() +mgw_msc = tenv.mgw() +mgw_bsc = tenv.mgw() +stp = tenv.stp() +msc = tenv.msc(hlr, mgw_msc, stp) +bsc = tenv.bsc(msc, mgw_bsc, stp) +ms0 = tenv.modem() +ms1 = tenv.modem() + +hlr.start() +stp.start() +msc.start() +mgw_msc.start() +mgw_bsc.start() +bsc.bts_add(bts0) +bsc.bts_add(bts1) +bsc.start() + +# prevent handovers from measurement reports, enable handover so that +# triggering handover from VTY works. +bsc.vty.cmds( + 'enable', + 'configure terminal', + 'network', + 'handover algorithm 2', + 'handover2 min rxlev -110', + 'handover2 min rxqual 7', + 'handover2 power budget hysteresis 999', + 'handover 1', + 'end') +# now back on the 'enable' node. + +# first start only the first BTS, to make sure both modems subscribe there +with test.report_fragment('01_bts0_started'): + bts0.start() + wait(bsc.bts_is_connected, bts0) + +hlr.subscriber_add(ms0) +hlr.subscriber_add(ms1) + +ms0.connect(msc.mcc_mnc()) +ms1.connect(msc.mcc_mnc()) + +ms0.log_info() +ms1.log_info() + +print('waiting for modems to attach...') + +with test.report_fragment('02.1_ms0_attach'): + wait(ms0.is_registered, msc.mcc_mnc()) + +with test.report_fragment('02.2_ms1_attach'): + wait(ms1.is_registered, msc.mcc_mnc()) + +with test.report_fragment('02.3_subscribed_in_msc'): + wait(msc.subscriber_attached, ms0, ms1) + +assert len(ms0.call_id_list()) == 0 and len(ms1.call_id_list()) == 0 +mo_cid = ms0.call_dial(ms1) +mt_cid = ms1.call_wait_incoming(ms0) +print('dial success') + +with test.report_fragment('03_call_established'): + assert not ms0.call_is_active(mo_cid) and not ms1.call_is_active(mt_cid) + ms1.call_answer(mt_cid) + wait(ms0.call_is_active, mo_cid) + wait(ms1.call_is_active, mt_cid) + print('answer success, call established and ongoing') + + assert bsc.vty.active_lchans_match( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED')) + +# call is connected; start up the second BTS so that we can trigger a handover to it +with test.report_fragment('04.1_bts1_started'): + bts1.start() + wait(bsc.bts_is_connected, bts1) + +print('wait a bit for modems to see bts1') +sleep(10.0) +# TODO evaluate measurement reports instead? + +counter_names = ( + 'handover:completed', + 'handover:stopped', + 'handover:no_channel', + 'handover:timeout', + 'handover:failed', + 'handover:error', + ) +counters = RateCounters('bsc', counter_names, from_ctrl=bsc.ctrl) +counters.add(RateCounters('bts', counter_names, instances=(0, 1))) + +def do_handover(initial_lchans, target_lchan, vty_cmd, final_lchans, attempts=5): + worked = False + while (attempts > 0) and (not worked): + # make sure the call is still active as expected + assert bsc.vty.active_lchans_match(**initial_lchans) + # make sure the handover target lchan is unused (maybe waiting after previous error) + wait(bsc.vty.active_lchans_match, **target_lchan, timeout=20) + + counters.read() + log_mark = bsc.process.get_output_mark('stderr') + + print('trigger handover: %s' % vty_cmd) + bsc.vty.cmd(vty_cmd) + + print('wait for handover counters to change...') + wait(counters.changed, timeout=20) + print(counters.diff.str(skip_zero_vals=True)) + + print('\n'+'\n'.join(bsc.process.grep_output('stderr', r'\bhandover\(|\bDCHAN\b', log_mark))) + + worked = bsc.vty.active_lchans_match(**final_lchans) + if not worked and attempts > 0: + attempts -= 1 + print('did not work, try again... (attempts left: %d)' % attempts) + return worked + + +with test.report_fragment('05.1_handover_ms0'): + assert do_handover( + initial_lchans=dict( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED'), + ), + target_lchan=dict( + not_expected=('1-0-2-0',), + ), + vty_cmd='bts 0 trx 0 timeslot 2 sub-slot 0 handover 1', + final_lchans=dict( + expected=('0-0-3-0 TCH/F ESTABLISHED', + '1-0-2-0 TCH/F ESTABLISHED',), + not_expected=('0-0-2-0 TCH/F ESTABLISHED',), + ), + ) + +with test.report_fragment('05.2_handover_ms1'): + assert do_handover( + initial_lchans=dict( + expected=('0-0-3-0 TCH/F ESTABLISHED', + '1-0-2-0 TCH/F ESTABLISHED'), + ), + target_lchan=dict( + not_expected=('1-0-3-0',), + ), + vty_cmd='bts 0 trx 0 timeslot 3 sub-slot 0 handover 1', + final_lchans=dict( + expected=('1-0-2-0 TCH/F ESTABLISHED', + '1-0-3-0 TCH/F ESTABLISHED',), + not_expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED',), + ), + ) + +with test.report_fragment('06_call_stable'): + print('expect the call to continue for a while, to ensure the new lchan is functional') + for i in range(5): + sleep(5) + assert bsc.vty.active_lchans_match( + expected=('1-0-2-0 TCH/F ESTABLISHED', + '1-0-3-0 TCH/F ESTABLISHED',)) + print('call is still fine') + +print('handover back (test the other BTS model)') + +with test.report_fragment('07.1_handover_ms1_back'): + assert do_handover( + initial_lchans=dict( + expected=('1-0-2-0 TCH/F ESTABLISHED', + '1-0-3-0 TCH/F ESTABLISHED'), + ), + target_lchan=dict( + not_expected=('0-0-2-0',), + ), + vty_cmd='bts 1 trx 0 timeslot 3 sub-slot 0 handover 0', + final_lchans=dict( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '1-0-2-0 TCH/F ESTABLISHED',), + not_expected=('1-0-3-0 TCH/F ESTABLISHED',), + ), + ) + +with test.report_fragment('07.2_handover_ms0_back'): + assert do_handover( + initial_lchans=dict( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '1-0-2-0 TCH/F ESTABLISHED'), + ), + target_lchan=dict( + not_expected=('0-0-3-0',), + ), + vty_cmd='bts 1 trx 0 timeslot 2 sub-slot 0 handover 0', + final_lchans=dict( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED',), + not_expected=('1-0-2-0 TCH/F ESTABLISHED', + '1-0-3-0 TCH/F ESTABLISHED',), + ), + ) + +with test.report_fragment('08_call_stable'): + print('expect the call to continue for a while, to ensure the new lchan is functional') + for i in range(5): + sleep(5) + assert bsc.vty.active_lchans_match( + expected=('0-0-2-0 TCH/F ESTABLISHED', + '0-0-3-0 TCH/F ESTABLISHED',)) + print('call is still fine') + +assert ms0.call_is_active(mo_cid) and ms1.call_is_active(mt_cid) +ms1.call_hangup(mt_cid) +wait(lambda: len(ms0.call_id_list()) == 0 and len(ms1.call_id_list()) == 0) +print('hangup success') + +# vim: tabstop=4 shiftwidth=4 expandtab diff --git a/sysmocom/suites/handover_2G/suite.conf b/sysmocom/suites/handover_2G/suite.conf new file mode 100644 index 0000000..00d3fca --- /dev/null +++ b/sysmocom/suites/handover_2G/suite.conf @@ -0,0 +1,9 @@ +resources: + ip_address: + - times: 6 # msc, bsc, hlr, stp, mgw*2 + bts: + - times: 2 + modem: + - times: 2 + features: + - voice -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21523 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: I0b2671304165a1aaae2b386af46fbd8b098e3bd8 Gerrit-Change-Number: 21523 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 10 23:42:14 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:14 +0000 Subject: Change in osmo-gsm-tester[master]: run handover_2G in default-suites.conf In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21524 ) Change subject: run handover_2G in default-suites.conf ...................................................................... run handover_2G in default-suites.conf Change-Id: Ic6bb013cc2c395211eeb86fe7a3d3f42671793c7 --- M sysmocom/default-suites.conf 1 file changed, 37 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/sysmocom/default-suites.conf b/sysmocom/default-suites.conf index b32d7b1..5ebd9d1 100644 --- a/sysmocom/default-suites.conf +++ b/sysmocom/default-suites.conf @@ -172,3 +172,40 @@ - encryption - 4g:srsenb-rftype at zmq+srsue-rftype@zmq + +- handover_2G:nanobts+bts1-oc2g +- handover_2G:nanobts+bts1-octphy +- handover_2G:nanobts+bts1-trx-lms +- handover_2G:nanobts+bts1-trx-lms-limenet-micro +- handover_2G:nanobts+bts1-trx-sysmocell5000 +- handover_2G:nanobts+bts1-sysmo +- handover_2G:nanobts+bts1-trx-b200 +- handover_2G:nanobts+bts1-trx-umtrx +- handover_2G:oc2g+bts1-octphy +- handover_2G:oc2g+bts1-trx-lms +- handover_2G:oc2g+bts1-trx-lms-limenet-micro +- handover_2G:oc2g+bts1-trx-sysmocell5000 +- handover_2G:oc2g+bts1-sysmo +- handover_2G:oc2g+bts1-trx-b200 +- handover_2G:oc2g+bts1-trx-umtrx +- handover_2G:octphy+bts1-trx-lms +- handover_2G:octphy+bts1-trx-lms-limenet-micro +- handover_2G:octphy+bts1-trx-sysmocell5000 +- handover_2G:octphy+bts1-sysmo +- handover_2G:octphy+bts1-trx-b200 +- handover_2G:octphy+bts1-trx-umtrx +- handover_2G:trx-lms+bts1-trx-lms-limenet-micro +- handover_2G:trx-lms+bts1-trx-sysmocell5000 +- handover_2G:trx-lms+bts1-sysmo +- handover_2G:trx-lms+bts1-trx-b200 +- handover_2G:trx-lms+bts1-trx-umtrx +- handover_2G:trx-lms-limenet-micro+bts1-trx-sysmocell5000 +- handover_2G:trx-lms-limenet-micro+bts1-sysmo +- handover_2G:trx-lms-limenet-micro+bts1-trx-b200 +- handover_2G:trx-lms-limenet-micro+bts1-trx-umtrx +- handover_2G:trx-sysmocell5000+bts1-sysmo +- handover_2G:trx-sysmocell5000+bts1-trx-b200 +- handover_2G:trx-sysmocell5000+bts1-trx-umtrx +- handover_2G:sysmo+bts1-trx-b200 +- handover_2G:sysmo+bts1-trx-umtrx +- handover_2G:trx-b200+bts1-trx-umtrx -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21524 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: Ic6bb013cc2c395211eeb86fe7a3d3f42671793c7 Gerrit-Change-Number: 21524 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 10 23:42:15 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:15 +0000 Subject: Change in osmo-gsm-tester[master]: process output: do not leak ANSI colors past logged stdout/stderr In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21565 ) Change subject: process output: do not leak ANSI colors past logged stdout/stderr ...................................................................... process output: do not leak ANSI colors past logged stdout/stderr In jenkins, I still saw incidents of the entire log becoming colored after a colored stderr snippet was printed to the log. Make absolutely sure that no unterminated ANSI coloring is leaked. Change-Id: Ib9ac1eea4a12d6d43ac8614491f016bbe9ca17b1 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 9cde7de..09dce55 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -338,7 +338,7 @@ with open(path, 'r') as f: if since_mark > 0: f.seek(since_mark) - return f.read() + return self.end_ansi_colors(f.read()) def get_output_file(self, which): ''' Return filename for given output ''' @@ -354,7 +354,7 @@ return None out = out.splitlines() tail = min(len(out), tail) - return prefix + ('\n' + prefix).join(out[-tail:]) + return prefix + self.end_ansi_colors(('\n' + prefix).join(out[-tail:])) def get_output_mark(self, which): '''Usage: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21565 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: Ib9ac1eea4a12d6d43ac8614491f016bbe9ca17b1 Gerrit-Change-Number: 21565 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Dec 10 23:42:16 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:16 +0000 Subject: Change in osmo-gsm-tester[master]: add option osmo-gsm-tester.py --suites-file my-suites-listing.conf In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21566 ) Change subject: add option osmo-gsm-tester.py --suites-file my-suites-listing.conf ...................................................................... add option osmo-gsm-tester.py --suites-file my-suites-listing.conf For example, run with '-S handover-suites.conf' to just do the handover tests. Change-Id: If896ac84d02a275deda2f20a93c29312df128ebb --- M src/osmo-gsm-tester.py 1 file changed, 11 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/src/osmo-gsm-tester.py b/src/osmo-gsm-tester.py index cfe55f6..15b1923 100755 --- a/src/osmo-gsm-tester.py +++ b/src/osmo-gsm-tester.py @@ -109,6 +109,11 @@ parser.add_argument('-s', '--suite-scenario', dest='suite_scenario', action='append', help='''A suite-scenarios combination like suite:scenario+scenario''') + parser.add_argument('-S', '--suites-file', dest='suites_file', action='append', + default=[], + help='''Read suites to run from a yml listing, +like default-suites.conf. The path is relative to +--conf-path.''') parser.add_argument('-t', '--test', dest='test', action='append', help='''Run only tests matching this name. Any test name that contains the given string is run. @@ -151,6 +156,12 @@ combination_strs = list(args.suite_scenario or []) + for suites_file in args.suites_file: + suites_file = config.main_config_path_to_abspath(suites_file) + from_this_file = config.read(suites_file) + print(('Running suites from %r:\n ' % suites_file) + ('\n '.join(from_this_file))) + combination_strs.extend(from_this_file) + if not combination_strs: combination_strs = config.read_config_file(config.CFG_DEFAULT_SUITES_CONF, if_missing_return=[]) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21566 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: If896ac84d02a275deda2f20a93c29312df128ebb Gerrit-Change-Number: 21566 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Dec 10 23:42:16 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 10 Dec 2020 23:42:16 +0000 Subject: Change in osmo-gsm-tester[master]: OsmoCtrl: use one global common counter for CTRL IDs In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21567 ) Change subject: OsmoCtrl: use one global common counter for CTRL IDs ...................................................................... OsmoCtrl: use one global common counter for CTRL IDs It is easier to traverse debugging logs if the CTRL request and response IDs are globally unique across all programs and tests. Before this, we were using 0 almost everywhere. (This is not strictly needed for correctness, since each CTRL client has its own request ID scope; just we open fairly many separate CTRL clients all the time in our tests.) Change-Id: I44c51f4fb5beb6cedf98ea0d6684a24c6aa418c7 --- M src/osmo_gsm_tester/obj/osmo_ctrl.py 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/osmo_ctrl.py b/src/osmo_gsm_tester/obj/osmo_ctrl.py index 6c4ac87..3098960 100644 --- a/src/osmo_gsm_tester/obj/osmo_ctrl.py +++ b/src/osmo_gsm_tester/obj/osmo_ctrl.py @@ -39,17 +39,17 @@ pass class OsmoCtrl(log.Origin): + _next_id = 1 def __init__(self, host, port): super().__init__(log.C_BUS, 'Ctrl', host=host, port=port) self.host = host self.port = port self.sck = None - self._next_id = 0 def next_id(self): - ret = self._next_id - self._next_id += 1 + ret = OsmoCtrl._next_id + OsmoCtrl._next_id += 1 return ret def prefix_ipa_ctrl_header(self, data): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21567 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: I44c51f4fb5beb6cedf98ea0d6684a24c6aa418c7 Gerrit-Change-Number: 21567 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Dec 11 02:02:33 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 11 Dec 2020 02:02:33 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd2d34dd18dc_700a2ae86a7625f03006be@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: [ 222s] [COMPILING apps/dfu/main.c] [ 222s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 222s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 222s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 223s] Memory region Used Size Region Size %age Used [ 223s] rom: 16580 B 16 KB 101.20% [ 223s] 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 [ 223s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 223s] /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' [ 223s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 223s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 223s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 223s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 223s] collect2: error: ld returned 1 exit status [ 223s] % [ 223s] make[2]: *** [Makefile:234: flash] Error 1 [ 223s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 223s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 223s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 223s] dh_auto_build: error: make -j1 returned exit code 2 [ 223s] make: *** [debian/rules:16: build] Error 25 [ 223s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 223s] ### VM INTERACTION START ### [ 226s] [ 208.845060] sysrq: Power Off [ 226s] [ 208.855865] reboot: Power down [ 226s] ### VM INTERACTION END ### [ 226s] [ 226s] lamb04 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 11 02:02:21 UTC 2020. [ 226s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 11 02:06:51 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 11 Dec 2020 02:06:51 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd2d457a752c_700a2ae86a7625f0301150@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: [ 117s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 117s] [COMPILING libboard/qmod/source/card_pres.c] [ 117s] [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] [ 118s] Memory region Used Size Region Size %age Used [ 118s] rom: 16588 B 16 KB 101.25% [ 118s] 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' [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 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] [ 110.075051] sysrq: Power Off [ 121s] [ 110.077999] reboot: Power down [ 121s] ### VM INTERACTION END ### [ 121s] [ 121s] sheep85 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 11 02:06:25 UTC 2020. [ 121s] -- 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 Dec 11 09:50:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 09:50:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21669 ) Change subject: sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1977302fef4868dc1c330bc6f48f6a6608949393 Gerrit-Change-Number: 21669 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 09:50: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 Dec 11 09:50:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 09:50:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21669 ) Change subject: sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port ...................................................................... sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port For 12+ days, suspend/resume related SGSN + PCU TTCN3 tets have been failing. It was the introduction of the BSSGP_CT:GLOBAL test port in I40d973d80709f5d56f59247e8647b52754f09bc8 + I805372f3024a0ec2491a24422e02c0bc6dc669d2 which caused the related PDUs now to no longer show up where they used to. Change-Id: I1977302fef4868dc1c330bc6f48f6a6608949393 Closes: OS#4902 --- M library/BSSGP_Emulation.ttcnpp M pcu/PCU_Tests.ttcn M pcu/SGSN_Components.ttcn M sgsn/SGSN_Tests.ttcn 4 files changed, 12 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 633eee2..5eef645 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -155,6 +155,7 @@ /* one port array for each client; allows talking to up to 3 BVC/Cell (handover, ...) */ port BSSGP_PT BSSGP[3]; /* PTP-BVC */ port BSSGP_PT BSSGP_SIG[3]; /* Signaling BVC */ + port BSSGP_PT BSSGP_GLOBAL[3]; /* Signaling BVC */ port BSSGP_PROC_PT BSSGP_PROC[3]; /* registration / deregistration */ }; diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index dad0873..0c56348 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -327,7 +327,7 @@ T.start(2.0); alt { - [] BSSGP_SIG[0].receive(tr_BSSGP_SUSPEND(tlli, mp_gb_cfg.bvc[0].cell_id.ra_id)) { + [] BSSGP_GLOBAL[0].receive(tr_BSSGP_SUSPEND(tlli, mp_gb_cfg.bvc[0].cell_id.ra_id)) { setverdict(pass); } [] T.timeout { diff --git a/pcu/SGSN_Components.ttcn b/pcu/SGSN_Components.ttcn index ca1dec6..18f3992 100644 --- a/pcu/SGSN_Components.ttcn +++ b/pcu/SGSN_Components.ttcn @@ -101,6 +101,7 @@ connect(self:BSSGP_PROC[i], vc_BVC:BSSGP_PROC); f_bssgp_client_register(mmctx.imsi, mmctx.tlli); } + connect(self:BSSGP_GLOBAL[0], bssgp_component:GLOBAL); } /* Establish BSSGP connection to PCU */ diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 0b298bb..8e7d6e4 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -480,14 +480,17 @@ connect(vc_conn:BSSGP[0], gb[0].vc_BSSGP_BVC[0]:BSSGP_SP); connect(vc_conn:BSSGP_SIG[0], gb[0].vc_BSSGP_BVC[0]:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[0], gb[0].vc_BSSGP_BVC[0]:BSSGP_PROC); + connect(vc_conn:BSSGP_GLOBAL[0], gb[0].vc_BSSGP:GLOBAL); connect(vc_conn:BSSGP[1], gb[1].vc_BSSGP_BVC[0]:BSSGP_SP); connect(vc_conn:BSSGP_SIG[1], gb[1].vc_BSSGP_BVC[0]:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[1], gb[1].vc_BSSGP_BVC[0]:BSSGP_PROC); + connect(vc_conn:BSSGP_GLOBAL[1], gb[1].vc_BSSGP:GLOBAL); connect(vc_conn:BSSGP[2], gb[2].vc_BSSGP_BVC[0]:BSSGP_SP); connect(vc_conn:BSSGP_SIG[2], gb[2].vc_BSSGP_BVC[0]:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[2], gb[2].vc_BSSGP_BVC[0]:BSSGP_PROC); + connect(vc_conn:BSSGP_GLOBAL[2], gb[2].vc_BSSGP:GLOBAL); /* FIXME: support multiple RNCs */ if (g_ranap_enable) { @@ -868,13 +871,13 @@ friend function f_bssgp_suspend(integer ran_idx := 0) runs on BSSGP_ConnHdlr return OCT1 { timer T := 5.0; var PDU_BSSGP rx_pdu; - BSSGP_SIG[ran_idx].send(ts_BSSGP_SUSPEND(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); + BSSGP_GLOBAL[ran_idx].send(ts_BSSGP_SUSPEND(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); T.start; alt { - [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { + [] BSSGP_GLOBAL[ran_idx].receive(tr_BSSGP_SUSPEND_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { return rx_pdu.pDU_BSSGP_SUSPEND_ACK.suspend_Reference_Number.suspend_Reference_Number_value; } - [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { + [] BSSGP_GLOBAL[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); mtc.stop; } @@ -888,11 +891,11 @@ friend function f_bssgp_resume(OCT1 susp_ref, integer ran_idx := 0) runs on BSSGP_ConnHdlr { timer T := 5.0; - BSSGP_SIG[ran_idx].send(ts_BSSGP_RESUME(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, susp_ref)); + BSSGP_GLOBAL[ran_idx].send(ts_BSSGP_RESUME(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, susp_ref)); T.start; alt { - [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); - [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, + [] BSSGP_GLOBAL[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); + [] BSSGP_GLOBAL[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) { setverdict(fail, "RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli); mtc.stop; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1977302fef4868dc1c330bc6f48f6a6608949393 Gerrit-Change-Number: 21669 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 Fri Dec 11 09:51:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 09:51:41 +0000 Subject: Change in osmo-sgsn[master]: gbproxy major rewrite for SGSN pool support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 ) Change subject: gbproxy major rewrite for SGSN pool support ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 Gerrit-Change-Number: 21612 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 11 Dec 2020 09:51: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 Dec 11 09:51:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 09:51:44 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21613 ) Change subject: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I13f3c9e69562a56ad7d3742fdeb2ba48f134fdaa Gerrit-Change-Number: 21613 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 11 Dec 2020 09: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 Fri Dec 11 09:51:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 09:51:47 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Introduce new DOBJ log category; log object allocation/release In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 ) Change subject: gbproxy: Introduce new DOBJ log category; log object allocation/release ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 Gerrit-Change-Number: 21614 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 11 Dec 2020 09:51: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 Dec 11 09:52:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 09:52:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix bvci check in gbprox_rx_ptp_from_* In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21663 ) Change subject: gbproxy: Fix bvci check in gbprox_rx_ptp_from_* ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I16a0284ba3201c146c307db6997a416589d7e693 Gerrit-Change-Number: 21663 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 11 Dec 2020 09: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 Fri Dec 11 09:52:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 09:52:10 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement handling of BVC Flow Control In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21616 ) Change subject: gbproxy: Implement handling of BVC Flow Control ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ib6495e5de4bfcf748a98e08743d1a8f2565f8b69 Gerrit-Change-Number: 21616 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 11 Dec 2020 09:52: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 Dec 11 10:00:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:00:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix log messages in timeout situations References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21671 ) Change subject: gbproxy: Fix log messages in timeout situations ...................................................................... gbproxy: Fix log messages in timeout situations Printing an unbound 'rx' variable when nothing was received due to timeout is somehow not really useful. Print what we expected to receive. Change-Id: I4fee89baa954736ae8298b63667297dd57d8ec4f --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/71/21671/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 655e396..2077e0f 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -765,7 +765,7 @@ mtc.stop; } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", rx); + setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); mtc.stop; } } @@ -788,7 +788,7 @@ mtc.stop; } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", rx); + setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); mtc.stop; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4fee89baa954736ae8298b63667297dd57d8ec4f Gerrit-Change-Number: 21671 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 Dec 11 10:00:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:00:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy major rewrite for SGSN pool support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 ) Change subject: gbproxy major rewrite for SGSN pool support ...................................................................... gbproxy major rewrite for SGSN pool support Rewrite of a large part of osmo-gbproxy in order to prepare for SGSN pool support. The amount of changes are of such fundamental nature that it doesn't make sense to try to split this into hundreds of individual changesets. Related: OS#4472 Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_ctrl.c M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/vty_test_runner.py 7 files changed, 868 insertions(+), 480 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve laforge: 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 ac03a11..e61b991 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -48,19 +49,43 @@ /* global gb-proxy configuration */ struct gbproxy_config { - /* parsed from config file */ - uint16_t nsip_sgsn_nsei; - /* NS instance of libosmogb */ struct gprs_ns2_inst *nsi; /* Linked list of all BSS side Gb peers */ DECLARE_HASHTABLE(bss_nses, 8); + /* hash table of all SGSN-side Gb peers */ + DECLARE_HASHTABLE(sgsn_nses, 8); + + /* hash table of all gbproxy_cell */ + DECLARE_HASHTABLE(cells, 8); + /* Counter */ struct rate_ctr_group *ctrg; }; +/* One Cell within the BSS: Links BSS-side BVC to SGSN-side BVCs */ +struct gbproxy_cell { + /* linked to gbproxy_config.cells hashtable */ + struct hlist_node list; + + /* point back to the config */ + struct gbproxy_config *cfg; + + /* BVCI of PTP BVCs associated to this cell */ + uint16_t bvci; + + /* Routing Area that this BVC is part of (raw 04.08 encoding) */ + uint8_t ra[6]; + + /* pointer to the BSS-side BVC */ + struct gbproxy_bvc *bss_bvc; + + /* pointers to SGSN-side BVC (one for each pool member) */ + struct gbproxy_bvc *sgsn_bvc[16]; +}; + /* One BVC inside an NSE */ struct gbproxy_bvc { /* linked to gbproxy_nse.bvcs */ @@ -75,11 +100,14 @@ /* Routing Area that this BVC is part of (raw 04.08 encoding) */ uint8_t ra[6]; - /* true if this BVC is blocked */ - bool blocked; - /* Counter */ struct rate_ctr_group *ctrg; + + /* the cell to which this BVC belongs */ + struct gbproxy_cell *cell; + + /* per-BVC FSM instance */ + struct osmo_fsm_inst *fi; }; /* one NS Entity that we interact with (BSS/PCU) */ @@ -93,19 +121,24 @@ /* NSEI of the NSE */ uint16_t nsei; + /* Are we facing towards a SGSN (true) or BSS (false) */ + bool sgsn_facing; + /* List of all BVCs in this NSE */ DECLARE_HASHTABLE(bvcs, 10); }; /* Convenience logging macros for NSE/BVC */ #define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ - LOGP(SUBSYS, LEVEL, "NSE(%05u/BSS) " FMT, (NSE)->nsei, ## ARGS) + LOGP(SUBSYS, LEVEL, "NSE(%05u/%s) " FMT, (NSE)->nsei, \ + (NSE)->sgsn_facing ? "SGSN" : "BSS", ## ARGS) #define LOGPNSE(NSE, LEVEL, FMT, ARGS...) \ LOGPNSE_CAT(NSE, DGPRS, LEVEL, FMT, ## ARGS) #define LOGPBVC_CAT(BVC, SUBSYS, LEVEL, FMT, ARGS...) \ - LOGP(SUBSYS, LEVEL, "NSE(%05u/BSS)-BVC(%05u/%s) " FMT, (BVC)->nse->nsei, (BVC)->bvci, \ - (BVC)->blocked ? "BLOCKED" : "UNBLOCKED", ## ARGS) + LOGP(SUBSYS, LEVEL, "NSE(%05u/%s)-BVC(%05u/%s) " FMT, (BVC)->nse->nsei, \ + (BVC)->nse->sgsn_facing ? "SGSN" : "BSS", (BVC)->bvci, \ + osmo_fsm_inst_state_name((BVC)->fi), ## ARGS) #define LOGPBVC(BVC, LEVEL, FMT, ARGS...) \ LOGPBVC_CAT(BVC, DGPRS, LEVEL, FMT, ## ARGS) @@ -133,21 +166,23 @@ void gbprox_reset(struct gbproxy_config *cfg); /* Peer handling */ -struct gbproxy_bvc *gbproxy_bvc_by_bvci( - struct gbproxy_config *cfg, uint16_t bvci); -struct gbproxy_bvc *gbproxy_bvc_by_nsei( - struct gbproxy_config *cfg, uint16_t nsei); -struct gbproxy_bvc *gbproxy_bvc_by_rai( - struct gbproxy_config *cfg, const uint8_t *ra); +#define NSE_F_SGSN 0x0001 +#define NSE_F_BSS 0x0002 + +struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_nse *nse, uint16_t bvci); struct gbproxy_bvc *gbproxy_bvc_alloc(struct gbproxy_nse *nse, uint16_t bvci); void gbproxy_bvc_free(struct gbproxy_bvc *bvc); -void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse); -int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci); +int gbproxy_cleanup_bvcs(struct gbproxy_nse *nse, uint16_t bvci); + +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); +void gbproxy_cell_free(struct gbproxy_cell *cell); +bool gbproxy_cell_add_sgsn_bvc(struct gbproxy_cell *cell, struct gbproxy_bvc *bvc); /* NSE handling */ -struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei); +struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing); void gbproxy_nse_free(struct gbproxy_nse *nse); -struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei); -struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei); +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); #endif diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index ecb74c0..a920906 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1,6 +1,6 @@ /* NS-over-IP proxy */ -/* (C) 2010 by Harald Welte +/* (C) 2010-2020 by Harald Welte * (C) 2010-2013 by On-Waves * (C) 2013 by Holger Hans Peter Freyther * All Rights Reserved @@ -41,6 +41,7 @@ #include #include #include +#include #include @@ -80,30 +81,8 @@ static int gbprox_relay2peer(struct msgb *old_msg, struct gbproxy_bvc *bvc, uint16_t ns_bvci); -static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, - uint16_t ns_bvci, uint16_t sgsn_nsei); -static int gbproxy_is_sgsn_nsei(struct gbproxy_config *cfg, uint16_t nsei) -{ - return nsei == cfg->nsip_sgsn_nsei; -} - -static int check_bvc_nsei(struct gbproxy_bvc *bvc, uint16_t nsei) -{ - OSMO_ASSERT(bvc); - OSMO_ASSERT(bvc->nse); - - if (bvc->nse->nsei != nsei) { - LOGPBVC(bvc, LOGL_NOTICE, "Peer entry doesn't match current NSEI " - "via NSE(%05u/BSS)\n", nsei); - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_INV_NSEI]); - return 0; - } - - return 1; -} - /* generate BVC-STATUS message with cause value derived from TLV-parser error */ static int tx_status_from_tlvp(enum osmo_tlv_parser_error tlv_p_err, struct msgb *orig_msg) { @@ -125,6 +104,7 @@ msgb_pull(msg, strip_len); } +#if 0 /* feed a message down the NS-VC associated with the specified bvc */ static int gbprox_relay2sgsn(struct gbproxy_config *cfg, struct msgb *old_msg, uint16_t ns_bvci, uint16_t sgsn_nsei) @@ -150,6 +130,7 @@ rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_TX_ERR_SGSN]); return rc; } +#endif /* feed a message down the NSE */ static int gbprox_relay2nse(struct msgb *old_msg, struct gbproxy_nse *nse, @@ -208,198 +189,456 @@ return rc; } -static int block_unblock_bvc(struct gbproxy_config *cfg, uint16_t ptp_bvci, uint8_t pdu_type) -{ - struct gbproxy_bvc *bvc; - - bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", - ptp_bvci); - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); - return -ENOENT; - } - - switch (pdu_type) { - case BSSGP_PDUT_BVC_BLOCK_ACK: - bvc->blocked = true; - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_BLOCKED]); - break; - case BSSGP_PDUT_BVC_UNBLOCK_ACK: - bvc->blocked = false; - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_UNBLOCKED]); - break; - default: - break; - } - return 0; -} - -/* Send a message to a bvc identified by ptp_bvci but using ns_bvci - * in the NS hdr */ -static int gbprox_relay2bvci(struct gbproxy_config *cfg, struct msgb *msg, uint16_t ptp_bvci, - uint16_t ns_bvci) -{ - struct gbproxy_bvc *bvc; - - bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_ERROR, "BVC(%05u/??) Cannot find BSS\n", - ptp_bvci); - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); - return -ENOENT; - } - - return gbprox_relay2peer(msg, bvc, ns_bvci); -} - int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { return 0; } + +/*********************************************************************** + * PTP BVC handling + ***********************************************************************/ + +/* route an uplink message on a PTP-BVC to a SGSN using the TLLI */ +static int gbprox_bss2sgsn_tlli(struct gbproxy_cell *cell, struct msgb *msg, uint32_t tlli, + bool sig_bvci) +{ + struct gbproxy_bvc *sgsn_bvc; + unsigned int i; + + /* FIXME: derive NRI from TLLI */ + /* FIXME: find the SGSN for that NRI */ + + /* HACK: we currently simply pick the first SGSN we find */ + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + sgsn_bvc = cell->sgsn_bvc[i]; + if (sgsn_bvc) + return gbprox_relay2peer(msg, sgsn_bvc, sig_bvci ? 0 : sgsn_bvc->bvci); + } + return 0; +} + +static int gbprox_bss2sgsn_null_nri(struct gbproxy_cell *cell, struct msgb *msg) +{ + struct gbproxy_bvc *sgsn_bvc; + unsigned int i; + + /* FIXME: find the SGSN for that NRI */ + + /* HACK: we currently simply pick the first SGSN we find */ + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + sgsn_bvc = cell->sgsn_bvc[i]; + if (sgsn_bvc) + return gbprox_relay2peer(msg, sgsn_bvc, sgsn_bvc->bvci); + } + return 0; +} + + /* Receive an incoming PTP message from a BSS-side NS-VC */ -static int gbprox_rx_ptp_from_bss(struct gbproxy_config *cfg, - struct msgb *msg, uint16_t nsei, - uint16_t ns_bvci) +static int gbprox_rx_ptp_from_bss(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - struct gbproxy_bvc *bvc; + const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); + struct gbproxy_bvc *bss_bvc; + struct tlv_parsed tp; + char log_pfx[32]; + uint32_t tlli; + int rc; + + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/BSS)-BVC(%05u/??)", nse->nsei, ns_bvci); + + LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); if (ns_bvci == 0 && ns_bvci == 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not PTP\n", nsei, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not PTP\n", log_pfx, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_PTP)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in PTP BVC\n", - nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in PTP BVC\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_UL)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in uplink direction\n", - nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in uplink direction\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_NOTICE, "BVC(%05u/??) Didn't find bvc " - "for PTP message from NSE(%05u/BSS), " - "discarding message\n", - ns_bvci, nsei); - return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, - &ns_bvci, msg); + bss_bvc = gbproxy_bvc_by_bvci(nse, ns_bvci); + if (!bss_bvc) { + LOGP(DGPRS, LOGL_NOTICE, "%s %s - Didn't find BVC for PTP message, discarding\n", + log_pfx, pdut_name); + return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &ns_bvci, msg); } - /* TODO: Should we discard this message if the check fails */ - check_bvc_nsei(bvc, nsei); + /* UL_UNITDATA has a different header than all other uplink PDUs */ + if (bgph->pdu_type == BSSGP_PDUT_UL_UNITDATA) { + const struct bssgp_ud_hdr *budh = (struct bssgp_ud_hdr *) msgb_bssgph(msg); + if (msgb_bssgp_len(msg) < sizeof(*budh)) + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, bgph->pdu_type, budh->data, + msgb_bssgp_len(msg) - sizeof(*budh), 0, 0, DGPRS, log_pfx); + /* populate TLLI from the fixed headser into the TLV-parsed array so later code + * doesn't have to worry where the TLLI came from */ + tp.lv[BSSGP_IE_TLLI].len = 4; + tp.lv[BSSGP_IE_TLLI].val = (const uint8_t *) &budh->tlli; + } else { + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, bgph->pdu_type, bgph->data, + msgb_bssgp_len(msg) - sizeof(*bgph), 0, 0, DGPRS, log_pfx); + } + if (rc < 0) { + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + return tx_status_from_tlvp(rc, msg); + } - return gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn_nsei); + switch (bgph->pdu_type) { + case BSSGP_PDUT_UL_UNITDATA: + case BSSGP_PDUT_RA_CAPA_UPDATE: + case BSSGP_PDUT_FLOW_CONTROL_MS: + case BSSGP_PDUT_DOWNLOAD_BSS_PFC: + case BSSGP_PDUT_CREATE_BSS_PFC_ACK: + case BSSGP_PDUT_CREATE_BSS_PFC_NACK: + case BSSGP_PDUT_MODIFY_BSS_PFC_ACK: + case BSSGP_PDUT_DELETE_BSS_PFC_ACK: + case BSSGP_PDUT_FLOW_CONTROL_PFC: + case BSSGP_PDUT_DELETE_BSS_PFC_REQ: + case BSSGP_PDUT_PS_HO_REQUIRED: + case BSSGP_PDUT_PS_HO_REQUEST_ACK: + case BSSGP_PDUT_PS_HO_REQUEST_NACK: + case BSSGP_PDUT_PS_HO_COMPLETE: + case BSSGP_PDUT_PS_HO_CANCEL: + /* We can route based on TLLI-NRI */ + tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + break; + case BSSGP_PDUT_RADIO_STATUS: + if (TLVP_PRESENT(&tp, BSSGP_IE_TLLI)) { + tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + } 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)); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + } else if (TLVP_PRESENT(&tp, BSSGP_IE_IMSI)) { + rc = gbprox_bss2sgsn_null_nri(bss_bvc->cell, msg); + } else + LOGPBVC(bss_bvc, LOGL_ERROR, "Rx RADIO-STATUS without any of the conditional IEs\n"); + 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); + break; + case BSSGP_PDUT_FLOW_CONTROL_BVC: + /* TODO: Implement via FSM */ + //rc = osmo_fsm_inst_dispatch(bss_bvc->fi, FIXME, &tp); + LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); + break; + case BSSGP_PDUT_STATUS: + /* TODO: Implement by inspecting the contained PDU */ + if (!TLVP_PRESENT(&tp, BSSGP_IE_PDU_IN_ERROR)) + break; + LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); + break; + } + + return 0; } /* Receive an incoming PTP message from a SGSN-side NS-VC */ -static int gbprox_rx_ptp_from_sgsn(struct gbproxy_config *cfg, - struct msgb *msg, uint16_t nsei, - uint16_t ns_bvci) +static int gbprox_rx_ptp_from_sgsn(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - struct gbproxy_bvc *bvc; + const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); + struct gbproxy_bvc *sgsn_bvc, *bss_bvc; + char log_pfx[32]; + + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)-BVC(%05u/??)", nse->nsei, ns_bvci); + + LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); if (ns_bvci == 0 && ns_bvci == 1) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) BVCI=%05u is not PTP\n", nsei, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s BVCI is not PTP\n", log_pfx); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_PTP)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in PTP BVC\n", - nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in PTP BVC\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(bgph->pdu_type) & BSSGP_PDUF_DL)) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/%05u) %s not allowed in downlink direction\n", - nsei, ns_bvci, osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - bvc = gbproxy_bvc_by_bvci(cfg, ns_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_INFO, "BVC(%05u/??) Didn't find bvc for " - "for message from NSE(%05u/SGSN)\n", - ns_bvci, nsei); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_INV_BVCI]); - return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, - &ns_bvci, msg); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, ns_bvci); + if (!sgsn_bvc) { + LOGP(DGPRS, LOGL_NOTICE, "%s %s - Didn't find BVC for for PTP message, discarding\n", + log_pfx, pdut_name); + rate_ctr_inc(&nse->cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_BVCI]); + return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &ns_bvci, msg); } - if (bvc->blocked) { - LOGPBVC(bvc, LOGL_NOTICE, "Dropping PDU for " - "blocked BVC via NSE(%05u/SGSN)\n", nsei); - rate_ctr_inc(&bvc->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); + if (!bssgp_bvc_fsm_is_unblocked(sgsn_bvc->fi)) { + LOGPBVC(sgsn_bvc, LOGL_NOTICE, "Rx %s: Dropping on blocked BVC\n", pdut_name); + rate_ctr_inc(&sgsn_bvc->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); return bssgp_tx_status(BSSGP_CAUSE_BVCI_BLOCKED, &ns_bvci, msg); } + OSMO_ASSERT(sgsn_bvc->cell); + bss_bvc = sgsn_bvc->cell->bss_bvc; - return gbprox_relay2peer(msg, bvc, ns_bvci); + return gbprox_relay2peer(msg, bss_bvc, bss_bvc->bvci); } -/* process a BVC-RESET message from the BSS side */ -static int gbprox_rx_bvc_reset_from_bss(struct gbproxy_config *cfg, struct msgb *msg, - uint16_t nsei, struct tlv_parsed *tp) -{ - struct gbproxy_bvc *from_bvc = NULL; - uint16_t bvci; +/*********************************************************************** + * BVC FSM call-backs + ***********************************************************************/ - if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2) || !TLVP_PRES_LEN(tp, BSSGP_IE_CAUSE, 1)) { - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); - return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); +/* helper function to dispatch a FSM event to all SGSN-side BVC FSMs of a cell */ +static void dispatch_to_all_sgsn_bvc(struct gbproxy_cell *cell, uint32_t event, void *priv) +{ + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + struct gbproxy_bvc *sgsn_bvc = cell->sgsn_bvc[i]; + if (!sgsn_bvc) + continue; + osmo_fsm_inst_dispatch(sgsn_bvc->fi, event, priv); + } +} + +/* BVC FSM informs us about a BSS-side reset of the signaling BVC */ +static void bss_sig_bvc_reset_notif(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv) +{ + struct gbproxy_bvc *sig_bvc = priv; + struct gbproxy_nse *nse = sig_bvc->nse; + struct gbproxy_bvc *ptp_bvc; + unsigned int i; + + /* BLOCK all SGSN-side PTP BVC within this NSE */ + hash_for_each(nse->bvcs, i, ptp_bvc, list) { + if (ptp_bvc == sig_bvc) + continue; + OSMO_ASSERT(ptp_bvc->cell); + + dispatch_to_all_sgsn_bvc(ptp_bvc->cell, BSSGP_BVCFSM_E_REQ_BLOCK, &cause); } - bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); - LOGP(DGPRS, LOGL_INFO, "NSE(%05u) Rx BVC RESET (BVCI=%05u)\n", nsei, bvci); + /* Delete all BSS-side PTP BVC within this NSE */ + gbproxy_cleanup_bvcs(nse, 0); + + /* TODO: we keep the "CELL" around for now, re-connecting it to + * any (later) new PTP-BVC for that BVCI. Not sure if that's the + * best idea ? */ +} + +/* forward declaration */ +static const struct bssgp_bvc_fsm_ops sgsn_ptp_bvc_fsm_ops; + +static const struct bssgp_bvc_fsm_ops bss_sig_bvc_fsm_ops = { + .reset_notification = bss_sig_bvc_reset_notif, +}; + +/* BVC FSM informs us about a BSS-side reset of a PTP BVC */ +static void bss_ptp_bvc_reset_notif(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv) +{ + struct gbproxy_bvc *bvc = priv; + struct gbproxy_config *cfg = bvc->nse->cfg; + unsigned int i; + + OSMO_ASSERT(bvci != 0); + + if (!bvc->cell) { + /* see if we have a CELL dangling around */ + bvc->cell = gbproxy_cell_by_bvci(cfg, bvci); + if (bvc->cell) { + /* the CELL already exists. This means either it * was created before at an + * earlier PTP BVC-RESET, or that there are non-unique BVCIs and hence a + * malconfiguration */ + if (bvc->cell->bss_bvc) { + LOGPBVC(bvc, LOGL_NOTICE, "Rx BVC-RESET via this NSE, but CELL already " + "has BVC on NSEI=%05u\n", bvc->cell->bss_bvc->nse->nsei); + LOGPBVC(bvc->cell->bss_bvc, LOGL_NOTICE, "Destroying due to conflicting " + "BVCI configuration (new NSEI=%05u)!\n", bvc->nse->nsei); + gbproxy_bvc_free(bvc->cell->bss_bvc); + } + bvc->cell->bss_bvc = bvc; + } + } + + if (!bvc->cell) { + struct gbproxy_nse *sgsn_nse; + /* if we end up here, it means this is the first time we received a BVC-RESET + * for this BVC. We need to create the 'cell' data structure and the SGSN-side + * BVC counterparts */ + + bvc->cell = gbproxy_cell_alloc(cfg, bvci); + OSMO_ASSERT(bvc->cell); + + /* link us to the cell and vice-versa */ + bvc->cell->bss_bvc = bvc; + + /* allocate the SGSN-side BVCs within the cell, and reset them */ + hash_for_each(cfg->sgsn_nses, i, sgsn_nse, list) { + struct gbproxy_bvc *sgsn_bvc = gbproxy_bvc_by_bvci(sgsn_nse, bvci); + if (sgsn_bvc) + OSMO_ASSERT(!sgsn_bvc->cell); + + if (!sgsn_bvc) { + sgsn_bvc = gbproxy_bvc_alloc(sgsn_nse, bvci); + OSMO_ASSERT(sgsn_bvc); + + sgsn_bvc->cell = bvc->cell; + sgsn_bvc->fi = bssgp_bvc_fsm_alloc_ptp_bss(sgsn_bvc, cfg->nsi, sgsn_nse->nsei, + bvci, ra_id, cell_id); + OSMO_ASSERT(sgsn_bvc->fi); + bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); + + gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); + } else { + OSMO_ASSERT(sgsn_bvc->cell == bvc->cell); + } + } + } + + /* Trigger outbound BVC-RESET procedure toward each SGSN */ + dispatch_to_all_sgsn_bvc(bvc->cell, BSSGP_BVCFSM_E_REQ_RESET, &cause); +} + +/* BVC FSM informs us about a BSS-side FSM state change */ +static void bss_ptp_bvc_state_chg_notif(uint16_t nsei, uint16_t bvci, int old_state, int state, void *priv) +{ + struct gbproxy_bvc *bvc = priv; + struct gbproxy_cell *cell = bvc->cell; + uint8_t cause = bssgp_bvc_fsm_get_block_cause(bvc->fi); + + /* we have just been created but due to callback ordering the cell is not associated */ + if (!cell) + return; + + switch (state) { + case BSSGP_BVCFSM_S_BLOCKED: + /* block the corresponding SGSN-side PTP BVCs */ + dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_BLOCK, &cause); + break; + case BSSGP_BVCFSM_S_UNBLOCKED: + /* unblock the corresponding SGSN-side PTP BVCs */ + dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_UNBLOCK, NULL); + break; + } +} + +static const struct bssgp_bvc_fsm_ops bss_ptp_bvc_fsm_ops = { + .reset_notification = bss_ptp_bvc_reset_notif, + .state_chg_notification = bss_ptp_bvc_state_chg_notif, +}; + +/* BVC FSM informs us about a SGSN-side reset of a PTP BVC */ +static void sgsn_ptp_bvc_reset_notif(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv) +{ + struct gbproxy_bvc *bvc = priv; + + if (!bvc->cell) { + LOGPBVC(bvc, LOGL_ERROR, "RESET of PTP BVC on SGSN side for which we have no BSS?\n"); + return; + } + + OSMO_ASSERT(bvc->cell->bss_bvc); + + /* request reset of BSS-facing PTP-BVC */ + osmo_fsm_inst_dispatch(bvc->cell->bss_bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); +} + +static const struct bssgp_bvc_fsm_ops sgsn_ptp_bvc_fsm_ops = { + .reset_notification = sgsn_ptp_bvc_reset_notif, +}; + +/* BVC FSM informs us about a SGSN-side reset of the signaling BVC */ +static void sgsn_sig_bvc_reset_notif(uint16_t nsei, uint16_t bvci, const struct gprs_ra_id *ra_id, + uint16_t cell_id, uint8_t cause, void *priv) +{ + struct gbproxy_bvc *bvc = priv; + struct gbproxy_config *cfg = bvc->nse->cfg; + struct gbproxy_nse *bss_nse; + unsigned int i; + + /* delete all SGSN-side PTP BVC for this SGSN */ + gbproxy_cleanup_bvcs(bvc->nse, 0); + /* FIXME: what to do about the cells? */ + /* FIXME: do we really want to RESET all signaling BVC on the BSS and affect all other SGSN? */ + + /* we need to trigger generating a reset procedure towards each BSS side signaling BVC */ + hash_for_each(cfg->bss_nses, i, bss_nse, list) { + struct gbproxy_bvc *bss_bvc = gbproxy_bvc_by_bvci(bss_nse, 0); + if (!bss_bvc) { + LOGPNSE(bss_nse, LOGL_ERROR, "Doesn't have BVC with BVCI=0 ?!?\n"); + continue; + } + osmo_fsm_inst_dispatch(bss_bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); + } +} + +const struct bssgp_bvc_fsm_ops sgsn_sig_bvc_fsm_ops = { + .reset_notification = sgsn_sig_bvc_reset_notif, +}; + +/*********************************************************************** + * Signaling BVC handling + ***********************************************************************/ + +/* process a BVC-RESET message from the BSS side */ +static int rx_bvc_reset_from_bss(struct gbproxy_nse *nse, struct msgb *msg, struct tlv_parsed *tp) +{ + struct gbproxy_bvc *from_bvc = NULL; + uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + uint32_t features = 0; // FIXME: make configurable + + LOGPNSE(nse, LOGL_INFO, "Rx BVC-RESET (BVCI=%05u)\n", bvci); + if (bvci == 0) { /* If we receive a BVC reset on the signalling endpoint, we * don't want the SGSN to reset, as the signalling endpoint * is common for all point-to-point BVCs (and thus all BTS) */ - /* Ensure the NSE bvc is there and clear all PtP BVCs */ - struct gbproxy_nse *nse = gbproxy_nse_by_nsei_or_new(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_ERROR, "Could not create NSE(%05u)\n", nsei); - bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, 0, msg); - return 0; - } - - gbproxy_cleanup_bvcs(cfg, nsei, 0); - - /* FIXME: only do this if SGSN is alive! */ - LOGPNSE(nse, LOGL_INFO, "Tx fake BVC RESET ACK of BVCI=0\n"); - bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_RESET_ACK, nsei, 0, 0); - return 0; - } else { - from_bvc = gbproxy_bvc_by_bvci(cfg, bvci); + from_bvc = gbproxy_bvc_by_bvci(nse, 0); if (!from_bvc) { - struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); - if (!nse) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " - "BVCI=%05u\n", nsei, bvci); - bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_STATE, NULL, msg); - return 0; + from_bvc = gbproxy_bvc_alloc(nse, 0); + OSMO_ASSERT(from_bvc); + from_bvc->fi = bssgp_bvc_fsm_alloc_sig_sgsn(from_bvc, nse->cfg->nsi, nse->nsei, features); + if (!from_bvc->fi) { + LOGPNSE(nse, LOGL_ERROR, "Cannot allocate SIG-BVC FSM\n"); + gbproxy_bvc_free(from_bvc); + return -ENOMEM; } + bssgp_bvc_fsm_set_ops(from_bvc->fi, &bss_sig_bvc_fsm_ops, from_bvc); + } + } else { + from_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!from_bvc) { /* if a PTP-BVC is reset, and we don't know that * PTP-BVCI yet, we should allocate a new bvc */ from_bvc = gbproxy_bvc_alloc(nse, bvci); OSMO_ASSERT(from_bvc); - LOGPBVC(from_bvc, LOGL_INFO, "Allocated new bvc\n"); + from_bvc->fi = bssgp_bvc_fsm_alloc_ptp_sgsn(from_bvc, nse->cfg->nsi, + nse->nsei, bvci); + if (!from_bvc->fi) { + LOGPNSE(nse, LOGL_ERROR, "Cannot allocate SIG-BVC FSM\n"); + gbproxy_bvc_free(from_bvc); + return -ENOMEM; + } + bssgp_bvc_fsm_set_ops(from_bvc->fi, &bss_ptp_bvc_fsm_ops, from_bvc); } - +#if 0 /* Could have moved to a different NSE */ if (!check_bvc_nsei(from_bvc, nsei)) { LOGPBVC(from_bvc, LOGL_NOTICE, "moving bvc to NSE(%05u)\n", nsei); - struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei); + struct gbproxy_nse *nse_new = gbproxy_nse_by_nsei(cfg, nsei, false); if (!nse_new) { LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u) Got PtP BVC reset before signalling reset for " "BVCI=%05u\n", bvci, nsei); @@ -410,7 +649,8 @@ /* Move bvc to different NSE */ gbproxy_bvc_move(from_bvc, nse_new); } - +#endif + /* FIXME: do we need this, if it happens within FSM? */ if (TLVP_PRES_LEN(tp, BSSGP_IE_CELL_ID, 8)) { struct gprs_ra_id raid; /* We have a Cell Identifier present in this @@ -422,126 +662,158 @@ LOGPBVC(from_bvc, LOGL_INFO, "Cell ID %s\n", osmo_rai_name(&raid)); } } - /* continue processing / relaying to SGSN[s] */ - return 1; + /* hand into FSM for further processing */ + osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_RESET, msg); + return 0; } /* Receive an incoming signalling message from a BSS-side NS-VC */ -static int gbprox_rx_sig_from_bss(struct gbproxy_config *cfg, - struct msgb *msg, uint16_t nsei, - uint16_t ns_bvci) +static int gbprox_rx_sig_from_bss(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - struct tlv_parsed tp; uint8_t pdu_type = bgph->pdu_type; + const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); + struct tlv_parsed tp; int data_len = msgb_bssgp_len(msg) - sizeof(*bgph); struct gbproxy_bvc *from_bvc = NULL; - struct gprs_ra_id raid; char log_pfx[32]; + uint16_t ptp_bvci; + uint32_t tlli; int rc; - snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/BSS)", nsei); + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/BSS)-BVC(%05u/??)", nse->nsei, ns_bvci); + + LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); if (ns_bvci != 0 && ns_bvci != 1) { - LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); + LOGP(DGPRS, LOGL_NOTICE, "%s %s BVCI=%05u is not signalling\n", log_pfx, pdut_name, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { - LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, - osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_UL)) { - LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in uplink direction\n", log_pfx, - osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in uplink direction\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, pdu_type, bgph->data, data_len, 0, 0, DGPRS, log_pfx); if (rc < 0) { - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); return tx_status_from_tlvp(rc, msg); } + /* hack to get both msg + tlv_parsed passed via osmo_fsm_inst_dispatch */ + msgb_bcid(msg) = (void *)&tp; + /* special case handling for some PDU types */ switch (pdu_type) { - case BSSGP_PDUT_SUSPEND: - case BSSGP_PDUT_RESUME: - /* We implement RAI snooping during SUSPEND/RESUME, since it - * establishes a relationsip between BVCI/bvc and the routeing - * area identification. The snooped information is then used - * for routing the {SUSPEND,RESUME}_[N]ACK back to the correct - * BSSGP */ - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) - goto err_mand_ie; - from_bvc = gbproxy_bvc_by_nsei(cfg, nsei); + 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)); + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); if (!from_bvc) goto err_no_bvc; - memcpy(from_bvc->ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), - sizeof(from_bvc->ra)); + return osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_RESET_ACK, msg); + case BSSGP_PDUT_BVC_BLOCK: + ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); + if (!from_bvc) + goto err_no_bvc; + return osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_BLOCK, msg); + case BSSGP_PDUT_BVC_UNBLOCK: + ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); + if (!from_bvc) + goto err_no_bvc; + 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. */ +#if 0 + /* TODO: Validate the RAI for consistency with the RAI + * we expect for any of the BVC within this BSS side NSE */ + memcpy(ra, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA), sizeof(from_bvc->ra)); gsm48_parse_ra(&raid, from_bvc->ra); - LOGPBVC(from_bvc, LOGL_INFO, "BSSGP SUSPEND/RESUME " - "RAI snooping: RAI %s\n", - osmo_rai_name(&raid)); - /* FIXME: This only supports one BSS per RA */ +#endif break; - case BSSGP_PDUT_BVC_RESET: - rc = gbprox_rx_bvc_reset_from_bss(cfg, msg, nsei, &tp); - /* if function retruns 0, we terminate processing here */ - if (rc == 0) - return 0; + 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 */ + 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: + /* FIXME: route based in RIM Routing IE */ + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + break; + case BSSGP_PDUT_LLC_DISCARD: + case BSSGP_PDUT_FLUSH_LL_ACK: + /* route based on BVCI + TLLI */ + ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); + if (!from_bvc) + goto err_no_bvc; + gbprox_bss2sgsn_tlli(from_bvc->cell, msg, tlli, true); + break; + default: + LOGPNSE(nse, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); break; } - return gbprox_relay2sgsn(cfg, msg, ns_bvci, cfg->nsip_sgsn_nsei); + return rc; err_no_bvc: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) cannot find bvc based on NSEI\n", - nsei); - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_NSEI]); + LOGPNSE(nse, LOGL_ERROR, "Rx %s: cannot find BVC for BVCI=%05u\n", pdut_name, ptp_bvci); + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_NSEI]); return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); -err_mand_ie: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/BSS) missing mandatory RA IE\n", - nsei); - rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); - return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); } /* Receive paging request from SGSN, we need to relay to proper BSS */ -static int gbprox_rx_paging(struct gbproxy_config *cfg, struct msgb *msg, struct tlv_parsed *tp, - uint32_t nsei, uint16_t ns_bvci) +static int gbprox_rx_paging(struct gbproxy_nse *nse, struct msgb *msg, const char *pdut_name, + struct tlv_parsed *tp, uint16_t ns_bvci) { - struct gbproxy_nse *nse; - struct gbproxy_bvc *bvc; + struct gbproxy_config *cfg = nse->cfg; + struct gbproxy_bvc *sgsn_bvc, *bss_bvc; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; int i, j; /* FIXME: Handle paging logic to only page each matching NSE */ - LOGP(DGPRS, LOGL_INFO, "NSE(%05u/SGSN) BSSGP PAGING\n", - nsei); if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; - bvc = gbproxy_bvc_by_bvci(cfg, bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP PAGING: " - "unable to route: BVCI=%05u unknown\n", nsei, bvci); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) { + LOGPNSE(nse, LOGL_NOTICE, "Rx %s: unable to route: BVCI=%05u unknown\n", + pdut_name, bvci); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } - LOGPBVC(bvc, LOGL_INFO, "routing by BVCI\n"); - return gbprox_relay2peer(msg, bvc, ns_bvci); + LOGPBVC(sgsn_bvc, LOGL_INFO, "Rx %s: routing by BVCI\n", pdut_name); + return gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) { errctr = GBPROX_GLOB_CTR_INV_RAI; /* 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, bvc, list) { - if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { - LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n"); - gbprox_relay2peer(msg, bvc, ns_bvci); + hash_for_each(nse->bvcs, j, bss_bvc, list) { + if (!memcmp(bss_bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) { + LOGPNSE(nse, LOGL_INFO, "Rx %s: routing to NSE (RAI match)\n", + pdut_name); + gbprox_relay2peer(msg, bss_bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; @@ -552,10 +824,11 @@ errctr = GBPROX_GLOB_CTR_INV_LAI; /* 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, bvc, list) { - if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { - LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n"); - gbprox_relay2peer(msg, bvc, ns_bvci); + hash_for_each(nse->bvcs, j, bss_bvc, list) { + if (!memcmp(bss_bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) { + LOGPNSE(nse, LOGL_INFO, "Rx %s: routing to NSE (LAI match)\n", + pdut_name); + gbprox_relay2peer(msg, bss_bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; @@ -565,23 +838,21 @@ } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { /* 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, bvc, list) { - LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n"); - gbprox_relay2peer(msg, bvc, ns_bvci); + hash_for_each(nse->bvcs, j, bss_bvc, list) { + LOGPNSE(nse, LOGL_INFO, "Rx %s:routing to NSE (broadcast)\n", pdut_name); + gbprox_relay2peer(msg, bss_bvc, ns_bvci); n_nses++; /* Only send it once to each NSE */ break; } } } else { - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BSSGP PAGING: " - "unable to route, missing IE\n", nsei); + LOGPNSE(nse, LOGL_ERROR, "BSSGP PAGING: unable to route, missing IE\n"); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); } if (n_nses == 0) { - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BSSGP PAGING: " - "unable to route, no destination found\n", nsei); + LOGPNSE(nse, LOGL_ERROR, "BSSGP PAGING: unable to route, no destination found\n"); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } @@ -589,63 +860,41 @@ } /* Receive an incoming BVC-RESET message from the SGSN */ -static int rx_reset_from_sgsn(struct gbproxy_config *cfg, - struct msgb *orig_msg, - struct msgb *msg, struct tlv_parsed *tp, - uint32_t nsei, uint16_t ns_bvci) +static int rx_bvc_reset_from_sgsn(struct gbproxy_nse *nse, struct msgb *msg, struct tlv_parsed *tp, + uint16_t ns_bvci) { - struct gbproxy_nse *nse; - struct gbproxy_bvc *bvc; - uint16_t ptp_bvci; - int i, j; + uint16_t ptp_bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + struct gbproxy_bvc *from_bvc; - if (!TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); - return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, - NULL, orig_msg); - } - ptp_bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); + LOGPNSE(nse, LOGL_INFO, "Rx BVC-RESET (BVCI=%05u)\n", ptp_bvci); - if (ptp_bvci >= 2) { - /* A reset for a PTP BVC was received, forward it to its - * respective bvc */ - bvc = gbproxy_bvc_by_bvci(cfg, ptp_bvci); - if (!bvc) { - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) BVCI=%05u: Cannot find BSS\n", - nsei, ptp_bvci); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_INV_BVCI]); - return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, - &ptp_bvci, orig_msg); + if (ptp_bvci == 0) { + from_bvc = gbproxy_bvc_by_bvci(nse, 0); + OSMO_ASSERT(from_bvc); + osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_RESET, msg); + } else { + from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); + if (!from_bvc) { + LOGPNSE(nse, LOGL_ERROR, "Rx BVC-RESET BVCI=%05u: Cannot find BVC\n", ptp_bvci); + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_INV_BVCI]); + return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &ptp_bvci, msg); } - return gbprox_relay2peer(msg, bvc, ns_bvci); - } - - /* A reset for the Signalling entity has been received - * from the SGSN. As the signalling BVCI is shared - * among all the BSS's that we multiplex, it needs to - * be relayed */ - hash_for_each(cfg->bss_nses, i, nse, list) { - hash_for_each(nse->bvcs, j, bvc, list) - gbprox_relay2peer(msg, bvc, ns_bvci); + osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_RESET, msg); } return 0; } /* Receive an incoming signalling message from the SGSN-side NS-VC */ -static int gbprox_rx_sig_from_sgsn(struct gbproxy_config *cfg, - struct msgb *orig_msg, uint32_t nsei, - uint16_t ns_bvci) +static int gbprox_rx_sig_from_sgsn(struct gbproxy_nse *nse, struct msgb *orig_msg, uint16_t ns_bvci) { - struct bssgp_normal_hdr *bgph = - (struct bssgp_normal_hdr *) msgb_bssgph(orig_msg); - struct tlv_parsed tp; + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(orig_msg); uint8_t pdu_type = bgph->pdu_type; + const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); + struct gbproxy_config *cfg = nse->cfg; + struct gbproxy_bvc *sgsn_bvc; + struct tlv_parsed tp; int data_len; - struct gbproxy_nse *nse; - struct gbproxy_bvc *bvc; uint16_t bvci; struct msgb *msg; char log_pfx[32]; @@ -653,7 +902,9 @@ int cause; int i; - snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)", nsei); + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)-BVC(%05u/??)", nse->nsei, ns_bvci); + + LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); if (ns_bvci != 0 && ns_bvci != 1) { LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); @@ -661,14 +912,12 @@ } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { - LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, - osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_DL)) { - LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, - osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, pdu_type)); + LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, pdut_name); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); } @@ -685,52 +934,62 @@ rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); return rc; } + /* hack to get both msg + tlv_parsed passed via osmo_fsm_inst_dispatch */ + msgb_bcid(msg) = (void *)&tp; switch (pdu_type) { case BSSGP_PDUT_BVC_RESET: - rc = rx_reset_from_sgsn(cfg, msg, orig_msg, &tp, nsei, ns_bvci); + /* resolve or create ggbproxy_bvc + handle in BVC-FSM */ + bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + rc = rx_bvc_reset_from_sgsn(nse, msg, &tp, ns_bvci); break; case BSSGP_PDUT_BVC_RESET_ACK: - /* simple case: BVCI IE is mandatory */ - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) - goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - if (bvci == BVCI_SIGNALLING) { - /* TODO: Reset all PTP BVCIs */ - } else { - rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); - } + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) + goto err_no_bvc; + rc = osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_RESET_ACK, msg); + break; + case BSSGP_PDUT_BVC_BLOCK_ACK: + bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) + goto err_no_bvc; + rc = osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_BLOCK_ACK, msg); + break; + case BSSGP_PDUT_BVC_UNBLOCK_ACK: + bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) + goto err_no_bvc; + rc = osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_UNBLOCK_ACK, msg); break; case BSSGP_PDUT_FLUSH_LL: /* simple case: BVCI IE is mandatory */ - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) - goto err_mand_ie; bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + if (!sgsn_bvc) + goto err_no_bvc; + if (sgsn_bvc->cell && sgsn_bvc->cell->bss_bvc) + rc = gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); break; case BSSGP_PDUT_PAGING_PS: case BSSGP_PDUT_PAGING_CS: /* process the paging request (LAI/RAI lookup) */ - rc = gbprox_rx_paging(cfg, msg, &tp, nsei, ns_bvci); + rc = gbprox_rx_paging(nse, msg, pdut_name, &tp, ns_bvci); break; case BSSGP_PDUT_STATUS: /* Some exception has occurred */ - LOGP(DGPRS, LOGL_NOTICE, - "NSE(%05u/SGSN) BSSGP STATUS ", nsei); - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_CAUSE, 1)) { - LOGPC(DGPRS, LOGL_NOTICE, "\n"); - goto err_mand_ie; - } cause = *TLVP_VAL(&tp, BSSGP_IE_CAUSE); - LOGPC(DGPRS, LOGL_NOTICE, - "cause=0x%02x(%s) ", *TLVP_VAL(&tp, BSSGP_IE_CAUSE), + LOGPNSE(nse, LOGL_NOTICE, "Rx STATUS cause=0x%02x(%s) ", cause, bssgp_cause_str(cause)); if (TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) { bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); LOGPC(DGPRS, LOGL_NOTICE, "BVCI=%05u\n", bvci); - - if (cause == BSSGP_CAUSE_UNKNOWN_BVCI) - rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); + sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + /* don't send STATUS in response to STATUS if !bvc */ + if (sgsn_bvc && sgsn_bvc->cell && sgsn_bvc->cell->bss_bvc) + rc = gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); } else LOGPC(DGPRS, LOGL_NOTICE, "\n"); break; @@ -739,46 +998,30 @@ case BSSGP_PDUT_SUSPEND_NACK: case BSSGP_PDUT_RESUME_ACK: case BSSGP_PDUT_RESUME_NACK: - /* RAI IE is mandatory */ - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_ROUTEING_AREA, 6)) - goto err_mand_ie; - bvc = gbproxy_bvc_by_rai(cfg, TLVP_VAL(&tp, BSSGP_IE_ROUTEING_AREA)); - if (!bvc) - goto err_no_bvc; - rc = gbprox_relay2peer(msg, bvc, ns_bvci); - break; - case BSSGP_PDUT_BVC_BLOCK_ACK: - case BSSGP_PDUT_BVC_UNBLOCK_ACK: - if (!TLVP_PRES_LEN(&tp, BSSGP_IE_BVCI, 2)) - goto err_mand_ie; - bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); - if (bvci == 0) { - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP " - "%sBLOCK_ACK for signalling BVCI ?!?\n", nsei, - pdu_type == BSSGP_PDUT_BVC_UNBLOCK_ACK ? "UN":""); - /* TODO: should we send STATUS ? */ - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_INV_BVCI]); - } else { - /* Mark BVC as (un)blocked */ - block_unblock_bvc(cfg, bvci, pdu_type); - } - rc = gbprox_relay2bvci(cfg, msg, bvci, ns_bvci); + /* 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 */ break; case BSSGP_PDUT_SGSN_INVOKE_TRACE: case BSSGP_PDUT_OVERLOAD: - LOGP(DGPRS, LOGL_DEBUG, - "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type)); + LOGPNSE(nse, LOGL_DEBUG, "Rx %s: broadcasting\n", pdut_name); /* broadcast to all BSS-side bvcs */ hash_for_each(cfg->bss_nses, i, nse, list) { gbprox_relay2nse(msg, nse, 0); } 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: + /* FIXME: route based in RIM Routing IE */ + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, orig_msg); + break; default: - LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/SGSN) BSSGP PDU type %s not supported\n", nsei, - bssgp_pdu_str(pdu_type)); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); + LOGPNSE(nse, LOGL_NOTICE, "Rx %s: Not supported\n", pdut_name); + rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); break; } @@ -786,21 +1029,19 @@ msgb_free(msg); return rc; -err_mand_ie: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) missing mandatory IE\n", - nsei); - rate_ctr_inc(&cfg->ctrg-> - ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); - msgb_free(msg); - return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, orig_msg); + err_no_bvc: - LOGP(DGPRS, LOGL_ERROR, "NSE(%05u/SGSN) cannot find bvc based on RAI\n", - nsei); + LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC\n", pdut_name); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_RAI]); msgb_free(msg); return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, orig_msg); } + +/*********************************************************************** + * libosmogb NS/BSSGP integration + ***********************************************************************/ + int gbprox_bssgp_send_cb(void *ctx, struct msgb *msg) { int rc; @@ -820,34 +1061,36 @@ /* Main input function for Gb proxy */ int gbprox_rcvmsg(void *ctx, struct msgb *msg) { - int rc; - uint16_t nsei = msgb_nsei(msg); - uint16_t ns_bvci = msgb_bvci(msg); struct gbproxy_config *cfg = (struct gbproxy_config *) ctx; - - int remote_end_is_sgsn = gbproxy_is_sgsn_nsei(cfg, nsei); + uint16_t ns_bvci = msgb_bvci(msg); + uint16_t nsei = msgb_nsei(msg); + struct gbproxy_nse *nse; /* ensure minimum length to decode PCU type */ if (msgb_bssgp_len(msg) < sizeof(struct bssgp_normal_hdr)) return bssgp_tx_status(BSSGP_CAUSE_SEM_INCORR_PDU, NULL, msg); - /* Only BVCI=0 messages need special treatment */ - if (ns_bvci == 0 || ns_bvci == 1) { - if (remote_end_is_sgsn) - rc = gbprox_rx_sig_from_sgsn(cfg, msg, nsei, ns_bvci); + nse = gbproxy_nse_by_nsei(cfg, nsei, NSE_F_SGSN); + if (nse) { + if (ns_bvci == 0 || ns_bvci == 1) + return gbprox_rx_sig_from_sgsn(nse, msg, ns_bvci); else - rc = gbprox_rx_sig_from_bss(cfg, msg, nsei, ns_bvci); - } else { - /* All other BVCI are PTP */ - if (remote_end_is_sgsn) - rc = gbprox_rx_ptp_from_sgsn(cfg, msg, nsei, - ns_bvci); - else - rc = gbprox_rx_ptp_from_bss(cfg, msg, nsei, - ns_bvci); + return gbprox_rx_ptp_from_sgsn(nse, msg, ns_bvci); } - return rc; + nse = gbproxy_nse_by_nsei(cfg, nsei, NSE_F_BSS); + if (!nse) { + LOGP(DGPRS, LOGL_NOTICE, "NSE(%05u/BSS) not known -> allocating\n", nsei); + nse = gbproxy_nse_alloc(cfg, nsei, false); + } + if (nse) { + if (ns_bvci == 0 || ns_bvci == 1) + return gbprox_rx_sig_from_bss(nse, msg, ns_bvci); + else + return gbprox_rx_ptp_from_bss(nse, msg, ns_bvci); + } + + return 0; } /* TODO: What about handling: @@ -865,7 +1108,9 @@ /* TODO: bss nsei available/unavailable bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, nsvc->nsei, bvc->bvci, 0); * TODO: sgsn nsei available/unavailable */ + struct gbproxy_bvc *bvc; + struct gbproxy_nse *sgsn_nse; switch (nsp->u.status.cause) { case NS_AFF_CAUSE_SNS_FAILURE: @@ -874,16 +1119,16 @@ case NS_AFF_CAUSE_RECOVERY: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); - if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { - /* look-up or create the BTS context for this BVC */ - struct bssgp_bvc_ctx *bctx = btsctx_by_bvci_nsei(nsp->bvci, nsp->nsei); - if (!bctx) - bctx = btsctx_alloc(nsp->bvci, nsp->nsei); - - bssgp_tx_bvc_reset_nsei_bvci(cfg->nsip_sgsn_nsei, 0, BSSGP_CAUSE_OML_INTERV, NULL, 0); + sgsn_nse = gbproxy_nse_by_nsei(cfg, nsp->nsei, NSE_F_SGSN); + if (sgsn_nse) { + uint8_t cause = BSSGP_CAUSE_OML_INTERV; + bvc = gbproxy_bvc_by_bvci(sgsn_nse, 0); + if (bvc) + osmo_fsm_inst_dispatch(bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); } break; case NS_AFF_CAUSE_FAILURE: +#if 0 if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { /* sgsn */ /* TODO: BSVC: block all PtP towards bss */ @@ -902,9 +1147,11 @@ if (!bvc->blocked) break; - bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, cfg->nsip_sgsn_nsei, - bvc->bvci, 0); + hash_for_each(cfg->sgsn_nses, _sgsn, sgsn_nse, list) { + bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, sgsn_nse->nsei, bvc->bvci, 0); + } } +#endif LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); break; default: @@ -973,6 +1220,8 @@ gbproxy_nse_free(nse); } + /* FIXME: cells */ + /* FIXME: SGSN side BVCs (except signaling) */ rate_ctr_group_free(cfg->ctrg); gbproxy_init_config(cfg); diff --git a/src/gbproxy/gb_proxy_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c index 21e56dd..4561634 100644 --- a/src/gbproxy/gb_proxy_ctrl.c +++ b/src/gbproxy/gb_proxy_ctrl.c @@ -61,9 +61,11 @@ cmd->reply = talloc_strdup(cmd, ""); /* NS-VCs for SGSN */ - nse = gprs_ns2_nse_by_nsei(nsi, cfg->nsip_sgsn_nsei); - if (nse) - gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); + hash_for_each(cfg->sgsn_nses, i, nse_peer, list) { + nse = gprs_ns2_nse_by_nsei(nsi, nse_peer->nsei); + if (nse) + gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd); + } /* NS-VCs for BSS peers */ hash_for_each(cfg->bss_nses, i, nse_peer, list) { @@ -95,7 +97,7 @@ nse_peer->nsei, bvc->bvci, raid.mcc, raid.mnc, raid.lac, raid.rac, - bvc->blocked ? "BLOCKED" : "UNBLOCKED"); + osmo_fsm_inst_state_name(bvc->fi)); } } diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index a9c132e..318f3dc 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -315,13 +315,6 @@ exit(1); } - if (!gprs_ns2_nse_by_nsei(gbcfg->nsi, gbcfg->nsip_sgsn_nsei)) { - LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSE(%05u) " - "without creating that NSEI before\n", - gbcfg->nsip_sgsn_nsei); - exit(2); - } - if (daemonize) { rc = osmo_daemonize(); if (rc < 0) { diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 052e577..a0586fe 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -55,56 +55,13 @@ /* Find the gbproxy_bvc by its BVCI. There can only be one match */ -struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) +struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_nse *nse, uint16_t bvci) { - struct gbproxy_nse *nse; - int i; - - hash_for_each(cfg->bss_nses, i, nse, list) { - struct gbproxy_bvc *bvc; - hash_for_each_possible(nse->bvcs, bvc, list, bvci) { - if (bvc->bvci == bvci) - return bvc; - } - } - return NULL; -} - -/* Find the gbproxy_bvc by its NSEI */ -/* FIXME: Only returns the first bvc, but we could have multiple on this nsei */ -struct gbproxy_bvc *gbproxy_bvc_by_nsei(struct gbproxy_config *cfg, - uint16_t nsei) -{ - struct gbproxy_nse *nse = gbproxy_nse_by_nsei(cfg, nsei); struct gbproxy_bvc *bvc; - int i; - - if (!nse || hash_empty(nse->bvcs)) - return NULL; - - /* return the first entry we find */ - hash_for_each(nse->bvcs, i, bvc, list) - return bvc; - - return NULL; -} - -/* look-up a bvc by its Routeing Area Identification (RAI) */ -/* FIXME: this doesn't make sense, as RA can span multiple bvcs! */ -struct gbproxy_bvc *gbproxy_bvc_by_rai(struct gbproxy_config *cfg, - const uint8_t *ra) -{ - struct gbproxy_nse *nse; - int i, j; - - hash_for_each(cfg->bss_nses, i, nse, list) { - struct gbproxy_bvc *bvc; - hash_for_each(nse->bvcs, j, bvc, list) { - if (!memcmp(bvc->ra, ra, 6)) - return bvc; - } + hash_for_each_possible(nse->bvcs, bvc, list, bvci) { + if (bvc->bvci == bvci) + return bvc; } - return NULL; } @@ -129,11 +86,13 @@ hash_add(nse->bvcs, &bvc->list, bvc->bvci); - return bvc; + return bvc; } void gbproxy_bvc_free(struct gbproxy_bvc *bvc) { + struct gbproxy_cell *cell; + if (!bvc) return; @@ -142,45 +101,141 @@ rate_ctr_group_free(bvc->ctrg); bvc->ctrg = NULL; + osmo_fsm_inst_free(bvc->fi); + + cell = bvc->cell; + if (cell) { + int i; + + if (cell->bss_bvc == bvc) + cell->bss_bvc = NULL; + + /* we could also be a SGSN-side BVC */ + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + if (cell->sgsn_bvc[i] == bvc) + cell->sgsn_bvc[i] = NULL; + } + bvc->cell = NULL; + } + talloc_free(bvc); } -void gbproxy_bvc_move(struct gbproxy_bvc *bvc, struct gbproxy_nse *nse) -{ - hash_del(&bvc->list); - hash_add(nse->bvcs, &bvc->list, bvc->bvci); - bvc->nse = nse; -} - -/*! remove bvcs (BVCs) on NSE specified by NSEI. +/*! remove BVCs on NSE specified by NSEI. * \param[in] cfg proxy in which we operate * \param[in] nsei NS entity in which we should clean up - * \param[in] bvci if 0: remove all BVCs; if != 0: BVCI of the single BVC to clean up */ -int gbproxy_cleanup_bvcs(struct gbproxy_config *cfg, uint16_t nsei, uint16_t bvci) + * \param[in] bvci if 0: remove all PTP BVCs; if != 0: BVCI of the single BVC to clean up */ +int gbproxy_cleanup_bvcs(struct gbproxy_nse *nse, uint16_t bvci) { - int i, j, counter = 0; - struct gbproxy_nse *nse; - struct hlist_node *ntmp; - OSMO_ASSERT(cfg); + struct hlist_node *btmp; + struct gbproxy_bvc *bvc; + int j, counter = 0; - hash_for_each_safe(cfg->bss_nses, i, ntmp, nse, list) { - struct gbproxy_bvc *bvc; - struct hlist_node *btmp; - if (nse->nsei != nsei) + if (!nse) + return 0; + + hash_for_each_safe(nse->bvcs, j, btmp, bvc, list) { + if (bvci && bvc->bvci != bvci) continue; - hash_for_each_safe(nse->bvcs, j, btmp, bvc, list) { - if (bvci && bvc->bvci != bvci) - continue; + if (bvci == 0 && bvc->bvci == 0) + continue; - gbproxy_bvc_free(bvc); - counter += 1; - } + gbproxy_bvc_free(bvc); + counter += 1; } return counter; } -struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei) + +/*********************************************************************** + * CELL + ***********************************************************************/ + +/* Allocate a new 'cell' object */ +struct gbproxy_cell *gbproxy_cell_alloc(struct gbproxy_config *cfg, uint16_t bvci) +{ + struct gbproxy_cell *cell; + OSMO_ASSERT(cfg); + + cell = talloc_zero(cfg, struct gbproxy_cell); + if (!cell) + return NULL; + + cell->cfg = cfg; + cell->bvci = bvci; + + hash_add(cfg->cells, &cell->list, cell->bvci); + + return cell; +} + +/* Find cell by BVCI */ +struct gbproxy_cell *gbproxy_cell_by_bvci(struct gbproxy_config *cfg, uint16_t bvci) +{ + struct gbproxy_cell *cell; + + hash_for_each_possible(cfg->cells, cell, list, bvci) { + if (cell->bvci == bvci) + return cell; + } + return NULL; +} + +struct gbproxy_cell *gbproxy_cell_by_bvci_or_new(struct gbproxy_config *cfg, uint16_t bvci) +{ + struct gbproxy_cell *cell; + OSMO_ASSERT(cfg); + + cell = gbproxy_cell_by_bvci(cfg, bvci); + if (!cell) + cell = gbproxy_cell_alloc(cfg, bvci); + + return cell; +} + +void gbproxy_cell_free(struct gbproxy_cell *cell) +{ + unsigned int i; + + if (!cell) + return; + + /* remove from cfg.cells */ + hash_del(&cell->list); + + /* remove back-pointers from the BSS side */ + if (cell->bss_bvc && cell->bss_bvc->cell) + cell->bss_bvc->cell = NULL; + + /* remove back-pointers from the SGSN side */ + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + if (!cell->sgsn_bvc[i]) + continue; + if (cell->sgsn_bvc[i]->cell) + cell->sgsn_bvc[i]->cell = NULL; + } + + talloc_free(cell); +} + +bool gbproxy_cell_add_sgsn_bvc(struct gbproxy_cell *cell, struct gbproxy_bvc *bvc) +{ + unsigned int i; + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + if (!cell->sgsn_bvc[i]) { + cell->sgsn_bvc[i] = bvc; + return true; + } + } + return false; +} + +/*********************************************************************** + * NSE - NS Entity + ***********************************************************************/ + +struct gbproxy_nse *gbproxy_nse_alloc(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing) { struct gbproxy_nse *nse; OSMO_ASSERT(cfg); @@ -191,8 +246,12 @@ nse->nsei = nsei; nse->cfg = cfg; + nse->sgsn_facing = sgsn_facing; - hash_add(cfg->bss_nses, &nse->list, nsei); + if (sgsn_facing) + hash_add(cfg->sgsn_nses, &nse->list, nsei); + else + hash_add(cfg->bss_nses, &nse->list, nsei); hash_init(nse->bvcs); @@ -216,27 +275,36 @@ talloc_free(nse); } -struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei) +struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei, uint32_t flags) { struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - hash_for_each_possible(cfg->bss_nses, nse, list, nsei) { - if (nse->nsei == nsei) - return nse; + if (flags & NSE_F_SGSN) { + hash_for_each_possible(cfg->sgsn_nses, nse, list, nsei) { + if (nse->nsei == nsei) + return nse; + } + } + + if (flags & NSE_F_BSS) { + hash_for_each_possible(cfg->bss_nses, nse, list, nsei) { + if (nse->nsei == nsei) + return nse; + } } return NULL; } -struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei) +struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing) { struct gbproxy_nse *nse; OSMO_ASSERT(cfg); - nse = gbproxy_nse_by_nsei(cfg, nsei); + nse = gbproxy_nse_by_nsei(cfg, nsei, sgsn_facing ? NSE_F_SGSN : NSE_F_BSS); if (!nse) - nse = gbproxy_nse_alloc(cfg, nsei); + nse = gbproxy_nse_alloc(cfg, nsei, sgsn_facing); return nse; } diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index da5710a..a9db596 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -31,6 +31,7 @@ #include #include +#include #include #include @@ -43,6 +44,7 @@ #include #include + static struct gbproxy_config *g_cfg = NULL; /* @@ -61,7 +63,7 @@ vty_out(vty, "NSEI %5u, PTP-BVCI %5u, " "RAI %s", bvc->nse->nsei, bvc->bvci, osmo_rai_name(&raid)); - if (bvc->blocked) + if (bssgp_bvc_fsm_is_unblocked(bvc->fi)) vty_out(vty, " [BVC-BLOCKED]"); vty_out(vty, "%s", VTY_NEWLINE); @@ -69,10 +71,14 @@ static int config_write_gbproxy(struct vty *vty) { + struct gbproxy_nse *nse; + int i; + vty_out(vty, "gbproxy%s", VTY_NEWLINE); - vty_out(vty, " sgsn nsei %u%s", g_cfg->nsip_sgsn_nsei, - VTY_NEWLINE); + hash_for_each(g_cfg->sgsn_nses, i, nse, list) { + vty_out(vty, " sgsn nsei %u%s", nse->nsei, VTY_NEWLINE); + } return CMD_SUCCESS; } @@ -86,6 +92,9 @@ return CMD_SUCCESS; } +extern const struct bssgp_bvc_fsm_ops sgsn_sig_bvc_fsm_ops; +#include + DEFUN(cfg_nsip_sgsn_nsei, cfg_nsip_sgsn_nsei_cmd, "sgsn nsei <0-65534>", @@ -93,10 +102,36 @@ "NSEI to be used in the connection with the SGSN\n" "The NSEI\n") { + uint32_t features = 0; // FIXME: make configurable unsigned int nsei = atoi(argv[0]); + struct gbproxy_nse *nse; + struct gbproxy_bvc *bvc; - g_cfg->nsip_sgsn_nsei = nsei; + nse = gbproxy_nse_by_nsei_or_new(g_cfg, nsei, true); + if (!nse) + goto free_nothing; + + if (!gbproxy_bvc_by_bvci(nse, 0)) { + uint8_t cause = BSSGP_CAUSE_OML_INTERV; + bvc = gbproxy_bvc_alloc(nse, 0); + if (!bvc) + goto free_nse; + bvc->fi = bssgp_bvc_fsm_alloc_sig_bss(bvc, nse->cfg->nsi, nsei, features); + if (!bvc->fi) + goto free_bvc; + bssgp_bvc_fsm_set_ops(bvc->fi, &sgsn_sig_bvc_fsm_ops, bvc); + osmo_fsm_inst_dispatch(bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); + } + return CMD_SUCCESS; + +free_bvc: + gbproxy_bvc_free(bvc); +free_nse: + gbproxy_nse_free(nse); +free_nothing: + vty_out(vty, "%% Unable to create NSE for NSEI=%05u%s", nsei, VTY_NEWLINE); + return CMD_WARNING; } static void log_set_bvc_filter(struct log_target *target, @@ -181,9 +216,15 @@ { const uint16_t nsei = atoi(argv[0]); const uint16_t bvci = atoi(argv[1]); + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei, NSE_F_BSS); int counter; - counter = gbproxy_cleanup_bvcs(g_cfg, nsei, bvci); + if (!nse) { + vty_out(vty, "NSE not found%s", VTY_NEWLINE); + return CMD_WARNING; + } + + counter = gbproxy_cleanup_bvcs(nse, bvci); if (counter == 0) { vty_out(vty, "BVC not found%s", VTY_NEWLINE); @@ -219,8 +260,8 @@ if (delete_bvc) { if (!dry_run) { - struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei); - counter = gbproxy_cleanup_bvcs(g_cfg, nsei, 0); + struct gbproxy_nse *nse = gbproxy_nse_by_nsei(g_cfg, nsei, NSE_F_BSS); + counter = gbproxy_cleanup_bvcs(nse, 0); gbproxy_nse_free(nse); } else { struct gbproxy_nse *nse; diff --git a/tests/vty_test_runner.py b/tests/vty_test_runner.py index beb0ee1..4587564 100755 --- a/tests/vty_test_runner.py +++ b/tests/vty_test_runner.py @@ -102,7 +102,7 @@ def testVtyDeletePeer(self): self.vty.enable() - self.assertTrue(self.vty.verify('delete-gbproxy-peer 9999 bvci 7777', ['BVC not found'])) + self.assertTrue(self.vty.verify('delete-gbproxy-peer 9999 bvci 7777', ['NSE not found'])) res = self.vty.command("delete-gbproxy-peer 9999 all dry-run") self.assertTrue(res.find('Not Deleted 0 BVC') >= 0) self.assertTrue(res.find('NSEI not found') >= 0) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie0746f17927a9509c3806cc80dc1a31d25df7937 Gerrit-Change-Number: 21612 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Dec 11 10:00:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:00:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21613 ) Change subject: gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index ...................................................................... gbproxy: Use "(nsei << 16) | bvci" as rate_ctr_group index As we now have gbproxy_bvc on both the SGSN and the BSS side with the same BVCI, using the BVCI alone will no longer render unique indexes. Related: OS#4472 Change-Id: I13f3c9e69562a56ad7d3742fdeb2ba48f134fdaa --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: daniel: 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 a0586fe..ed7df32 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -77,7 +77,7 @@ return NULL; bvc->bvci = bvci; - bvc->ctrg = rate_ctr_group_alloc(bvc, &bvc_ctrg_desc, bvci); + bvc->ctrg = rate_ctr_group_alloc(bvc, &bvc_ctrg_desc, (nse->nsei << 16) | bvci); if (!bvc->ctrg) { talloc_free(bvc); return NULL; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I13f3c9e69562a56ad7d3742fdeb2ba48f134fdaa Gerrit-Change-Number: 21613 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Dec 11 10:00:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:00:40 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Introduce new DOBJ log category; log object allocation/release In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 ) Change subject: gbproxy: Introduce new DOBJ log category; log object allocation/release ...................................................................... gbproxy: Introduce new DOBJ log category; log object allocation/release Related: OS#4472 Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 --- M include/osmocom/sgsn/debug.h M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c 4 files changed, 29 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index 507b70c..da819d5 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -39,6 +39,7 @@ DIUCS, DSIGTRAN, DGTP, + DOBJ, Debug_LastEntry, }; diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index e61b991..8892cf4 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -142,6 +142,11 @@ #define LOGPBVC(BVC, LEVEL, FMT, ARGS...) \ LOGPBVC_CAT(BVC, DGPRS, LEVEL, FMT, ## ARGS) +#define LOGPCELL_CAT(CELL, SUBSYS, LEVEL, FMT, ARGS...) \ + LOGP(SUBSYS, LEVEL, "CELL(%05u) " FMT, (CELL)->bvci, ## ARGS) +#define LOGPCELL(CELL, LEVEL, FMT, ARGS...) \ + LOGPCELL_CAT(CELL, DGPRS, LEVEL, FMT, ## ARGS) + /* gb_proxy_vty .c */ int gbproxy_vty_init(void); diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index 318f3dc..7ef9302 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -209,6 +209,12 @@ .description = "GPRS Network Service (NS)", .enabled = 1, .loglevel = LOGL_INFO, }, + [DOBJ] = { + .name = "DOBJ", + .description = "GbProxy object allocation/release", + .enabled = 1, + .color = "\033[38;5;121m" + }, }; static const struct log_info gprs_log_info = { diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index ed7df32..c38b2f7 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -86,6 +86,11 @@ hash_add(nse->bvcs, &bvc->list, bvc->bvci); + LOGPBVC_CAT(bvc, DOBJ, LOGL_INFO, "BVC Created\n"); + + /* We leave allocating the bvc->fi to the caller, as the FSM details depend + * on the type of BVC (SIG/PTP) and role (SGSN/BSS) */ + return bvc; } @@ -96,6 +101,8 @@ if (!bvc) return; + LOGPBVC_CAT(bvc, DOBJ, LOGL_INFO, "BVC Destroying\n"); + hash_del(&bvc->list); rate_ctr_group_free(bvc->ctrg); @@ -167,6 +174,8 @@ hash_add(cfg->cells, &cell->list, cell->bvci); + LOGPCELL_CAT(cell, DOBJ, LOGL_INFO, "CELL Created\n"); + return cell; } @@ -201,6 +210,8 @@ if (!cell) return; + LOGPCELL_CAT(cell, DOBJ, LOGL_INFO, "CELL Destroying\n"); + /* remove from cfg.cells */ hash_del(&cell->list); @@ -225,6 +236,8 @@ for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { if (!cell->sgsn_bvc[i]) { cell->sgsn_bvc[i] = bvc; + LOGPCELL_CAT(cell, DOBJ, LOGL_DEBUG, "CELL linked to SGSN\n"); + LOGPBVC_CAT(bvc, DOBJ, LOGL_DEBUG, "BVC linked to CELL\n"); return true; } } @@ -255,6 +268,8 @@ hash_init(nse->bvcs); + LOGPNSE_CAT(nse, DOBJ, LOGL_INFO, "NSE Created\n"); + return nse; } @@ -267,6 +282,8 @@ if (!nse) return; + LOGPNSE_CAT(nse, DOBJ, LOGL_INFO, "NSE Destroying\n"); + hash_del(&nse->list); hash_for_each_safe(nse->bvcs, i, tmp, bvc, list) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I43bcbcda8667d193e7a17fd8e8e9109597b01484 Gerrit-Change-Number: 21614 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Dec 11 10:00:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:00:40 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Don't create an extra msgb copy for SGSN DL SIG In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 ) Change subject: gbproxy: Don't create an extra msgb copy for SGSN DL SIG ...................................................................... gbproxy: Don't create an extra msgb copy for SGSN DL SIG That copy may have made sense while we were doing patching/buffering, but we're not doing any of that anymore. Related: OS#4472 Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 --- M src/gbproxy/gb_proxy.c 1 file changed, 9 insertions(+), 17 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/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index a920906..4f8c0e6 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -886,9 +886,9 @@ } /* Receive an incoming signalling message from the SGSN-side NS-VC */ -static int gbprox_rx_sig_from_sgsn(struct gbproxy_nse *nse, struct msgb *orig_msg, uint16_t ns_bvci) +static int gbprox_rx_sig_from_sgsn(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { - struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(orig_msg); + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); uint8_t pdu_type = bgph->pdu_type; const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); struct gbproxy_config *cfg = nse->cfg; @@ -896,7 +896,6 @@ struct tlv_parsed tp; int data_len; uint16_t bvci; - struct msgb *msg; char log_pfx[32]; int rc = 0; int cause; @@ -908,29 +907,25 @@ if (ns_bvci != 0 && ns_bvci != 1) { LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not signalling\n", log_pfx, ns_bvci); - return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_SIG)) { LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in signalling BVC\n", log_pfx, pdut_name); - return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (!(bssgp_pdu_type_flags(pdu_type) & BSSGP_PDUF_DL)) { LOGP(DGPRS, LOGL_NOTICE, "%s %s not allowed in downlink direction\n", log_pfx, pdut_name); - return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } - msg = bssgp_msgb_copy(orig_msg, "rx_sig_from_sgsn"); - /* Update message info */ - bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); - data_len = msgb_bssgp_len(orig_msg) - sizeof(*bgph); + data_len = msgb_bssgp_len(msg) - sizeof(*bgph); rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, pdu_type, bgph->data, data_len, 0, 0, DGPRS, log_pfx); if (rc < 0) { rc = tx_status_from_tlvp(rc, msg); - msgb_free(msg); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); return rc; } @@ -1017,24 +1012,21 @@ 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, orig_msg); + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, 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]); - rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, orig_msg); + rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); break; } - msgb_free(msg); - return rc; err_no_bvc: LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC\n", pdut_name); rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_RAI]); - msgb_free(msg); - return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, orig_msg); + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I207a869ffac8bf60104f80f9ed58faf0021e5e95 Gerrit-Change-Number: 21615 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Dec 11 10:00:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:00:41 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement handling of BVC Flow Control In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21616 ) Change subject: gbproxy: Implement handling of BVC Flow Control ...................................................................... gbproxy: Implement handling of BVC Flow Control We must locally terminate + acknowledge any inbound BSSGP-FC-BVC, and ourselves trigger the transmission of BSSGP-FC-BVC to each SGSN in the pool. Related: OS#4891 Depends: libosmcoore.git Ie59be6761177c43456898be9148727f15861a622 Change-Id: Ib6495e5de4bfcf748a98e08743d1a8f2565f8b69 --- M src/gbproxy/gb_proxy.c 1 file changed, 50 insertions(+), 4 deletions(-) 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 4f8c0e6..06023c4 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -291,6 +291,8 @@ rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); return tx_status_from_tlvp(rc, msg); } + /* hack to get both msg + tlv_parsed passed via osmo_fsm_inst_dispatch */ + msgb_bcid(msg) = (void *)&tp; switch (bgph->pdu_type) { case BSSGP_PDUT_UL_UNITDATA: @@ -331,9 +333,7 @@ LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); break; case BSSGP_PDUT_FLOW_CONTROL_BVC: - /* TODO: Implement via FSM */ - //rc = osmo_fsm_inst_dispatch(bss_bvc->fi, FIXME, &tp); - LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); + osmo_fsm_inst_dispatch(bss_bvc->fi, BSSGP_BVCFSM_E_RX_FC_BVC, msg); break; case BSSGP_PDUT_STATUS: /* TODO: Implement by inspecting the contained PDU */ @@ -352,7 +352,9 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_bssgph(msg); const char *pdut_name = osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type); struct gbproxy_bvc *sgsn_bvc, *bss_bvc; + struct tlv_parsed tp; char log_pfx[32]; + int rc; snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)-BVC(%05u/??)", nse->nsei, ns_bvci); @@ -386,10 +388,39 @@ rate_ctr_inc(&sgsn_bvc->ctrg->ctr[GBPROX_PEER_CTR_DROPPED]); return bssgp_tx_status(BSSGP_CAUSE_BVCI_BLOCKED, &ns_bvci, msg); } + + /* DL_UNITDATA has a different header than all other uplink PDUs */ + if (bgph->pdu_type == BSSGP_PDUT_DL_UNITDATA) { + const struct bssgp_ud_hdr *budh = (struct bssgp_ud_hdr *) msgb_bssgph(msg); + if (msgb_bssgp_len(msg) < sizeof(*budh)) + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, bgph->pdu_type, budh->data, + msgb_bssgp_len(msg) - sizeof(*budh), 0, 0, DGPRS, log_pfx); + /* populate TLLI from the fixed headser into the TLV-parsed array so later code + * doesn't have to worry where the TLLI came from */ + tp.lv[BSSGP_IE_TLLI].len = 4; + tp.lv[BSSGP_IE_TLLI].val = (const uint8_t *) &budh->tlli; + } else { + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, &tp, 1, bgph->pdu_type, bgph->data, + msgb_bssgp_len(msg) - sizeof(*bgph), 0, 0, DGPRS, log_pfx); + } + if (rc < 0) { + rate_ctr_inc(&nse->cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_BSS]); + return tx_status_from_tlvp(rc, msg); + } + /* hack to get both msg + tlv_parsed passed via osmo_fsm_inst_dispatch */ + msgb_bcid(msg) = (void *)&tp; + OSMO_ASSERT(sgsn_bvc->cell); bss_bvc = sgsn_bvc->cell->bss_bvc; - return gbprox_relay2peer(msg, bss_bvc, bss_bvc->bvci); + 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); + } + } /*********************************************************************** @@ -532,9 +563,24 @@ } } +/* BVC FSM informs us about BVC-FC PDU receive */ +static void bss_ptp_bvc_fc_bvc(uint16_t nsei, uint16_t bvci, const struct bssgp2_flow_ctrl *fc, void *priv) +{ + struct gbproxy_bvc *bss_bvc = priv; + struct gbproxy_cell *cell = bss_bvc->cell; + + if (!cell) + return; + + /* FIXME: actually split the bandwidth among the SGSNs! */ + + dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_FC_BVC, (void *) fc); +} + static const struct bssgp_bvc_fsm_ops bss_ptp_bvc_fsm_ops = { .reset_notification = bss_ptp_bvc_reset_notif, .state_chg_notification = bss_ptp_bvc_state_chg_notif, + .rx_fc_bvc = bss_ptp_bvc_fc_bvc, }; /* BVC FSM informs us about a SGSN-side reset of a PTP BVC */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ib6495e5de4bfcf748a98e08743d1a8f2565f8b69 Gerrit-Change-Number: 21616 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Dec 11 10:00:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:00:42 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix bvci check in gbprox_rx_ptp_from_* In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21663 ) Change subject: gbproxy: Fix bvci check in gbprox_rx_ptp_from_* ...................................................................... gbproxy: Fix bvci check in gbprox_rx_ptp_from_* The check for bvci in _rx_ptp_from_* was always false. Change-Id: I16a0284ba3201c146c307db6997a416589d7e693 Related: OS#4472 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 2 deletions(-) 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 06023c4..ed4dbeb 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -250,7 +250,7 @@ LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); - if (ns_bvci == 0 && ns_bvci == 1) { + if (ns_bvci == 0 || ns_bvci == 1) { LOGP(DGPRS, LOGL_NOTICE, "%s BVCI=%05u is not PTP\n", log_pfx, ns_bvci); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } @@ -360,7 +360,7 @@ LOGP(DGPRS, LOGL_DEBUG, "%s Rx %s\n", log_pfx, pdut_name); - if (ns_bvci == 0 && ns_bvci == 1) { + if (ns_bvci == 0 || ns_bvci == 1) { LOGP(DGPRS, LOGL_NOTICE, "%s BVCI is not PTP\n", log_pfx); return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I16a0284ba3201c146c307db6997a416589d7e693 Gerrit-Change-Number: 21663 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Dec 11 10:01:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:01:58 +0000 Subject: Change in osmo-bsc[master]: handover_test: log sending ho complete In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21659 ) Change subject: handover_test: log sending ho complete ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I540e880f9aafb92be03c35086340de1968b26836 Gerrit-Change-Number: 21659 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 11 Dec 2020 10: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 Dec 11 10:02:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:02:17 +0000 Subject: Change in osmo-bsc[master]: handover_test: send ho detection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21660 ) Change subject: handover_test: send ho detection ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib676e74f23ef9cd1b55262117822b0e110013bdc Gerrit-Change-Number: 21660 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 11 Dec 2020 10:02: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 Dec 11 10:02:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:02:26 +0000 Subject: Change in osmo-bsc[master]: handover_test: adjust logging for reproducability In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21661 ) Change subject: handover_test: adjust logging for reproducability ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8ebcaf16cd14881a3a41616dcff175e173db9ae8 Gerrit-Change-Number: 21661 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 11 Dec 2020 10:02: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 Dec 11 10:02:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:02:45 +0000 Subject: Change in osmo-bsc[master]: handover_test: set a fake osmo_mgcpc_ep_ci pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21662 ) Change subject: handover_test: set a fake osmo_mgcpc_ep_ci pointer ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibc22001bf9e9874dd3f44f0acac8b6a4c1069aa7 Gerrit-Change-Number: 21662 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 11 Dec 2020 10:02: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 Dec 11 10:04:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:04:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix log messages in timeout situations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21671 ) Change subject: gbproxy: Fix log messages in timeout situations ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4fee89baa954736ae8298b63667297dd57d8ec4f Gerrit-Change-Number: 21671 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 10:04: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 Dec 11 10:04:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:04:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix log messages in timeout situations In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21671 ) Change subject: gbproxy: Fix log messages in timeout situations ...................................................................... gbproxy: Fix log messages in timeout situations Printing an unbound 'rx' variable when nothing was received due to timeout is somehow not really useful. Print what we expected to receive. Change-Id: I4fee89baa954736ae8298b63667297dd57d8ec4f --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 655e396..2077e0f 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -765,7 +765,7 @@ mtc.stop; } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", rx); + setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); mtc.stop; } } @@ -788,7 +788,7 @@ mtc.stop; } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", rx); + setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); mtc.stop; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4fee89baa954736ae8298b63667297dd57d8ec4f Gerrit-Change-Number: 21671 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 Fri Dec 11 10:07:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 10:07:32 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21263 ) Change subject: Introduce osmo-ran docker image set up ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/21263/6/osmo-ran/Dockerfile File osmo-ran/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/21263/6/osmo-ran/Dockerfile at 42 PS6, Line 42: less \ : apt-utils \ : strace \ : tcpdump \ : telnet \ : vim \ : osmo-bsc \ : osmo-bsc-ipaccess-utils \ : osmo-bts-trx \ : osmo-mgw \ : osmo-pcu \ : osmo-trx-ipc \ : osmo-trx-uhd && \ except of apt-utils the two lists seem identical. Might make sense to keep the common list of packages in some variable and then use it in both clauses? Not critical, but would IMHO increase maintainability and have less risk of breaking only either of the two at some later change. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 10:07: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 Fri Dec 11 11:00:28 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 11 Dec 2020 11:00:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move allocation of the SNS fsm into create_nse In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21571 ) Change subject: gprs_ns2: move allocation of the SNS fsm into create_nse ...................................................................... Patch Set 4: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21571/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21571/2/src/gb/gprs_ns2.c at 693 PS2, Line 693: snprintf(sns, sizeof(sns), "nse-%d-sns", nsei); NSE%05u-SNS so stay in line with e.g. the BSSGP FSM https://gerrit.osmocom.org/c/libosmocore/+/21571/2/src/gb/gprs_ns2.c at 694 PS2, Line 694: nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, NULL); _alloc(nse, sns); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 Gerrit-Change-Number: 21571 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 11:00: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 Fri Dec 11 11:07:58 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 11 Dec 2020 11:07:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add member name to bind In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21485 ) Change subject: gprs_ns2: add member name to bind ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Gerrit-Change-Number: 21485 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 11: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 Fri Dec 11 11:10:09 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 11 Dec 2020 11:10:09 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework gprs_ns2_fr_connect*() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21486 ) Change subject: gprs_ns2: rework gprs_ns2_fr_connect*() ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 Gerrit-Change-Number: 21486 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 11 Dec 2020 11:10: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 Dec 11 11:11:25 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 11 Dec 2020 11:11:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21572 ) Change subject: gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I909443b540dbf75146297f1d7f94940690be6c0d Gerrit-Change-Number: 21572 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 11:11: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 Dec 11 11:16:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 11:16:18 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: depend also on osmo-sgsn-master References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21672 ) Change subject: ttcn3-gbproxy-test-fr: depend also on osmo-sgsn-master ...................................................................... ttcn3-gbproxy-test-fr: depend also on osmo-sgsn-master osmo-gbproxy-master is derived from osmo-sgsn-mater, and the former needs to be re-built to catch up with osmo-sgsn.git changes (Where the osmo-gbproxy source code is located) Change-Id: I8abc9f89d19d657403569b7705cd923342ff300b --- M ttcn3-gbproxy-test-fr/jenkins.sh 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/72/21672/1 diff --git a/ttcn3-gbproxy-test-fr/jenkins.sh b/ttcn3-gbproxy-test-fr/jenkins.sh index dce891d..0c2ec43 100755 --- a/ttcn3-gbproxy-test-fr/jenkins.sh +++ b/ttcn3-gbproxy-test-fr/jenkins.sh @@ -16,6 +16,7 @@ . ../jenkins-common.sh IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" docker_images_require \ + "osmo-sgsn-$IMAGE_SUFFIX" \ "osmo-gbproxy-$IMAGE_SUFFIX" \ "ttcn3-gbproxy-test" -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8abc9f89d19d657403569b7705cd923342ff300b Gerrit-Change-Number: 21672 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 Dec 11 11:16:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 11:16:40 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: depend also on osmo-sgsn-master In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21672 ) Change subject: ttcn3-gbproxy-test-fr: depend also on osmo-sgsn-master ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8abc9f89d19d657403569b7705cd923342ff300b Gerrit-Change-Number: 21672 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 11:16: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 Dec 11 11:16:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 11:16:43 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: depend also on osmo-sgsn-master In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21672 ) Change subject: ttcn3-gbproxy-test-fr: depend also on osmo-sgsn-master ...................................................................... ttcn3-gbproxy-test-fr: depend also on osmo-sgsn-master osmo-gbproxy-master is derived from osmo-sgsn-mater, and the former needs to be re-built to catch up with osmo-sgsn.git changes (Where the osmo-gbproxy source code is located) Change-Id: I8abc9f89d19d657403569b7705cd923342ff300b --- M ttcn3-gbproxy-test-fr/jenkins.sh 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test-fr/jenkins.sh b/ttcn3-gbproxy-test-fr/jenkins.sh index dce891d..0c2ec43 100755 --- a/ttcn3-gbproxy-test-fr/jenkins.sh +++ b/ttcn3-gbproxy-test-fr/jenkins.sh @@ -16,6 +16,7 @@ . ../jenkins-common.sh IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" docker_images_require \ + "osmo-sgsn-$IMAGE_SUFFIX" \ "osmo-gbproxy-$IMAGE_SUFFIX" \ "ttcn3-gbproxy-test" -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8abc9f89d19d657403569b7705cd923342ff300b Gerrit-Change-Number: 21672 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 Fri Dec 11 11:37:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 11 Dec 2020 11:37:39 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21263 ) Change subject: Introduce osmo-ran docker image set up ...................................................................... Patch Set 6: I would in general prefer to keep them separate since in general there's no 100% matching in package naming between distributions, and there's already some different ones, so adding new packages later on doesn't require re-splitting them again. But if you really consider the other way is better and it makes sense to spend time on that please confirm so. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 11:37: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 Fri Dec 11 12:29:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 11 Dec 2020 12:29:14 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom resources.conf.prod: Update modem paths + add new modems aft... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21673 ) Change subject: sysmocom resources.conf.prod: Update modem paths + add new modems after HW upgrade ...................................................................... sysmocom resources.conf.prod: Update modem paths + add new modems after HW upgrade Change-Id: I346a5bb38270a32695ec73994179bd75d873b67a --- M sysmocom/resources.conf.prod 1 file changed, 20 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/73/21673/1 diff --git a/sysmocom/resources.conf.prod b/sysmocom/resources.conf.prod index 0444cf4..461ada9 100644 --- a/sysmocom/resources.conf.prod +++ b/sysmocom/resources.conf.prod @@ -212,43 +212,57 @@ ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'sim'] +- label: sierra_3rd + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.2' + ki: '97E2DAF5841D011F134E048E3B36D109' + auth_algo: 'comp128v1' + ciphers: [a5_0, a5_1] + features: ['2g', 'sms', 'voice', 'ussd', 'sim'] + +- label: sierra_4th + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.3' + ki: '6F7B518177DD550BDDDF1C9087BF4E48' + auth_algo: 'comp128v1' + ciphers: [a5_0, a5_1] + features: ['2g', 'sms', 'voice', 'ussd', 'sim'] + - label: gobi2k - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4.1/1-5.4.1.5' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.2/1-5.2.5' ki: '5752B3F43277C35D2D1D957007DF74E2' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sim'] - label: ec20_1 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4.1/1-5.4.1.6' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.2/1-5.2.6' ki: '07F35D0A9476646169669401215580E0' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim'] - label: ec20_2 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.2' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.2' ki: '278B899D126C31F3B24D21E3EB556530' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim'] - label: ec20_3 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.3' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.3' ki: 'B43BBCD8DE4D594F4146DE3D8ADC589D' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim'] - label: ec20_4 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.5' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.5' ki: 'A41F06F39DE3B0295C178A674D3E3636' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim'] - label: ec20_5 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.6' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.6' ki: '8CCBE85A62C6DC7AC2A9886F4BBC3146' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21673 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: I346a5bb38270a32695ec73994179bd75d873b67a Gerrit-Change-Number: 21673 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 Dec 11 14:32:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:32:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Properly capture HDLC/FR traffic in addition to ethernet References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21674 ) Change subject: gbproxy: Properly capture HDLC/FR traffic in addition to ethernet ...................................................................... gbproxy: Properly capture HDLC/FR traffic in addition to ethernet We cannot use "-i all" but must list each interface separately, which is only supported by dumpcap. We also must write pcapng files. Change-Id: Id412af3bb6bcad5e0f2cf40a6dc497d7e4f3d948 --- M gbproxy/GBProxy_Tests.default A ttcn3-dumpcap-start.sh A ttcn3-dumpcap-stop.sh 3 files changed, 152 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/74/21674/1 diff --git a/gbproxy/GBProxy_Tests.default b/gbproxy/GBProxy_Tests.default index 799ac32..8634b49 100644 --- a/gbproxy/GBProxy_Tests.default +++ b/gbproxy/GBProxy_Tests.default @@ -1,3 +1,7 @@ +[DEFINE] +TCPDUMP_START := $TTCN3_HACKS_PATH"/ttcn3-dumpcap-start.sh" +TCPDUMP_STOP := $TTCN3_HACKS_PATH"/ttcn3-dumpcap-stop.sh" + [LOGGING] FileMask := LOG_ALL | TTCN_MATCHING; diff --git a/ttcn3-dumpcap-start.sh b/ttcn3-dumpcap-start.sh new file mode 100755 index 0000000..aa3814a --- /dev/null +++ b/ttcn3-dumpcap-start.sh @@ -0,0 +1,96 @@ +#!/bin/bash +# +# contrary to ttcn3-tcpdump-start.sh, this version is dumpcap-only and +# needed when we want to capture from interfaces of different link +# types. It will also store the results as pcap-ng, not plain old pcap. + +PIDFILE_PCAP=/tmp/pcap.pid +DUMPCAP=/usr/bin/dumpcap + +PIDFILE_NETCAT=/tmp/netcat.pid +NETCAT=/bin/nc +GSMTAP_PORT=4729 + +TESTCASE=$1 + +kill_rm_pidfile() { + if [ -e $1 ]; then + kill "$(cat "$1")" + rm $1 + fi +} + +echo "------ $TESTCASE ------" +date + +if [ "z$TTCN3_PCAP_PATH" = "z" ]; then + TTCN3_PCAP_PATH=/tmp +fi + +kill_rm_pidfile $PIDFILE_NETCAT +kill_rm_pidfile $PIDFILE_PCAP + +if [ -x $DUMPCAP ]; then + CAP_ERR="1" + if [ -x /sbin/setcap ]; then + # N. B: this check requires libcap2-bin package + /sbin/setcap -q -v 'cap_net_admin,cap_net_raw=pie' $DUMPCAP + CAP_ERR="$?" + fi + if [ -u $DUMPCAP -o "$CAP_ERR" = "0" ]; then + CMD="$DUMPCAP -q" + else + echo "NOTE: unable to use dumpcap due to missing capabilities or suid bit" + exit 32 + fi +fi + +# Create a dummy sink for GSMTAP packets +$NETCAT -l -u -k -p $GSMTAP_PORT >/dev/null 2>$TESTCASE.netcat.stderr & +PID=$! +echo $PID > $PIDFILE_NETCAT + +# generate the list of interface arguments. For capturing from +# interfaces of different link-layer types, we cannot use "-i all" +# but must use dumpcap with each individual interface name. We also +# must write pcapng files, as only those can record the interface of +# each packet +ADDL_ARGS="" +for f in /sys/class/net/*; do + DEV=`basename $f` + if [[ "$DEV" == "hdlcnet"* ]]; then + # skip these as we only want the hdlcX devices, avoid capturing twice on both sides + continue + elif [[ "$DEV" == "hdlc"* ]]; then + # these are the user-side of the FR links, which is + # what we interface with from our test suite, emulating + # a BSS. + ADDL_ARGS="${ADDL_ARGS} -i ${DEV}" + elif [[ "$DEV" == "eth"* ]]; then + # we blindly assume that "normal" docker network devices + # are called ethXXX + ADDL_ARGS="${ADDL_ARGS} -i ${DEV}" + fi +done + +$CMD -s 1500 -n ${ADDL_ARGS} -w "$TTCN3_PCAP_PATH/$TESTCASE.pcapng" >$TTCN3_PCAP_PATH/$TESTCASE.pcapng.stdout 2>&1 & +PID=$! +echo $PID > $PIDFILE_PCAP + +# Wait until packet dumper creates the pcap file and starts recording. +# We generate some traffic until we see packet dumper catches it. +# Timeout is 10 seconds. +ping 127.0.0.1 >/dev/null 2>&1 & +PID=$! +i=0 +while [ ! -f "$TTCN3_PCAP_PATH/$TESTCASE.pcapng" ] || + [ "$(stat -c '%s' "$TTCN3_PCAP_PATH/$TESTCASE.pcapng")" -eq 32 ] +do + echo "Waiting for packet dumper to start... $i" + sleep 1 + i=$((i+1)) + if [ $i -eq 10 ]; then + break + fi +done +kill $PID diff --git a/ttcn3-dumpcap-stop.sh b/ttcn3-dumpcap-stop.sh new file mode 100755 index 0000000..e13fbc0 --- /dev/null +++ b/ttcn3-dumpcap-stop.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +PIDFILE_PCAP=/tmp/pcap.pid +PIDFILE_NETCAT=/tmp/netcat.pid +TESTCASE=$1 +VERDICT="$2" + +kill_rm_pidfile() { +if [ -e $1 ]; then + PSNAME="$(ps -q "$(cat "$1")" -o comm=)" + if [ "$PSNAME" != "sudo" ]; then + kill "$(cat "$1")" + else + # NOTE: This requires you to be root or something like + # "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file + sudo kill "$(cat "$1")" + fi + rm $1 +fi +} + +date + +if [ x"$VERDICT" = x"pass" ]; then + echo -e "\033[1;32m====== $TESTCASE $VERDICT ======\033[0m" +else + echo -e "\033[1;31m------ $TESTCASE $VERDICT ------\033[0m" +fi +echo + +if [ "z$TTCN3_PCAP_PATH" = "z" ]; then + TTCN3_PCAP_PATH=/tmp +fi + +# Wait for up to 2 seconds if we keep receiving traffinc from packet dumper, +# otherwise we might lose last packets from test. +i=0 +prev_count=-1 +count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcapng") +while [ $count -gt $prev_count ] && [ $i -lt 2 ] +do + echo "Waiting for packet dumper to finish... $i (prev_count=$prev_count, count=$count)" + sleep 1 + prev_count=$count + count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcapng") + i=$((i+1)) +done + +kill_rm_pidfile "$PIDFILE_PCAP" +kill_rm_pidfile "$PIDFILE_NETCAT" + +gzip -f "$TTCN3_PCAP_PATH/$TESTCASE.pcapng" -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id412af3bb6bcad5e0f2cf40a6dc497d7e4f3d948 Gerrit-Change-Number: 21674 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 Dec 11 14:34:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:34:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-tcpdump-start: Fix path of setcap References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21675 ) Change subject: ttcn3-tcpdump-start: Fix path of setcap ...................................................................... ttcn3-tcpdump-start: Fix path of setcap if we test if /sbin/setcap exists, we als should execute it from that path, as running from a normal user doesn't have /sbin included in $PATH Change-Id: I5131f869f86e6d136e0485da5e3749abbfc951e3 --- M ttcn3-tcpdump-start.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/21675/1 diff --git a/ttcn3-tcpdump-start.sh b/ttcn3-tcpdump-start.sh index 3ad14c0..e905d8a 100755 --- a/ttcn3-tcpdump-start.sh +++ b/ttcn3-tcpdump-start.sh @@ -39,7 +39,7 @@ CAP_ERR="1" if [ -x /sbin/setcap ]; then # N. B: this check requires libcap2-bin package - setcap -q -v 'cap_net_admin,cap_net_raw=pie' $DUMPCAP + /sbin/setcap -q -v 'cap_net_admin,cap_net_raw=pie' $DUMPCAP CAP_ERR="$?" fi if [ -u $DUMPCAP -o "$CAP_ERR" = "0" ]; then -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5131f869f86e6d136e0485da5e3749abbfc951e3 Gerrit-Change-Number: 21675 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 Dec 11 14:35:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:35:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Properly capture HDLC/FR traffic in addition to ethernet In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21674 ) Change subject: gbproxy: Properly capture HDLC/FR traffic in addition to ethernet ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id412af3bb6bcad5e0f2cf40a6dc497d7e4f3d948 Gerrit-Change-Number: 21674 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 14:35: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 Dec 11 14:35:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:35:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Properly capture HDLC/FR traffic in addition to ethernet In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21674 ) Change subject: gbproxy: Properly capture HDLC/FR traffic in addition to ethernet ...................................................................... gbproxy: Properly capture HDLC/FR traffic in addition to ethernet We cannot use "-i all" but must list each interface separately, which is only supported by dumpcap. We also must write pcapng files. Change-Id: Id412af3bb6bcad5e0f2cf40a6dc497d7e4f3d948 --- M gbproxy/GBProxy_Tests.default A ttcn3-dumpcap-start.sh A ttcn3-dumpcap-stop.sh 3 files changed, 152 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.default b/gbproxy/GBProxy_Tests.default index 799ac32..8634b49 100644 --- a/gbproxy/GBProxy_Tests.default +++ b/gbproxy/GBProxy_Tests.default @@ -1,3 +1,7 @@ +[DEFINE] +TCPDUMP_START := $TTCN3_HACKS_PATH"/ttcn3-dumpcap-start.sh" +TCPDUMP_STOP := $TTCN3_HACKS_PATH"/ttcn3-dumpcap-stop.sh" + [LOGGING] FileMask := LOG_ALL | TTCN_MATCHING; diff --git a/ttcn3-dumpcap-start.sh b/ttcn3-dumpcap-start.sh new file mode 100755 index 0000000..aa3814a --- /dev/null +++ b/ttcn3-dumpcap-start.sh @@ -0,0 +1,96 @@ +#!/bin/bash +# +# contrary to ttcn3-tcpdump-start.sh, this version is dumpcap-only and +# needed when we want to capture from interfaces of different link +# types. It will also store the results as pcap-ng, not plain old pcap. + +PIDFILE_PCAP=/tmp/pcap.pid +DUMPCAP=/usr/bin/dumpcap + +PIDFILE_NETCAT=/tmp/netcat.pid +NETCAT=/bin/nc +GSMTAP_PORT=4729 + +TESTCASE=$1 + +kill_rm_pidfile() { + if [ -e $1 ]; then + kill "$(cat "$1")" + rm $1 + fi +} + +echo "------ $TESTCASE ------" +date + +if [ "z$TTCN3_PCAP_PATH" = "z" ]; then + TTCN3_PCAP_PATH=/tmp +fi + +kill_rm_pidfile $PIDFILE_NETCAT +kill_rm_pidfile $PIDFILE_PCAP + +if [ -x $DUMPCAP ]; then + CAP_ERR="1" + if [ -x /sbin/setcap ]; then + # N. B: this check requires libcap2-bin package + /sbin/setcap -q -v 'cap_net_admin,cap_net_raw=pie' $DUMPCAP + CAP_ERR="$?" + fi + if [ -u $DUMPCAP -o "$CAP_ERR" = "0" ]; then + CMD="$DUMPCAP -q" + else + echo "NOTE: unable to use dumpcap due to missing capabilities or suid bit" + exit 32 + fi +fi + +# Create a dummy sink for GSMTAP packets +$NETCAT -l -u -k -p $GSMTAP_PORT >/dev/null 2>$TESTCASE.netcat.stderr & +PID=$! +echo $PID > $PIDFILE_NETCAT + +# generate the list of interface arguments. For capturing from +# interfaces of different link-layer types, we cannot use "-i all" +# but must use dumpcap with each individual interface name. We also +# must write pcapng files, as only those can record the interface of +# each packet +ADDL_ARGS="" +for f in /sys/class/net/*; do + DEV=`basename $f` + if [[ "$DEV" == "hdlcnet"* ]]; then + # skip these as we only want the hdlcX devices, avoid capturing twice on both sides + continue + elif [[ "$DEV" == "hdlc"* ]]; then + # these are the user-side of the FR links, which is + # what we interface with from our test suite, emulating + # a BSS. + ADDL_ARGS="${ADDL_ARGS} -i ${DEV}" + elif [[ "$DEV" == "eth"* ]]; then + # we blindly assume that "normal" docker network devices + # are called ethXXX + ADDL_ARGS="${ADDL_ARGS} -i ${DEV}" + fi +done + +$CMD -s 1500 -n ${ADDL_ARGS} -w "$TTCN3_PCAP_PATH/$TESTCASE.pcapng" >$TTCN3_PCAP_PATH/$TESTCASE.pcapng.stdout 2>&1 & +PID=$! +echo $PID > $PIDFILE_PCAP + +# Wait until packet dumper creates the pcap file and starts recording. +# We generate some traffic until we see packet dumper catches it. +# Timeout is 10 seconds. +ping 127.0.0.1 >/dev/null 2>&1 & +PID=$! +i=0 +while [ ! -f "$TTCN3_PCAP_PATH/$TESTCASE.pcapng" ] || + [ "$(stat -c '%s' "$TTCN3_PCAP_PATH/$TESTCASE.pcapng")" -eq 32 ] +do + echo "Waiting for packet dumper to start... $i" + sleep 1 + i=$((i+1)) + if [ $i -eq 10 ]; then + break + fi +done +kill $PID diff --git a/ttcn3-dumpcap-stop.sh b/ttcn3-dumpcap-stop.sh new file mode 100755 index 0000000..e13fbc0 --- /dev/null +++ b/ttcn3-dumpcap-stop.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +PIDFILE_PCAP=/tmp/pcap.pid +PIDFILE_NETCAT=/tmp/netcat.pid +TESTCASE=$1 +VERDICT="$2" + +kill_rm_pidfile() { +if [ -e $1 ]; then + PSNAME="$(ps -q "$(cat "$1")" -o comm=)" + if [ "$PSNAME" != "sudo" ]; then + kill "$(cat "$1")" + else + # NOTE: This requires you to be root or something like + # "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file + sudo kill "$(cat "$1")" + fi + rm $1 +fi +} + +date + +if [ x"$VERDICT" = x"pass" ]; then + echo -e "\033[1;32m====== $TESTCASE $VERDICT ======\033[0m" +else + echo -e "\033[1;31m------ $TESTCASE $VERDICT ------\033[0m" +fi +echo + +if [ "z$TTCN3_PCAP_PATH" = "z" ]; then + TTCN3_PCAP_PATH=/tmp +fi + +# Wait for up to 2 seconds if we keep receiving traffinc from packet dumper, +# otherwise we might lose last packets from test. +i=0 +prev_count=-1 +count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcapng") +while [ $count -gt $prev_count ] && [ $i -lt 2 ] +do + echo "Waiting for packet dumper to finish... $i (prev_count=$prev_count, count=$count)" + sleep 1 + prev_count=$count + count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcapng") + i=$((i+1)) +done + +kill_rm_pidfile "$PIDFILE_PCAP" +kill_rm_pidfile "$PIDFILE_NETCAT" + +gzip -f "$TTCN3_PCAP_PATH/$TESTCASE.pcapng" -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id412af3bb6bcad5e0f2cf40a6dc497d7e4f3d948 Gerrit-Change-Number: 21674 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 Fri Dec 11 14:36:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:36:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-tcpdump-start: Fix path of setcap In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21675 ) Change subject: ttcn3-tcpdump-start: Fix path of setcap ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5131f869f86e6d136e0485da5e3749abbfc951e3 Gerrit-Change-Number: 21675 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 14:36: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 Dec 11 14:36:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:36:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-tcpdump-start: Fix path of setcap In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21675 ) Change subject: ttcn3-tcpdump-start: Fix path of setcap ...................................................................... ttcn3-tcpdump-start: Fix path of setcap if we test if /sbin/setcap exists, we als should execute it from that path, as running from a normal user doesn't have /sbin included in $PATH Change-Id: I5131f869f86e6d136e0485da5e3749abbfc951e3 --- M ttcn3-tcpdump-start.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/ttcn3-tcpdump-start.sh b/ttcn3-tcpdump-start.sh index 3ad14c0..e905d8a 100755 --- a/ttcn3-tcpdump-start.sh +++ b/ttcn3-tcpdump-start.sh @@ -39,7 +39,7 @@ CAP_ERR="1" if [ -x /sbin/setcap ]; then # N. B: this check requires libcap2-bin package - setcap -q -v 'cap_net_admin,cap_net_raw=pie' $DUMPCAP + /sbin/setcap -q -v 'cap_net_admin,cap_net_raw=pie' $DUMPCAP CAP_ERR="$?" fi if [ -u $DUMPCAP -o "$CAP_ERR" = "0" ]; then -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5131f869f86e6d136e0485da5e3749abbfc951e3 Gerrit-Change-Number: 21675 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 Fri Dec 11 14:37:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:37:05 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom resources.conf.prod: Update modem paths + add new modems aft... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21673 ) Change subject: sysmocom resources.conf.prod: Update modem paths + add new modems after HW upgrade ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21673 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: I346a5bb38270a32695ec73994179bd75d873b67a Gerrit-Change-Number: 21673 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 14:37: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 Dec 11 14:37:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:37:07 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom resources.conf.prod: Update modem paths + add new modems aft... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21673 ) Change subject: sysmocom resources.conf.prod: Update modem paths + add new modems after HW upgrade ...................................................................... sysmocom resources.conf.prod: Update modem paths + add new modems after HW upgrade Change-Id: I346a5bb38270a32695ec73994179bd75d873b67a --- M sysmocom/resources.conf.prod 1 file changed, 20 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/sysmocom/resources.conf.prod b/sysmocom/resources.conf.prod index 0444cf4..461ada9 100644 --- a/sysmocom/resources.conf.prod +++ b/sysmocom/resources.conf.prod @@ -212,43 +212,57 @@ ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'sim'] +- label: sierra_3rd + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.2' + ki: '97E2DAF5841D011F134E048E3B36D109' + auth_algo: 'comp128v1' + ciphers: [a5_0, a5_1] + features: ['2g', 'sms', 'voice', 'ussd', 'sim'] + +- label: sierra_4th + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.3' + ki: '6F7B518177DD550BDDDF1C9087BF4E48' + auth_algo: 'comp128v1' + ciphers: [a5_0, a5_1] + features: ['2g', 'sms', 'voice', 'ussd', 'sim'] + - label: gobi2k - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4.1/1-5.4.1.5' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.2/1-5.2.5' ki: '5752B3F43277C35D2D1D957007DF74E2' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sim'] - label: ec20_1 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4.1/1-5.4.1.6' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.2/1-5.2.6' ki: '07F35D0A9476646169669401215580E0' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim'] - label: ec20_2 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.2' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.2' ki: '278B899D126C31F3B24D21E3EB556530' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim'] - label: ec20_3 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.3' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.3' ki: 'B43BBCD8DE4D594F4146DE3D8ADC589D' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim'] - label: ec20_4 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.5' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.5' ki: 'A41F06F39DE3B0295C178A674D3E3636' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] features: ['2g', 'sms', 'voice', 'ussd', 'gprs', 'sim'] - label: ec20_5 - path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.3/1-5.3.6' + path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.1/1-5.1.6' ki: '8CCBE85A62C6DC7AC2A9886F4BBC3146' auth_algo: 'comp128v1' ciphers: [a5_0, a5_1] -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21673 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: I346a5bb38270a32695ec73994179bd75d873b67a Gerrit-Change-Number: 21673 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 Dec 11 14:44:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:44:56 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Use dumpcap instead of tcpdump References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21676 ) Change subject: ttcn3-gbproxy-test: Use dumpcap instead of tcpdump ...................................................................... ttcn3-gbproxy-test: Use dumpcap instead of tcpdump This is required for creating proper pcap files with both ethernet and framerelay/hdlc traffic. Change-Id: Id237c25b12e70a89f12bd6d745b09c3abf9b7a7a --- M ttcn3-gbproxy-test/Dockerfile 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/76/21676/1 diff --git a/ttcn3-gbproxy-test/Dockerfile b/ttcn3-gbproxy-test/Dockerfile index 47f788f..9a92c4a 100644 --- a/ttcn3-gbproxy-test/Dockerfile +++ b/ttcn3-gbproxy-test/Dockerfile @@ -23,8 +23,8 @@ VOLUME /data -RUN ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-start.sh / && \ - ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-stop.sh / +RUN ln -s /osmo-ttcn3-hacks/ttcn3-dumpcap-start.sh / && \ + ln -s /osmo-ttcn3-hacks/ttcn3-dumpcap-stop.sh / COPY GBProxy_Tests.cfg /data/GBProxy_Tests.cfg COPY pipework /usr/bin/pipework -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id237c25b12e70a89f12bd6d745b09c3abf9b7a7a Gerrit-Change-Number: 21676 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 Dec 11 14:46:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:46:23 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Use dumpcap instead of tcpdump In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21676 ) Change subject: ttcn3-gbproxy-test: Use dumpcap instead of tcpdump ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id237c25b12e70a89f12bd6d745b09c3abf9b7a7a Gerrit-Change-Number: 21676 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 14:46: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 Dec 11 14:46:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 14:46:25 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Use dumpcap instead of tcpdump In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21676 ) Change subject: ttcn3-gbproxy-test: Use dumpcap instead of tcpdump ...................................................................... ttcn3-gbproxy-test: Use dumpcap instead of tcpdump This is required for creating proper pcap files with both ethernet and framerelay/hdlc traffic. Change-Id: Id237c25b12e70a89f12bd6d745b09c3abf9b7a7a --- M ttcn3-gbproxy-test/Dockerfile 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test/Dockerfile b/ttcn3-gbproxy-test/Dockerfile index 47f788f..9a92c4a 100644 --- a/ttcn3-gbproxy-test/Dockerfile +++ b/ttcn3-gbproxy-test/Dockerfile @@ -23,8 +23,8 @@ VOLUME /data -RUN ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-start.sh / && \ - ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-stop.sh / +RUN ln -s /osmo-ttcn3-hacks/ttcn3-dumpcap-start.sh / && \ + ln -s /osmo-ttcn3-hacks/ttcn3-dumpcap-stop.sh / COPY GBProxy_Tests.cfg /data/GBProxy_Tests.cfg COPY pipework /usr/bin/pipework -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id237c25b12e70a89f12bd6d745b09c3abf9b7a7a Gerrit-Change-Number: 21676 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 Fri Dec 11 15:24:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 15:24:32 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: Add wirshark-common for dumpcap References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21677 ) Change subject: debian-stretch-titan: Add wirshark-common for dumpcap ...................................................................... debian-stretch-titan: Add wirshark-common for dumpcap We need dumpcap by ttcn3-dumpcap-start.sh Change-Id: I0879710ff200bde7f77584dfb69cfb14f02f5d69 --- M debian-stretch-titan/Dockerfile 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/77/21677/1 diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile index 3c9f672..74bc420 100644 --- a/debian-stretch-titan/Dockerfile +++ b/debian-stretch-titan/Dockerfile @@ -24,11 +24,12 @@ RUN apt-get update && \ apt-get upgrade -y && \ - apt-get -y install \ + DEBIAN_FRONTEND='noninteractive' apt-get install -y --no-install-recommends --no-install-suggests \ build-essential \ git \ procps \ tcpdump \ + wireshark-common \ vim \ netcat-openbsd \ && \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0879710ff200bde7f77584dfb69cfb14f02f5d69 Gerrit-Change-Number: 21677 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 Dec 11 15:26:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 15:26:14 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: Add wireshark-common for dumpcap In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/docker-playground/+/21677 ) Change subject: debian-stretch-titan: Add wireshark-common for dumpcap ...................................................................... debian-stretch-titan: Add wireshark-common for dumpcap We need dumpcap by ttcn3-dumpcap-start.sh Change-Id: I0879710ff200bde7f77584dfb69cfb14f02f5d69 --- M debian-stretch-titan/Dockerfile 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/77/21677/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0879710ff200bde7f77584dfb69cfb14f02f5d69 Gerrit-Change-Number: 21677 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 Dec 11 15:26:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 15:26:21 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: Add wireshark-common for dumpcap In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21677 ) Change subject: debian-stretch-titan: Add wireshark-common for dumpcap ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0879710ff200bde7f77584dfb69cfb14f02f5d69 Gerrit-Change-Number: 21677 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 15:26: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 Dec 11 15:26:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 15:26:24 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: Add wireshark-common for dumpcap In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21677 ) Change subject: debian-stretch-titan: Add wireshark-common for dumpcap ...................................................................... debian-stretch-titan: Add wireshark-common for dumpcap We need dumpcap by ttcn3-dumpcap-start.sh Change-Id: I0879710ff200bde7f77584dfb69cfb14f02f5d69 --- M debian-stretch-titan/Dockerfile 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile index 3c9f672..74bc420 100644 --- a/debian-stretch-titan/Dockerfile +++ b/debian-stretch-titan/Dockerfile @@ -24,11 +24,12 @@ RUN apt-get update && \ apt-get upgrade -y && \ - apt-get -y install \ + DEBIAN_FRONTEND='noninteractive' apt-get install -y --no-install-recommends --no-install-suggests \ build-essential \ git \ procps \ tcpdump \ + wireshark-common \ vim \ netcat-openbsd \ && \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0879710ff200bde7f77584dfb69cfb14f02f5d69 Gerrit-Change-Number: 21677 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Dec 11 15:53:20 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 11 Dec 2020 15:53:20 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sysmon in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fd3960b8b227_700a2ae86a7625f0508010@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sysmon/Debian_10/armv7l Package network:osmocom:nightly/osmo-sysmon failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-sysmon Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:15) -- 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 Dec 11 16:22:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 16:22:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-dumpcap-start.sh: Accept running as root or setuid dumpcap References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21678 ) Change subject: ttcn3-dumpcap-start.sh: Accept running as root or setuid dumpcap ...................................................................... ttcn3-dumpcap-start.sh: Accept running as root or setuid dumpcap Change-Id: Id97fb22e0018739a07e46ecaf26463248554f276 --- M ttcn3-dumpcap-start.sh 1 file changed, 8 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/78/21678/1 diff --git a/ttcn3-dumpcap-start.sh b/ttcn3-dumpcap-start.sh index aa3814a..4832b6d 100755 --- a/ttcn3-dumpcap-start.sh +++ b/ttcn3-dumpcap-start.sh @@ -30,7 +30,14 @@ kill_rm_pidfile $PIDFILE_NETCAT kill_rm_pidfile $PIDFILE_PCAP -if [ -x $DUMPCAP ]; then +if [ ! -x $DUMPCAP ]; then + echo "Missing required dumpcap binary at ${DUMPCAP}" + exit 31 +fi + +if [ "$(id -u)" = "0" ]; then + CMD="$DUMPCAP -q" +else CAP_ERR="1" if [ -x /sbin/setcap ]; then # N. B: this check requires libcap2-bin package -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id97fb22e0018739a07e46ecaf26463248554f276 Gerrit-Change-Number: 21678 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 Dec 11 16:22:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 16:22:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-dumpcap-start.sh: Accept running as root or setuid dumpcap In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21678 ) Change subject: ttcn3-dumpcap-start.sh: Accept running as root or setuid dumpcap ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id97fb22e0018739a07e46ecaf26463248554f276 Gerrit-Change-Number: 21678 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 11 Dec 2020 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 Dec 11 16:22:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 16:22:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-dumpcap-start.sh: Accept running as root or setuid dumpcap In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21678 ) Change subject: ttcn3-dumpcap-start.sh: Accept running as root or setuid dumpcap ...................................................................... ttcn3-dumpcap-start.sh: Accept running as root or setuid dumpcap Change-Id: Id97fb22e0018739a07e46ecaf26463248554f276 --- M ttcn3-dumpcap-start.sh 1 file changed, 8 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-dumpcap-start.sh b/ttcn3-dumpcap-start.sh index aa3814a..4832b6d 100755 --- a/ttcn3-dumpcap-start.sh +++ b/ttcn3-dumpcap-start.sh @@ -30,7 +30,14 @@ kill_rm_pidfile $PIDFILE_NETCAT kill_rm_pidfile $PIDFILE_PCAP -if [ -x $DUMPCAP ]; then +if [ ! -x $DUMPCAP ]; then + echo "Missing required dumpcap binary at ${DUMPCAP}" + exit 31 +fi + +if [ "$(id -u)" = "0" ]; then + CMD="$DUMPCAP -q" +else CAP_ERR="1" if [ -x /sbin/setcap ]; then # N. B: this check requires libcap2-bin package -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id97fb22e0018739a07e46ecaf26463248554f276 Gerrit-Change-Number: 21678 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 Fri Dec 11 17:12:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 17:12:04 +0000 Subject: Change in docker-playground[master]: gbproxy-test-fr: Avoid dumpcap failing to write to /data References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21679 ) Change subject: gbproxy-test-fr: Avoid dumpcap failing to write to /data ...................................................................... gbproxy-test-fr: Avoid dumpcap failing to write to /data Change-Id: I73dbdb4d85342e5fccd5ea4d9927f3244293d718 --- M ttcn3-gbproxy-test-fr/jenkins.sh 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/79/21679/1 diff --git a/ttcn3-gbproxy-test-fr/jenkins.sh b/ttcn3-gbproxy-test-fr/jenkins.sh index 0c2ec43..7038810 100755 --- a/ttcn3-gbproxy-test-fr/jenkins.sh +++ b/ttcn3-gbproxy-test-fr/jenkins.sh @@ -24,6 +24,8 @@ 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/gbproxy -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I73dbdb4d85342e5fccd5ea4d9927f3244293d718 Gerrit-Change-Number: 21679 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 Dec 11 17:12:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 17:12:18 +0000 Subject: Change in docker-playground[master]: gbproxy-test-fr: Avoid dumpcap failing to write to /data In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21679 ) Change subject: gbproxy-test-fr: Avoid dumpcap failing to write to /data ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I73dbdb4d85342e5fccd5ea4d9927f3244293d718 Gerrit-Change-Number: 21679 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 11 Dec 2020 17: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 Fri Dec 11 17:12:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 11 Dec 2020 17:12:21 +0000 Subject: Change in docker-playground[master]: gbproxy-test-fr: Avoid dumpcap failing to write to /data In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21679 ) Change subject: gbproxy-test-fr: Avoid dumpcap failing to write to /data ...................................................................... gbproxy-test-fr: Avoid dumpcap failing to write to /data Change-Id: I73dbdb4d85342e5fccd5ea4d9927f3244293d718 --- M ttcn3-gbproxy-test-fr/jenkins.sh 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test-fr/jenkins.sh b/ttcn3-gbproxy-test-fr/jenkins.sh index 0c2ec43..7038810 100755 --- a/ttcn3-gbproxy-test-fr/jenkins.sh +++ b/ttcn3-gbproxy-test-fr/jenkins.sh @@ -24,6 +24,8 @@ 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/gbproxy -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I73dbdb4d85342e5fccd5ea4d9927f3244293d718 Gerrit-Change-Number: 21679 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 Fri Dec 11 18:25:29 2020 From: gerrit-no-reply at lists.osmocom.org (roh) Date: Fri, 11 Dec 2020 18:25:29 +0000 Subject: Change in pysim[master]: Readme.md: update apt-get invocation for python3 dep. References: Message-ID: roh has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21680 ) Change subject: Readme.md: update apt-get invocation for python3 dep. ...................................................................... Readme.md: update apt-get invocation for python3 dep. Change-Id: Icb09204d6bc0d89fa8b793ff6df773cdefc19c5b --- M README.md 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/80/21680/1 diff --git a/README.md b/README.md index 7074ffa..105ca3f 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,8 @@ Example for Debian: - apt-get install python-pyscard python-serial python-pip - pip install pytlv + apt-get install python3-pyscard python3-serial python3-pip + pip3 install pytlv Mailing List -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icb09204d6bc0d89fa8b793ff6df773cdefc19c5b Gerrit-Change-Number: 21680 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 Fri Dec 11 18:27:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 11 Dec 2020 18:27:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix counter expectancies after LLC UI dummy frame fixes in PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21681 ) Change subject: pcu: Fix counter expectancies after LLC UI dummy frame fixes in PCU ...................................................................... pcu: Fix counter expectancies after LLC UI dummy frame fixes in PCU Recent commit 7d0f9a0ec383fcfca934731bd6979b6be6629c90 in osmo-pcu.git fixed situation where lots of unneeded LLC UI dummy frames where being sent. As a result, osmo-pcu correctly counts less dl rlcmac payload bytes being sent, so we must adjust our test expectancies. Related: OS#4849 Change-Id: I01c34a0948094b17cc0d67e613cd9b756f78c372 --- M pcu/PCU_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/81/21681/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 0c56348..facaa59 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1955,7 +1955,7 @@ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 0, max := 0}, { name := "TTCN3.bts.0.tbf.dl.alloc", mtype := "c", min := 1, max := 1}, { name := "TTCN3.bts.0.tbf.ul.alloc", mtype := "c", min := 0, max := 0}, - { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 112, max := 112}, + { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 64, max := 64}, { name := "TTCN3.bts.0.rlc.ul_payload_bytes", mtype := "c", min := 0, max := 0} }; f_statsd_expect(expect); @@ -2495,7 +2495,7 @@ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 1, max := 1}, { name := "TTCN3.bts.0.tbf.dl.alloc", mtype := "c", min := 1, max := 1}, { name := "TTCN3.bts.0.tbf.ul.alloc", mtype := "c", min := 1, max := 1}, - { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 28, max := 28}, + { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 10, max := 10}, { name := "TTCN3.bts.0.rlc.ul_payload_bytes", mtype := "c", min := 26, max := 26} }; f_statsd_expect(expect); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I01c34a0948094b17cc0d67e613cd9b756f78c372 Gerrit-Change-Number: 21681 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 Dec 11 18:51:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 11 Dec 2020 18:51:56 +0000 Subject: Change in osmo-pcu[master]: rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21682 ) Change subject: rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string ...................................................................... rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string Change-Id: I1b327bf955069ab10b2c6aa643ecf975fa23c1b5 --- M src/gsm_rlcmac.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/82/21682/1 diff --git a/src/gsm_rlcmac.c b/src/gsm_rlcmac.c index abb1e59..9b8782d 100644 --- a/src/gsm_rlcmac.c +++ b/src/gsm_rlcmac.c @@ -5318,7 +5318,7 @@ { MT_PACKET_PAUSE, "Pkt Pause" }, { MT_PACKET_ENHANCED_MEASUREMENT_REPORT,"Pkt Enchanced Meas Report" }, { MT_ADDITIONAL_MS_RAC, "Additional MS RAC" }, - { MT_PACKET_CELL_CHANGE_NOTIFICATION, "Pkt Cell Changte Notification" }, + { MT_PACKET_CELL_CHANGE_NOTIFICATION, "Pkt Cell Change Notification" }, { MT_PACKET_SI_STATUS, "Pkt SI Status" }, { MT_ENHANCED_MEASUREMENT_REPORT, "Enchanced Meas Report" }, { 0, NULL } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1b327bf955069ab10b2c6aa643ecf975fa23c1b5 Gerrit-Change-Number: 21682 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 Dec 11 19:10:10 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 11 Dec 2020 19:10:10 +0000 Subject: Change in osmo-pcu[master]: rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21682 ) Change subject: rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1b327bf955069ab10b2c6aa643ecf975fa23c1b5 Gerrit-Change-Number: 21682 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 11 Dec 2020 19:10: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 Dec 11 19:11:26 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 11 Dec 2020 19:11:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix counter expectancies after LLC UI dummy frame fixes in PCU In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21681 ) Change subject: pcu: Fix counter expectancies after LLC UI dummy frame fixes in PCU ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I01c34a0948094b17cc0d67e613cd9b756f78c372 Gerrit-Change-Number: 21681 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 11 Dec 2020 19:11: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 Dec 11 19:15:19 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 11 Dec 2020 19:15:19 +0000 Subject: Change in pysim[master]: Readme.md: update apt-get invocation for python3 dep. In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21680 ) Change subject: Readme.md: update apt-get invocation for python3 dep. ...................................................................... Patch Set 1: Code-Review+1 Keep in mind that pySim has not yet fully migrated to Python 3, see: https://gerrit.osmocom.org/c/pysim/+/15504 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icb09204d6bc0d89fa8b793ff6df773cdefc19c5b Gerrit-Change-Number: 21680 Gerrit-PatchSet: 1 Gerrit-Owner: roh Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 11 Dec 2020 19:15: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 Dec 11 19:29:51 2020 From: gerrit-no-reply at lists.osmocom.org (roh) Date: Fri, 11 Dec 2020 19:29:51 +0000 Subject: Change in pysim[master]: Readme.md: update apt-get invocation for python3 dep. In-Reply-To: References: Message-ID: roh has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21680 ) Change subject: Readme.md: update apt-get invocation for python3 dep. ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+1 > > Keep in mind that pySim has not yet fully migrated to Python 3, see: > > https://gerrit.osmocom.org/c/pysim/+/15504 sure. it just broke for me on normal 'useage' with a recent checkout and this fixed it. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icb09204d6bc0d89fa8b793ff6df773cdefc19c5b Gerrit-Change-Number: 21680 Gerrit-PatchSet: 1 Gerrit-Owner: roh Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 11 Dec 2020 19:29: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 Dec 11 19:57:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 11 Dec 2020 19:57:29 +0000 Subject: Change in osmo-pcu[master]: rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21682 ) Change subject: rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string ...................................................................... rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string Change-Id: I1b327bf955069ab10b2c6aa643ecf975fa23c1b5 --- M src/gsm_rlcmac.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gsm_rlcmac.c b/src/gsm_rlcmac.c index abb1e59..9b8782d 100644 --- a/src/gsm_rlcmac.c +++ b/src/gsm_rlcmac.c @@ -5318,7 +5318,7 @@ { MT_PACKET_PAUSE, "Pkt Pause" }, { MT_PACKET_ENHANCED_MEASUREMENT_REPORT,"Pkt Enchanced Meas Report" }, { MT_ADDITIONAL_MS_RAC, "Additional MS RAC" }, - { MT_PACKET_CELL_CHANGE_NOTIFICATION, "Pkt Cell Changte Notification" }, + { MT_PACKET_CELL_CHANGE_NOTIFICATION, "Pkt Cell Change Notification" }, { MT_PACKET_SI_STATUS, "Pkt SI Status" }, { MT_ENHANCED_MEASUREMENT_REPORT, "Enchanced Meas Report" }, { 0, NULL } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1b327bf955069ab10b2c6aa643ecf975fa23c1b5 Gerrit-Change-Number: 21682 Gerrit-PatchSet: 2 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 Dec 11 19:57:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 11 Dec 2020 19:57:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Fix counter expectancies after LLC UI dummy frame fixes in PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21681 ) Change subject: pcu: Fix counter expectancies after LLC UI dummy frame fixes in PCU ...................................................................... pcu: Fix counter expectancies after LLC UI dummy frame fixes in PCU Recent commit 7d0f9a0ec383fcfca934731bd6979b6be6629c90 in osmo-pcu.git fixed situation where lots of unneeded LLC UI dummy frames where being sent. As a result, osmo-pcu correctly counts less dl rlcmac payload bytes being sent, so we must adjust our test expectancies. Related: OS#4849 Change-Id: I01c34a0948094b17cc0d67e613cd9b756f78c372 --- M pcu/PCU_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 0c56348..facaa59 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1955,7 +1955,7 @@ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 0, max := 0}, { name := "TTCN3.bts.0.tbf.dl.alloc", mtype := "c", min := 1, max := 1}, { name := "TTCN3.bts.0.tbf.ul.alloc", mtype := "c", min := 0, max := 0}, - { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 112, max := 112}, + { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 64, max := 64}, { name := "TTCN3.bts.0.rlc.ul_payload_bytes", mtype := "c", min := 0, max := 0} }; f_statsd_expect(expect); @@ -2495,7 +2495,7 @@ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 1, max := 1}, { name := "TTCN3.bts.0.tbf.dl.alloc", mtype := "c", min := 1, max := 1}, { name := "TTCN3.bts.0.tbf.ul.alloc", mtype := "c", min := 1, max := 1}, - { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 28, max := 28}, + { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 10, max := 10}, { name := "TTCN3.bts.0.rlc.ul_payload_bytes", mtype := "c", min := 26, max := 26} }; f_statsd_expect(expect); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I01c34a0948094b17cc0d67e613cd9b756f78c372 Gerrit-Change-Number: 21681 Gerrit-PatchSet: 2 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 admin at opensuse.org Sat Dec 12 00:33:50 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 00:33:50 +0000 Subject: Build failure of network:osmocom:latest/eclipse-titan in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fd4100a94ddf_700a2ae86a7625f0612051@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/eclipse-titan/Raspbian_10/armv7l Package network:osmocom:latest/eclipse-titan failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:latest eclipse-titan Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild01:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 01:37:50 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 01:37:50 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd41f08288f4_700a2ae86a7625f0618716@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb01:13) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 01:46:23 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 01:46:23 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_10/i586 In-Reply-To: References: Message-ID: <5fd42107a6aa8_700a2ae86a7625f06190dd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_10/i586 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb03:6) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 01:48:06 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 01:48:06 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5fd42162804fa_700a2ae86a7625f06192e2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bts/Debian_9.0/i586 Package network:osmocom:nightly/osmo-bts failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bts Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud106:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 01:55:50 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 01:55:50 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd42340cf17a_700a2ae86a7625f0619518@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] [ 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] [ 154.769510] sysrq: Power Off [ 167s] [ 154.774671] reboot: Power down [ 167s] ### VM INTERACTION END ### [ 167s] [ 167s] lamb18 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Dec 12 01:55:05 UTC 2020. [ 167s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 01:57:16 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 01:57:16 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd4239c69a38_700a2ae86a7625f06196a0@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: [ 199s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 199s] [COMPILING libboard/qmod/source/card_pres.c] [ 200s] [COMPILING libboard/qmod/source/wwan_led.c] [ 200s] [COMPILING libboard/qmod/source/i2c.c] [ 200s] [COMPILING libboard/qmod/source/board_qmod.c] [ 200s] [COMPILING apps/dfu/main.c] [ 200s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 200s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 201s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 201s] Memory region Used Size Region Size %age Used [ 201s] rom: 16588 B 16 KB 101.25% [ 201s] 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' [ 201s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 201s] collect2: error: ld returned 1 exit status [ 201s] % [ 201s] make[2]: *** [Makefile:234: flash] Error 1 [ 201s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 201s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 201s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 201s] dh_auto_build: error: make -j1 returned exit code 2 [ 201s] make: *** [debian/rules:16: build] Error 25 [ 201s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 201s] ### VM INTERACTION START ### [ 204s] [ 192.148231] sysrq: Power Off [ 204s] [ 192.157762] reboot: Power down [ 204s] ### VM INTERACTION END ### [ 204s] [ 204s] lamb21 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Dec 12 01:56:14 UTC 2020. [ 204s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:04:07 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:04:07 +0000 Subject: Build failure of network:osmocom:latest/open5gs in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd4252533c7c_700a2ae86a7625f0620040@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/open5gs/xUbuntu_20.04/x86_64 Package network:osmocom:latest/open5gs failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest open5gs Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud120:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:04:58 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:04:58 +0000 Subject: Build failure of network:osmocom:latest/limesuite in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fd4256094c6a_700a2ae86a7625f06202cb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/limesuite/Debian_Testing/x86_64 Package network:osmocom:latest/limesuite failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:latest limesuite Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was sheep88:6) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:05:33 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:05:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5fd4257c178da_700a2ae86a7625f0620395@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/openSUSE_Tumbleweed/i586 Package network:osmocom:nightly/osmo-bsc failed to build in openSUSE_Tumbleweed/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud129:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:05:33 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:05:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fd4257ca413d_700a2ae86a7625f06204c3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb27:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:05:33 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:05:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fd4257d4b6d6_700a2ae86a7625f06205e9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/osmo-ggsn failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud111:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:06:24 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:06:24 +0000 Subject: Build failure of network:osmocom:latest/eclipse-titan in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fd425b89531_700a2ae86a7625f06206a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/eclipse-titan/Debian_Testing/x86_64 Package network:osmocom:latest/eclipse-titan failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:latest eclipse-titan Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was goat13:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:07:50 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:07:50 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5fd426135d4ab_700a2ae86a7625f06209c8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bts/xUbuntu_19.10/x86_64 Package network:osmocom:nightly/osmo-bts failed to build in xUbuntu_19.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bts Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb55:5) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:26:28 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:26:28 +0000 Subject: Build failure of network:osmocom:nightly/osmo-iuh in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5fd42a6947449_700a2ae86a7625f0621681@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-iuh/Debian_9.0/aarch64 Package network:osmocom:nightly/osmo-iuh failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-iuh Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-2:10) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:39:36 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:39:36 +0000 Subject: Build failure of network:osmocom:latest/neocon in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fd42d769fb12_700a2ae86a7625f062188c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/neocon/Raspbian_10/armv7l Package network:osmocom:latest/neocon failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:latest neocon Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:40:45 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:40:45 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fd42db287548_700a2ae86a7625f06219cb@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb56:10) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:44:27 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:44:27 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fd42e9fa7820_700a2ae86a7625f06224b8@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 lamb18:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:44:45 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:44:45 +0000 Subject: Build failure of network:osmocom:nightly/rtl-sdr in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fd42ea0e0b74_700a2ae86a7625f062253b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/rtl-sdr/Debian_Testing/x86_64 Package network:osmocom:nightly/rtl-sdr failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly rtl-sdr Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was goat03:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 02:45:02 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 02:45:02 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5fd42ec0ab103_700a2ae86a7625f0622788@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bts/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-bts failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bts Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb15:3) -- 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 Dec 12 02:52:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 12 Dec 2020 02:52:49 +0000 Subject: Change in osmo-bsc[master]: Implement ip.access coding of MS/BS Power Control Parameters References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21683 ) Change subject: Implement ip.access coding of MS/BS Power Control Parameters ...................................................................... Implement ip.access coding of MS/BS Power Control Parameters Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Related: SYS#4918 --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/bts_trx.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_trx.c 5 files changed, 302 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/21683/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 2b05418..ff246f6 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -188,6 +188,10 @@ void (*config_write_trx)(struct vty *vty, struct gsm_bts_trx *trx); void (*config_write_ts)(struct vty *vty, struct gsm_bts_trx_ts *ts); + /* MS/BS Power Control paramaters encoding functions (optional) */ + void (*enc_ms_power_params)(struct msgb *msg, const struct gsm_bts_trx *trx); + void (*enc_bs_power_params)(struct msgb *msg, const struct gsm_bts_trx *trx); + /* Should SI2bis and SI2ter be disabled by default on this BTS model? */ bool force_combined_si; diff --git a/include/osmocom/bsc/bts_trx.h b/include/osmocom/bsc/bts_trx.h index 5888c63..eff3fdd 100644 --- a/include/osmocom/bsc/bts_trx.h +++ b/include/osmocom/bsc/bts_trx.h @@ -22,6 +22,74 @@ struct gsm_abis_mo mo; }; +/* MS/BS Power related measurement averaging algo */ +enum trx_power_ctrl_meas_avg_algo { + TRX_PWR_CTRL_MEAS_AVG_ALGO_NONE = 0x00, + TRX_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED = 0x01, + TRX_PWR_CTRL_MEAS_AVG_ALGO_WEIGHTED = 0x02, + TRX_PWR_CTRL_MEAS_AVG_ALGO_MOD_MEDIAN = 0x03, + /* EWMA is an Osmocom specific algo */ + TRX_PWR_CTRL_MEAS_AVG_ALGO_EWMA = 0x04, +}; + +/* MS/BS Power related measurement parameters */ +struct trx_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 trx_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; + }; +}; + +enum trx_power_ctrl_dir { + TRX_PWR_CTRL_DIR_UL, /* MS Power Control */ + TRX_PWR_CTRL_DIR_DL, /* BS Power Control */ +}; + +enum trx_power_ctrl_mode { + /* Do not send MS/BS Power Control IEs */ + TRX_PWR_CTRL_MODE_NONE = 0, + /* Send MS/BS Power IE only (with target level) */ + TRX_PWR_CTRL_MODE_STATIC, + /* Send MS/BS Power [Parameters] IEs (dynamic mode) */ + TRX_PWR_CTRL_MODE_DYN_BTS, +}; + +/* MS/BS Power Control Parameters */ +struct trx_power_ctrl_params { + /* Power Control direction: Uplink or Downlink */ + enum trx_power_ctrl_dir dir; + /* Power Control mode to be used by the BTS */ + enum trx_power_ctrl_mode mode; + + /* Power change step size (dynamic mode only) */ + uint8_t inc_step_size_db; /* increasing direction */ + uint8_t red_step_size_db; /* reducing direction */ + + /* Measurement averaging parameters for RxLev & RxQual */ + struct trx_power_ctrl_meas_params rxqual_meas; + struct trx_power_ctrl_meas_params rxlev_meas; +}; + /* One TRX in a BTS */ struct gsm_bts_trx { /* list header in bts->trx_list */ @@ -51,6 +119,10 @@ int nominal_power; /* in dBm */ unsigned int max_power_red; /* in actual dB */ + /* MS/BS Power Control parameters */ + struct trx_power_ctrl_params ms_power_ctrl; + struct trx_power_ctrl_params bs_power_ctrl; + union { struct { struct { diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index f8ea5a5..0793bea 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -486,6 +486,39 @@ } } +static void enc_power_control_params(struct msgb *msg, + const struct gsm_bts_trx *trx, + enum trx_power_ctrl_dir dir) +{ + const struct gsm_bts_model *model = trx->bts->model; + uint8_t *ie_len; + + /* Since IE {MS,BS}_POWER_PARAM content is operator dependent, it's not + * known if non-osmocom BTS models will support an empty IE, so let's + * better skip sending it unless we know for sure what each expects. */ + switch (dir) { + case TRX_PWR_CTRL_DIR_UL: + if (trx->ms_power_ctrl.mode != TRX_PWR_CTRL_MODE_DYN_BTS) + return; + if (model->enc_ms_power_params == NULL) + return; + ie_len = msgb_tl_put(msg, RSL_IE_MS_POWER_PARAM); + model->enc_ms_power_params(msg, trx); + break; + case TRX_PWR_CTRL_DIR_DL: + if (trx->bs_power_ctrl.mode != TRX_PWR_CTRL_MODE_DYN_BTS) + return; + if (model->enc_bs_power_params == NULL) + return; + ie_len = msgb_tl_put(msg, RSL_IE_BS_POWER_PARAM); + model->enc_bs_power_params(msg, trx); + break; + } + + /* Update length part of the containing IE */ + *ie_len = msg->tail - (ie_len + 1); +} + /* Chapter 8.4.1 */ int rsl_tx_chan_activ(struct gsm_lchan *lchan, uint8_t act_type, uint8_t ho_ref) { @@ -573,12 +606,10 @@ msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power); msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power); msgb_tv_put(msg, RSL_IE_TIMING_ADVANCE, ta); - /* indicate MS power control to be performed by BTS: */ - if (bts->type == GSM_BTS_TYPE_OSMOBTS) - msgb_tl_put(msg, RSL_IE_MS_POWER_PARAM); - /* else: Since IE MS_POWER_PARAM content is operator dependent, it's not - known if non-osmocom BTS models will support an empty IE, so let's - better skip sending it unless we know for sure what each expects. */ + + /* BS/MS Power Control Parameters (if supported by BTS model) */ + enc_power_control_params(msg, trx, TRX_PWR_CTRL_DIR_DL); + enc_power_control_params(msg, trx, TRX_PWR_CTRL_DIR_UL); mr_config_for_bts(lchan, msg); rep_acch_cap_for_bts(lchan, msg); diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index c84d750..179e9b5 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -52,6 +52,9 @@ static int bts_model_nanobts_start(struct gsm_network *net); static void bts_model_nanobts_e1line_bind_ops(struct e1inp_line *line); +static void enc_ms_power_params(struct msgb *msg, const struct gsm_bts_trx *trx); +static void enc_bs_power_params(struct msgb *msg, const struct gsm_bts_trx *trx); + static char *get_oml_status(const struct gsm_bts *bts) { if (bts->oml_link) @@ -67,6 +70,8 @@ .oml_rcvmsg = &abis_nm_rcvmsg, .oml_status = &get_oml_status, .e1line_bind_ops = bts_model_nanobts_e1line_bind_ops, + .enc_ms_power_params = &enc_ms_power_params, + .enc_bs_power_params = &enc_bs_power_params, /* Some nanoBTS firmwares (if not all) don't support SI2ter and cause * problems on some MS if it is enabled, see OS#3063. Disable it by * default, can still be enabled through VTY cmd with same name. @@ -801,3 +806,131 @@ { e1inp_line_bind_ops(line, &ipaccess_e1inp_line_ops); } + +/* ip.access specific Power Control IEs */ +enum ipaccess_power_ctrl_param_iei { + POWER_CTRL_MEAS_AVG_PARAMS_IEI = 0x04, + POWER_CTRL_BS_THRESH_IEI = 0x05, + POWER_CTRL_MS_THRESH_IEI = 0x06, + POWER_CTRL_THRESH_COMP_IEI = 0x0a, +}; + +enum ipaccess_power_meas_param_type { + POWER_MEAS_PARAM_RXLEV = 0x00, + POWER_MEAS_PARAM_RXQUAL = 0x01, + POWER_MEAS_PARAM_MS_BTS_DIST = 0x02, +}; + +static void enc_meas_avg_params(struct msgb *msg, + const struct trx_power_ctrl_params *params, + enum ipaccess_power_meas_param_type ptype) +{ + const struct trx_power_ctrl_meas_params *mp; + uint8_t *ie_len, u8; + + switch (ptype) { + case POWER_MEAS_PARAM_RXLEV: + mp = ¶ms->rxlev_meas; + break; + case POWER_MEAS_PARAM_RXQUAL: + mp = ¶ms->rxqual_meas; + break; + /* FIXME: MS/BTS Distance is not supported */ + case POWER_MEAS_PARAM_MS_BTS_DIST: + default: + OSMO_ASSERT(0); + } + + /* No averaging => no Measurement Averaging parameters */ + if (mp->algo == TRX_PWR_CTRL_MEAS_AVG_ALGO_NONE) + return; + + /* (TLV) Measurement Averaging parameters for RxLev/RxQual */ + ie_len = msgb_tl_put(msg, POWER_CTRL_MEAS_AVG_PARAMS_IEI); + + /* Parameter ID and H_REQAVE */ + u8 = ((ptype & 0x07) << 5) | (mp->h_reqave & 0x1f); + msgb_v_put(msg, u8); + + /* Algorithm ID and H_REQT */ + u8 = ((mp->algo - 1) << 5) | (mp->h_reqt & 0x1f); + msgb_v_put(msg, u8); + + /* Averaging parameters */ + switch (mp->algo) { + case TRX_PWR_CTRL_MEAS_AVG_ALGO_EWMA: + msgb_v_put(msg, mp->ewma.alpha); + break; + case TRX_PWR_CTRL_MEAS_AVG_ALGO_WEIGHTED: + case TRX_PWR_CTRL_MEAS_AVG_ALGO_MOD_MEDIAN: + /* FIXME: unknown format */ + break; + case TRX_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED: + case TRX_PWR_CTRL_MEAS_AVG_ALGO_NONE: + /* No parameters here */ + break; + } + + /* Update length part of the containing IE */ + *ie_len = msg->tail - (ie_len + 1); +} + +static void enc_power_params(struct msgb *msg, const struct trx_power_ctrl_params *params) +{ + uint8_t u8; + + /* These parameters are valid for dynamic mode only */ + OSMO_ASSERT(params->mode == TRX_PWR_CTRL_MODE_DYN_BTS); + + /* (TV) Thresholds: {L,U}_RXLEV_XX_P and {L,U}_RXQUAL_XX_P */ + if (params->dir == TRX_PWR_CTRL_DIR_UL) + msgb_v_put(msg, POWER_CTRL_MS_THRESH_IEI); + else + msgb_v_put(msg, POWER_CTRL_BS_THRESH_IEI); + + /* {L,U}_RXLEV_XX_P (see 3GPP TS 45.008, A.3.2.1, a & b) */ + msgb_v_put(msg, params->rxlev_meas.lower_thresh & 0x3f); + msgb_v_put(msg, params->rxlev_meas.upper_thresh & 0x3f); + + /* {L,U}_RXQUAL_XX_P (see 3GPP TS 45.008, A.3.2.1, c & d) */ + u8 = ((params->rxqual_meas.lower_thresh & 0x07) << 4) + | ((params->rxqual_meas.upper_thresh & 0x07) << 0); + msgb_v_put(msg, u8); + + /* (TV) PC Threshold Comparators */ + msgb_v_put(msg, POWER_CTRL_THRESH_COMP_IEI); + + /* RxLev: P1, N1, P2, N2 (see 3GPP TS 45.008, A.3.2.1, a & b) */ + msgb_v_put(msg, params->rxlev_meas.lower_cmp_p & 0x1f); + msgb_v_put(msg, params->rxlev_meas.lower_cmp_n & 0x1f); + msgb_v_put(msg, params->rxlev_meas.upper_cmp_p & 0x1f); + msgb_v_put(msg, params->rxlev_meas.upper_cmp_n & 0x1f); + + /* RxQual: P3, N3, P4, N4 (see 3GPP TS 45.008, A.3.2.1, c & d) */ + msgb_v_put(msg, params->rxqual_meas.lower_cmp_p & 0x1f); + msgb_v_put(msg, params->rxqual_meas.lower_cmp_n & 0x1f); + msgb_v_put(msg, params->rxqual_meas.upper_cmp_p & 0x1f); + msgb_v_put(msg, params->rxqual_meas.upper_cmp_n & 0x1f); + + /* FIXME: TIMER_PWR_CON_INTERVAL (P_Con_INTERVAL) */ + msgb_v_put(msg, 0x00); /* 0 .. 30 seconds */ + + /* Change step limitations: POWER_{INC,RED}_STEP_SIZE */ + u8 = ((params->inc_step_size_db & 0x0f) << 4) + | ((params->red_step_size_db & 0x0f) << 0); + msgb_v_put(msg, u8); + + /* (TLV) Measurement Averaging Configure */ + enc_meas_avg_params(msg, params, POWER_MEAS_PARAM_RXLEV); + enc_meas_avg_params(msg, params, POWER_MEAS_PARAM_RXQUAL); +} + +static void enc_ms_power_params(struct msgb *msg, const struct gsm_bts_trx *trx) +{ + enc_power_params(msg, &trx->ms_power_ctrl); +} + +static void enc_bs_power_params(struct msgb *msg, const struct gsm_bts_trx *trx) +{ + enc_power_params(msg, &trx->bs_power_ctrl); +} diff --git a/src/osmo-bsc/bts_trx.c b/src/osmo-bsc/bts_trx.c index 0e52238..f1dd0fb 100644 --- a/src/osmo-bsc/bts_trx.c +++ b/src/osmo-bsc/bts_trx.c @@ -32,6 +32,54 @@ #include #include +/* Default MS/BS Power Control parameters (see 3GPP TS 45.008, table A.1) */ +static const struct trx_power_ctrl_params power_ctrl_params_def = { + /* Static Power Control is the safe default */ + .mode = TRX_PWR_CTRL_MODE_STATIC, + + /* Power increasing/reducing step size */ + .inc_step_size_db = 4, /* 2, 4, or 6 dB */ + .red_step_size_db = 2, /* 2 or 4 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) */ + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ + .lower_cmp_p = 10, /* P1 as in 3GPP TS 45.008, A.3.2.1 (case a) */ + .lower_cmp_n = 12, /* N1 as in 3GPP TS 45.008, A.3.2.1 (case a) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_RXLEV_XX_P */ + .upper_cmp_p = 19, /* P2 as in 3GPP TS 45.008, A.3.2.1 (case b) */ + .upper_cmp_n = 20, /* N2 as in 3GPP TS 45.008, A.3.2.1 (case b) */ + + /* No averaging (filtering) by default */ + .algo = TRX_PWR_CTRL_MEAS_AVG_ALGO_NONE, + }, + + /* RxQual measurement parameters */ + .rxqual_meas = { + /* Thresholds for RxQual (see 3GPP TS 45.008, A.3.2.1) */ + .lower_thresh = 0, /* L_RXQUAL_XX_P (BER < 0.2%) */ + .upper_thresh = 3, /* U_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ + .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_RXLEV_XX_P */ + .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + + /* No averaging (filtering) by default */ + .algo = TRX_PWR_CTRL_MEAS_AVG_ALGO_NONE, + }, +}; + static int gsm_bts_trx_talloc_destructor(struct gsm_bts_trx *trx) { unsigned int i; @@ -120,6 +168,14 @@ if (trx->nr != 0) trx->nominal_power = bts->c0->nominal_power; + /* MS Power Control parameters (defaults) */ + trx->ms_power_ctrl = power_ctrl_params_def; + trx->ms_power_ctrl.dir = TRX_PWR_CTRL_DIR_UL; + + /* BS Power Control parameters (defaults) */ + trx->bs_power_ctrl = power_ctrl_params_def; + trx->bs_power_ctrl.dir = TRX_PWR_CTRL_DIR_DL; + llist_add_tail(&trx->list, &bts->trx_list); return trx; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 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 Dec 12 02:52:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 12 Dec 2020 02:52:50 +0000 Subject: Change in osmo-bsc[master]: vty: add new attribute for vendor-specific commands References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21684 ) Change subject: vty: add new attribute for vendor-specific commands ...................................................................... vty: add new attribute for vendor-specific commands Change-Id: I2254cdf8c4be85c89819d0f831102ee71349b188 Related: SYS#4918 --- M include/osmocom/bsc/vty.h M src/osmo-bsc/osmo_bsc_main.c 2 files changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/21684/1 diff --git a/include/osmocom/bsc/vty.h b/include/osmocom/bsc/vty.h index d2361b0..cfdcbfc 100644 --- a/include/osmocom/bsc/vty.h +++ b/include/osmocom/bsc/vty.h @@ -40,6 +40,7 @@ BSC_VTY_ATTR_RESTART_ABIS_OML_LINK = 0, BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK, BSC_VTY_ATTR_NEW_LCHAN, + BSC_VTY_ATTR_VENDOR_SPECIFIC, /* NOTE: up to 32 entries */ }; diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index ca00ba0..df5235e 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -660,11 +660,14 @@ "This command applies on A-bis RSL link (re)establishment", [BSC_VTY_ATTR_NEW_LCHAN] = \ "This command applies for newly created lchans", + [BSC_VTY_ATTR_VENDOR_SPECIFIC] = \ + "This command/parameter is BTS vendor specific", }, .usr_attr_letters = { [BSC_VTY_ATTR_RESTART_ABIS_OML_LINK] = 'o', [BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK] = 'r', [BSC_VTY_ATTR_NEW_LCHAN] = 'l', + [BSC_VTY_ATTR_VENDOR_SPECIFIC] = 'v', }, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2254cdf8c4be85c89819d0f831102ee71349b188 Gerrit-Change-Number: 21684 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 Dec 12 02:52:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 12 Dec 2020 02:52:50 +0000 Subject: Change in osmo-bsc[master]: vty: add commands for MS/BS Power Control parameters References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: vty: add commands for MS/BS Power Control parameters ...................................................................... vty: add commands for MS/BS Power Control parameters Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 353 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/21685/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index c98a254..80cbee0 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4828,6 +4828,346 @@ return CMD_SUCCESS; } +#define BS_POWER_CONTROL_CMD \ + "bs-power-control" +#define MS_POWER_CONTROL_CMD \ + "ms-power-control" +#define POWER_CONTROL_CMD \ + "(" BS_POWER_CONTROL_CMD "|" MS_POWER_CONTROL_CMD ")" + +#define BS_POWER_CONTROL_DESC \ + "BS (Downlink) power control\n" +#define MS_POWER_CONTROL_DESC \ + "MS (Uplink) power control\n" +#define POWER_CONTROL_DESC \ + BS_POWER_CONTROL_DESC MS_POWER_CONTROL_DESC + +#define POWER_CONTROL_PARAMS(trx) \ + (strcmp(argv[0], BS_POWER_CONTROL_CMD) == 0) ? \ + &trx->bs_power_ctrl : &trx->ms_power_ctrl + +DEFUN_USRATTR(cfg_trx_no_power_ctrl, + cfg_trx_no_power_ctrl_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "no " POWER_CONTROL_CMD, + NO_STR POWER_CONTROL_DESC) +{ + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + + params = POWER_CONTROL_PARAMS(trx); + params->mode = TRX_PWR_CTRL_MODE_NONE; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_trx_power_ctrl_mode, + cfg_trx_power_ctrl_mode_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_CMD " mode (static|dyn-bts)", + POWER_CONTROL_DESC "Power control mode\n" + "Instruct the MS/BTS to use a static power level (default)\n" + "Power control to be performed dynamically by the BTS itself\n") +{ + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + + params = POWER_CONTROL_PARAMS(trx); + if (strcmp(argv[1], "static") == 0) + params->mode = TRX_PWR_CTRL_MODE_STATIC; + else if (strcmp(argv[1], "dyn-bts") == 0) + params->mode = TRX_PWR_CTRL_MODE_DYN_BTS; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_trx_power_ctrl_step_size, + cfg_trx_power_ctrl_step_size_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_CMD " step-size inc <2-6> red <2-4>", + POWER_CONTROL_DESC "Set power change step size (for dynamic mode)\n" + "Increase step size (default is 4 dB)\n" + "Step size (2, 4, or 6 dB)\n" + "Reduce step size (default is 2 dB)\n" + "Step size (2 or 4 dB)\n") +{ + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + + if (atoi(argv[1]) % 2 || atoi(argv[2]) % 2) { + vty_out(vty, "%% Power change step size must be " + "an even number%s", VTY_NEWLINE); + return CMD_WARNING; + } + + params = POWER_CONTROL_PARAMS(trx); + params->inc_step_size_db = atoi(argv[1]); + params->red_step_size_db = atoi(argv[2]); + + return CMD_SUCCESS; +} + +#define POWER_CONTROL_MEAS_RXLEV_DESC \ + "RxLev value (signal strength, 0 is worst, 63 is best)\n" +#define POWER_CONTROL_MEAS_RXQUAL_DESC \ + "RxQual value (signal quality, 0 is best, 7 is worst)\n" + +DEFUN_USRATTR(cfg_trx_power_ctrl_rxlev_thresh, + cfg_trx_power_ctrl_rxlev_thresh_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_CMD " rxlev-thresh lower <0-63> upper <0-63>", + POWER_CONTROL_DESC "Set target RxLev thresholds (for dynamic mode)\n" + "Lower RxLev value (default is 32, i.e. -78 dBm)\n" + "Lower " POWER_CONTROL_MEAS_RXLEV_DESC + "Upper RxLev value (default is 38, i.e. -72 dBm)\n" + "Upper " POWER_CONTROL_MEAS_RXLEV_DESC) +{ + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + int lower = atoi(argv[1]); + int upper = atoi(argv[2]); + + if (lower > upper) { + vty_out(vty, "%% Lower 'rxlev-thresh' (%d) must be less than upper (%d)%s", + lower, upper, VTY_NEWLINE); + return CMD_WARNING; + } + + params = POWER_CONTROL_PARAMS(trx); + params->rxlev_meas.lower_thresh = lower; + params->rxlev_meas.upper_thresh = upper; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_trx_power_ctrl_rxqual_thresh, + cfg_trx_power_ctrl_rxqual_thresh_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_CMD " rxqual-thresh lower <0-7> upper <0-7>", + POWER_CONTROL_DESC "Set target RxQual thresholds (for dynamic mode)\n" + "Lower RxQual value (default is 0, i.e. BER < 0.2%)\n" + "Lower " POWER_CONTROL_MEAS_RXQUAL_DESC + "Upper RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%)\n" + "Upper " POWER_CONTROL_MEAS_RXQUAL_DESC) +{ + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + int lower = atoi(argv[1]); + int upper = atoi(argv[2]); + + if (lower > upper) { + vty_out(vty, "%% Lower 'rxqual-rxqual' (%d) must be less than upper (%d)%s", + lower, upper, VTY_NEWLINE); + return CMD_WARNING; + } + + params = POWER_CONTROL_PARAMS(trx); + params->rxqual_meas.lower_thresh = lower; + params->rxqual_meas.upper_thresh = upper; + + return CMD_SUCCESS; +} + +#define POWER_CONTROL_MEAS_THRESH_COMP_CMD(meas) \ + POWER_CONTROL_CMD " " meas " lower <0-31> <0-31> upper <0-31> <0-31>" +#define POWER_CONTROL_MEAS_THRESH_COMP_DESC(meas, lp, ln, up, un) \ + POWER_CONTROL_DESC "Set " meas " threshold comparators (for dynamic mode)\n" \ + "Lower " meas " threshold comparators (see 3GPP TS 45.008, A.3.2.1)\n" lp ln \ + "Upper " meas " threshold comparators (see 3GPP TS 45.008, A.3.2.1)\n" up un + +DEFUN_USRATTR(cfg_trx_power_ctrl_rxlev_thresh_comp, + cfg_trx_power_ctrl_rxlev_thresh_comp_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_MEAS_THRESH_COMP_CMD("rxlev-thresh-comp"), + POWER_CONTROL_MEAS_THRESH_COMP_DESC("RxLev", + "P1 (default 10)\n", "N1 (default 12)\n", + "P2 (default 10)\n", "N2 (default 12)\n")) +{ + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + int lower_cmp_p = atoi(argv[1]); + int lower_cmp_n = atoi(argv[2]); + int upper_cmp_p = atoi(argv[3]); + int upper_cmp_n = atoi(argv[4]); + + if (lower_cmp_p > lower_cmp_n) { + vty_out(vty, "%% Lower RxLev P1 %d must be less than N1 %d%s", + lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + return CMD_WARNING; + } + + if (upper_cmp_p > upper_cmp_n) { + vty_out(vty, "%% Upper RxLev P2 %d must be less than N2 %d%s", + lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + return CMD_WARNING; + } + + params = POWER_CONTROL_PARAMS(trx); + params->rxlev_meas.lower_cmp_p = lower_cmp_p; + params->rxlev_meas.lower_cmp_n = lower_cmp_n; + params->rxlev_meas.upper_cmp_p = upper_cmp_p; + params->rxlev_meas.upper_cmp_n = upper_cmp_n; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_trx_power_ctrl_rxqual_thresh_comp, + cfg_trx_power_ctrl_rxqual_thresh_comp_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_MEAS_THRESH_COMP_CMD("rxqual-thresh-comp"), + POWER_CONTROL_MEAS_THRESH_COMP_DESC("RxQual", + "P3 (default 5)\n", "N3 (default 7)\n", + "P4 (default 15)\n", "N4 (default 18)\n")) +{ + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + int lower_cmp_p = atoi(argv[1]); + int lower_cmp_n = atoi(argv[2]); + int upper_cmp_p = atoi(argv[3]); + int upper_cmp_n = atoi(argv[4]); + + if (lower_cmp_p > lower_cmp_n) { + vty_out(vty, "%% Lower RxQual P3 %d must be less than N3 %d%s", + lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + return CMD_WARNING; + } + + if (upper_cmp_p > upper_cmp_n) { + vty_out(vty, "%% Upper RxQual P4 %d must be less than N4 %d%s", + lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + return CMD_WARNING; + } + + params = POWER_CONTROL_PARAMS(trx); + params->rxqual_meas.lower_cmp_p = lower_cmp_p; + params->rxqual_meas.lower_cmp_n = lower_cmp_n; + params->rxqual_meas.upper_cmp_p = upper_cmp_p; + params->rxqual_meas.upper_cmp_n = upper_cmp_n; + + return CMD_SUCCESS; +} + +#define POWER_CONTROL_MEAS_AVG_CMD \ + POWER_CONTROL_CMD " (rxlev-avg|rxqual-avg)" +#define POWER_CONTROL_MEAS_AVG_DESC \ + POWER_CONTROL_DESC \ + "RxLev (signal strength) measurement averaging (for dynamic mode)\n" \ + "RxQual (signal quality) measurement averaging (for dynamic mode)\n" + +#define POWER_CONTROL_MEAS_AVG_PARAMS(params) \ + (strncmp(argv[1], "rxlev", 5) == 0) ? \ + ¶ms->rxlev_meas : ¶ms->rxqual_meas + +DEFUN_USRATTR(cfg_trx_no_power_ctrl_avg, + cfg_trx_no_power_ctrl_avg_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "no " POWER_CONTROL_MEAS_AVG_CMD, + NO_STR POWER_CONTROL_MEAS_AVG_DESC) +{ + struct trx_power_ctrl_meas_params *avg_params; + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + + params = POWER_CONTROL_PARAMS(trx); + avg_params = POWER_CONTROL_MEAS_AVG_PARAMS(params); + avg_params->algo = TRX_PWR_CTRL_MEAS_AVG_ALGO_NONE; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_trx_power_ctrl_avg_params, + cfg_trx_power_ctrl_avg_params_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_MEAS_AVG_CMD " params hreqave <1-31> hreqt <1-31>", + POWER_CONTROL_MEAS_AVG_DESC "Configure general averaging parameters\n" + "Hreqave: the period over which an average is produced\n" + "Hreqave value (so that Hreqave * Hreqt < 32)\n" + "Hreqt: the number of averaged results that are maintained\n" + "Hreqt value (so that Hreqave * Hreqt < 32)\n") +{ + struct trx_power_ctrl_meas_params *avg_params; + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + int h_reqave = atoi(argv[1]); + int h_reqt = atoi(argv[2]); + + if (h_reqave * h_reqt > 31) { + vty_out(vty, "%% Hreqave (%d) * Hreqt (%d) = %d must be < 32%s", + h_reqave, h_reqt, h_reqave * h_reqt, VTY_NEWLINE); + return CMD_WARNING; + } + + params = POWER_CONTROL_PARAMS(trx); + avg_params = POWER_CONTROL_MEAS_AVG_PARAMS(params); + avg_params->h_reqave = h_reqave; + avg_params->h_reqt = h_reqt; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_trx_power_ctrl_avg_algo, + cfg_trx_power_ctrl_avg_algo_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + /* FIXME: add algorithm specific parameters */ + POWER_CONTROL_MEAS_AVG_CMD " algo (unweighted|weighted|mod-median)", + POWER_CONTROL_MEAS_AVG_DESC "Select the averaging algorithm\n" + "Un-weighted average\n" "Weighted average\n" + "Modified median calculation\n") +{ + struct trx_power_ctrl_meas_params *avg_params; + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + + params = POWER_CONTROL_PARAMS(trx); + avg_params = POWER_CONTROL_MEAS_AVG_PARAMS(params); + if (strcmp(argv[2], "unweighted") == 0) + avg_params->algo = TRX_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED; + else if (strcmp(argv[2], "weighted") == 0) + avg_params->algo = TRX_PWR_CTRL_MEAS_AVG_ALGO_WEIGHTED; + else if (strcmp(argv[2], "mod-median") == 0) + avg_params->algo = TRX_PWR_CTRL_MEAS_AVG_ALGO_MOD_MEDIAN; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_trx_power_ctrl_avg_ewma, + cfg_trx_power_ctrl_avg_ewma_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_MEAS_AVG_CMD " algo ewma beta <1-99>", + POWER_CONTROL_MEAS_AVG_DESC "Select the averaging algorithm\n" + "Exponentially Weighted Moving Average (EWMA)\n" + "Smoothing factor (in %): beta = (100 - alpha)\n" + "1% - lowest smoothing, 99% - highest smoothing\n") +{ + struct trx_power_ctrl_meas_params *avg_params; + struct trx_power_ctrl_params *params; + struct gsm_bts_trx *trx = vty->index; + + if (trx->bts->type != GSM_BTS_TYPE_OSMOBTS) { + vty_out(vty, "%% EWMA is an OsmoBTS specific algorithm, " + "it's not usable for other BTS types%s", VTY_NEWLINE); + return CMD_WARNING; + } + + params = POWER_CONTROL_PARAMS(trx); + avg_params = POWER_CONTROL_MEAS_AVG_PARAMS(params); + avg_params->algo = TRX_PWR_CTRL_MEAS_AVG_ALGO_EWMA; + avg_params->ewma.alpha = atoi(argv[2]); + + return CMD_SUCCESS; +} + /* NOTE: This requires a full restart as bsc_network_configure() is executed * only once on startup from osmo_bsc_main.c */ DEFUN(cfg_trx_rsl_e1, @@ -7205,6 +7545,19 @@ install_element(TRX_NODE, &cfg_trx_rsl_e1_tei_cmd); install_element(TRX_NODE, &cfg_trx_rf_locked_cmd); + install_element(TRX_NODE, &cfg_trx_no_power_ctrl_cmd); + install_element(TRX_NODE, &cfg_trx_power_ctrl_mode_cmd); + install_element(TRX_NODE, &cfg_trx_power_ctrl_step_size_cmd); + install_element(TRX_NODE, &cfg_trx_power_ctrl_rxlev_thresh_cmd); + install_element(TRX_NODE, &cfg_trx_power_ctrl_rxqual_thresh_cmd); + install_element(TRX_NODE, &cfg_trx_power_ctrl_rxlev_thresh_comp_cmd); + install_element(TRX_NODE, &cfg_trx_power_ctrl_rxqual_thresh_comp_cmd); + + install_element(TRX_NODE, &cfg_trx_no_power_ctrl_avg_cmd); + install_element(TRX_NODE, &cfg_trx_power_ctrl_avg_params_cmd); + install_element(TRX_NODE, &cfg_trx_power_ctrl_avg_algo_cmd); + install_element(TRX_NODE, &cfg_trx_power_ctrl_avg_ewma_cmd); + install_element(TRX_NODE, &cfg_ts_cmd); install_node(&ts_node, dummy_config_write); install_element(TS_NODE, &cfg_ts_pchan_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Dec 12 03:04:27 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 03:04:27 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fd43352f1c22_700a2ae86a7625f06245c6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-bts failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud115:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 03:04:45 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 03:04:45 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fd433546a0eb_700a2ae86a7625f06246d5@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb22:12) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 04:15:19 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 04:15:19 +0000 Subject: Build failure of network:osmocom:nightly/libsmpp34 in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fd443dacd4ed_700a2ae86a7625f06345a3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libsmpp34/Raspbian_10/armv7l Package network:osmocom:nightly/libsmpp34 failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libsmpp34 Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild01:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 04:41:52 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 04:41:52 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fd44a2a65631_700a2ae86a7625f0636331@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/osmo-smlc failed to build in openSUSE_Factory_ARM/armv7l 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 obs-arm-6:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 05:01:17 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 05:01:17 +0000 Subject: Build failure of network:osmocom:nightly/libasn1c in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fd44e9f76c13_700a2ae86a7625f06374e9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libasn1c/Debian_10/armv7l Package network:osmocom:nightly/libasn1c failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libasn1c Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild02:6) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 05:21:25 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 05:21:25 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fd4536e9cc7b_700a2ae86a7625f06403b3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/osmo-msc failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild24:6) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 05:35:25 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 05:35:25 +0000 Subject: Build failure of network:osmocom:latest/osmo-sip-connector in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5fd456b4766ea_700a2ae86a7625f06424d6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sip-connector/Raspbian_9.0/armv7l Package network:osmocom:latest/osmo-sip-connector failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-sip-connector Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:10) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 12 07:01:43 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 12 Dec 2020 07:01:43 +0000 Subject: Build failure of network:osmocom:latest/osmo-sip-connector in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fd46ade73884_700a2ae86a7625f0661639@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sip-connector/Raspbian_10/armv7l Package network:osmocom:latest/osmo-sip-connector failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-sip-connector Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild24: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 Sat Dec 12 13:06:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 13:06:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Be mover verbose about BVC-UNBLOCK failure at start-up References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21686 ) Change subject: gbproxy: Be mover verbose about BVC-UNBLOCK failure at start-up ...................................................................... gbproxy: Be mover verbose about BVC-UNBLOCK failure at start-up Change-Id: Ic849e1f932de21a443cd0274e02e0f2ccd423515 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/21686/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 2077e0f..59154e8 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -504,8 +504,9 @@ } [] T.timeout { - setverdict(fail, "Timeout waiting for unblock of all BVCs"); - mtc.stop; + setverdict(fail, "Timeout waiting for unblock of all BVCs on SGSN side; ", + "unblocked so far: ", bvci_unblocked, "expected: ", g_sgsn[0].cfg.bvc); + /* don't stop here but print below analysis */ } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic849e1f932de21a443cd0274e02e0f2ccd423515 Gerrit-Change-Number: 21686 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 Dec 12 13:06:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 13:06:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Remvoe redundant part from config file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21687 ) Change subject: gbproxy: Remvoe redundant part from config file ...................................................................... gbproxy: Remvoe redundant part from config file If a given setting is identical to the GBProxy_Tests.ttcn compile-time default, we don't need to repeat it in the config file. Change-Id: I3359f632eaf53bc602b1d10bb51de357f0eb2b45 --- M gbproxy/GBProxy_Tests.fr.cfg 1 file changed, 0 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/21687/1 diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index 043a2db..d316fe5 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -13,11 +13,6 @@ [MODULE_PARAMETERS] GBProxy_Tests.mp_enable_bss_load_sharing := true; -GBProxy_Tests.mp_nsconfig_sgsn := { - { - handle_sns := false - } -} GBProxy_Tests.mp_nsconfig_pcu := { { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3359f632eaf53bc602b1d10bb51de357f0eb2b45 Gerrit-Change-Number: 21687 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 Dec 12 14:18:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 14:18:25 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Copy RA-ID from BSS side BVC to CELL and SGSN-side BVC References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21688 ) Change subject: gbproxy: Copy RA-ID from BSS side BVC to CELL and SGSN-side BVC ...................................................................... gbproxy: Copy RA-ID from BSS side BVC to CELL and SGSN-side BVC Change-Id: I18669f269c4a959fcfa51885aafb719b662a7f8a Related: OS#4894 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/88/21688/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index ed4dbeb..0dd45d4 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -509,6 +509,7 @@ bvc->cell = gbproxy_cell_alloc(cfg, bvci); OSMO_ASSERT(bvc->cell); + memcpy(bvc->cell->ra, bvc->ra, sizeof(bvc->cell->ra)); /* link us to the cell and vice-versa */ bvc->cell->bss_bvc = bvc; @@ -524,6 +525,7 @@ OSMO_ASSERT(sgsn_bvc); sgsn_bvc->cell = bvc->cell; + memcpy(sgsn_bvc->ra, bvc->cell->ra, sizeof(sgsn_bvc->ra)); sgsn_bvc->fi = bssgp_bvc_fsm_alloc_ptp_bss(sgsn_bvc, cfg->nsi, sgsn_nse->nsei, bvci, ra_id, cell_id); OSMO_ASSERT(sgsn_bvc->fi); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I18669f269c4a959fcfa51885aafb719b662a7f8a Gerrit-Change-Number: 21688 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 Dec 12 14:18:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 14:18:26 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: (Re)allocate SGSN-side PTP BVC even if CELL already exists References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21689 ) Change subject: gbproxy: (Re)allocate SGSN-side PTP BVC even if CELL already exists ...................................................................... gbproxy: (Re)allocate SGSN-side PTP BVC even if CELL already exists After a SGSN-side RESET of the SIG-BVC, all PTP BVC on the SGSN side are gone. However, the CELLs and the BSS side BVCs continue to exist (as there may be other SGSNs). So if a PTP-BVC RESET from the BSS side arrives in such a situation, and we can find a matching CELL, we still need to check if we need to create any SGSN-side PTP BVCs instead of simply being happy with the CELLs already existing. Change-Id: I1d1562e421082fa4399c73ac31290e4c95718e49 Closes: OS#4903 --- M src/gbproxy/gb_proxy.c 1 file changed, 17 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/89/21689/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 0dd45d4..5e6f238 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -479,6 +479,7 @@ { struct gbproxy_bvc *bvc = priv; struct gbproxy_config *cfg = bvc->nse->cfg; + struct gbproxy_nse *sgsn_nse; unsigned int i; OSMO_ASSERT(bvci != 0); @@ -502,7 +503,6 @@ } if (!bvc->cell) { - struct gbproxy_nse *sgsn_nse; /* if we end up here, it means this is the first time we received a BVC-RESET * for this BVC. We need to create the 'cell' data structure and the SGSN-side * BVC counterparts */ @@ -513,28 +513,26 @@ /* link us to the cell and vice-versa */ bvc->cell->bss_bvc = bvc; + } - /* allocate the SGSN-side BVCs within the cell, and reset them */ - hash_for_each(cfg->sgsn_nses, i, sgsn_nse, list) { - struct gbproxy_bvc *sgsn_bvc = gbproxy_bvc_by_bvci(sgsn_nse, bvci); - if (sgsn_bvc) - OSMO_ASSERT(!sgsn_bvc->cell); + /* allocate (any missing) SGSN-side BVCs within the cell, and reset them */ + hash_for_each(cfg->sgsn_nses, i, sgsn_nse, list) { + struct gbproxy_bvc *sgsn_bvc = gbproxy_bvc_by_bvci(sgsn_nse, bvci); + if (sgsn_bvc) + OSMO_ASSERT(sgsn_bvc->cell == bvc->cell || !sgsn_bvc->cell); - if (!sgsn_bvc) { - sgsn_bvc = gbproxy_bvc_alloc(sgsn_nse, bvci); - OSMO_ASSERT(sgsn_bvc); + if (!sgsn_bvc) { + sgsn_bvc = gbproxy_bvc_alloc(sgsn_nse, bvci); + OSMO_ASSERT(sgsn_bvc); - sgsn_bvc->cell = bvc->cell; - memcpy(sgsn_bvc->ra, bvc->cell->ra, sizeof(sgsn_bvc->ra)); - sgsn_bvc->fi = bssgp_bvc_fsm_alloc_ptp_bss(sgsn_bvc, cfg->nsi, sgsn_nse->nsei, - bvci, ra_id, cell_id); - OSMO_ASSERT(sgsn_bvc->fi); - bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); + sgsn_bvc->cell = bvc->cell; + memcpy(sgsn_bvc->ra, bvc->cell->ra, sizeof(sgsn_bvc->ra)); + sgsn_bvc->fi = bssgp_bvc_fsm_alloc_ptp_bss(sgsn_bvc, cfg->nsi, sgsn_nse->nsei, + bvci, ra_id, cell_id); + OSMO_ASSERT(sgsn_bvc->fi); + bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); - gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); - } else { - OSMO_ASSERT(sgsn_bvc->cell == bvc->cell); - } + gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1d1562e421082fa4399c73ac31290e4c95718e49 Gerrit-Change-Number: 21689 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 Dec 12 14:18:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 14:18:27 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve VTY state intropsection References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21690 ) Change subject: gbproxy: Improve VTY state intropsection ...................................................................... gbproxy: Improve VTY state intropsection * allow to print not only BSS-side BVCs, but also SGSN-side * differentiate between SIG and PTP BVC * print the actual BVC FSM state name instead of just UNBLOCKED/nothing Change-Id: I8e09a9dc296b15094d191b0451d04457c815d116 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 34 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/90/21690/1 diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index a9db596..fd102d6 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -58,15 +58,29 @@ static void gbprox_vty_print_bvc(struct vty *vty, struct gbproxy_bvc *bvc) { - struct gprs_ra_id raid; - gsm48_parse_ra(&raid, bvc->ra); - vty_out(vty, "NSEI %5u, PTP-BVCI %5u, " - "RAI %s", bvc->nse->nsei, bvc->bvci, osmo_rai_name(&raid)); - if (bssgp_bvc_fsm_is_unblocked(bvc->fi)) - vty_out(vty, " [BVC-BLOCKED]"); + if (bvc->bvci == 0) { + vty_out(vty, "NSEI %5u, SIG-BVCI %5u [%s]%s", bvc->nse->nsei, bvc->bvci, + osmo_fsm_inst_state_name(bvc->fi), VTY_NEWLINE); + } else { + struct gprs_ra_id raid; + gsm48_parse_ra(&raid, bvc->ra); + vty_out(vty, "NSEI %5u, PTP-BVCI %5u, RAI %s [%s]%s", bvc->nse->nsei, bvc->bvci, + osmo_rai_name(&raid), osmo_fsm_inst_state_name(bvc->fi), VTY_NEWLINE); + } +} - vty_out(vty, "%s", VTY_NEWLINE); +static void gbproxy_vty_print_nse(struct vty *vty, struct gbproxy_nse *nse, bool show_stats) +{ + struct gbproxy_bvc *bvc; + int j; + + hash_for_each(nse->bvcs, j, bvc, list) { + gbprox_vty_print_bvc(vty, bvc); + + if (show_stats) + vty_out_rate_ctr_group(vty, " ", bvc->ctrg); + } } static int config_write_gbproxy(struct vty *vty) @@ -170,24 +184,25 @@ return CMD_SUCCESS; } -DEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy [stats]", - SHOW_STR "Display information about the Gb proxy\n" "Show statistics\n") +DEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy (bss|sgsn) [stats]", + SHOW_STR "Display information about the Gb proxy\n" + "Display BSS-side BVCs\n" + "Display SGSN-side BVCs\n" + "Show statistics\n") { struct gbproxy_nse *nse; - int show_stats = argc >= 1; - int i, j; + bool show_stats = argc >= 2; + int i; if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); - hash_for_each(g_cfg->bss_nses, i, nse, list) { - struct gbproxy_bvc *bvc; - hash_for_each(nse->bvcs, j, bvc, list) { - gbprox_vty_print_bvc(vty, bvc); - - if (show_stats) - vty_out_rate_ctr_group(vty, " ", bvc->ctrg); - } + if (!strcmp(argv[0], "bss")) { + hash_for_each(g_cfg->bss_nses, i, nse, list) + gbproxy_vty_print_nse(vty, nse, show_stats); + } else { + hash_for_each(g_cfg->sgsn_nses, i, nse, list) + gbproxy_vty_print_nse(vty, nse, show_stats); } return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8e09a9dc296b15094d191b0451d04457c815d116 Gerrit-Change-Number: 21690 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 Dec 12 14:18:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 14:18:28 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 ) Change subject: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." ...................................................................... gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." we have other objects to show, and the orthogoanl way to do this is to rename the existing one. Change-Id: I7836a37533a2de81720acedda712d61f429df12c --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/91/21691/1 diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index fd102d6..18dd53f 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -184,8 +184,9 @@ return CMD_SUCCESS; } -DEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy (bss|sgsn) [stats]", +DEFUN(show_gbproxy_bvc, show_gbproxy_bvc_cmd, "show gbproxy bvc (bss|sgsn) [stats]", SHOW_STR "Display information about the Gb proxy\n" + "Show BSSGP Virtual Connections\n" "Display BSS-side BVCs\n" "Display SGSN-side BVCs\n" "Show statistics\n") @@ -320,7 +321,7 @@ int gbproxy_vty_init(void) { - install_element_ve(&show_gbproxy_cmd); + install_element_ve(&show_gbproxy_bvc_cmd); install_element_ve(&show_gbproxy_links_cmd); install_element_ve(&logging_fltr_bvc_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7836a37533a2de81720acedda712d61f429df12c Gerrit-Change-Number: 21691 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 Dec 12 14:18:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 14:18:29 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... gbproxy: Add "show gbproxy cell ..." VTY command This allows the user to inspect CELL related gb-proxy state. Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 43 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/92/21692/1 diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 18dd53f..ae228f3 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -83,6 +83,32 @@ } } +static void gbproxy_vty_print_cell(struct vty *vty, struct gbproxy_cell *cell, bool show_stats) +{ + struct gprs_ra_id raid; + gsm48_parse_ra(&raid, cell->ra); + unsigned int num_sgsn_bvc = 0; + unsigned int i; + + vty_out(vty, "BVCI %5u RAI %s: ", cell->bvci, osmo_rai_name(&raid)); + if (cell->bss_bvc) + vty_out(vty, "BSS NSEI %5u, SGSN NSEI ", cell->bss_bvc->nse->nsei); + else + vty_out(vty, "BSS NSEI , SGSN NSEI "); + + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + struct gbproxy_bvc *sgsn_bvc = cell->sgsn_bvc[i]; + if (sgsn_bvc) { + vty_out(vty, "%5u ", sgsn_bvc->nse->nsei); + num_sgsn_bvc++; + } + } + if (num_sgsn_bvc) + vty_out(vty, "%s", VTY_NEWLINE); + else + vty_out(vty, "%s", VTY_NEWLINE); +} + static int config_write_gbproxy(struct vty *vty) { struct gbproxy_nse *nse; @@ -208,6 +234,22 @@ return CMD_SUCCESS; } +DEFUN(show_gbproxy_cell, show_gbproxy_cell_cmd, "show gbproxy cell [stats]", + SHOW_STR "Display information about the Gb proxy\n" + "Show GPRS Cell Information\n" + "Show All GPRS Cells\n" + "Show statistics\n") +{ + struct gbproxy_cell *cell; + bool show_stats = argc >= 1; + int i; + + hash_for_each(g_cfg->cells, i, cell, list) + gbproxy_vty_print_cell(vty, cell, show_stats); + + return CMD_SUCCESS; +} + DEFUN(show_gbproxy_links, show_gbproxy_links_cmd, "show gbproxy links", SHOW_STR "Display information about the Gb proxy\n" "Show logical links\n") { @@ -322,6 +364,7 @@ int gbproxy_vty_init(void) { install_element_ve(&show_gbproxy_bvc_cmd); + install_element_ve(&show_gbproxy_cell_cmd); install_element_ve(&show_gbproxy_links_cmd); install_element_ve(&logging_fltr_bvc_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 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 Dec 12 14:19:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 14:19:41 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Copy RA-ID from BSS side BVC to CELL and SGSN-side BVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21688 ) Change subject: gbproxy: Copy RA-ID from BSS side BVC to CELL and SGSN-side BVC ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I18669f269c4a959fcfa51885aafb719b662a7f8a Gerrit-Change-Number: 21688 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sat, 12 Dec 2020 14: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 Sat Dec 12 14:19:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 14:19:57 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: (Re)allocate SGSN-side PTP BVC even if CELL already exists In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21689 ) Change subject: gbproxy: (Re)allocate SGSN-side PTP BVC even if CELL already exists ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1d1562e421082fa4399c73ac31290e4c95718e49 Gerrit-Change-Number: 21689 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sat, 12 Dec 2020 14:19: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 Dec 12 14:36:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 14:36:37 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Copy RA-ID from BSS side BVC to CELL and SGSN-side BVC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21688 ) Change subject: gbproxy: Copy RA-ID from BSS side BVC to CELL and SGSN-side BVC ...................................................................... gbproxy: Copy RA-ID from BSS side BVC to CELL and SGSN-side BVC Change-Id: I18669f269c4a959fcfa51885aafb719b662a7f8a Related: OS#4894 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 0 deletions(-) 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 ed4dbeb..0dd45d4 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -509,6 +509,7 @@ bvc->cell = gbproxy_cell_alloc(cfg, bvci); OSMO_ASSERT(bvc->cell); + memcpy(bvc->cell->ra, bvc->ra, sizeof(bvc->cell->ra)); /* link us to the cell and vice-versa */ bvc->cell->bss_bvc = bvc; @@ -524,6 +525,7 @@ OSMO_ASSERT(sgsn_bvc); sgsn_bvc->cell = bvc->cell; + memcpy(sgsn_bvc->ra, bvc->cell->ra, sizeof(sgsn_bvc->ra)); sgsn_bvc->fi = bssgp_bvc_fsm_alloc_ptp_bss(sgsn_bvc, cfg->nsi, sgsn_nse->nsei, bvci, ra_id, cell_id); OSMO_ASSERT(sgsn_bvc->fi); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I18669f269c4a959fcfa51885aafb719b662a7f8a Gerrit-Change-Number: 21688 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 Dec 12 14:36:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 14:36:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: (Re)allocate SGSN-side PTP BVC even if CELL already exists In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21689 ) Change subject: gbproxy: (Re)allocate SGSN-side PTP BVC even if CELL already exists ...................................................................... gbproxy: (Re)allocate SGSN-side PTP BVC even if CELL already exists After a SGSN-side RESET of the SIG-BVC, all PTP BVC on the SGSN side are gone. However, the CELLs and the BSS side BVCs continue to exist (as there may be other SGSNs). So if a PTP-BVC RESET from the BSS side arrives in such a situation, and we can find a matching CELL, we still need to check if we need to create any SGSN-side PTP BVCs instead of simply being happy with the CELLs already existing. Change-Id: I1d1562e421082fa4399c73ac31290e4c95718e49 Closes: OS#4903 --- M src/gbproxy/gb_proxy.c 1 file changed, 17 insertions(+), 19 deletions(-) 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 0dd45d4..5e6f238 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -479,6 +479,7 @@ { struct gbproxy_bvc *bvc = priv; struct gbproxy_config *cfg = bvc->nse->cfg; + struct gbproxy_nse *sgsn_nse; unsigned int i; OSMO_ASSERT(bvci != 0); @@ -502,7 +503,6 @@ } if (!bvc->cell) { - struct gbproxy_nse *sgsn_nse; /* if we end up here, it means this is the first time we received a BVC-RESET * for this BVC. We need to create the 'cell' data structure and the SGSN-side * BVC counterparts */ @@ -513,28 +513,26 @@ /* link us to the cell and vice-versa */ bvc->cell->bss_bvc = bvc; + } - /* allocate the SGSN-side BVCs within the cell, and reset them */ - hash_for_each(cfg->sgsn_nses, i, sgsn_nse, list) { - struct gbproxy_bvc *sgsn_bvc = gbproxy_bvc_by_bvci(sgsn_nse, bvci); - if (sgsn_bvc) - OSMO_ASSERT(!sgsn_bvc->cell); + /* allocate (any missing) SGSN-side BVCs within the cell, and reset them */ + hash_for_each(cfg->sgsn_nses, i, sgsn_nse, list) { + struct gbproxy_bvc *sgsn_bvc = gbproxy_bvc_by_bvci(sgsn_nse, bvci); + if (sgsn_bvc) + OSMO_ASSERT(sgsn_bvc->cell == bvc->cell || !sgsn_bvc->cell); - if (!sgsn_bvc) { - sgsn_bvc = gbproxy_bvc_alloc(sgsn_nse, bvci); - OSMO_ASSERT(sgsn_bvc); + if (!sgsn_bvc) { + sgsn_bvc = gbproxy_bvc_alloc(sgsn_nse, bvci); + OSMO_ASSERT(sgsn_bvc); - sgsn_bvc->cell = bvc->cell; - memcpy(sgsn_bvc->ra, bvc->cell->ra, sizeof(sgsn_bvc->ra)); - sgsn_bvc->fi = bssgp_bvc_fsm_alloc_ptp_bss(sgsn_bvc, cfg->nsi, sgsn_nse->nsei, - bvci, ra_id, cell_id); - OSMO_ASSERT(sgsn_bvc->fi); - bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); + sgsn_bvc->cell = bvc->cell; + memcpy(sgsn_bvc->ra, bvc->cell->ra, sizeof(sgsn_bvc->ra)); + sgsn_bvc->fi = bssgp_bvc_fsm_alloc_ptp_bss(sgsn_bvc, cfg->nsi, sgsn_nse->nsei, + bvci, ra_id, cell_id); + OSMO_ASSERT(sgsn_bvc->fi); + bssgp_bvc_fsm_set_ops(sgsn_bvc->fi, &sgsn_ptp_bvc_fsm_ops, sgsn_bvc); - gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); - } else { - OSMO_ASSERT(sgsn_bvc->cell == bvc->cell); - } + gbproxy_cell_add_sgsn_bvc(bvc->cell, sgsn_bvc); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1d1562e421082fa4399c73ac31290e4c95718e49 Gerrit-Change-Number: 21689 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 Dec 12 15:17:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 15:17:42 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix segfault when receiving PAGING for unknown destination References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21693 ) Change subject: gbproxy: Fix segfault when receiving PAGING for unknown destination ...................................................................... gbproxy: Fix segfault when receiving PAGING for unknown destination The 'nse' variable had been used both as the input argument of the SGSN-side NSE, as well as a loop iteration variable. Let's separate this clearly. Closes: OS#4904 Change-Id: I375a219cd72eb11a9a0cb7d55a3efb7b83b771ac --- M src/gbproxy/gb_proxy.c 1 file changed, 7 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/93/21693/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 5e6f238..a976d25 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -828,11 +828,12 @@ } /* Receive paging request from SGSN, we need to relay to proper BSS */ -static int gbprox_rx_paging(struct gbproxy_nse *nse, struct msgb *msg, const char *pdut_name, +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 gbproxy_config *cfg = nse->cfg; + struct gbproxy_config *cfg = sgsn_nse->cfg; struct gbproxy_bvc *sgsn_bvc, *bss_bvc; + struct gbproxy_nse *nse; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; int i, j; @@ -842,9 +843,9 @@ if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; - sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + sgsn_bvc = gbproxy_bvc_by_bvci(sgsn_nse, bvci); if (!sgsn_bvc) { - LOGPNSE(nse, LOGL_NOTICE, "Rx %s: unable to route: BVCI=%05u unknown\n", + LOGPNSE(sgsn_nse, LOGL_NOTICE, "Rx %s: unable to route: BVCI=%05u unknown\n", pdut_name, bvci); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; @@ -893,12 +894,12 @@ } } } else { - LOGPNSE(nse, LOGL_ERROR, "BSSGP PAGING: unable to route, missing IE\n"); + LOGPNSE(sgsn_nse, LOGL_ERROR, "BSSGP PAGING: unable to route, missing IE\n"); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); } if (n_nses == 0) { - LOGPNSE(nse, LOGL_ERROR, "BSSGP PAGING: unable to route, no destination found\n"); + LOGPNSE(sgsn_nse, LOGL_ERROR, "BSSGP PAGING: unable to route, no destination found\n"); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I375a219cd72eb11a9a0cb7d55a3efb7b83b771ac Gerrit-Change-Number: 21693 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 Dec 12 15:19:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 15:19:19 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix segfault when receiving PAGING for unknown destination In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21693 ) Change subject: gbproxy: Fix segfault when receiving PAGING for unknown destination ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I375a219cd72eb11a9a0cb7d55a3efb7b83b771ac Gerrit-Change-Number: 21693 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sat, 12 Dec 2020 15:19: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 Dec 12 15:23:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 15:23:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve VTY state intropsection 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/+/21690 to look at the new patch set (#2). Change subject: gbproxy: Improve VTY state intropsection ...................................................................... gbproxy: Improve VTY state intropsection * allow to print not only BSS-side BVCs, but also SGSN-side * differentiate between SIG and PTP BVC * print the actual BVC FSM state name instead of just UNBLOCKED/nothing Change-Id: I8e09a9dc296b15094d191b0451d04457c815d116 --- M src/gbproxy/gb_proxy_vty.c M tests/vty_test_runner.py 2 files changed, 35 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/90/21690/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8e09a9dc296b15094d191b0451d04457c815d116 Gerrit-Change-Number: 21690 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 Dec 12 15:23:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 15:23:18 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix segfault when receiving PAGING for unknown destination In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21693 ) Change subject: gbproxy: Fix segfault when receiving PAGING for unknown destination ...................................................................... gbproxy: Fix segfault when receiving PAGING for unknown destination The 'nse' variable had been used both as the input argument of the SGSN-side NSE, as well as a loop iteration variable. Let's separate this clearly. Closes: OS#4904 Change-Id: I375a219cd72eb11a9a0cb7d55a3efb7b83b771ac --- M src/gbproxy/gb_proxy.c 1 file changed, 7 insertions(+), 6 deletions(-) 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 5e6f238..a976d25 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -828,11 +828,12 @@ } /* Receive paging request from SGSN, we need to relay to proper BSS */ -static int gbprox_rx_paging(struct gbproxy_nse *nse, struct msgb *msg, const char *pdut_name, +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 gbproxy_config *cfg = nse->cfg; + struct gbproxy_config *cfg = sgsn_nse->cfg; struct gbproxy_bvc *sgsn_bvc, *bss_bvc; + struct gbproxy_nse *nse; unsigned int n_nses = 0; int errctr = GBPROX_GLOB_CTR_PROTO_ERR_SGSN; int i, j; @@ -842,9 +843,9 @@ if (TLVP_PRES_LEN(tp, BSSGP_IE_BVCI, 2)) { uint16_t bvci = ntohs(tlvp_val16_unal(tp, BSSGP_IE_BVCI)); errctr = GBPROX_GLOB_CTR_OTHER_ERR; - sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); + sgsn_bvc = gbproxy_bvc_by_bvci(sgsn_nse, bvci); if (!sgsn_bvc) { - LOGPNSE(nse, LOGL_NOTICE, "Rx %s: unable to route: BVCI=%05u unknown\n", + LOGPNSE(sgsn_nse, LOGL_NOTICE, "Rx %s: unable to route: BVCI=%05u unknown\n", pdut_name, bvci); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; @@ -893,12 +894,12 @@ } } } else { - LOGPNSE(nse, LOGL_ERROR, "BSSGP PAGING: unable to route, missing IE\n"); + LOGPNSE(sgsn_nse, LOGL_ERROR, "BSSGP PAGING: unable to route, missing IE\n"); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); } if (n_nses == 0) { - LOGPNSE(nse, LOGL_ERROR, "BSSGP PAGING: unable to route, no destination found\n"); + LOGPNSE(sgsn_nse, LOGL_ERROR, "BSSGP PAGING: unable to route, no destination found\n"); rate_ctr_inc(&cfg->ctrg->ctr[errctr]); return -EINVAL; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I375a219cd72eb11a9a0cb7d55a3efb7b83b771ac Gerrit-Change-Number: 21693 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 Dec 12 15:28:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 15:28:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Remove redundant part from config file 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/+/21687 to look at the new patch set (#2). Change subject: gbproxy: Remove redundant part from config file ...................................................................... gbproxy: Remove redundant part from config file If a given setting is identical to the GBProxy_Tests.ttcn compile-time default, we don't need to repeat it in the config file. Change-Id: I3359f632eaf53bc602b1d10bb51de357f0eb2b45 --- M gbproxy/GBProxy_Tests.fr.cfg 1 file changed, 0 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/21687/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3359f632eaf53bc602b1d10bb51de357f0eb2b45 Gerrit-Change-Number: 21687 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 Dec 12 15:28:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 15:28:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-dumpcap-start.sh: Always capture lo interface References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21694 ) Change subject: ttcn3-dumpcap-start.sh: Always capture lo interface ...................................................................... ttcn3-dumpcap-start.sh: Always capture lo interface The loopback interface should always be captured, as it includes the 'ping' commands we use to detect the start of the packet capture. Change-Id: Ic3aee59dd230141a5d182e9babf8d33d59144aa4 --- M ttcn3-dumpcap-start.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/94/21694/1 diff --git a/ttcn3-dumpcap-start.sh b/ttcn3-dumpcap-start.sh index 4832b6d..3aec9b9 100755 --- a/ttcn3-dumpcap-start.sh +++ b/ttcn3-dumpcap-start.sh @@ -62,7 +62,7 @@ # but must use dumpcap with each individual interface name. We also # must write pcapng files, as only those can record the interface of # each packet -ADDL_ARGS="" +ADDL_ARGS="-i lo" for f in /sys/class/net/*; do DEV=`basename $f` if [[ "$DEV" == "hdlcnet"* ]]; then -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic3aee59dd230141a5d182e9babf8d33d59144aa4 Gerrit-Change-Number: 21694 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 Dec 12 16:34:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 16:34:06 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve VTY state introspection 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/+/21690 to look at the new patch set (#3). Change subject: gbproxy: Improve VTY state introspection ...................................................................... gbproxy: Improve VTY state introspection * allow to print not only BSS-side BVCs, but also SGSN-side * differentiate between SIG and PTP BVC * print the actual BVC FSM state name instead of just UNBLOCKED/nothing Change-Id: I8e09a9dc296b15094d191b0451d04457c815d116 --- M src/gbproxy/gb_proxy_vty.c M tests/vty_test_runner.py 2 files changed, 35 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/90/21690/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8e09a9dc296b15094d191b0451d04457c815d116 Gerrit-Change-Number: 21690 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 Dec 12 16:34:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 16:34:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add FSM related VTY commands References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21695 ) Change subject: gbproxy: Add FSM related VTY commands ...................................................................... gbproxy: Add FSM related VTY commands Change-Id: Id84ce52722d705eb25a12ee6f108ad3107a9f8d2 --- M src/gbproxy/gb_proxy_main.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/95/21695/1 diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index 7ef9302..e85e951 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -254,6 +254,7 @@ logging_vty_add_cmds(); osmo_talloc_vty_add_cmds(); osmo_stats_vty_add_cmds(); + osmo_fsm_vty_add_cmds(); gbproxy_vty_init(); handle_options(argc, argv); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id84ce52722d705eb25a12ee6f108ad3107a9f8d2 Gerrit-Change-Number: 21695 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 Dec 12 18:13:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:13:17 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement scaling of BVC flow control in SGSN pool References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21696 ) Change subject: gbproxy: Implement scaling of BVC flow control in SGSN pool ...................................................................... gbproxy: Implement scaling of BVC flow control in SGSN pool When there are multiple SGSNs inside a pool, we need to decide how much of the per-BVC capacity advertised by the BSS in its BVC-FLOW-CONTROL we should announce to each of the pool members. A conservative approach would be to advertise 1/num_sgsn, but there may also be use case where over-provisioning (announcing more than an equal share of the capacity) is useful. Hence, let's introduce "pool bvc-flow-control-ratio <1-100>" in order to allow the administrator to decide. Related: OS#4891 Change-Id: Ibe5addf657e7237499ca0205bacfe999ecd1e771 --- M doc/manuals/chapters/gbproxy-configuration.adoc M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_vty.c 4 files changed, 65 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/96/21696/1 diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index 599b3f7..e61af48 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -4,3 +4,29 @@ 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. + + +=== 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/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 8892cf4..200a539 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -52,6 +52,11 @@ /* NS instance of libosmogb */ struct gprs_ns2_inst *nsi; + struct { + /* percentage of BVC flow control advertised to each SGSN in the pool */ + uint8_t bvc_fc_ratio; + } pool; + /* Linked list of all BSS side Gb peers */ DECLARE_HASHTABLE(bss_nses, 8); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index a976d25..53aecdf 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -40,6 +40,7 @@ #include #include +#include #include #include @@ -566,15 +567,28 @@ /* BVC FSM informs us about BVC-FC PDU receive */ static void bss_ptp_bvc_fc_bvc(uint16_t nsei, uint16_t bvci, const struct bssgp2_flow_ctrl *fc, void *priv) { + struct bssgp2_flow_ctrl fc_reduced; struct gbproxy_bvc *bss_bvc = priv; - struct gbproxy_cell *cell = bss_bvc->cell; + struct gbproxy_cell *cell; + struct gbproxy_config *cfg; + OSMO_ASSERT(bss_bvc); + OSMO_ASSERT(fc); + + cell = bss_bvc->cell; if (!cell) return; - /* FIXME: actually split the bandwidth among the SGSNs! */ + cfg = cell->cfg; - dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_FC_BVC, (void *) fc); + /* reduce / scale according to configuration to make sure we only advertise a fraction + * of the capacity to each of the SGSNs in the pool */ + fc_reduced = *fc; + fc_reduced.bucket_size_max = (fc->bucket_size_max * cfg->pool.bvc_fc_ratio) / 100; + fc_reduced.bucket_leak_rate = (fc->bucket_leak_rate * cfg->pool.bvc_fc_ratio) / 100; + /* we don't modify the per-MS related values as any single MS is only served by one SGSN */ + + dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_FC_BVC, (void *) &fc_reduced); } static const struct bssgp_bvc_fsm_ops bss_ptp_bvc_fsm_ops = { @@ -1270,6 +1284,8 @@ { struct timespec tp; + /* by default we advertise 100% of the BSS-side capacity to _each_ SGSN */ + cfg->pool.bvc_fc_ratio = 100; hash_init(cfg->bss_nses); cfg->ctrg = rate_ctr_group_alloc(tall_sgsn_ctx, &global_ctrg_desc, 0); if (!cfg->ctrg) { diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index a9db596..49ec91c 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -76,6 +76,9 @@ vty_out(vty, "gbproxy%s", VTY_NEWLINE); + if (g_cfg->pool.bvc_fc_ratio != 100) + vty_out(vty, " pool bvc-flow-control-ratio %u%s", g_cfg->pool.bvc_fc_ratio, VTY_NEWLINE); + hash_for_each(g_cfg->sgsn_nses, i, nse, list) { vty_out(vty, " sgsn nsei %u%s", nse->nsei, VTY_NEWLINE); } @@ -134,6 +137,17 @@ return CMD_WARNING; } +DEFUN(cfg_pool_bvc_fc_ratio, + cfg_pool_bvc_fc_ratio_cmd, + "pool bvc-flow-control-ratio <1-100>", + "SGSN Pool related configuration\n" + "Ratio of BSS-advertised bucket size + leak rate advertised to each SGSN\n" + "Ratio of BSS-advertised bucket size + leak rate advertised to each SGSN (Percent)\n") +{ + g_cfg->pool.bvc_fc_ratio = atoi(argv[0]); + return CMD_SUCCESS; +} + static void log_set_bvc_filter(struct log_target *target, const uint16_t *bvci) { @@ -315,6 +329,7 @@ install_element(CONFIG_NODE, &cfg_gbproxy_cmd); install_node(&gbproxy_node, config_write_gbproxy); install_element(GBPROXY_NODE, &cfg_nsip_sgsn_nsei_cmd); + install_element(GBPROXY_NODE, &cfg_pool_bvc_fc_ratio_cmd); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibe5addf657e7237499ca0205bacfe999ecd1e771 Gerrit-Change-Number: 21696 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 Dec 12 18:15:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:15:50 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add FSM related VTY commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21695 ) Change subject: gbproxy: Add FSM related VTY commands ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id84ce52722d705eb25a12ee6f108ad3107a9f8d2 Gerrit-Change-Number: 21695 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 12 Dec 2020 18:15: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 Sat Dec 12 18:15:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:15:51 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add FSM related VTY commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21695 ) Change subject: gbproxy: Add FSM related VTY commands ...................................................................... gbproxy: Add FSM related VTY commands Change-Id: Id84ce52722d705eb25a12ee6f108ad3107a9f8d2 --- M src/gbproxy/gb_proxy_main.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index 7ef9302..e85e951 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -254,6 +254,7 @@ logging_vty_add_cmds(); osmo_talloc_vty_add_cmds(); osmo_stats_vty_add_cmds(); + osmo_fsm_vty_add_cmds(); gbproxy_vty_init(); handle_options(argc, argv); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id84ce52722d705eb25a12ee6f108ad3107a9f8d2 Gerrit-Change-Number: 21695 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 Dec 12 18:16:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:16:51 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: laforge has removed Jenkins Builder from this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... Removed reviewer Jenkins Builder. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: deleteReviewer -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Dec 12 18:20:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:20:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: multiple sgsn-side NS-VCs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21697 ) Change subject: WIP: multiple sgsn-side NS-VCs ...................................................................... WIP: multiple sgsn-side NS-VCs Change-Id: I088276578643cc5a52d0e00d16ec23cf7ab8cd8a --- M gbproxy/osmo-gbproxy.fr.cfg 1 file changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/97/21697/1 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index efec418..32f0e91 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -3,16 +3,25 @@ !! ! log stderr - logging level lns debug + !logging level lns debug + logging level lglobal info + logging level gprs debug + logging level lbssgp debug + logging level obj debug + logging print level 1 + logging print category 1 + logging print category-hex 0 + logging print file basename last line vty 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 + nse 101 nsvci 101 remote-role sgsn + nse 101 nsvci 101 encapsulation udp + nse 101 nsvci 101 remote-ip 127.0.0.1 + nse 101 nsvci 101 remote-port 7777 + timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- 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-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Dec 12 18:20:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:20:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: second SGSN References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 ) Change subject: WIP: second SGSN ...................................................................... WIP: second SGSN Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 --- M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.fr.cfg 2 files changed, 71 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/98/21698/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 59154e8..7e20077 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; @@ -425,8 +443,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 +473,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 +507,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 lcoal 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 +546,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.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index 32f0e91..ebf04d5 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -22,6 +22,12 @@ nse 101 nsvci 101 remote-ip 127.0.0.1 nse 101 nsvci 101 remote-port 7777 + nse 102 nsvci 102 + nse 102 nsvci 102 remote-role sgsn + nse 102 nsvci 102 encapsulation udp + nse 102 nsvci 102 remote-ip 127.0.0.1 + nse 102 nsvci 102 remote-port 8888 + timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -44,3 +50,4 @@ gbproxy sgsn nsei 101 + sgsn nsei 102 -- 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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Dec 12 18:21:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:21:14 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement scaling of BVC flow control in SGSN pool In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21696 ) Change subject: gbproxy: Implement scaling of BVC flow control in SGSN pool ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibe5addf657e7237499ca0205bacfe999ecd1e771 Gerrit-Change-Number: 21696 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: daniel Gerrit-Comment-Date: Sat, 12 Dec 2020 18:21: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 Dec 12 18:21:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:21:18 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve VTY state introspection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21690 ) Change subject: gbproxy: Improve VTY state introspection ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8e09a9dc296b15094d191b0451d04457c815d116 Gerrit-Change-Number: 21690 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 12 Dec 2020 18: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 Sat Dec 12 18:21:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:21:22 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement scaling of BVC flow control in SGSN pool In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21696 ) Change subject: gbproxy: Implement scaling of BVC flow control in SGSN pool ...................................................................... gbproxy: Implement scaling of BVC flow control in SGSN pool When there are multiple SGSNs inside a pool, we need to decide how much of the per-BVC capacity advertised by the BSS in its BVC-FLOW-CONTROL we should announce to each of the pool members. A conservative approach would be to advertise 1/num_sgsn, but there may also be use case where over-provisioning (announcing more than an equal share of the capacity) is useful. Hence, let's introduce "pool bvc-flow-control-ratio <1-100>" in order to allow the administrator to decide. Related: OS#4891 Change-Id: Ibe5addf657e7237499ca0205bacfe999ecd1e771 --- M doc/manuals/chapters/gbproxy-configuration.adoc M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_vty.c 4 files changed, 65 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index 599b3f7..e61af48 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -4,3 +4,29 @@ 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. + + +=== 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/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 8892cf4..200a539 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -52,6 +52,11 @@ /* NS instance of libosmogb */ struct gprs_ns2_inst *nsi; + struct { + /* percentage of BVC flow control advertised to each SGSN in the pool */ + uint8_t bvc_fc_ratio; + } pool; + /* Linked list of all BSS side Gb peers */ DECLARE_HASHTABLE(bss_nses, 8); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index a976d25..53aecdf 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -40,6 +40,7 @@ #include #include +#include #include #include @@ -566,15 +567,28 @@ /* BVC FSM informs us about BVC-FC PDU receive */ static void bss_ptp_bvc_fc_bvc(uint16_t nsei, uint16_t bvci, const struct bssgp2_flow_ctrl *fc, void *priv) { + struct bssgp2_flow_ctrl fc_reduced; struct gbproxy_bvc *bss_bvc = priv; - struct gbproxy_cell *cell = bss_bvc->cell; + struct gbproxy_cell *cell; + struct gbproxy_config *cfg; + OSMO_ASSERT(bss_bvc); + OSMO_ASSERT(fc); + + cell = bss_bvc->cell; if (!cell) return; - /* FIXME: actually split the bandwidth among the SGSNs! */ + cfg = cell->cfg; - dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_FC_BVC, (void *) fc); + /* reduce / scale according to configuration to make sure we only advertise a fraction + * of the capacity to each of the SGSNs in the pool */ + fc_reduced = *fc; + fc_reduced.bucket_size_max = (fc->bucket_size_max * cfg->pool.bvc_fc_ratio) / 100; + fc_reduced.bucket_leak_rate = (fc->bucket_leak_rate * cfg->pool.bvc_fc_ratio) / 100; + /* we don't modify the per-MS related values as any single MS is only served by one SGSN */ + + dispatch_to_all_sgsn_bvc(cell, BSSGP_BVCFSM_E_REQ_FC_BVC, (void *) &fc_reduced); } static const struct bssgp_bvc_fsm_ops bss_ptp_bvc_fsm_ops = { @@ -1270,6 +1284,8 @@ { struct timespec tp; + /* by default we advertise 100% of the BSS-side capacity to _each_ SGSN */ + cfg->pool.bvc_fc_ratio = 100; hash_init(cfg->bss_nses); cfg->ctrg = rate_ctr_group_alloc(tall_sgsn_ctx, &global_ctrg_desc, 0); if (!cfg->ctrg) { diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index a9db596..49ec91c 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -76,6 +76,9 @@ vty_out(vty, "gbproxy%s", VTY_NEWLINE); + if (g_cfg->pool.bvc_fc_ratio != 100) + vty_out(vty, " pool bvc-flow-control-ratio %u%s", g_cfg->pool.bvc_fc_ratio, VTY_NEWLINE); + hash_for_each(g_cfg->sgsn_nses, i, nse, list) { vty_out(vty, " sgsn nsei %u%s", nse->nsei, VTY_NEWLINE); } @@ -134,6 +137,17 @@ return CMD_WARNING; } +DEFUN(cfg_pool_bvc_fc_ratio, + cfg_pool_bvc_fc_ratio_cmd, + "pool bvc-flow-control-ratio <1-100>", + "SGSN Pool related configuration\n" + "Ratio of BSS-advertised bucket size + leak rate advertised to each SGSN\n" + "Ratio of BSS-advertised bucket size + leak rate advertised to each SGSN (Percent)\n") +{ + g_cfg->pool.bvc_fc_ratio = atoi(argv[0]); + return CMD_SUCCESS; +} + static void log_set_bvc_filter(struct log_target *target, const uint16_t *bvci) { @@ -315,6 +329,7 @@ install_element(CONFIG_NODE, &cfg_gbproxy_cmd); install_node(&gbproxy_node, config_write_gbproxy); install_element(GBPROXY_NODE, &cfg_nsip_sgsn_nsei_cmd); + install_element(GBPROXY_NODE, &cfg_pool_bvc_fc_ratio_cmd); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ibe5addf657e7237499ca0205bacfe999ecd1e771 Gerrit-Change-Number: 21696 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: daniel Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Dec 12 18:21:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:21:22 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve VTY state introspection In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21690 ) Change subject: gbproxy: Improve VTY state introspection ...................................................................... gbproxy: Improve VTY state introspection * allow to print not only BSS-side BVCs, but also SGSN-side * differentiate between SIG and PTP BVC * print the actual BVC FSM state name instead of just UNBLOCKED/nothing Change-Id: I8e09a9dc296b15094d191b0451d04457c815d116 --- M src/gbproxy/gb_proxy_vty.c M tests/vty_test_runner.py 2 files changed, 35 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 49ec91c..976ac12 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -58,15 +58,29 @@ static void gbprox_vty_print_bvc(struct vty *vty, struct gbproxy_bvc *bvc) { - struct gprs_ra_id raid; - gsm48_parse_ra(&raid, bvc->ra); - vty_out(vty, "NSEI %5u, PTP-BVCI %5u, " - "RAI %s", bvc->nse->nsei, bvc->bvci, osmo_rai_name(&raid)); - if (bssgp_bvc_fsm_is_unblocked(bvc->fi)) - vty_out(vty, " [BVC-BLOCKED]"); + if (bvc->bvci == 0) { + vty_out(vty, "NSEI %5u, SIG-BVCI %5u [%s]%s", bvc->nse->nsei, bvc->bvci, + osmo_fsm_inst_state_name(bvc->fi), VTY_NEWLINE); + } else { + struct gprs_ra_id raid; + gsm48_parse_ra(&raid, bvc->ra); + vty_out(vty, "NSEI %5u, PTP-BVCI %5u, RAI %s [%s]%s", bvc->nse->nsei, bvc->bvci, + osmo_rai_name(&raid), osmo_fsm_inst_state_name(bvc->fi), VTY_NEWLINE); + } +} - vty_out(vty, "%s", VTY_NEWLINE); +static void gbproxy_vty_print_nse(struct vty *vty, struct gbproxy_nse *nse, bool show_stats) +{ + struct gbproxy_bvc *bvc; + int j; + + hash_for_each(nse->bvcs, j, bvc, list) { + gbprox_vty_print_bvc(vty, bvc); + + if (show_stats) + vty_out_rate_ctr_group(vty, " ", bvc->ctrg); + } } static int config_write_gbproxy(struct vty *vty) @@ -184,24 +198,25 @@ return CMD_SUCCESS; } -DEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy [stats]", - SHOW_STR "Display information about the Gb proxy\n" "Show statistics\n") +DEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy (bss|sgsn) [stats]", + SHOW_STR "Display information about the Gb proxy\n" + "Display BSS-side BVCs\n" + "Display SGSN-side BVCs\n" + "Show statistics\n") { struct gbproxy_nse *nse; - int show_stats = argc >= 1; - int i, j; + bool show_stats = argc >= 2; + int i; if (show_stats) vty_out_rate_ctr_group(vty, "", g_cfg->ctrg); - hash_for_each(g_cfg->bss_nses, i, nse, list) { - struct gbproxy_bvc *bvc; - hash_for_each(nse->bvcs, j, bvc, list) { - gbprox_vty_print_bvc(vty, bvc); - - if (show_stats) - vty_out_rate_ctr_group(vty, " ", bvc->ctrg); - } + if (!strcmp(argv[0], "bss")) { + hash_for_each(g_cfg->bss_nses, i, nse, list) + gbproxy_vty_print_nse(vty, nse, show_stats); + } else { + hash_for_each(g_cfg->sgsn_nses, i, nse, list) + gbproxy_vty_print_nse(vty, nse, show_stats); } return CMD_SUCCESS; } diff --git a/tests/vty_test_runner.py b/tests/vty_test_runner.py index 4587564..be40abc 100755 --- a/tests/vty_test_runner.py +++ b/tests/vty_test_runner.py @@ -97,7 +97,7 @@ res = self.vty.command("show ns") self.assertTrue(res.find('UDP bind') >= 0) - res = self.vty.command("show gbproxy stats") + res = self.vty.command("show gbproxy bss stats") self.assertTrue(res.find('GBProxy Global Statistics') >= 0) def testVtyDeletePeer(self): -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8e09a9dc296b15094d191b0451d04457c815d116 Gerrit-Change-Number: 21690 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Assignee: 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 Sat Dec 12 18:59:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:59:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-dumpcap-start.sh: Always capture lo interface In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21694 ) Change subject: ttcn3-dumpcap-start.sh: Always capture lo interface ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic3aee59dd230141a5d182e9babf8d33d59144aa4 Gerrit-Change-Number: 21694 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 12 Dec 2020 18:59: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 Dec 12 18:59:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:59:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Be mover verbose about BVC-UNBLOCK failure at start-up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21686 ) Change subject: gbproxy: Be mover verbose about BVC-UNBLOCK failure at start-up ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic849e1f932de21a443cd0274e02e0f2ccd423515 Gerrit-Change-Number: 21686 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 12 Dec 2020 18:59: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 Sat Dec 12 18:59:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:59:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Remove redundant part from config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21687 ) Change subject: gbproxy: Remove redundant part from config file ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3359f632eaf53bc602b1d10bb51de357f0eb2b45 Gerrit-Change-Number: 21687 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 12 Dec 2020 18:59: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 Dec 12 18:59:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:59:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-dumpcap-start.sh: Always capture lo interface In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21694 ) Change subject: ttcn3-dumpcap-start.sh: Always capture lo interface ...................................................................... ttcn3-dumpcap-start.sh: Always capture lo interface The loopback interface should always be captured, as it includes the 'ping' commands we use to detect the start of the packet capture. Change-Id: Ic3aee59dd230141a5d182e9babf8d33d59144aa4 --- M ttcn3-dumpcap-start.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/ttcn3-dumpcap-start.sh b/ttcn3-dumpcap-start.sh index 4832b6d..3aec9b9 100755 --- a/ttcn3-dumpcap-start.sh +++ b/ttcn3-dumpcap-start.sh @@ -62,7 +62,7 @@ # but must use dumpcap with each individual interface name. We also # must write pcapng files, as only those can record the interface of # each packet -ADDL_ARGS="" +ADDL_ARGS="-i lo" for f in /sys/class/net/*; do DEV=`basename $f` if [[ "$DEV" == "hdlcnet"* ]]; then -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic3aee59dd230141a5d182e9babf8d33d59144aa4 Gerrit-Change-Number: 21694 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 Dec 12 18:59:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:59:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Be mover verbose about BVC-UNBLOCK failure at start-up In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21686 ) Change subject: gbproxy: Be mover verbose about BVC-UNBLOCK failure at start-up ...................................................................... gbproxy: Be mover verbose about BVC-UNBLOCK failure at start-up Change-Id: Ic849e1f932de21a443cd0274e02e0f2ccd423515 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 2077e0f..59154e8 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -504,8 +504,9 @@ } [] T.timeout { - setverdict(fail, "Timeout waiting for unblock of all BVCs"); - mtc.stop; + setverdict(fail, "Timeout waiting for unblock of all BVCs on SGSN side; ", + "unblocked so far: ", bvci_unblocked, "expected: ", g_sgsn[0].cfg.bvc); + /* don't stop here but print below analysis */ } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic849e1f932de21a443cd0274e02e0f2ccd423515 Gerrit-Change-Number: 21686 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 Dec 12 18:59:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 18:59:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Remove redundant part from config file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21687 ) Change subject: gbproxy: Remove redundant part from config file ...................................................................... gbproxy: Remove redundant part from config file If a given setting is identical to the GBProxy_Tests.ttcn compile-time default, we don't need to repeat it in the config file. Change-Id: I3359f632eaf53bc602b1d10bb51de357f0eb2b45 --- M gbproxy/GBProxy_Tests.fr.cfg 1 file changed, 0 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index 043a2db..d316fe5 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -13,11 +13,6 @@ [MODULE_PARAMETERS] GBProxy_Tests.mp_enable_bss_load_sharing := true; -GBProxy_Tests.mp_nsconfig_sgsn := { - { - handle_sns := false - } -} GBProxy_Tests.mp_nsconfig_pcu := { { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3359f632eaf53bc602b1d10bb51de357f0eb2b45 Gerrit-Change-Number: 21687 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 Dec 12 19:06:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 19:06:02 +0000 Subject: Change in osmo-pcu[master]: migrate to DLBSSGP as log sub-system for BSSGP 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/osmo-pcu/+/21648 to look at the new patch set (#4). Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... migrate to DLBSSGP as log sub-system for BSSGP Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Depends: libosmocore.git Change-Id I506190aae9217c0956e4b5764d1a0c0772268e93 --- M TODO-RELEASE M src/gprs_debug.cpp M src/gprs_debug.h M src/pcu_main.cpp M tests/tbf/TbfTest.cpp 5 files changed, 8 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/21648/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Gerrit-Change-Number: 21648 Gerrit-PatchSet: 4 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 Sat Dec 12 19:06:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 12 Dec 2020 19:06:03 +0000 Subject: Change in osmo-pcu[master]: manuals/gb/ns.adoc: Update documentation regarding SNS capability References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21699 ) Change subject: manuals/gb/ns.adoc: Update documentation regarding SNS capability ...................................................................... manuals/gb/ns.adoc: Update documentation regarding SNS capability The SNS capability was added to our Gb stack quite some time ago, but it seems the manual was not updated. Let's update the document accordingly. The individual sub-sections about the SNS-* messages are empty as I think lynxis is currently most qualified to fill them in, I'll ask him to submit a follow-up patch. Related: SYS#5212 Change-Id: I21e891fc7662b582681cd9bd7568e4b65d357751 --- M doc/manuals/gb/ns.adoc 1 file changed, 67 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/99/21699/1 diff --git a/doc/manuals/gb/ns.adoc b/doc/manuals/gb/ns.adoc index fbcd380..8224e16 100644 --- a/doc/manuals/gb/ns.adoc +++ b/doc/manuals/gb/ns.adoc @@ -2,8 +2,8 @@ === List of Messages -The following tables list the NS messages used by OsmoPCU, grouped by their -level of compliance with 3GPP TS 48.016. +The following tables list the NS messages used by osmo-pcu and osmo-gbproxy, grouped by their level of +compliance with 3GPP TS 48.016. ==== Messages Compliant With 3GPP TS 48.016 @@ -15,16 +15,24 @@ [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== | TS 48.016 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU -| 9.2.10 | 0x00 | <> | NS-UNITDATA | <-/-> | Received/Sent -| 9.2.5 | 0x02 | <> | NS-RESET | <-/-> | Received/Sent -| 9.2.6 | 0x03 | <> | NS-RESET-ACK | <-/-> | Received/Sent -| 9.2.3 | 0x04 | <> | NS-BLOCK | <-/-> | Received/Sent -| 9.2.4 | 0x05 | <> | NS-BLOCK-ACK | <-/-> | Received/Sent -| 9.2.8 | 0x06 | <> | NS-UNBLOCK | <-/-> | Received/Sent -| 9.2.9 | 0x07 | <> | NS-UNBLOCK-ACK | <-/-> | Received/Sent -| 9.2.7 | 0x08 | <> | NS-STATUS | <-/-> | Received/Sent | 9.2.1 | 0x0a | <> | NS-ALIVE | <-/-> | Received/Sent | 9.2.2 | 0x0b | <> | NS-ALIVE-ACK | <-/-> | Received/Sent +| 9.2.3 | 0x04 | <> | NS-BLOCK | <-/-> | Received/Sent +| 9.2.4 | 0x05 | <> | NS-BLOCK-ACK | <-/-> | Received/Sent +| 9.2.5 | 0x02 | <> | NS-RESET | <-/-> | Received/Sent +| 9.2.6 | 0x03 | <> | NS-RESET-ACK | <-/-> | Received/Sent +| 9.2.7 | 0x08 | <> | NS-STATUS | <-/-> | Received/Sent +| 9.2.8 | 0x06 | <> | NS-UNBLOCK | <-/-> | Received/Sent +| 9.2.9 | 0x07 | <> | NS-UNBLOCK-ACK | <-/-> | Received/Sent +| 9.2.10 | 0x00 | <> | NS-UNITDATA | <-/-> | Received/Sent +| 9.3.1 | 0x0c | <> | SNS-ACK | <-/-> | Received/Sent +| 9.3.2 | 0x0d | <> | SNS-ADD | <-/-> | Received/Sent +| 9.3.3 | 0x0e | <> | SNS-CHANGEWEIGHT | <-/-> | Received/Sent +| 9.3.4 | 0x0f | <> | SNS-CONFIG | <-/-> | Received/Sent +| 9.3.5 | 0x10 | <> | SNS-CONFIG | <-/-> | Received/Sent +| 9.3.6 | 0x11 | <> | SNS-DELETE | <-/-> | Received/Sent +| 9.3.7 | 0x12 | <> | SNS-SIZE | <-/-> | Received/Sent +| 9.3.8 | 0x13 | <> | SNS-SIZE-ACK | <-/-> | Received/Sent |=== ==== Messages Specific to OsmoPCU @@ -152,6 +160,31 @@ The message conforms to 3GPP TS 48.016 ? 9.2.2 specification. +[[sns_ack]] +==== SNS-ACK + +[[sns_add]] +==== SNS-ADD + +[[sns_changeweight]] +==== SNS-CHANGEWEIGHT + +[[sns_config]] +==== SNS-CONFIG + +[[sns_config_ack]] +==== SNS-CONFIG-ACK + +[[sns_delete]] +==== SNS-DELETE + +[[ssn_size]] +==== SNS-SIZE + +[[sns_size_ack]] +==== SNS-SIZE-ACK + + === Information Elements Overview All of the IEs handled by OsmoPCU are listed below, with limitations and @@ -165,16 +198,34 @@ [options="header",cols="5%,10%,40%,5%,40%"] |=== | tag (hex) | TS 48.016 ? | IE name | <-/-> | Received/Sent by OsmoPCU -| 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent -| 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent -| 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent -| 0x03 | 10.3.1 | BVCI | <-/-> | Received/Sent -| 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent +| 0x03 | 10.3.1 | BVCI | <-/-> | Received/Sent +| 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent +| - | 10.3.2a | End Flag | <-/-> | Received/Sent +| 0x0b | 10.3.2b | IP Address | <-/-> | Received/Sent +| 0x05 | 10.3.2c | List of IP4 Elements | <-/-> | Received/Sent +| 0x06 | 10.3.2d | List of IP6 Elements | <-/-> | Received/Sent +| 0x07 | 10.3.2e | Maximum Number of NS-VCs | <-/-> | Received/Sent +| 0x08 | 10.3.2f | Number of IP4 Endpoints | <-/-> | Received/Sent +| 0x09 | 10.3.2g | Number of IP6 Endpoints | <-/-> | Received/Sent +| 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent +| 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent +| 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent +| - | 10.3.7 | PDU Type | <-/-> | Received/Sent +| 0x0a | 10.3.7a | Reset Flag | <-/-> | Received/Sent +| - | 10.3.8 | Spare Octet | <-/-> | Received/Sent +| - | 10.3.10 | Transaction ID | <-/-> | Received/Sent |=== ==== IEs Not Conforming to 3GPP TS 48.016 -All IEs defined in 3GPP TS 48.016 ? 10.3 are supported by OsmoPCU. +.IEs conforming to 3GPP TS 48.016 +[options="header",cols="5%,10%,40%,5%,40%"] +|=== +| tag (hex) | TS 48.016 ? | IE name | <-/-> | Notice +| - | 10.3.9 | NS-SDU Control Bits | <-/-> | Not implemented yet +|=== + +All other IEs defined in 3GPP TS 48.016 ? 10.3 are supported by OsmoPCU. ==== Additional Attributes and Parameters -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I21e891fc7662b582681cd9bd7568e4b65d357751 Gerrit-Change-Number: 21699 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Dec 13 01:44:45 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 13 Dec 2020 01:44:45 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd5721f422f1_700a2ae86a7625f010359cd@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: [ 169s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 169s] [COMPILING libboard/qmod/source/card_pres.c] [ 169s] [COMPILING libboard/qmod/source/wwan_led.c] [ 169s] [COMPILING libboard/qmod/source/i2c.c] [ 169s] [COMPILING libboard/qmod/source/board_qmod.c] [ 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: 16588 B 16 KB 101.25% [ 170s] 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' [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 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 ### [ 174s] [ 162.818405] sysrq: Power Off [ 174s] [ 162.823454] reboot: Power down [ 174s] ### VM INTERACTION END ### [ 174s] [ 174s] lamb26 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Dec 13 01:44:10 UTC 2020. [ 174s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 13 01:48:09 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 13 Dec 2020 01:48:09 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd572f66d2b5_700a2ae86a7625f0103717f@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: [ 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: 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 ### [ 168s] [ 154.181472] sysrq: Power Off [ 168s] [ 154.187681] reboot: Power down [ 168s] ### VM INTERACTION END ### [ 168s] [ 168s] lamb21 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Dec 13 01:48:02 UTC 2020. [ 168s] -- 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 Dec 13 09:54:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 13 Dec 2020 09:54:54 +0000 Subject: Change in osmo-gsm-manuals[master]: Add common chapters on GB interface variants and SGSN pool References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700 ) Change subject: Add common chapters on GB interface variants and SGSN pool ...................................................................... Add common chapters on GB interface variants and SGSN pool The chapters are not 100% finished, as there is still some implementation work going on in terms of the libosmogb 'ns2' code as well as the introduction of the SGSN pool feature to osmo-gbproxy. Change-Id: I0ba2ed2a72db52a7282f4f1055812644421b2a98 --- A common/chapters/gb-ip-sns.msc A common/chapters/gb-pool.adoc A common/chapters/gb-variants.adoc A common/images/gb-concepts-pool.pdf A common/images/gb-ip-nsvc.pdf 5 files changed, 279 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/00/21700/1 diff --git a/common/chapters/gb-ip-sns.msc b/common/chapters/gb-ip-sns.msc new file mode 100644 index 0000000..f3fc2c4 --- /dev/null +++ b/common/chapters/gb-ip-sns.msc @@ -0,0 +1,38 @@ +msc { + hscale="2"; + pcu [label="PCU"], sgsn [label="SGSN"]; + + |||; + pcu rbox sgsn [label="(1) Initial Configuration after [re] start of PCU with NSEI 1024"]; + --- [label="SNS-Size procedure to inform SGSN of PCU NS-VC capacity"]; + pcu -> sgsn [label="SNS-SIZE (NSEI=1234, MAX-NR-NSVCS=8, NUM-IP-EP=1)"]; + pcu <- sgsn [label="SNS-SIZE-ACK (NSEI=1234)"]; + --- [label="PCU-originated SNS-CONFIG: Configure SGSN downlink flows"]; + pcu -> sgsn [label="SNS-CONFIG (NSEI=1234, List of PCU side IPv4/IPv6 Elements)"]; + pcu <- sgsn [label="SNS-CONFIG-ACK"]; + --- [label="SGSN-originated SNS-CONFIG: Configure PCU uplink flows"]; + pcu <- sgsn [label="SNS-CONFIG (NSEI=1234, List of SGSN side IPv4/IPv6 Elements)"]; + pcu -> sgsn [label="SNS-CONFIG-ACK"]; + |||; + pcu rbox sgsn [label="(2) Establishment of full mesh of NS-VCs: Each PCU side EP to each SGSN side EP"]; + --- [label="NS-ALIVE procedure to the first SGSN-side IPv4 Endpoint"]; + pcu -> sgsn [label="NS-ALIVE"]; + pcu <- sgsn [label="NS-ALIVE-ACK"]; + --- [label="NS-ALIVE procedure to the second SGSN-side IPv4 Endpoint"]; + pcu -> sgsn [label="NS-ALIVE"]; + pcu <- sgsn [label="NS-ALIVE-ACK"]; + |||; + pcu rbox sgsn [label="(3) Establishment of BSGGP Virtual Connections (BVC)"]; + --- [label="BVC-RESET of the (PCU global) Signaling BVC"]; + pcu -> sgsn [label="NS-UNITDATA( BVC-RESET (BVCI=0) )"]; + pcu <- sgsn [label="NS-UNITDATA( BVC-RESET-ACK (BVCI=0) )"]; + |||; + --- [label="BVC-RESET of the PTP BVC of the first cell in the BSS"]; + pcu -> sgsn [label="NS-UNITDATA( BVC-RESET (BVCI=999, RA-ID 262-42-13135-0) )"]; + pcu <- sgsn [label="NS-UNITDATA( BVC-RESET-ACK (BVCI=999) )"]; + ...; + --- [label="BVC-RESET of the PTP BVC of the Nth cell in the BSS"]; + pcu -> sgsn [label="NS-UNITDATA( BVC-RESET (BVCI=543, RA-ID 262-42-24675-0) )"]; + pcu <- sgsn [label="NS-UNITDATA( BVC-RESET-ACK (BVCI=543) )"]; + +} diff --git a/common/chapters/gb-pool.adoc b/common/chapters/gb-pool.adoc new file mode 100644 index 0000000..1a9fb87 --- /dev/null +++ b/common/chapters/gb-pool.adoc @@ -0,0 +1,62 @@ +[[gb-sgsn-pool]] +== Gb interface in SGSN Pooling + +SGSN Pooling is a modern optional extension of the 3GPP GERAN +architecture. It is officially referred-to as _Intra Domain Connection +of RAN Nodes to Multiple CN Nodes_. It requires The use of IP-SNS and +does not support legacy or non-standard Gb variants. + +Without this optional feature, a given PCU/BSS always connects to one +SGSN via a Gb interface. All traffic is handled through that one +interface. + +While the NS-level load sharing function and the _weights_ of the IP-SNS +allow for load distribution between different user plane entities, there +was demand for additional scalability and fail-over capabilities leading +to the SGSN pooling feature. + +The major changes introduced to the Gb interface by SGSN pooling are as +follows: + +* There is a separate NSE in the BSS for each of the SGSNs in the pool, + creating a 1:1 relationship between BSS-NSE and SGSN. +* Each of those per-SGSN NSEs has it's own NS-VCGs and NS-VCs, unrelated + to those of the other NSEs +* Each of those per-SGSN NSEs has it's own Signaling BVC +* Each Cell in the BSS has one PTP BVC _per SGSN in the pool_ + +This relationship is illustrated in <> below. + +[[fig-gb-pool]] +.Gb interface concepts when SGSN pooling feature is used (from 3GPP TS 48.016) +image::./common/images/gb-concepts-pool.pdf[] + +Looking strictly at the Gb interface, this means that there is a completely +separate Gb interface between each BSS and each pool member SGSN. All of the +procedures explained in <> hence occur N number of times to N number +of SGSN pool members. + +=== Status of SGSN Pool support in Osmocom + +==== osmo-pcu + +There is currently no direct support for SGSN pooling in `osmo-pcu` +itself. However, as of December 2020, `osmo-gbproxy` is being extended +with SGSN pooling support. + +This means that SGSN pooling can be added to any `osmo-pcu` based +deployment by introducing `osmo-gbproxy` between `osmo-pcu` and the SGSN. + +The use of `osmo-gbproxy` also has the added benefit that all Gb +interfaces from various PCUs are aggregated into one Gb interface +towards (each) SGSN. Most deployments are used to such a _one interface +per BSS_ approach as they are used to the BSC-colocated PCU architecture +and not to the BTS-colocated PCU architecture as implemented in Osmocom. + +==== osmo-gbproxy + +FIXME + +==== osmo-sgsn + +FIXME diff --git a/common/chapters/gb-variants.adoc b/common/chapters/gb-variants.adoc new file mode 100644 index 0000000..6f545b8 --- /dev/null +++ b/common/chapters/gb-variants.adoc @@ -0,0 +1,179 @@ +[[gb_variants]] +== Gb interface variants + +There are a couple of variants of the Gb interface out there. This +section tries to provide an overview into what those variants are, how +they differ from each other and how to configure Osmocom software +accordingly. + +The two peers involved in any Gb interface must always be in agreement +about the specific Gb interface variant before they are able to +connect. + +=== Gb over Frame Relay over E1/T1 + +Historically, this is the first Gb interface that was specified as part +of GSM Release 97 when GPRS was first introduced. + +Like all other terrestrial GSM interfaces, it uses circuit-switched +technology from the PDH/ISDN family of systems: E1 or T1 lines as per +ITU-T G.703 / G.704. + +GSM TS 08.16 and later <<3gpp-ts-48-016>> specify that Frame Relay (FR) +shall be used as transport layer between the E1/T1 bit-stream and the +NS-level Gb messages. + +Two peer entities such as a GPRS BSS and a SGSN are interconnected by a +NS-VCG (Virtual Connection Group) consisting of any number of NS-VCs +(Virtual Connections). + +Each NS-VC in turn operates over a Frame Relay Permanent Virtual Circuit +(PVC), identified by its DLCI (Data Link Connection Identifier). + +The protocol stacking is BSSGP/NS/FR/E1. + +.Example: Gb over Frame Relay configuration +---- +ns + nse 2001 nsvci 11 frnet hdlcnet1 dlci 16 <1> + nse 2001 nsvci 12 frnet hdlcnet2 dlci 17 + nse 2001 nsvci 13 frnet hdlcnet3 dlci 18 + nse 2001 nsvci 14 frnet hdlcnet4 dlci 19 + nse 2002 nsvci 15 frnet hdlcnet5 dlci 20 <2> + nse 2002 nsvci 16 frnet hdlcnet6 dlci 21 + nse 2003 nsvci 17 frnet hdlcnet7 dlci 22 <3> + nse 2003 nsvci 18 frnet hdlcnet8 dlci 23 +---- +<1> one NSE (2001) with four NS-VCI (11..14) on hdlcnet1..4 with their respective DLCI +<2> another NSE (2002) with two NS-VCI (15..16) on hdlcnet5..6 with their respective DLCI +<2> another NSE (2003) with two NS-VCI (17..18) on hdlcnet7..8 with their respective DLCI + +==== FR Driver Support + +The Osmocom NS/FR support currently requires the individual Frame Relay +Links to be exposed as Linux kernel HDLC net-devices. The Osmocom NS +implementation has to be instructed which `hdlcX` network devices it +shall use for each NS-VC, and which DLCIs to use on them. + +The Linux kernel Frame Relay LMI support (which only implements the user +role anyway) is not used. Instead, the ITU-T Q.933 LMI is implemented +as part of the Osmocom NS code in libosmogb. You must hence use +`sethdlc hdlcX fr lmi none` to configure the HDLC net-devices for use +with Osmocom. The net-devices must also be _up_, e.g. using the +`ip link set hdlcX up` command in some system start-up script. + +As the Osmocom Gb implementation uses AF_PACKET sockets on those +`hdlcX` network interfaces, the respective program must be running with +`CAP_NET_RAW` capability. + +=== Gb over Frame Relay encapsulated in GRE/IP + +This is a variant of the Gb-over-FR specified above. However, an +external router (e.g. certain ancient Cisco routers) is used to take the +Frame Relay frames from the physical E1/T1 TDM circuit and wrap them +into the GRE encapsulation as per IETF RFC 2784. + +Those GRE/IP messages from the external Cisco router are then passed to +the Osmocom Gb stack (e.g. to `osmo-gbproxy`). + +The protocol stacking is BSSGP/NS/FR/GRE/IP. + +FIXME: Example configuration + +---- +ns + encapsulation framerelay-gre enabled 1 + encapsulation framerelay-gre local-ip 127.0.0.1 +---- + + +=== Gb over IP "ip.access style" + +This is a non-standard variant of Gb which is not found in the GSM/3GPP +specifications. + +It uses an UDP/IP based transport layer, while not yet implementing the +IP-SNS that is normally required by a true 3GPP Gb over IP interface +described further below. Hence, this variant resembles an intermediate +state where a Gb interface originally designed for Frame Relay is used +over IP without any of the IP-specific procedures specified by 3GPP. + +The major difference to 3GPP Gb over IP specified below are: + +* No support for the IP-SNS and its SNS-SIZE, SNS-ADD, SNS-DELETE, + SNS-WEIGHT procedures +* Use of the NS-RESET, NS-BLOCK and NS-UNBLOCK procedures which are + normally forbidden over an IP network. + +The protocol stacking is BSSGP/NS/UDP/IP. + +FIXME: Full example configuration + +---- +ns + encapsulation udp local-ip 127.0.0.1 + encapsulation udp local-port 23000 +---- + +[[gb-ip-sns]] +=== 3GPP Gb over IP with IP-SNS + +This is the only official, 3GPP-standardized way of speaking a Gb +interface over IP based transport. + +It features the IP Sub-Network Service (IP-SNS) in order to dynamically +exchange information about IP endpoints (IP+port tuples) between the Gb +interface peers. This means that normally only one basic / first IP +endpoint needs to be configured. All additional IP endpoints and their +relative weight for load distribution are then negotiated via the +IP-SNS. + +The major differences of this true IP based Gb compared to any of the +above are: + +* No use of the NS-RESET, NS-BLOCK or NS-UNBLOCK procedures +* Ability to use some NS-VCs only for signaling (data_weight=0) or only + for user plane traffic (signaling_weight=0). This helps with SGSNs + that have an internal control/user plane separation architecture. + +Once the IP endpoints of the peers are known to each other, A full mesh +of NS-VCs between all PCU-side endpoints and all SGSN endpoints is +established. + +<> below illustrates a deployment with two IP +endpoints on both the BSS (PCU) and the SGSN, as well as the resulting +four NS-VCs established between them. + +[[fig-gb-sns-nsvcs]] +.IP sub-network relationship between NS-VCs and NS-VLs (from 3GPP TS 48.016) +image::./common/images/gb-ip-nsvc.pdf[] + +The sequence of messages in an IP-SNS enabled Gb interface bring-up can +be seen in <>. Here we have a PCU/BSS with a +single IP endpoint and a SGSN with two IP endpoints, which results in +only two NS-VC being established. + +Furthermore, for each of the cells in the BSS/PCU, we can see the +BVC-RESET procedure for its corresponding PTP BVC. + +[[fig-ip-sns-sequence]] +.Initialization of Gb interface using IP-SNS procedures +[mscgen] +---- +include::gb-ip-sns.msc[] +---- + +==== PCU Configuration + +FIXME: Full example configuration + +.Example: osmo-pcu configuration for use with IP-SNS +---- +pcu + gb-dialect ip-sns +---- + +NOTE: The initial IP endpoint for osmo-pcu is not configured in the PCU +itself, but in the BSC, who downloads the Gb interface configuration to +the BTS during BTS OML start-up, which in turn passes it to the PCU over +the unix domain socket between BTS and PCU diff --git a/common/images/gb-concepts-pool.pdf b/common/images/gb-concepts-pool.pdf new file mode 100644 index 0000000..d95f191 --- /dev/null +++ b/common/images/gb-concepts-pool.pdf Binary files differ diff --git a/common/images/gb-ip-nsvc.pdf b/common/images/gb-ip-nsvc.pdf new file mode 100644 index 0000000..32a0442 --- /dev/null +++ b/common/images/gb-ip-nsvc.pdf Binary files differ -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700 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: I0ba2ed2a72db52a7282f4f1055812644421b2a98 Gerrit-Change-Number: 21700 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 Dec 13 10:08:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 13 Dec 2020 10:08:33 +0000 Subject: Change in osmo-gsm-manuals[master]: Add common chapters on GB interface variants and SGSN pool 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-gsm-manuals/+/21700 to look at the new patch set (#2). Change subject: Add common chapters on GB interface variants and SGSN pool ...................................................................... Add common chapters on GB interface variants and SGSN pool The chapters are not 100% finished, as there is still some implementation work going on in terms of the libosmogb 'ns2' code as well as the introduction of the SGSN pool feature to osmo-gbproxy. Change-Id: I0ba2ed2a72db52a7282f4f1055812644421b2a98 --- A common/chapters/gb-ip-sns.msc A common/chapters/gb-pool.adoc A common/chapters/gb-variants.adoc A common/images/gb-concepts-pool.pdf A common/images/gb-ip-nsvc.pdf 5 files changed, 279 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/00/21700/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700 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: I0ba2ed2a72db52a7282f4f1055812644421b2a98 Gerrit-Change-Number: 21700 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 Dec 13 12:08:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 13 Dec 2020 12:08:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): fix Measurement Report padding In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21489 ) Change subject: BTS_Tests: as_l1_sacch(): fix Measurement Report padding ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I912027fd53b12ff118254e941d6e5e696e1dd410 Gerrit-Change-Number: 21489 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 13 Dec 2020 12:08: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 Dec 13 12:08:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 13 Dec 2020 12:08:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: as_l1_sacch(): fix Measurement Report padding In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21489 ) Change subject: BTS_Tests: as_l1_sacch(): fix Measurement Report padding ...................................................................... BTS_Tests: as_l1_sacch(): fix Measurement Report padding According to 3GPP TS 44.018, section 10.5.2.20, we should pad with zeroes. Change-Id: I912027fd53b12ff118254e941d6e5e696e1dd410 --- M bts/BTS_Tests.ttcn 1 file changed, 2 insertions(+), 2 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/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 8a3b101..16e3d71 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1867,8 +1867,8 @@ g_pars.l1_pars.ms_power_level, false, g_pars.l1_pars.ms_actual_ta); - /* TODO: we can use an extension of TTCN-3 for that, i.e. PADDING('2B'O) */ - var octetstring l2 := f_pad_oct(enc_LapdmFrameAB(valueof(lb)), 21, '2B'O); + /* According to 3GPP TS 44.018, section 10.5.2.20, we should pad with zeroes */ + var octetstring l2 := f_pad_oct(enc_LapdmFrameAB(valueof(lb)), 21, '00'O); log("Sending Measurement Report: ", l1h, l2); L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2)); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I912027fd53b12ff118254e941d6e5e696e1dd410 Gerrit-Change-Number: 21489 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 Sun Dec 13 12:08:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 13 Dec 2020 12:08:39 +0000 Subject: Change in osmo-bsc[master]: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21607 ) Change subject: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Gerrit-Change-Number: 21607 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 13 Dec 2020 12:08: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 Sun Dec 13 12:08:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 13 Dec 2020 12:08:45 +0000 Subject: Change in osmo-bsc[master]: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21607 ) Change subject: NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED ...................................................................... NM FSMs: fix DISABLED_NOTINSTALLED -> DISABLED_NOTINSTALLED This state transaction does not make sense, let's avoid it. Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Related: OS#4901 --- M src/osmo-bsc/nm_bb_transc_fsm.c M src/osmo-bsc/nm_bts_fsm.c M src/osmo-bsc/nm_bts_sm_fsm.c M src/osmo-bsc/nm_channel_fsm.c M src/osmo-bsc/nm_gprs_cell_fsm.c M src/osmo-bsc/nm_gprs_nse_fsm.c M src/osmo-bsc/nm_gprs_nsvc_fsm.c M src/osmo-bsc/nm_rcarrier_fsm.c 8 files changed, 16 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/nm_bb_transc_fsm.c b/src/osmo-bsc/nm_bb_transc_fsm.c index 31e5f34..2fb52f9 100644 --- a/src/osmo-bsc/nm_bb_transc_fsm.c +++ b/src/osmo-bsc/nm_bb_transc_fsm.c @@ -287,7 +287,8 @@ bb_transc->mo.opstart_sent = false; break; case NM_EV_OML_DOWN: - nm_bb_transc_fsm_state_chg(fi, NM_BB_TRANSC_ST_OP_DISABLED_NOTINSTALLED); + if (fi->state != NM_BB_TRANSC_ST_OP_DISABLED_NOTINSTALLED) + nm_bb_transc_fsm_state_chg(fi, NM_BB_TRANSC_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(0); diff --git a/src/osmo-bsc/nm_bts_fsm.c b/src/osmo-bsc/nm_bts_fsm.c index c951edd..329d911 100644 --- a/src/osmo-bsc/nm_bts_fsm.c +++ b/src/osmo-bsc/nm_bts_fsm.c @@ -315,7 +315,8 @@ bts->mo.opstart_sent = false; break; case NM_EV_OML_DOWN: - nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_NOTINSTALLED); + if (fi->state != NM_BTS_ST_OP_DISABLED_NOTINSTALLED) + nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(0); diff --git a/src/osmo-bsc/nm_bts_sm_fsm.c b/src/osmo-bsc/nm_bts_sm_fsm.c index 815eea6..1bb182d 100644 --- a/src/osmo-bsc/nm_bts_sm_fsm.c +++ b/src/osmo-bsc/nm_bts_sm_fsm.c @@ -212,7 +212,8 @@ site_mgr->mo.opstart_sent = false; break; case NM_EV_OML_DOWN: - nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED); + if (fi->state != NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED) + nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(0); diff --git a/src/osmo-bsc/nm_channel_fsm.c b/src/osmo-bsc/nm_channel_fsm.c index 620051a..31b8c03 100644 --- a/src/osmo-bsc/nm_channel_fsm.c +++ b/src/osmo-bsc/nm_channel_fsm.c @@ -283,7 +283,8 @@ ts->mo.opstart_sent = false; break; case NM_EV_OML_DOWN: - nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_NOTINSTALLED); + if (fi->state != NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) + nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(0); @@ -296,7 +297,6 @@ X(NM_EV_SW_ACT_REP) | X(NM_EV_STATE_CHG_REP), .out_state_mask = - X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | X(NM_CHAN_ST_OP_DISABLED_DEPENDENCY) | X(NM_CHAN_ST_OP_DISABLED_OFFLINE) | X(NM_CHAN_ST_OP_ENABLED), diff --git a/src/osmo-bsc/nm_gprs_cell_fsm.c b/src/osmo-bsc/nm_gprs_cell_fsm.c index aac4ca3..4df3a3e 100644 --- a/src/osmo-bsc/nm_gprs_cell_fsm.c +++ b/src/osmo-bsc/nm_gprs_cell_fsm.c @@ -292,7 +292,8 @@ cell->mo.force_rf_lock ? NM_STATE_LOCKED : NM_STATE_UNLOCKED); break; case NM_EV_OML_DOWN: - nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); + if (fi->state != NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED) + nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(0); diff --git a/src/osmo-bsc/nm_gprs_nse_fsm.c b/src/osmo-bsc/nm_gprs_nse_fsm.c index 497b43c..8a63f56 100644 --- a/src/osmo-bsc/nm_gprs_nse_fsm.c +++ b/src/osmo-bsc/nm_gprs_nse_fsm.c @@ -294,7 +294,8 @@ nse->mo.force_rf_lock ? NM_STATE_LOCKED : NM_STATE_UNLOCKED); break; case NM_EV_OML_DOWN: - nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + if (fi->state != NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED) + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(0); diff --git a/src/osmo-bsc/nm_gprs_nsvc_fsm.c b/src/osmo-bsc/nm_gprs_nsvc_fsm.c index 2a57ada..5f0c5de 100644 --- a/src/osmo-bsc/nm_gprs_nsvc_fsm.c +++ b/src/osmo-bsc/nm_gprs_nsvc_fsm.c @@ -303,7 +303,8 @@ nsvc->mo.opstart_sent = false; break; case NM_EV_OML_DOWN: - nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED); + if (fi->state != NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED) + nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(0); diff --git a/src/osmo-bsc/nm_rcarrier_fsm.c b/src/osmo-bsc/nm_rcarrier_fsm.c index 8702ebe..4bb62fc 100644 --- a/src/osmo-bsc/nm_rcarrier_fsm.c +++ b/src/osmo-bsc/nm_rcarrier_fsm.c @@ -278,7 +278,8 @@ trx->mo.force_rf_lock ? NM_STATE_LOCKED : NM_STATE_UNLOCKED); break; case NM_EV_OML_DOWN: - nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED); + if (fi->state != NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED) + nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I24a78905bb684f8501dc5ade0605662ec283febc Gerrit-Change-Number: 21607 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 Sun Dec 13 12:11:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 13 Dec 2020 12:11:05 +0000 Subject: Change in osmo-bsc[master]: vty: add new attribute for vendor-specific commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21684 ) Change subject: vty: add new attribute for vendor-specific commands ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2254cdf8c4be85c89819d0f831102ee71349b188 Gerrit-Change-Number: 21684 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 13 Dec 2020 12:11: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 Sun Dec 13 12:11:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 13 Dec 2020 12:11:57 +0000 Subject: Change in osmo-bsc[master]: vty: add commands for MS/BS Power Control parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: vty: add commands for MS/BS Power Control parameters ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 13 Dec 2020 12: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 Sun Dec 13 12:13:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 13 Dec 2020 12:13:14 +0000 Subject: Change in osmo-pcu[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21648 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Gerrit-Change-Number: 21648 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 13 Dec 2020 12:13: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 Dec 13 12:14:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 13 Dec 2020 12:14:04 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21573 ) Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 13 Dec 2020 12:14: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 Dec 14 00:54:03 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 14 Dec 2020 00:54:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21484/6/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/21484/6/src/gb/gprs_ns2_udp.c at 383 PS6, Line 383: LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect. Maybe libosmocore is too old.\n"); > worth printing the dialect value here? Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 00:54:03 +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 Dec 14 00:57:55 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 14 Dec 2020 00:57:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move allocation of the SNS fsm into create_nse In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21571 ) Change subject: gprs_ns2: move allocation of the SNS fsm into create_nse ...................................................................... Patch Set 4: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21571/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21571/2/src/gb/gprs_ns2.c at 693 PS2, Line 693: snprintf(sns, sizeof(sns), "nse-%d-sns", nsei); > NSE%05u-SNS so stay in line with e.g. [?] Ack https://gerrit.osmocom.org/c/libosmocore/+/21571/2/src/gb/gprs_ns2.c at 694 PS2, Line 694: nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, NULL); > _alloc(nse, sns); Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 Gerrit-Change-Number: 21571 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 14 Dec 2020 00:57:55 +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 Mon Dec 14 01:00:34 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 14 Dec 2020 01:00:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21573 ) Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... Patch Set 8: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_internal.h at 296 PS2, Line 296: int offset); > offset means index here? Ack https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_sns.c at 661 PS2, Line 661: /* empty state - SNS Select will start by all action */ > You mean ns2_sns_st_all_action()? Ack https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_sns.c at 1251 PS2, Line 1251: .in_event_mask = 0, > worth adding a comment saying events are handled in all_state. Ack https://gerrit.osmocom.org/c/libosmocore/+/21573/2/src/gb/gprs_ns2_sns.c at 1338 PS2, Line 1338: else if (gss->initial->list.next == &gss->sns_endpoints) /* last entry, continue with first */ > keep using {} if first clause use {}. Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 01:00: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 Mon Dec 14 01:09:41 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 14 Dec 2020 01:09:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects 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/+/21484 to look at the new patch set (#8). Change subject: gprs_ns2: introduce NS dialects ...................................................................... gprs_ns2: introduce NS dialects A NS dialect describes how the NS Entity interacts with different virtual circuits. E.g. ipaccess use reset/block on udp and is a dynamic connection. A single NS Entity can only support one dialect. This can be later used to protect a NS Entity against dynamic NS virtual circuits of a different type. It further allows a bind to support multiple dialects at the same time. Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 --- 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 M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 8 files changed, 78 insertions(+), 86 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/84/21484/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 8 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 Mon Dec 14 01:09:41 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 14 Dec 2020 01:09:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move allocation of the SNS fsm into create_nse 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/+/21571 to look at the new patch set (#5). Change subject: gprs_ns2: move allocation of the SNS fsm into create_nse ...................................................................... gprs_ns2: move allocation of the SNS fsm into create_nse The allocation of the SNS fsm can be done in create_nse because the dialect is now known at that time. Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 --- M src/gb/gprs_ns2.c 1 file changed, 13 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/21571/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 Gerrit-Change-Number: 21571 Gerrit-PatchSet: 5 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 Dec 14 01:09:41 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 14 Dec 2020 01:09:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: use different binds for the initial connection 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/+/21574 to look at the new patch set (#9). Change subject: gprs_ns2_sns: use different binds for the initial connection ...................................................................... gprs_ns2_sns: use different binds for the initial connection In case the first bind is not working the SNS would never build a succesful connection to the SGSN. Iterate over all binds by using an offset. Instead of tracking the binds use an offset instead of a direct pointer. This might result in skipping the order of the next bind. Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb --- M src/gb/gprs_ns2_sns.c 1 file changed, 13 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/21574/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb Gerrit-Change-Number: 21574 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus 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 Dec 14 01:18:41 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 14 Dec 2020 01:18:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2: make nsvc argument const In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21652 ) Change subject: gprs_ns2: make nsvc argument const ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie5052f02781d7fdc639456c6f02515a927cee1f3 Gerrit-Change-Number: 21652 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 14 Dec 2020 01:18:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Dec 14 01:45:02 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 14 Dec 2020 01:45:02 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd6c3aba174a_700a2ae86a7625f0127434e@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: [ 117s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 117s] [COMPILING libboard/qmod/source/card_pres.c] [ 117s] [COMPILING libboard/qmod/source/wwan_led.c] [ 118s] [COMPILING libboard/qmod/source/i2c.c] [ 118s] [COMPILING libboard/qmod/source/board_qmod.c] [ 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: 16588 B 16 KB 101.25% [ 118s] 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' [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 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] [ 113.457767] sysrq: Power Off [ 121s] [ 113.463842] reboot: Power down [ 121s] ### VM INTERACTION END ### [ 121s] [ 121s] goat05 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Dec 14 01:44:51 UTC 2020. [ 121s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Dec 14 01:47:02 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 14 Dec 2020 01:47:02 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd6c4236f37e_700a2ae86a7625f0127459c@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] [ 186s] [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] [ 175.443704] sysrq: Power Off [ 189s] [ 175.450275] reboot: Power down [ 189s] ### VM INTERACTION END ### [ 189s] [ 189s] lamb17 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Dec 14 01:46:57 UTC 2020. [ 189s] -- 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 Dec 14 02:52:16 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 14 Dec 2020 02:52:16 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy References: Message-ID: lynxis lazus has uploaded this change for review. ( 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 configure.ac M utils/Makefile.am A utils/osmo-ns-dummy.c 3 files changed, 276 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/21701/1 diff --git a/configure.ac b/configure.ac index 10fb496..0d710f3 100644 --- a/configure.ac +++ b/configure.ac @@ -243,6 +243,14 @@ [enable_vty=$enableval], [enable_vty="yes"]) AM_CONDITIONAL(ENABLE_VTY, test x"$enable_vty" = x"yes") +AC_ARG_ENABLE(nsdummy, + [AS_HELP_STRING( + [--enable-nsdummy], + [Enable building ns dummy for testing network service] + )], + [enable_nsdummy=$enableval], [enable_nsdummy="no"]) +AM_CONDITIONAL(ENABLE_NSDUMMY, test x"$enable_nsdummy" = x"yes") + AC_ARG_ENABLE(panic_infloop, [AS_HELP_STRING( [--enable-panic-infloop], diff --git a/utils/Makefile.am b/utils/Makefile.am index 653b719..6b2a23b 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -1,11 +1,13 @@ -if ENABLE_UTILITIES + +bin_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 @@ -22,3 +24,13 @@ osmo_sim_test_CFLAGS = $(PCSC_CFLAGS) endif endif + +if ENABLE_NSDUMMY +bin_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 diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c new file mode 100644 index 0000000..f1434c2 --- /dev/null +++ b/utils/osmo-ns-dummy.c @@ -0,0 +1,254 @@ + +#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 char *config_file = "osmo-pcu.cfg"; + +static const char vty_copyright[] = + "Copyright (C) 2020 by by sysmocom - s.f.m.c. GmbH, 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" + "\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-ref-mode", 1, &long_option, 1 }, + { "vty-ref-xml", 0, &long_option, 2 }, + { 0, 0, 0, 0 } + }; + + c = getopt_long(argc, argv, "hc: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': + free(config_file); + config_file = optarg; + config_given = true; + 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; + } + } +} + +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(), + OSMO_VTY_PORT_PCU); + 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: 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 Dec 14 09:20:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 09:20:38 +0000 Subject: Change in osmo-pcu[master]: manuals/gb/ns.adoc: Update documentation regarding SNS capability In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21699 ) Change subject: manuals/gb/ns.adoc: Update documentation regarding SNS capability ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I21e891fc7662b582681cd9bd7568e4b65d357751 Gerrit-Change-Number: 21699 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 09:20: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 Dec 14 09:36:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 09:36:05 +0000 Subject: Change in osmo-gsm-manuals[master]: Add common chapters on GB interface variants and SGSN pool In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700 ) Change subject: Add common chapters on GB interface variants and SGSN pool ...................................................................... Patch Set 2: Code-Review+1 (5 comments) Thanks very informative https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc File common/chapters/gb-variants.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc at 10 PS2, Line 10: about the specific Gb interface variant before they are able to double space "are able" https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc at 81 PS2, Line 81: FIXME: Example configuration isn't the example config just below? Or I guess it's missing some lines right? Perhaps then move the FIXME inside the example. https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc at 110 PS2, Line 110: FIXME: Full example configuration Same https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc at 112 PS2, Line 112: ---- Missing .Example https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc at 168 PS2, Line 168: FIXME: Full example configuration Same -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700 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: I0ba2ed2a72db52a7282f4f1055812644421b2a98 Gerrit-Change-Number: 21700 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 09:36: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 Mon Dec 14 09:41:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 09:41:55 +0000 Subject: Change in osmo-bsc[master]: vty: add commands for MS/BS Power Control parameters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: vty: add commands for MS/BS Power Control parameters ...................................................................... Patch Set 1: why is argv[0] skipped and not used everywhere? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 09:41: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 Mon Dec 14 09:43:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 09:43:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... Patch Set 9: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 09:43: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 Dec 14 09:43:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 09:43:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: use different binds for the initial connection In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21574 ) Change subject: gprs_ns2_sns: use different binds for the initial connection ...................................................................... Patch Set 10: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb Gerrit-Change-Number: 21574 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 09: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 Mon Dec 14 09:44:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 09:44:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move allocation of the SNS fsm into create_nse In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21571 ) Change subject: gprs_ns2: move allocation of the SNS fsm into create_nse ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 Gerrit-Change-Number: 21571 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 09: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 Mon Dec 14 09:44:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 09:44:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: make nsvc argument const In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21652 ) Change subject: gprs_ns2: make nsvc argument const ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie5052f02781d7fdc639456c6f02515a927cee1f3 Gerrit-Change-Number: 21652 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 09:44: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 Dec 14 10:08:43 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 14 Dec 2020 10:08:43 +0000 Subject: Change in osmo-bsc[master]: vty: add commands for MS/BS Power Control parameters In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: vty: add commands for MS/BS Power Control parameters ...................................................................... Patch Set 1: > Patch Set 1: > > why is argv[0] skipped and not used everywhere? It is used, see POWER_CONTROL_PARAMS macro. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 10:08:43 +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 Dec 14 10:13:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 10:13:27 +0000 Subject: Change in osmo-bsc[master]: vty: add commands for MS/BS Power Control parameters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: vty: add commands for MS/BS Power Control parameters ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 10: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 Mon Dec 14 11:21:45 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 14 Dec 2020 11:21:45 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." In-Reply-To: References: Message-ID: daniel has uploaded a new patch set (#5) to the change originally created by laforge. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 ) Change subject: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." ...................................................................... gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." we have other objects to show, and the orthogoanl way to do this is to rename the existing one. Change-Id: I7836a37533a2de81720acedda712d61f429df12c --- M src/gbproxy/gb_proxy_vty.c M tests/vty_test_runner.py 2 files changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/91/21691/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7836a37533a2de81720acedda712d61f429df12c Gerrit-Change-Number: 21691 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: daniel 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 Dec 14 11:30:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:30:37 +0000 Subject: Change in osmo-pcu[master]: manuals/gb/ns.adoc: Update documentation regarding SNS capability In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21699 ) Change subject: manuals/gb/ns.adoc: Update documentation regarding SNS capability ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I21e891fc7662b582681cd9bd7568e4b65d357751 Gerrit-Change-Number: 21699 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 11: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 Mon Dec 14 11:30:44 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 14 Dec 2020 11:30:44 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 ) Change subject: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7836a37533a2de81720acedda712d61f429df12c Gerrit-Change-Number: 21691 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 14 Dec 2020 11:30: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 Dec 14 11:30:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:30:45 +0000 Subject: Change in osmo-pcu[master]: manuals/gb/ns.adoc: Update documentation regarding SNS capability In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21699 ) Change subject: manuals/gb/ns.adoc: Update documentation regarding SNS capability ...................................................................... manuals/gb/ns.adoc: Update documentation regarding SNS capability The SNS capability was added to our Gb stack quite some time ago, but it seems the manual was not updated. Let's update the document accordingly. The individual sub-sections about the SNS-* messages are empty as I think lynxis is currently most qualified to fill them in, I'll ask him to submit a follow-up patch. Related: SYS#5212 Change-Id: I21e891fc7662b582681cd9bd7568e4b65d357751 --- M doc/manuals/gb/ns.adoc 1 file changed, 67 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/doc/manuals/gb/ns.adoc b/doc/manuals/gb/ns.adoc index fbcd380..8224e16 100644 --- a/doc/manuals/gb/ns.adoc +++ b/doc/manuals/gb/ns.adoc @@ -2,8 +2,8 @@ === List of Messages -The following tables list the NS messages used by OsmoPCU, grouped by their -level of compliance with 3GPP TS 48.016. +The following tables list the NS messages used by osmo-pcu and osmo-gbproxy, grouped by their level of +compliance with 3GPP TS 48.016. ==== Messages Compliant With 3GPP TS 48.016 @@ -15,16 +15,24 @@ [options="header",cols="10%,10%,20%,35%,5%,20%"] |=== | TS 48.016 ? | type code (hex) | This document ? | Message | <-/-> | Received/Sent by OsmoPCU -| 9.2.10 | 0x00 | <> | NS-UNITDATA | <-/-> | Received/Sent -| 9.2.5 | 0x02 | <> | NS-RESET | <-/-> | Received/Sent -| 9.2.6 | 0x03 | <> | NS-RESET-ACK | <-/-> | Received/Sent -| 9.2.3 | 0x04 | <> | NS-BLOCK | <-/-> | Received/Sent -| 9.2.4 | 0x05 | <> | NS-BLOCK-ACK | <-/-> | Received/Sent -| 9.2.8 | 0x06 | <> | NS-UNBLOCK | <-/-> | Received/Sent -| 9.2.9 | 0x07 | <> | NS-UNBLOCK-ACK | <-/-> | Received/Sent -| 9.2.7 | 0x08 | <> | NS-STATUS | <-/-> | Received/Sent | 9.2.1 | 0x0a | <> | NS-ALIVE | <-/-> | Received/Sent | 9.2.2 | 0x0b | <> | NS-ALIVE-ACK | <-/-> | Received/Sent +| 9.2.3 | 0x04 | <> | NS-BLOCK | <-/-> | Received/Sent +| 9.2.4 | 0x05 | <> | NS-BLOCK-ACK | <-/-> | Received/Sent +| 9.2.5 | 0x02 | <> | NS-RESET | <-/-> | Received/Sent +| 9.2.6 | 0x03 | <> | NS-RESET-ACK | <-/-> | Received/Sent +| 9.2.7 | 0x08 | <> | NS-STATUS | <-/-> | Received/Sent +| 9.2.8 | 0x06 | <> | NS-UNBLOCK | <-/-> | Received/Sent +| 9.2.9 | 0x07 | <> | NS-UNBLOCK-ACK | <-/-> | Received/Sent +| 9.2.10 | 0x00 | <> | NS-UNITDATA | <-/-> | Received/Sent +| 9.3.1 | 0x0c | <> | SNS-ACK | <-/-> | Received/Sent +| 9.3.2 | 0x0d | <> | SNS-ADD | <-/-> | Received/Sent +| 9.3.3 | 0x0e | <> | SNS-CHANGEWEIGHT | <-/-> | Received/Sent +| 9.3.4 | 0x0f | <> | SNS-CONFIG | <-/-> | Received/Sent +| 9.3.5 | 0x10 | <> | SNS-CONFIG | <-/-> | Received/Sent +| 9.3.6 | 0x11 | <> | SNS-DELETE | <-/-> | Received/Sent +| 9.3.7 | 0x12 | <> | SNS-SIZE | <-/-> | Received/Sent +| 9.3.8 | 0x13 | <> | SNS-SIZE-ACK | <-/-> | Received/Sent |=== ==== Messages Specific to OsmoPCU @@ -152,6 +160,31 @@ The message conforms to 3GPP TS 48.016 ? 9.2.2 specification. +[[sns_ack]] +==== SNS-ACK + +[[sns_add]] +==== SNS-ADD + +[[sns_changeweight]] +==== SNS-CHANGEWEIGHT + +[[sns_config]] +==== SNS-CONFIG + +[[sns_config_ack]] +==== SNS-CONFIG-ACK + +[[sns_delete]] +==== SNS-DELETE + +[[ssn_size]] +==== SNS-SIZE + +[[sns_size_ack]] +==== SNS-SIZE-ACK + + === Information Elements Overview All of the IEs handled by OsmoPCU are listed below, with limitations and @@ -165,16 +198,34 @@ [options="header",cols="5%,10%,40%,5%,40%"] |=== | tag (hex) | TS 48.016 ? | IE name | <-/-> | Received/Sent by OsmoPCU -| 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent -| 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent -| 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent -| 0x03 | 10.3.1 | BVCI | <-/-> | Received/Sent -| 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent +| 0x03 | 10.3.1 | BVCI | <-/-> | Received/Sent +| 0x00 | 10.3.2 | Cause | <-/-> | Received/Sent +| - | 10.3.2a | End Flag | <-/-> | Received/Sent +| 0x0b | 10.3.2b | IP Address | <-/-> | Received/Sent +| 0x05 | 10.3.2c | List of IP4 Elements | <-/-> | Received/Sent +| 0x06 | 10.3.2d | List of IP6 Elements | <-/-> | Received/Sent +| 0x07 | 10.3.2e | Maximum Number of NS-VCs | <-/-> | Received/Sent +| 0x08 | 10.3.2f | Number of IP4 Endpoints | <-/-> | Received/Sent +| 0x09 | 10.3.2g | Number of IP6 Endpoints | <-/-> | Received/Sent +| 0x02 | 10.3.3 | NS PDU | <-/-> | Received/Sent +| 0x01 | 10.3.5 | NSVCI | <-/-> | Received/Sent +| 0x04 | 10.3.6 | NSEI | <-/-> | Received/Sent +| - | 10.3.7 | PDU Type | <-/-> | Received/Sent +| 0x0a | 10.3.7a | Reset Flag | <-/-> | Received/Sent +| - | 10.3.8 | Spare Octet | <-/-> | Received/Sent +| - | 10.3.10 | Transaction ID | <-/-> | Received/Sent |=== ==== IEs Not Conforming to 3GPP TS 48.016 -All IEs defined in 3GPP TS 48.016 ? 10.3 are supported by OsmoPCU. +.IEs conforming to 3GPP TS 48.016 +[options="header",cols="5%,10%,40%,5%,40%"] +|=== +| tag (hex) | TS 48.016 ? | IE name | <-/-> | Notice +| - | 10.3.9 | NS-SDU Control Bits | <-/-> | Not implemented yet +|=== + +All other IEs defined in 3GPP TS 48.016 ? 10.3 are supported by OsmoPCU. ==== Additional Attributes and Parameters -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I21e891fc7662b582681cd9bd7568e4b65d357751 Gerrit-Change-Number: 21699 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Dec 14 11:30:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:30:45 +0000 Subject: Change in osmo-pcu[master]: migrate to DLBSSGP as log sub-system for BSSGP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21648 ) Change subject: migrate to DLBSSGP as log sub-system for BSSGP ...................................................................... migrate to DLBSSGP as log sub-system for BSSGP Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Depends: libosmocore.git Change-Id I506190aae9217c0956e4b5764d1a0c0772268e93 --- M TODO-RELEASE M src/gprs_debug.cpp M src/gprs_debug.h M src/pcu_main.cpp M tests/tbf/TbfTest.cpp 5 files changed, 8 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index 40932ee..eee6aa2 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,4 +8,4 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line osmo-pcu update osmo-gsm-manuals dependency to > 0.3.0 for vty_cpu_sched.adoc include -osmo-pcu update libosmocore dependency > 1.4.x for osmo_fd_{read,write}_{enable,disable} +osmo-pcu update libosmocore dependency > 1.4.x for osmo_fd_{read,write}_{enable,disable}+DLBSSGP diff --git a/src/gprs_debug.cpp b/src/gprs_debug.cpp index da5974b..a790e3f 100644 --- a/src/gprs_debug.cpp +++ b/src/gprs_debug.cpp @@ -112,13 +112,6 @@ .loglevel = LOGL_NOTICE, .enabled = 1, }, - [DBSSGP] = { - .name = "DBSSGP", - .color = "\033[1;34m", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .loglevel = LOGL_NOTICE, - .enabled = 1, - }, [DPCU] = { .name = "DPCU", .color = "\033[1;35m", diff --git a/src/gprs_debug.h b/src/gprs_debug.h index 4c57633..84a0a07 100644 --- a/src/gprs_debug.h +++ b/src/gprs_debug.h @@ -27,6 +27,10 @@ }; #endif +/* we used to have DBSSGP definded in each application, and applications telling + * libosmogb which sub-system to use. That creates problems and has been deprecated */ +#define DBSSGP DLBSSGP + /* Debug Areas of the code */ enum { DCSN1, @@ -41,7 +45,6 @@ DTBFDL, DTBFUL, DNS, - DBSSGP, DPCU, aDebug_LastEntry }; diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index 2138fd9..16d73de 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -242,12 +243,12 @@ osmo_stats_init(tall_pcu_ctx); rate_ctr_init(tall_pcu_ctx); - bssgp_set_log_ss(DBSSGP); pcu_vty_info.tall_ctx = tall_pcu_ctx; vty_init(&pcu_vty_info); pcu_vty_init(); osmo_cpu_sched_vty_init(tall_pcu_ctx); + logging_vty_add_deprecated_subsys(tall_pcu_ctx, "bssgp"); handle_options(argc, argv); if ((!!spoof_mcc) + (!!spoof_mnc) == 1) { diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 505f510..1a1dc6f 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3256,9 +3256,8 @@ osmo_init_logging2(tall_pcu_ctx, &gprs_log_info); log_set_use_color(osmo_stderr_target, 0); log_set_print_filename(osmo_stderr_target, 0); - bssgp_set_log_ss(DBSSGP); log_parse_category_mask(osmo_stderr_target, "DRLCMAC,1:DRLCMACDATA,3:DRLCMACDL,3:DRLCMACUL,3:" - "DRLCMACSCHED,1:DRLCMACMEAS,3:DNS,3:DBSSGP,3:DPCU,5:" + "DRLCMACSCHED,1:DRLCMACMEAS,3:DNS,3:DLBSSGP,3:DPCU,5:" "DL1IF,6:DTBF,1:DTBFUL,1:DTBFDL,1:DLGLOBAL,2:"); vty_init(&pcu_vty_info); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94864c5fa2688fc91b8b6077a14ad098851afdc7 Gerrit-Change-Number: 21648 Gerrit-PatchSet: 4 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 Dec 14 11:31:33 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 14 Dec 2020 11:31:33 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 14 Dec 2020 11:31: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 Dec 14 11:33:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:33:11 +0000 Subject: Change in osmo-gsm-manuals[master]: Add common chapters on GB interface variants and SGSN pool In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700 ) Change subject: Add common chapters on GB interface variants and SGSN pool ...................................................................... Patch Set 2: Code-Review+2 (3 comments) https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc File common/chapters/gb-variants.adoc: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc at 10 PS2, Line 10: about the specific Gb interface variant before they are able to > double space "are able" doesn't really matter here, it won't get rendered in asciidoc. https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc at 81 PS2, Line 81: FIXME: Example configuration > isn't the example config just below? Or I guess it's missing some lines right? Perhaps then move the [?] the configuration is not complete, and the VTY interface is currently changing, so there will be follow-up patches to fill in. https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700/2/common/chapters/gb-variants.adoc at 110 PS2, Line 110: FIXME: Full example configuration > Same I tried to express it in the commit log: We need to wait for certain bits (particularly NS2) to finalize before completing this. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700 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: I0ba2ed2a72db52a7282f4f1055812644421b2a98 Gerrit-Change-Number: 21700 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 11:33:11 +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 Dec 14 11:33:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:33:14 +0000 Subject: Change in osmo-gsm-manuals[master]: Add common chapters on GB interface variants and SGSN pool In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700 ) Change subject: Add common chapters on GB interface variants and SGSN pool ...................................................................... Add common chapters on GB interface variants and SGSN pool The chapters are not 100% finished, as there is still some implementation work going on in terms of the libosmogb 'ns2' code as well as the introduction of the SGSN pool feature to osmo-gbproxy. Change-Id: I0ba2ed2a72db52a7282f4f1055812644421b2a98 --- A common/chapters/gb-ip-sns.msc A common/chapters/gb-pool.adoc A common/chapters/gb-variants.adoc A common/images/gb-concepts-pool.pdf A common/images/gb-ip-nsvc.pdf 5 files changed, 279 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/gb-ip-sns.msc b/common/chapters/gb-ip-sns.msc new file mode 100644 index 0000000..f3fc2c4 --- /dev/null +++ b/common/chapters/gb-ip-sns.msc @@ -0,0 +1,38 @@ +msc { + hscale="2"; + pcu [label="PCU"], sgsn [label="SGSN"]; + + |||; + pcu rbox sgsn [label="(1) Initial Configuration after [re] start of PCU with NSEI 1024"]; + --- [label="SNS-Size procedure to inform SGSN of PCU NS-VC capacity"]; + pcu -> sgsn [label="SNS-SIZE (NSEI=1234, MAX-NR-NSVCS=8, NUM-IP-EP=1)"]; + pcu <- sgsn [label="SNS-SIZE-ACK (NSEI=1234)"]; + --- [label="PCU-originated SNS-CONFIG: Configure SGSN downlink flows"]; + pcu -> sgsn [label="SNS-CONFIG (NSEI=1234, List of PCU side IPv4/IPv6 Elements)"]; + pcu <- sgsn [label="SNS-CONFIG-ACK"]; + --- [label="SGSN-originated SNS-CONFIG: Configure PCU uplink flows"]; + pcu <- sgsn [label="SNS-CONFIG (NSEI=1234, List of SGSN side IPv4/IPv6 Elements)"]; + pcu -> sgsn [label="SNS-CONFIG-ACK"]; + |||; + pcu rbox sgsn [label="(2) Establishment of full mesh of NS-VCs: Each PCU side EP to each SGSN side EP"]; + --- [label="NS-ALIVE procedure to the first SGSN-side IPv4 Endpoint"]; + pcu -> sgsn [label="NS-ALIVE"]; + pcu <- sgsn [label="NS-ALIVE-ACK"]; + --- [label="NS-ALIVE procedure to the second SGSN-side IPv4 Endpoint"]; + pcu -> sgsn [label="NS-ALIVE"]; + pcu <- sgsn [label="NS-ALIVE-ACK"]; + |||; + pcu rbox sgsn [label="(3) Establishment of BSGGP Virtual Connections (BVC)"]; + --- [label="BVC-RESET of the (PCU global) Signaling BVC"]; + pcu -> sgsn [label="NS-UNITDATA( BVC-RESET (BVCI=0) )"]; + pcu <- sgsn [label="NS-UNITDATA( BVC-RESET-ACK (BVCI=0) )"]; + |||; + --- [label="BVC-RESET of the PTP BVC of the first cell in the BSS"]; + pcu -> sgsn [label="NS-UNITDATA( BVC-RESET (BVCI=999, RA-ID 262-42-13135-0) )"]; + pcu <- sgsn [label="NS-UNITDATA( BVC-RESET-ACK (BVCI=999) )"]; + ...; + --- [label="BVC-RESET of the PTP BVC of the Nth cell in the BSS"]; + pcu -> sgsn [label="NS-UNITDATA( BVC-RESET (BVCI=543, RA-ID 262-42-24675-0) )"]; + pcu <- sgsn [label="NS-UNITDATA( BVC-RESET-ACK (BVCI=543) )"]; + +} diff --git a/common/chapters/gb-pool.adoc b/common/chapters/gb-pool.adoc new file mode 100644 index 0000000..1a9fb87 --- /dev/null +++ b/common/chapters/gb-pool.adoc @@ -0,0 +1,62 @@ +[[gb-sgsn-pool]] +== Gb interface in SGSN Pooling + +SGSN Pooling is a modern optional extension of the 3GPP GERAN +architecture. It is officially referred-to as _Intra Domain Connection +of RAN Nodes to Multiple CN Nodes_. It requires The use of IP-SNS and +does not support legacy or non-standard Gb variants. + +Without this optional feature, a given PCU/BSS always connects to one +SGSN via a Gb interface. All traffic is handled through that one +interface. + +While the NS-level load sharing function and the _weights_ of the IP-SNS +allow for load distribution between different user plane entities, there +was demand for additional scalability and fail-over capabilities leading +to the SGSN pooling feature. + +The major changes introduced to the Gb interface by SGSN pooling are as +follows: + +* There is a separate NSE in the BSS for each of the SGSNs in the pool, + creating a 1:1 relationship between BSS-NSE and SGSN. +* Each of those per-SGSN NSEs has it's own NS-VCGs and NS-VCs, unrelated + to those of the other NSEs +* Each of those per-SGSN NSEs has it's own Signaling BVC +* Each Cell in the BSS has one PTP BVC _per SGSN in the pool_ + +This relationship is illustrated in <> below. + +[[fig-gb-pool]] +.Gb interface concepts when SGSN pooling feature is used (from 3GPP TS 48.016) +image::./common/images/gb-concepts-pool.pdf[] + +Looking strictly at the Gb interface, this means that there is a completely +separate Gb interface between each BSS and each pool member SGSN. All of the +procedures explained in <> hence occur N number of times to N number +of SGSN pool members. + +=== Status of SGSN Pool support in Osmocom + +==== osmo-pcu + +There is currently no direct support for SGSN pooling in `osmo-pcu` +itself. However, as of December 2020, `osmo-gbproxy` is being extended +with SGSN pooling support. + +This means that SGSN pooling can be added to any `osmo-pcu` based +deployment by introducing `osmo-gbproxy` between `osmo-pcu` and the SGSN. + +The use of `osmo-gbproxy` also has the added benefit that all Gb +interfaces from various PCUs are aggregated into one Gb interface +towards (each) SGSN. Most deployments are used to such a _one interface +per BSS_ approach as they are used to the BSC-colocated PCU architecture +and not to the BTS-colocated PCU architecture as implemented in Osmocom. + +==== osmo-gbproxy + +FIXME + +==== osmo-sgsn + +FIXME diff --git a/common/chapters/gb-variants.adoc b/common/chapters/gb-variants.adoc new file mode 100644 index 0000000..dc978f6 --- /dev/null +++ b/common/chapters/gb-variants.adoc @@ -0,0 +1,179 @@ +[[gb_variants]] +== Gb interface variants + +There are a couple of variants of the Gb interface out there. This +section tries to provide an overview into what those variants are, how +they differ from each other and how to configure Osmocom software +accordingly. + +The two peers involved in any Gb interface must always be in agreement +about the specific Gb interface variant before they are able to +connect. + +=== Gb over Frame Relay over E1/T1 + +Historically, this is the first Gb interface that was specified as part +of GSM Release 97 when GPRS was first introduced. + +Like all other terrestrial GSM interfaces, it uses circuit-switched +technology from the PDH/ISDN family of systems: E1 or T1 lines as per +ITU-T G.703 / G.704. + +GSM TS 08.16 and later <<3gpp-ts-48-016>> specify that Frame Relay (FR) +shall be used as transport layer between the E1/T1 bit-stream and the +NS-level Gb messages. + +Two peer entities such as a GPRS BSS and a SGSN are interconnected by a +NS-VCG (Virtual Connection Group) consisting of any number of NS-VCs +(Virtual Connections). + +Each NS-VC in turn operates over a Frame Relay Permanent Virtual Circuit +(PVC), identified by its DLCI (Data Link Connection Identifier). + +The protocol stacking is BSSGP/NS/FR/E1. + +.Example: Gb over Frame Relay configuration +---- +ns + nse 2001 nsvci 11 frnet hdlcnet1 dlci 16 <1> + nse 2001 nsvci 12 frnet hdlcnet2 dlci 17 + nse 2001 nsvci 13 frnet hdlcnet3 dlci 18 + nse 2001 nsvci 14 frnet hdlcnet4 dlci 19 + nse 2002 nsvci 15 frnet hdlcnet5 dlci 20 <2> + nse 2002 nsvci 16 frnet hdlcnet6 dlci 21 + nse 2003 nsvci 17 frnet hdlcnet7 dlci 22 <3> + nse 2003 nsvci 18 frnet hdlcnet8 dlci 23 +---- +<1> one NSE (2001) with four NS-VCI (11..14) on hdlcnet1..4 with their respective DLCI +<2> another NSE (2002) with two NS-VCI (15..16) on hdlcnet5..6 with their respective DLCI +<3> another NSE (2003) with two NS-VCI (17..18) on hdlcnet7..8 with their respective DLCI + +==== FR Driver Support + +The Osmocom NS/FR support currently requires the individual Frame Relay +Links to be exposed as Linux kernel HDLC net-devices. The Osmocom NS +implementation has to be instructed which `hdlcX` network devices it +shall use for each NS-VC, and which DLCIs to use on them. + +The Linux kernel Frame Relay LMI support (which only implements the user +role anyway) is not used. Instead, the ITU-T Q.933 LMI is implemented +as part of the Osmocom NS code in libosmogb. You must hence use +`sethdlc hdlcX fr lmi none` to configure the HDLC net-devices for use +with Osmocom. The net-devices must also be _up_, e.g. using the +`ip link set hdlcX up` command in some system start-up script. + +As the Osmocom Gb implementation uses AF_PACKET sockets on those +`hdlcX` network interfaces, the respective program must be running with +`CAP_NET_RAW` capability. + +=== Gb over Frame Relay encapsulated in GRE/IP + +This is a variant of the Gb-over-FR specified above. However, an +external router (e.g. certain ancient Cisco routers) is used to take the +Frame Relay frames from the physical E1/T1 TDM circuit and wrap them +into the GRE encapsulation as per IETF RFC 2784. + +Those GRE/IP messages from the external Cisco router are then passed to +the Osmocom Gb stack (e.g. to `osmo-gbproxy`). + +The protocol stacking is BSSGP/NS/FR/GRE/IP. + +FIXME: Example configuration + +---- +ns + encapsulation framerelay-gre enabled 1 + encapsulation framerelay-gre local-ip 127.0.0.1 +---- + + +=== Gb over IP "ip.access style" + +This is a non-standard variant of Gb which is not found in the GSM/3GPP +specifications. + +It uses an UDP/IP based transport layer, while not yet implementing the +IP-SNS that is normally required by a true 3GPP Gb over IP interface +described further below. Hence, this variant resembles an intermediate +state where a Gb interface originally designed for Frame Relay is used +over IP without any of the IP-specific procedures specified by 3GPP. + +The major difference to 3GPP Gb over IP specified below are: + +* No support for the IP-SNS and its SNS-SIZE, SNS-ADD, SNS-DELETE, + SNS-WEIGHT procedures +* Use of the NS-RESET, NS-BLOCK and NS-UNBLOCK procedures which are + normally forbidden over an IP network. + +The protocol stacking is BSSGP/NS/UDP/IP. + +FIXME: Full example configuration + +---- +ns + encapsulation udp local-ip 127.0.0.1 + encapsulation udp local-port 23000 +---- + +[[gb-ip-sns]] +=== 3GPP Gb over IP with IP-SNS + +This is the only official, 3GPP-standardized way of speaking a Gb +interface over IP based transport. + +It features the IP Sub-Network Service (IP-SNS) in order to dynamically +exchange information about IP endpoints (IP+port tuples) between the Gb +interface peers. This means that normally only one basic / first IP +endpoint needs to be configured. All additional IP endpoints and their +relative weight for load distribution are then negotiated via the +IP-SNS. + +The major differences of this true IP based Gb compared to any of the +above are: + +* No use of the NS-RESET, NS-BLOCK or NS-UNBLOCK procedures +* Ability to use some NS-VCs only for signaling (data_weight=0) or only + for user plane traffic (signaling_weight=0). This helps with SGSNs + that have an internal control/user plane separation architecture. + +Once the IP endpoints of the peers are known to each other, A full mesh +of NS-VCs between all PCU-side endpoints and all SGSN endpoints is +established. + +<> below illustrates a deployment with two IP +endpoints on both the BSS (PCU) and the SGSN, as well as the resulting +four NS-VCs established between them. + +[[fig-gb-sns-nsvcs]] +.IP sub-network relationship between NS-VCs and NS-VLs (from 3GPP TS 48.016) +image::./common/images/gb-ip-nsvc.pdf[] + +The sequence of messages in an IP-SNS enabled Gb interface bring-up can +be seen in <>. Here we have a PCU/BSS with a +single IP endpoint and a SGSN with two IP endpoints, which results in +only two NS-VC being established. + +Furthermore, for each of the cells in the BSS/PCU, we can see the +BVC-RESET procedure for its corresponding PTP BVC. + +[[fig-ip-sns-sequence]] +.Initialization of Gb interface using IP-SNS procedures +[mscgen] +---- +include::gb-ip-sns.msc[] +---- + +==== PCU Configuration + +FIXME: Full example configuration + +.Example: osmo-pcu configuration for use with IP-SNS +---- +pcu + gb-dialect ip-sns +---- + +NOTE: The initial IP endpoint for osmo-pcu is not configured in the PCU +itself, but in the BSC, who downloads the Gb interface configuration to +the BTS during BTS OML start-up, which in turn passes it to the PCU over +the unix domain socket between BTS and PCU diff --git a/common/images/gb-concepts-pool.pdf b/common/images/gb-concepts-pool.pdf new file mode 100644 index 0000000..d95f191 --- /dev/null +++ b/common/images/gb-concepts-pool.pdf Binary files differ diff --git a/common/images/gb-ip-nsvc.pdf b/common/images/gb-ip-nsvc.pdf new file mode 100644 index 0000000..32a0442 --- /dev/null +++ b/common/images/gb-ip-nsvc.pdf Binary files differ -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/21700 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: I0ba2ed2a72db52a7282f4f1055812644421b2a98 Gerrit-Change-Number: 21700 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 Mon Dec 14 11:33:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:33:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... Patch Set 9: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 11: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 Dec 14 11:34:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:34:19 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move allocation of the SNS fsm into create_nse In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21571 ) Change subject: gprs_ns2: move allocation of the SNS fsm into create_nse ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 Gerrit-Change-Number: 21571 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 11: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 Dec 14 11:34:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:34:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: use different binds for the initial connection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21574 ) Change subject: gprs_ns2_sns: use different binds for the initial connection ...................................................................... Patch Set 10: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb Gerrit-Change-Number: 21574 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 11:34: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 Dec 14 11:35:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:35:04 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: introduce SNS Size/Config retries In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21575 ) Change subject: gprs_ns2_sns: introduce SNS Size/Config retries ...................................................................... Patch Set 10: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e9023a6e7adc6ad48f4016fcaef189ac8b353e Gerrit-Change-Number: 21575 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 14 Dec 2020 11: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 Mon Dec 14 11:35:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 11:35:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21653 ) Change subject: gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I277b805e588ba68536789b4a64a428ea0b31728a Gerrit-Change-Number: 21653 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 14 Dec 2020 11: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 Dec 14 11:47:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 11:47:22 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 ) Change subject: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7836a37533a2de81720acedda712d61f429df12c Gerrit-Change-Number: 21691 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 11: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 Mon Dec 14 11:57:34 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 14 Dec 2020 11:57:34 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 ) Change subject: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7836a37533a2de81720acedda712d61f429df12c Gerrit-Change-Number: 21691 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 11:57: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 Dec 14 12:48:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 12:48:29 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb: Mark some private functions as 'static' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21702 ) Change subject: icE1usb: Mark some private functions as 'static' ...................................................................... icE1usb: Mark some private functions as 'static' Change-Id: Ie9808bb2fe264e9a3fa09168bfde57837b77d291 --- M firmware/ice40-riscv/icE1usb/usb_e1.c 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/02/21702/1 diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index 52fb53b..ff58c08 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -175,7 +175,8 @@ return NULL; } -enum usb_fnd_resp + +static enum usb_fnd_resp _e1_set_conf(const struct usb_conf_desc *conf) { const struct usb_intf_desc *intf; @@ -197,7 +198,7 @@ return USB_FND_SUCCESS; } -enum usb_fnd_resp +static enum usb_fnd_resp _e1_set_intf(const struct usb_intf_desc *base, const struct usb_intf_desc *sel) { if (base->bInterfaceNumber != 0) @@ -239,7 +240,7 @@ return USB_FND_SUCCESS; } -enum usb_fnd_resp +static enum usb_fnd_resp _e1_get_intf(const struct usb_intf_desc *base, uint8_t *alt) { if (base->bInterfaceNumber != 0) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21702 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: Ie9808bb2fe264e9a3fa09168bfde57837b77d291 Gerrit-Change-Number: 21702 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 Dec 14 13:01:55 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 14 Dec 2020 13:01:55 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb: Mark some private functions as 'static' In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21702 ) Change subject: icE1usb: Mark some private functions as 'static' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21702 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: Ie9808bb2fe264e9a3fa09168bfde57837b77d291 Gerrit-Change-Number: 21702 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 14 Dec 2020 13:01: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 Dec 14 15:49:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 15:49:30 +0000 Subject: Change in osmo-e1-hardware[master]: cosmetic: comment spelling References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21703 ) Change subject: cosmetic: comment spelling ...................................................................... cosmetic: comment spelling Change-Id: I89e2ae1478688929a42c94c8279ebff1b3a6cd88 --- M firmware/ice40-riscv/icE1usb/usb_e1.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/03/21703/1 diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index ff58c08..dafceb5 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -40,7 +40,7 @@ uint32_t val = 8192; unsigned int level; - /* Compute real E1 tick count (with safety agains bad values) */ + /* Compute real E1 tick count (with safety against bad values) */ ticks = e1_tick_read(); val = (ticks - ticks_prev) & 0xffff; ticks_prev = ticks; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21703 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: I89e2ae1478688929a42c94c8279ebff1b3a6cd88 Gerrit-Change-Number: 21703 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 Dec 14 15:49:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 15:49:30 +0000 Subject: Change in osmo-e1-hardware[master]: cosmetic: more comments in the code References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 ) Change subject: cosmetic: more comments in the code ...................................................................... cosmetic: more comments in the code Change-Id: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/usb_desc_app.c M firmware/ice40-riscv/icE1usb/usb_e1.c 3 files changed, 36 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/04/21704/1 diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 17be75d..7c271ea 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -30,37 +30,45 @@ struct e1_chan tx; } __attribute__((packed,aligned(4))); -#define E1_RX_CR_ENABLE (1 << 0) -#define E1_RX_CR_MODE_TRSP (0 << 1) -#define E1_RX_CR_MODE_BYTE (1 << 1) -#define E1_RX_CR_MODE_BFA (2 << 1) -#define E1_RX_CR_MODE_MFA (3 << 1) -#define E1_RX_CR_OVFL_CLR (1 << 12) -#define E1_RX_SR_ENABLED (1 << 0) -#define E1_RX_SR_ALIGNED (1 << 1) +/* 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) +#define E1_RX_SR_OVFL (1 << 12) /* Indicate Rx overflow */ -#define E1_TX_CR_ENABLE (1 << 0) -#define E1_TX_CR_MODE_TRSP (0 << 1) -#define E1_TX_CR_MODE_TS0 (1 << 1) -#define E1_TX_CR_MODE_TS0_CRC (2 << 1) -#define E1_TX_CR_MODE_TS0_CRC_E (3 << 1) -#define E1_TX_CR_TICK_LOCAL (0 << 3) -#define E1_TX_CR_TICK_REMOTE (1 << 3) -#define E1_TX_CR_ALARM (1 << 4) -#define E1_TX_CR_LOOPBACK (1 << 5) -#define E1_TX_CR_UNFL_CLR (1 << 12) -#define E1_TX_SR_ENABLED (1 << 0) +/* 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) +#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) diff --git a/firmware/ice40-riscv/icE1usb/usb_desc_app.c b/firmware/ice40-riscv/icE1usb/usb_desc_app.c index d6c274a..9fe3968 100644 --- a/firmware/ice40-riscv/icE1usb/usb_desc_app.c +++ b/firmware/ice40-riscv/icE1usb/usb_desc_app.c @@ -19,6 +19,10 @@ /* E1 */ struct { + /* Two altsettings are required, as isochronous + * interfaces must have a setting where they don't + * transceive any data. wMaxPacketSize is 0 for + * all endpoints in the 'off' altsetting */ struct { struct usb_intf_desc intf; struct usb_ep_desc ep_data_in; diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index dafceb5..f724665 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -16,9 +16,9 @@ #include "misc.h" struct { - bool running; - int out_bdi; - int in_bdi; + 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 */ } g_usb_e1; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 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: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 Gerrit-Change-Number: 21704 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 Dec 14 16:02:26 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 14 Dec 2020 16:02:26 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... gbproxy: Add SGSN NRI configuration In order to support SGSN pooling we need to configure the various NRI parameters such as the bitlen, NULL NRI, and which NRIs are assigned to which SGSN. Related: OS#4890 Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e --- 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_main.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/Makefile.am A tests/osmo-gbproxy_test-nodes.vty R tests/osmo-sgsn_test_nodes.vty 9 files changed, 386 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/05/21705/1 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg index 29f698f..df765c0 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg @@ -6,13 +6,25 @@ no login ! gbproxy - sgsn nsei 101 + nri bitlen 4 + nri null add 0 4 +sgsn nsei 101 + nri add 1 + nri add 11 +sgsn nsei 102 + 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 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 200a539..58755a6 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -55,6 +56,9 @@ struct { /* percentage of BVC flow control advertised to each SGSN in the pool */ uint8_t bvc_fc_ratio; + /* NRI bitlen and usable NULL-NRI ranges */ + uint8_t nri_bitlen; + struct osmo_nri_ranges *null_nri_ranges; } pool; /* Linked list of all BSS side Gb peers */ @@ -128,6 +132,11 @@ /* Are we facing towards a SGSN (true) or BSS (false) */ bool sgsn_facing; + /* Pool configuration for the sgsn (only valid if sgsn_facing == true) */ + struct { + bool allow_attach; + struct osmo_nri_ranges *nri_ranges; + } pool; /* List of all BVCs in this NSE */ DECLARE_HASHTABLE(bvcs, 10); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 53aecdf..337a4fd 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -44,6 +44,7 @@ #include #include +#include #include #include @@ -1286,6 +1287,8 @@ /* 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); + cfg->pool.nri_bitlen = OSMO_NRI_BITLEN_DEFAULT; hash_init(cfg->bss_nses); cfg->ctrg = rate_ctr_group_alloc(tall_sgsn_ctx, &global_ctrg_desc, 0); if (!cfg->ctrg) { diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index e85e951..c660ede 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -303,6 +303,8 @@ 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); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index c38b2f7..fd9548a 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -261,10 +261,13 @@ nse->cfg = cfg; nse->sgsn_facing = sgsn_facing; - if (sgsn_facing) + if (sgsn_facing) { + nse->pool.allow_attach = true; + nse->pool.nri_ranges = osmo_nri_ranges_alloc(nse); hash_add(cfg->sgsn_nses, &nse->list, nsei); - else + } else { hash_add(cfg->bss_nses, &nse->list, nsei); + } hash_init(nse->bvcs); diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 976ac12..bae2f95 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -25,14 +25,17 @@ #include #include +#include #include #include #include -#include #include #include + #include +#include +#include #include #include @@ -44,6 +47,17 @@ #include #include +#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" +#define NULL_NRI_STR "Define NULL-NRI values that cause re-assignment of an MS to a different MSC, for MSC pooling.\n" +#define NRI_FIRST_LAST_STR "First value of the NRI value range, should not surpass the configured 'nri bitlen'.\n" \ + "Last value of the NRI value range, should not surpass the configured 'nri bitlen' and be larger than the" \ + " first value; if omitted, apply only the first value.\n" +#define NRI_ARGS_TO_STR_FMT "%s%s%s" +#define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" +#define NRI_WARN(NSE, FORMAT, args...) do { \ + vty_out(vty, "%% Warning: NSE %05d: " FORMAT "%s", (NSE)->nsei, ##args, VTY_NEWLINE); \ + LOGP(DLBSSGP, LOGL_ERROR, "NSE %05d: " FORMAT "\n", (NSE)->nsei, ##args); \ + } while (0) static struct gbproxy_config *g_cfg = NULL; @@ -85,18 +99,23 @@ static int config_write_gbproxy(struct vty *vty) { - struct gbproxy_nse *nse; - int i; + struct osmo_nri_range *r; + /* FIXME: Proper write */ vty_out(vty, "gbproxy%s", VTY_NEWLINE); if (g_cfg->pool.bvc_fc_ratio != 100) vty_out(vty, " pool bvc-flow-control-ratio %u%s", g_cfg->pool.bvc_fc_ratio, VTY_NEWLINE); - hash_for_each(g_cfg->sgsn_nses, i, nse, list) { - vty_out(vty, " sgsn nsei %u%s", nse->nsei, VTY_NEWLINE); - } + if (g_cfg->pool.nri_bitlen != OSMO_NRI_BITLEN_DEFAULT) + vty_out(vty, " nri bitlen %u%s", g_cfg->pool.nri_bitlen, VTY_NEWLINE); + llist_for_each_entry(r, &g_cfg->pool.null_nri_ranges->entries, entry) { + vty_out(vty, " nri null add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } return CMD_SUCCESS; } @@ -109,13 +128,60 @@ return CMD_SUCCESS; } +/* VTY code for SGSN (pool) configuration */ extern const struct bssgp_bvc_fsm_ops sgsn_sig_bvc_fsm_ops; #include -DEFUN(cfg_nsip_sgsn_nsei, - cfg_nsip_sgsn_nsei_cmd, +static struct cmd_node sgsn_node = { + SGSN_NODE, + "%s(config-sgsn)# ", + 1, +}; + +static void sgsn_write_nri(struct vty *vty, struct gbproxy_nse *nse, bool verbose) +{ + struct osmo_nri_range *r; + + if (verbose) { + vty_out(vty, "sgsn %d%s", nse->nsei, VTY_NEWLINE); + if (llist_empty(&nse->pool.nri_ranges->entries)) { + vty_out(vty, " %% no NRI mappings%s", VTY_NEWLINE); + return; + } + } + + llist_for_each_entry(r, &nse->pool.nri_ranges->entries, entry) { + if (osmo_nri_range_validate(r, 255)) + vty_out(vty, " %% INVALID RANGE:"); + vty_out(vty, " nri add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } +} + +static void write_sgsn(struct vty *vty, struct gbproxy_nse *nse) +{ + vty_out(vty, "sgsn nsei %u%s", nse->nsei, VTY_NEWLINE); + vty_out(vty, " %sallow-attach%s", nse->pool.allow_attach ? "" : "no ", VTY_NEWLINE); + sgsn_write_nri(vty, nse, false); +} + +static int config_write_sgsn(struct vty *vty) +{ + struct gbproxy_nse *nse; + int i; + + hash_for_each(g_cfg->sgsn_nses, i, nse, list) + write_sgsn(vty, nse); + + return CMD_SUCCESS; +} + +DEFUN(cfg_sgsn_nsei, + cfg_sgsn_nsei_cmd, "sgsn nsei <0-65534>", - "SGSN information\n" + "Configure the SGSN\n" "NSEI to be used in the connection with the SGSN\n" "The NSEI\n") { @@ -140,6 +206,8 @@ osmo_fsm_inst_dispatch(bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); } + vty->node = SGSN_NODE; + vty->index = nse; return CMD_SUCCESS; free_bvc: @@ -151,6 +219,121 @@ return CMD_WARNING; } +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" + NRI_FIRST_LAST_STR, + CMD_ATTR_IMMEDIATE) +{ + struct gbproxy_nse *nse = vty->index; + struct gbproxy_nse *other_nse; + bool before; + int rc, i; + const char *message; + struct osmo_nri_range add_range; + + rc = osmo_nri_ranges_vty_add(&message, &add_range, nse->pool.nri_ranges, argc, argv, g_cfg->pool.nri_bitlen); + if (message) { + NRI_WARN(nse, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + + /* Issue a warning about NRI range overlaps (but still allow them). + * Overlapping ranges will map to whichever MSC comes fist in the bsc_gsmnet->mscs llist, + * which is not necessarily in the order of increasing msc->nr. */ + before = true; + + hash_for_each(g_cfg->sgsn_nses, i, other_nse, list) { + if (other_nse == nse) { + before = false; + continue; + } + if (osmo_nri_range_overlaps_ranges(&add_range, other_nse->pool.nri_ranges)) { + NRI_WARN(nse, "NRI range [%d..%d] overlaps between NSE %05d and NSE %05d." + " For overlaps, NSE %05d has higher priority than NSE %05d", + add_range.first, add_range.last, nse->nsei, other_nse->nsei, + before ? other_nse->nsei : nse->nsei, before ? nse->nsei : other_nse->nsei); + } + } + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_sgsn_nri_del, cfg_sgsn_nri_del_cmd, + "nri del <0-32767> [<0-32767>]", + NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR, + CMD_ATTR_IMMEDIATE) +{ + struct gbproxy_nse *nse = vty->index; + int rc; + const char *message; + + rc = osmo_nri_ranges_vty_del(&message, NULL, nse->pool.nri_ranges, argc, argv); + if (message) { + NRI_WARN(nse, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_sgsn_allow_attach, cfg_sgsn_allow_attach_cmd, + "allow-attach", + "Allow this SGSN to attach new subscribers (default).\n", + CMD_ATTR_IMMEDIATE) +{ + struct gbproxy_nse *nse = vty->index; + nse->pool.allow_attach = true; + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_sgsn_no_allow_attach, cfg_sgsn_no_allow_attach_cmd, + "no allow-attach", + NO_STR + "Do not assign new subscribers to this MSC." + " Useful if an MSC in an MSC pool is configured to off-load subscribers." + " The MSC will still be operational for already IMSI-Attached subscribers," + " but the NAS node selection function will skip this MSC for new subscribers\n", + CMD_ATTR_IMMEDIATE) +{ + struct gbproxy_nse *nse = vty->index; + nse->pool.allow_attach = false; + return CMD_SUCCESS; +} + +DEFUN(cfg_sgsn_show_nri_all, show_nri_all_cmd, + "show nri all", + SHOW_STR NRI_STR "Show all SGSNs\n") +{ + struct gbproxy_nse *nse; + int i; + + hash_for_each(g_cfg->sgsn_nses, i, nse, list) { + sgsn_write_nri(vty, nse, true); + } + + return CMD_SUCCESS; +} + +DEFUN(show_nri, show_nri_nsei_cmd, + "show nri nsei <0-65535>", + SHOW_STR NRI_STR "Identify SGSN by NSEI\n" + "NSEI of the SGSN\n") +{ + struct gbproxy_nse *nse; + int nsei = atoi(argv[0]); + + nse = gbproxy_nse_by_nsei(g_cfg, nsei, NSE_F_SGSN); + if (!nse) { + vty_out(vty, "%% No SGSN with found for NSEI %05d%s", nsei, VTY_NEWLINE); + return CMD_SUCCESS; + } + sgsn_write_nri(vty, nse, true); + + return CMD_SUCCESS; +} + DEFUN(cfg_pool_bvc_fc_ratio, cfg_pool_bvc_fc_ratio_cmd, "pool bvc-flow-control-ratio <1-100>", @@ -161,6 +344,56 @@ g_cfg->pool.bvc_fc_ratio = atoi(argv[0]); return CMD_SUCCESS; } +DEFUN_ATTR(cfg_gbproxy_nri_bitlen, + cfg_gbproxy_nri_bitlen_cmd, + "nri bitlen <1-15>", + NRI_STR + "Set number of bits that an NRI has, to extract from TMSI identities (always starting just after the TMSI's most significant octet).\n" + "bit count (default: " OSMO_STRINGIFY_VAL(NRI_BITLEN_DEFAULT) ")\n", + CMD_ATTR_IMMEDIATE) +{ + g_cfg->pool.nri_bitlen = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_gbproxy_nri_null_add, + cfg_gbproxy_nri_null_add_cmd, + "nri null add <0-32767> [<0-32767>]", + NRI_STR NULL_NRI_STR "Add NULL-NRI value (or range)\n" + NRI_FIRST_LAST_STR, + CMD_ATTR_IMMEDIATE) +{ + int rc; + const char *message; + rc = osmo_nri_ranges_vty_add(&message, NULL, g_cfg->pool.null_nri_ranges, argc, argv, + g_cfg->pool.nri_bitlen); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT "%s", message, NRI_ARGS_TO_STR_ARGS(argc, argv), + VTY_NEWLINE); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_gbproxy_nri_null_del, + cfg_gbproxy_nri_null_del_cmd, + "nri null del <0-32767> [<0-32767>]", + NRI_STR NULL_NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR, + CMD_ATTR_IMMEDIATE) +{ + int rc; + const char *message; + rc = osmo_nri_ranges_vty_del(&message, NULL, g_cfg->pool.null_nri_ranges, argc, argv); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT "%s", message, NRI_ARGS_TO_STR_ARGS(argc, argv), + VTY_NEWLINE); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} static void log_set_bvc_filter(struct log_target *target, const uint16_t *bvci) @@ -336,15 +569,26 @@ { install_element_ve(&show_gbproxy_cmd); install_element_ve(&show_gbproxy_links_cmd); + install_element_ve(&show_nri_all_cmd); + install_element_ve(&show_nri_nsei_cmd); install_element_ve(&logging_fltr_bvc_cmd); install_element(ENABLE_NODE, &delete_gb_bvci_cmd); install_element(ENABLE_NODE, &delete_gb_nsei_cmd); + install_element(CONFIG_NODE, &cfg_sgsn_nsei_cmd); + install_node(&sgsn_node, config_write_sgsn); + 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); + install_element(SGSN_NODE, &cfg_sgsn_nri_del_cmd); + install_element(CONFIG_NODE, &cfg_gbproxy_cmd); install_node(&gbproxy_node, config_write_gbproxy); - install_element(GBPROXY_NODE, &cfg_nsip_sgsn_nsei_cmd); install_element(GBPROXY_NODE, &cfg_pool_bvc_fc_ratio_cmd); + install_element(GBPROXY_NODE, &cfg_gbproxy_nri_bitlen_cmd); + install_element(GBPROXY_NODE, &cfg_gbproxy_nri_null_add_cmd); + install_element(GBPROXY_NODE, &cfg_gbproxy_nri_null_del_cmd); return 0; } diff --git a/tests/Makefile.am b/tests/Makefile.am index 4a9449a..a1b4c4d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -61,9 +61,13 @@ # make vty-transcript-test U=-u vty-transcript-test: osmo_verify_transcript_vty.py -v \ + -n OsmoGbProxy -p 4246 \ + -r "$(top_builddir)/src/gbproxy/osmo-gbproxy -c $(top_srcdir)/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg" \ + $(U) $${T:-$(srcdir)/osmo-gbproxy*.vty} + osmo_verify_transcript_vty.py -v \ -n OsmoSGSN -p 4245 \ -r "$(top_builddir)/src/sgsn/osmo-sgsn -c $(top_srcdir)/doc/examples/osmo-sgsn/osmo-sgsn.cfg" \ - $(U) $${T:-$(srcdir)/*.vty} + $(U) $${T:-$(srcdir)/osmo-sgsn*.vty} rm -f $(builddir)/sms.db $(builddir)/gsn_restart # don't run multiple tests concurrently so that the ports don't conflict diff --git a/tests/osmo-gbproxy_test-nodes.vty b/tests/osmo-gbproxy_test-nodes.vty new file mode 100644 index 0000000..7267c1d --- /dev/null +++ b/tests/osmo-gbproxy_test-nodes.vty @@ -0,0 +1,95 @@ +OsmoGbProxy> enable +OsmoGbProxy# show nri all +sgsn 101 + nri add 1 + nri add 11 +sgsn 102 + nri add 2 + nri add 12 +OsmoGbProxy# configure terminal +OsmoGbProxy(config)# list + help + list [with-flags] + show vty-attributes + show vty-attributes (application|library|global) + write terminal + write file [PATH] + write memory + write + show running-config + exit + end + hostname WORD + no hostname [HOSTNAME] + password (8|) WORD + password LINE + enable password (8|) WORD + enable password LINE + no enable password + banner motd default + banner motd file [FILE] + no banner motd + service terminal-length <0-512> + no service terminal-length [<0-512>] + line vty + service advanced-vty + no service advanced-vty + show history + log stderr + no log stderr + log file .FILENAME + no log file .FILENAME + log alarms <2-32700> + no log alarms + log syslog (authpriv|cron|daemon|ftp|lpr|mail|news|user|uucp) + log syslog local <0-7> + no log syslog + log systemd-journal [raw] + no log systemd-journal + log gsmtap [HOSTNAME] + stats reporter statsd + no stats reporter statsd + stats reporter log + no stats reporter log + stats interval <0-65535> + sgsn nsei <0-65534> + gbproxy + ns + +OsmoGbProxy(config)# sgsn nsei 101 +OsmoGbProxy(config-sgsn)# list + help + list [with-flags] + show vty-attributes + show vty-attributes (application|library|global) + write terminal + write file [PATH] + write memory + write + show running-config + exit + end + allow-attach + no allow-attach + nri add <0-32767> [<0-32767>] + nri del <0-32767> [<0-32767>] + +OsmoGbProxy(config-sgsn)# exit +OsmoGbProxy(config)# gbproxy + +OsmoGbProxy(config-gbproxy)# list + help + list [with-flags] + show vty-attributes + show vty-attributes (application|library|global) + write terminal + write file [PATH] + write memory + write + show running-config + exit + end + pool bvc-flow-control-ratio <1-100> + nri bitlen <1-15> + nri null add <0-32767> [<0-32767>] + nri null del <0-32767> [<0-32767>] diff --git a/tests/test_nodes.vty b/tests/osmo-sgsn_test_nodes.vty similarity index 100% rename from tests/test_nodes.vty rename to tests/osmo-sgsn_test_nodes.vty -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 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 Dec 14 16:04:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 16:04:41 +0000 Subject: Change in osmo-e1-hardware[master]: cosmetic: more comments in the code In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 ) Change subject: cosmetic: more comments in the code ...................................................................... cosmetic: more comments in the code Change-Id: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/usb_desc_app.c M firmware/ice40-riscv/icE1usb/usb_e1.c 3 files changed, 40 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/04/21704/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 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: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 Gerrit-Change-Number: 21704 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 Mon Dec 14 16:04:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 16:04:41 +0000 Subject: Change in osmo-e1-hardware[master]: ice1usb: define e1_data_ptr() using e1_data_ofs() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 ) Change subject: ice1usb: define e1_data_ptr() using e1_data_ofs() ...................................................................... ice1usb: define e1_data_ptr() using e1_data_ofs() It's best to compute the offset only at one place and use that computation elsewhere. Change-Id: I9a6cce07ea8b6eff1527215de00621da960b0472 --- M firmware/ice40-riscv/icE1usb/e1.c 1 file changed, 5 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/06/21706/1 diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index e5108ce..776edba 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -80,19 +80,17 @@ static volatile struct e1_core * const e1_regs = (void *)(E1_CORE_BASE); static volatile uint8_t * const e1_data = (void *)(E1_DATA_BASE); - -volatile uint8_t * -e1_data_ptr(int mf, int frame, int ts) -{ - return &e1_data[(mf << 9) | (frame << 5) | ts]; -} - unsigned int e1_data_ofs(int mf, int frame, int ts) { return (mf << 9) | (frame << 5) | ts; } +volatile uint8_t * +e1_data_ptr(int mf, int frame, int ts) +{ + return &e1_data[e1_data_ofs(mf, frame, ts)]; +} // FIFOs // ----- -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 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: I9a6cce07ea8b6eff1527215de00621da960b0472 Gerrit-Change-Number: 21706 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 Dec 14 16:04:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 16:04:42 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb: Use register bit #define instead of magic number References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 ) Change subject: icE1usb: Use register bit #define instead of magic number ...................................................................... icE1usb: Use register bit #define instead of magic number Change-Id: Ic824ce5a6605c96989fefbf92f365bff618dccb2 --- M firmware/ice40-riscv/icE1usb/e1.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/07/21707/1 diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 776edba..5d4d3ee 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -406,7 +406,7 @@ return; /* HACK: LED link status */ - if (e1_regs->rx.csr & 2) + if (e1_regs->rx.csr & E1_RX_SR_ALIGNED) led_color(0, 48, 0); else led_color(48, 0, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 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: Ic824ce5a6605c96989fefbf92f365bff618dccb2 Gerrit-Change-Number: 21707 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 Dec 14 16:20:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 16:20:49 +0000 Subject: Change in libosmocore[master]: rest_octets: add Serving Cell Priority Parameters References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21708 ) Change subject: rest_octets: add Serving Cell Priority Parameters ...................................................................... rest_octets: add Serving Cell Priority Parameters When we add an EARFCN to to the SI2quater struct we do not add Serving Cell Priority Parameters. This essentially causes to MS to ignore the EARFCN because it is still undefined under which conditions the MS should change to LTE. This is a cherry-pick from osmo-bsc.git 295c965c063a8c431507191f6aef1ef78b720685 Related: SYS#4510 Change-Id: If9134759e9bc4ae0920800972632fd8c5dc9c2d9 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 19 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/08/21708/1 diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index a527598..dd14d28 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -193,8 +193,25 @@ /* Priority and E-UTRAN Parameters Description */ bitvec_set_bit(bv, 1); - /* No Serving Cell Priority Parameters Descr. */ - bitvec_set_bit(bv, 0); + /* Serving Cell Priority Parameters Descr. is Present, + * see also: 3GPP TS 44.018, Table 10.5.2.33b.1 */ + bitvec_set_bit(bv, 1); + + /* GERAN_PRIORITY */ + bitvec_set_uint(bv, 0, 3); + + /* THRESH_Priority_Search */ + bitvec_set_uint(bv, 0, 4); + + /* THRESH_GSM_low */ + bitvec_set_uint(bv, 0, 4); + + /* H_PRIO */ + bitvec_set_uint(bv, 0, 2); + + /* T_Reselection */ + bitvec_set_uint(bv, 0, 2); + /* No 3G Priority Parameters Description */ bitvec_set_bit(bv, 0); /* E-UTRAN Parameters Description */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If9134759e9bc4ae0920800972632fd8c5dc9c2d9 Gerrit-Change-Number: 21708 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 Dec 14 16:20:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 16:20:50 +0000 Subject: Change in libosmocore[master]: gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21709 ) Change subject: gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST ...................................................................... gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST Cherry-pick from osmo-bsc.git e981f17200bf3a5d5114f46d9f7515fd10b96dbb Change-Id: I0aae385a427205cc73f60feca161e38608e608d8 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/09/21709/1 diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index dd14d28..84b7589 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -909,13 +909,8 @@ /* EGPRS supported in the cell */ bitvec_set_bit(bv, 1); - /* 1bit EGPRS PACKET CHANNEL REQUEST */ - if (gco->supports_egprs_11bit_rach == 0) { - bitvec_set_bit(bv, - gco->ext_info.use_egprs_p_ch_req); - } else { - bitvec_set_bit(bv, 0); - } + /* 1bit EGPRS PACKET CHANNEL REQUEST (inverted logic) */ + bitvec_set_bit(bv, !gco->ext_info.use_egprs_p_ch_req); /* 4bit BEP PERIOD */ bitvec_set_uint(bv, gco->ext_info.bep_period, 4); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0aae385a427205cc73f60feca161e38608e608d8 Gerrit-Change-Number: 21709 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 Dec 14 16:20:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 16:20:50 +0000 Subject: Change in libosmocore[master]: si2quater: fix budget calculation for multiple EARFCNs References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21710 ) Change subject: si2quater: fix budget calculation for multiple EARFCNs ...................................................................... si2quater: fix budget calculation for multiple EARFCNs In rest_octets.c append_earfcn(), the unconditional bits added are 40, not 25. Removing only 25 bits from the budget resulted in malformed SI2quater starting with 4 configured EARFCNs, by adding more EARFCNs than fit in 20 bits. These malformed SI2quater were also expected in gsm0408_test.c. Update the expected SI2quater to what is being generated now. This patch passes the ttcn3 testing added in I45382f88686ca60e68569e93569fc4cfb63a0e0d, which provides some confidence that the coding expected in gsm0408_test.c is now correct. This commit is a cherry-pick of osmo-bsc.git 6589f7c3a8dfdaaf66dda3afa6bbb1118ec825f9 Change-Id: Icc1ece39ad162d09720e104c5cbc12b07d6771a8 Related: OS#4652 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/21710/1 diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 84b7589..5c7d77a 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -165,7 +165,7 @@ { bool appended; unsigned int old = bv->cur_bit; /* save current position to make rollback possible */ - int rem = budget - 25; + int rem = ((int)budget) - 40; if (rem <= 0) return; @@ -193,6 +193,8 @@ /* Priority and E-UTRAN Parameters Description */ bitvec_set_bit(bv, 1); + /* budget: 10 bits used above */ + /* Serving Cell Priority Parameters Descr. is Present, * see also: 3GPP TS 44.018, Table 10.5.2.33b.1 */ bitvec_set_bit(bv, 1); @@ -212,6 +214,8 @@ /* T_Reselection */ bitvec_set_uint(bv, 0, 2); + /* budget: 26 bits used above */ + /* No 3G Priority Parameters Description */ bitvec_set_bit(bv, 0); /* E-UTRAN Parameters Description */ @@ -235,12 +239,16 @@ /* Repeated E-UTRAN Neighbour Cells */ bitvec_set_bit(bv, 1); + /* budget: 34 bits used above */ + appended = append_eutran_neib_cell(bv, e, e_offset, rem); if (!appended) { /* appending is impossible within current budget: rollback */ bv->cur_bit = old; return; } + /* budget: further 6 bits used below, totalling 40 bits */ + /* stop bit - end of Repeated E-UTRAN Neighbour Cells sequence: */ bitvec_set_bit(bv, 0); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc1ece39ad162d09720e104c5cbc12b07d6771a8 Gerrit-Change-Number: 21710 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 Dec 14 16:23:55 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 14 Dec 2020 16:23:55 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration 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/+/21705 to look at the new patch set (#2). Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... gbproxy: Add SGSN NRI configuration In order to support SGSN pooling we need to configure the various NRI parameters such as the bitlen, NULL NRI, and which NRIs are assigned to which SGSN. Related: OS#4890 Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e --- 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_main.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/Makefile.am A tests/osmo-gbproxy_test-nodes.vty R tests/osmo-sgsn_test_nodes.vty 9 files changed, 388 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/05/21705/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 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 Mon Dec 14 16:37:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 16:37:36 +0000 Subject: Change in osmo-bsc[master]: Use rest_octets functionalities from libosmocore References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21711 ) Change subject: Use rest_octets functionalities from libosmocore ...................................................................... Use rest_octets functionalities from libosmocore libosmocore > 1.4.0 is required (master, not yet released) since some fixes done in osmo-bsc code where not cherry-picked to libosmocore APIs. Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 --- M TODO-RELEASE M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_data.h D include/osmocom/bsc/rest_octets.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_vty.c D src/osmo-bsc/rest_octets.c M src/osmo-bsc/system_information.c 9 files changed, 54 insertions(+), 1,036 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/21711/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 6a39a21..4760012 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -9,4 +9,4 @@ #library what description / commit summary line manual needs common chapter cs7-config.adoc, vty_cpu_sched.adoc from osmo-gsm-manuals > 0.3.0 osmo-bsc Mobile Identity Coding OsmoBSC is stricter in rejecting invalid coding of Mobile Identity IEs -libosmocore >1.4.0 (1.4.1?) need BSSMAP-LE, BSSLAP, GAD coding +libosmocore >1.4.0 (1.4.1?) need BSSMAP-LE, BSSLAP, GAD coding, osmo_gsm48_si* diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index e2d5db8..7ca99fa 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -51,7 +51,6 @@ pcu_if.h \ pcuif_proto.h \ bssmap_reset.h \ - rest_octets.h \ rs232.h \ signal.h \ system_information.h \ diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 2b05418..d2f1307 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -390,7 +390,7 @@ struct gsm48_rach_control rach_control; uint8_t ncc_permitted; struct gsm48_cell_sel_par cell_sel_par; - struct gsm48_si_selection_params cell_ro_sel_par; /* rest octet */ + struct osmo_gsm48_si_selection_params cell_ro_sel_par; /* rest octet */ struct gsm48_cell_options cell_options; struct gsm48_control_channel_descr chan_desc; struct bitvec neigh_list; diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 584c0e6..3472f39 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -21,7 +21,7 @@ #include -#include +#include #include #include diff --git a/include/osmocom/bsc/rest_octets.h b/include/osmocom/bsc/rest_octets.h deleted file mode 100644 index 7df66f7..0000000 --- a/include/osmocom/bsc/rest_octets.h +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef _REST_OCTETS_H -#define _REST_OCTETS_H - -#include -#include - -struct gsm_bts; - -/* generate SI1 rest octets */ -int rest_octets_si1(uint8_t *data, uint8_t *nch_pos, int is1800_net); -int rest_octets_si2quater(uint8_t *data, struct gsm_bts *bts); -int rest_octets_si2ter(uint8_t *data); -int rest_octets_si2bis(uint8_t *data); -int rest_octets_si6(uint8_t *data, bool is1800_net); - -struct gsm48_si_selection_params { - uint16_t penalty_time:5, - temp_offs:3, - cell_resel_off:6, - cbq:1, - present:1; -}; - -struct gsm48_si_power_offset { - uint8_t power_offset:2, - present:1; -}; - -struct gsm48_si3_gprs_ind { - uint8_t si13_position:1, - ra_colour:3, - present:1; -}; - -struct gsm48_lsa_params { - uint32_t prio_thr:3, - lsa_offset:3, - mcc:12, - mnc:12; - unsigned int present; -}; - -struct gsm48_si_ro_info { - struct gsm48_si_selection_params selection_params; - struct gsm48_si_power_offset power_offset; - bool si2ter_indicator; - bool early_cm_ctrl; - struct { - uint8_t where:3, - present:1; - } scheduling; - struct gsm48_si3_gprs_ind gprs_ind; - /* SI 3 specific */ - bool early_cm_restrict_3g; - bool si2quater_indicator; - /* SI 4 specific */ - struct gsm48_lsa_params lsa_params; - uint16_t cell_id; - uint8_t break_ind; /* do we have SI7 + SI8 ? */ -}; - - -/* Generate SI3 Rest Octests (Chapter 10.5.2.34 / Table 10.4.72) */ -int rest_octets_si3(uint8_t *data, const struct gsm48_si_ro_info *si3); - -/* Generate SI4 Rest Octets (Chapter 10.5.2.35) */ -int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4, int len); - -/* TS 03.60 Chapter 6.3.3.1: Network Mode of Operation */ -enum gprs_nmo { - GPRS_NMO_I = 0, /* CS pagin on GPRS paging or traffic channel */ - GPRS_NMO_II = 1, /* all paging on CCCH */ - GPRS_NMO_III = 2, /* no paging coordination */ -}; - -/* TS 04.60 12.24 */ -struct gprs_cell_options { - enum gprs_nmo nmo; - /* T3168: wait for packet uplink assignment message */ - uint32_t t3168; /* in milliseconds */ - /* T3192: wait for release of the TBF after reception of the final block */ - uint32_t t3192; /* in milliseconds */ - uint32_t drx_timer_max;/* in seconds */ - uint32_t bs_cv_max; - bool ctrl_ack_type_use_block; /* use PACKET CONTROL ACKNOWLEDGMENT */ - - uint8_t ext_info_present; - struct { - uint8_t egprs_supported; - uint8_t use_egprs_p_ch_req; - uint8_t bep_period; - uint8_t pfc_supported; - uint8_t dtm_supported; - uint8_t bss_paging_coordination; - } ext_info; -}; - -/* TS 04.60 Table 12.9.2 */ -struct gprs_power_ctrl_pars { - uint8_t alpha; - uint8_t t_avg_w; - uint8_t t_avg_t; - uint8_t pc_meas_chan; - uint8_t n_avg_i; -}; - -struct gsm48_si13_info { - struct gprs_cell_options cell_opts; - struct gprs_power_ctrl_pars pwr_ctrl_pars; - uint8_t bcch_change_mark; - uint8_t si_change_field; - uint8_t rac; - uint8_t spgc_ccch_sup; - uint8_t net_ctrl_ord; - uint8_t prio_acc_thr; -}; - -/* Generate SI13 Rest Octests (Chapter 10.5.2.37b) */ -int rest_octets_si13(uint8_t *data, const struct gsm48_si13_info *si13); - -#endif /* _REST_OCTETS_H */ diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 92ef7c3..49b7890 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -100,7 +100,6 @@ pcu_sock.c \ penalty_timers.c \ bssmap_reset.c \ - rest_octets.c \ system_information.c \ timeslot_fsm.c \ smscb.c \ diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index c98a254..b75b41c 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -896,7 +896,7 @@ bts->si_common.cell_sel_par.rxlev_acc_min, VTY_NEWLINE); if (bts->si_common.cell_ro_sel_par.present) { - struct gsm48_si_selection_params *sp; + struct osmo_gsm48_si_selection_params *sp; sp = &bts->si_common.cell_ro_sel_par; if (sp->cbq) diff --git a/src/osmo-bsc/rest_octets.c b/src/osmo-bsc/rest_octets.c deleted file mode 100644 index 7307cb8..0000000 --- a/src/osmo-bsc/rest_octets.c +++ /dev/null @@ -1,899 +0,0 @@ -/* GSM Mobile Radio Interface Layer 3 messages on the A-bis interface, - * rest octet handling according to - * 3GPP TS 04.08 version 7.21.0 Release 1998 / ETSI TS 100 940 V7.21.0 */ - -/* (C) 2009 by Harald Welte - * - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -/* generate SI1 rest octets */ -int rest_octets_si1(uint8_t *data, uint8_t *nch_pos, int is1800_net) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 1; - - if (nch_pos) { - bitvec_set_bit(&bv, H); - bitvec_set_uint(&bv, *nch_pos, 5); - } else - bitvec_set_bit(&bv, L); - - if (is1800_net) - bitvec_set_bit(&bv, L); - else - bitvec_set_bit(&bv, H); - - bitvec_spare_padding(&bv, 6); - return bv.data_len; -} - -/* Append Repeated E-UTRAN Neighbour Cell to bitvec: see 3GPP TS 44.018 Table 10.5.2.33b.1 */ -static inline bool append_eutran_neib_cell(struct bitvec *bv, struct gsm_bts *bts, uint8_t budget) -{ - const struct osmo_earfcn_si2q *e = &bts->si_common.si2quater_neigh_list; - unsigned i, skip = 0; - size_t offset = bts->e_offset; - int16_t rem = budget - 6; /* account for mandatory stop bit and THRESH_E-UTRAN_high */ - uint8_t earfcn_budget; - - if (budget <= 6) - return false; - - OSMO_ASSERT(budget <= SI2Q_MAX_LEN); - - /* first we have to properly adjust budget requirements */ - if (e->prio_valid) /* E-UTRAN_PRIORITY: 3GPP TS 45.008*/ - rem -= 4; - else - rem--; - - if (e->thresh_lo_valid) /* THRESH_E-UTRAN_low: */ - rem -= 6; - else - rem--; - - if (e->qrxlm_valid) /* E-UTRAN_QRXLEVMIN: */ - rem -= 6; - else - rem--; - - if (rem < 0) - return false; - - /* now we can proceed with actually adding EARFCNs within adjusted budget limit */ - for (i = 0; i < e->length; i++) { - if (e->arfcn[i] != OSMO_EARFCN_INVALID) { - if (skip < offset) { - skip++; /* ignore EARFCNs added on previous calls */ - } else { - earfcn_budget = 17; /* compute budget per-EARFCN */ - if (OSMO_EARFCN_MEAS_INVALID == e->meas_bw[i]) - earfcn_budget++; - else - earfcn_budget += 4; - - if (rem - earfcn_budget < 0) - break; - else { - bts->e_offset++; - rem -= earfcn_budget; - - if (rem < 0) - return false; - - bitvec_set_bit(bv, 1); /* EARFCN: */ - bitvec_set_uint(bv, e->arfcn[i], 16); - - if (OSMO_EARFCN_MEAS_INVALID == e->meas_bw[i]) - bitvec_set_bit(bv, 0); - else { /* Measurement Bandwidth: 9.1.54 */ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, e->meas_bw[i], 3); - } - } - } - } - } - - /* stop bit - end of EARFCN + Measurement Bandwidth sequence */ - bitvec_set_bit(bv, 0); - - /* Note: we don't support different EARFCN arrays each with different priority, threshold etc. */ - - if (e->prio_valid) { - /* E-UTRAN_PRIORITY: 3GPP TS 45.008*/ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, e->prio, 3); - } else - bitvec_set_bit(bv, 0); - - /* THRESH_E-UTRAN_high */ - bitvec_set_uint(bv, e->thresh_hi, 5); - - if (e->thresh_lo_valid) { - /* THRESH_E-UTRAN_low: */ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, e->thresh_lo, 5); - } else - bitvec_set_bit(bv, 0); - - if (e->qrxlm_valid) { - /* E-UTRAN_QRXLEVMIN: */ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, e->qrxlm, 5); - } else - bitvec_set_bit(bv, 0); - - return true; -} - -static inline void append_earfcn(struct bitvec *bv, struct gsm_bts *bts, uint8_t budget) -{ - bool appended; - unsigned int old = bv->cur_bit; /* save current position to make rollback possible */ - int rem = ((int)budget) - 40; - if (rem <= 0) - return; - - OSMO_ASSERT(budget <= SI2Q_MAX_LEN); - - /* Additions in Rel-5: */ - bitvec_set_bit(bv, H); - /* No 3G Additional Measurement Param. Descr. */ - bitvec_set_bit(bv, 0); - /* No 3G ADDITIONAL MEASUREMENT Param. Descr. 2 */ - bitvec_set_bit(bv, 0); - /* Additions in Rel-6: */ - bitvec_set_bit(bv, H); - /* 3G_CCN_ACTIVE */ - bitvec_set_bit(bv, 0); - /* Additions in Rel-7: */ - bitvec_set_bit(bv, H); - /* No 700_REPORTING_OFFSET */ - bitvec_set_bit(bv, 0); - /* No 810_REPORTING_OFFSET */ - bitvec_set_bit(bv, 0); - /* Additions in Rel-8: */ - bitvec_set_bit(bv, H); - - /* Priority and E-UTRAN Parameters Description */ - bitvec_set_bit(bv, 1); - - /* budget: 10 bits used above */ - - /* Serving Cell Priority Parameters Descr. is Present, - * see also: 3GPP TS 44.018, Table 10.5.2.33b.1 */ - bitvec_set_bit(bv, 1); - - /* GERAN_PRIORITY */ - bitvec_set_uint(bv, 0, 3); - - /* THRESH_Priority_Search */ - bitvec_set_uint(bv, 0, 4); - - /* THRESH_GSM_low */ - bitvec_set_uint(bv, 0, 4); - - /* H_PRIO */ - bitvec_set_uint(bv, 0, 2); - - /* T_Reselection */ - bitvec_set_uint(bv, 0, 2); - - /* budget: 26 bits used above */ - - /* No 3G Priority Parameters Description */ - bitvec_set_bit(bv, 0); - /* E-UTRAN Parameters Description */ - bitvec_set_bit(bv, 1); - - /* E-UTRAN_CCN_ACTIVE */ - bitvec_set_bit(bv, 0); - /* E-UTRAN_Start: 9.1.54 */ - bitvec_set_bit(bv, 1); - /* E-UTRAN_Stop: 9.1.54 */ - bitvec_set_bit(bv, 1); - - /* No E-UTRAN Measurement Parameters Descr. */ - bitvec_set_bit(bv, 0); - /* No GPRS E-UTRAN Measurement Param. Descr. */ - bitvec_set_bit(bv, 0); - - /* Note: each of next 3 "repeated" structures might be repeated any - (0, 1, 2...) times - we only support 1 and 0 */ - - /* Repeated E-UTRAN Neighbour Cells */ - bitvec_set_bit(bv, 1); - - /* budget: 34 bits used above */ - - appended = append_eutran_neib_cell(bv, bts, rem); - if (!appended) { /* appending is impossible within current budget: rollback */ - bv->cur_bit = old; - return; - } - - /* budget: further 6 bits used below, totalling 40 bits */ - - /* stop bit - end of Repeated E-UTRAN Neighbour Cells sequence: */ - bitvec_set_bit(bv, 0); - - /* Note: following 2 repeated structs are not supported ATM */ - /* stop bit - end of Repeated E-UTRAN Not Allowed Cells sequence: */ - bitvec_set_bit(bv, 0); - /* stop bit - end of Repeated E-UTRAN PCID to TA mapping sequence: */ - bitvec_set_bit(bv, 0); - - /* Priority and E-UTRAN Parameters Description ends here */ - /* No 3G CSG Description */ - bitvec_set_bit(bv, 0); - /* No E-UTRAN CSG Description */ - bitvec_set_bit(bv, 0); - /* No Additions in Rel-9: */ - bitvec_set_bit(bv, L); -} - -static inline int f0_helper(int *sc, size_t length, uint8_t *chan_list) -{ - int w[RANGE_ENC_MAX_ARFCNS] = { 0 }; - - return range_encode(ARFCN_RANGE_1024, sc, length, w, 0, chan_list); -} - -/* Estimate how many bits it'll take to append single FDD UARFCN */ -static inline int append_utran_fdd_length(uint16_t u, const int *sc, size_t sc_len, size_t length) -{ - uint8_t chan_list[16] = { 0 }; - int tmp[sc_len], f0; - - memcpy(tmp, sc, sizeof(tmp)); - - f0 = f0_helper(tmp, length, chan_list); - if (f0 < 0) - return f0; - - return 21 + range1024_p(length); -} - -/* Append single FDD UARFCN */ -static inline int append_utran_fdd(struct bitvec *bv, uint16_t u, int *sc, size_t length) -{ - uint8_t chan_list[16] = { 0 }; - int f0 = f0_helper(sc, length, chan_list); - - if (f0 < 0) - return f0; - - /* Repeated UTRAN FDD Neighbour Cells */ - bitvec_set_bit(bv, 1); - - /* FDD-ARFCN */ - bitvec_set_bit(bv, 0); - bitvec_set_uint(bv, u, 14); - - /* FDD_Indic0: parameter value '0000000000' is a member of the set? */ - bitvec_set_bit(bv, f0); - /* NR_OF_FDD_CELLS */ - bitvec_set_uint(bv, length, 5); - - f0 = bv->cur_bit; - bitvec_add_range1024(bv, (struct gsm48_range_1024 *)chan_list); - bv->cur_bit = f0 + range1024_p(length); - - return 21 + range1024_p(length); -} - -static inline int try_adding_uarfcn(struct bitvec *bv, struct gsm_bts *bts, uint16_t uarfcn, - uint8_t num_sc, uint8_t start_pos, uint8_t budget) -{ - int i, k, rc, a[bts->si_common.uarfcn_length]; - - if (budget < 23) - return -ENOMEM; - - /* copy corresponding Scrambling Codes: range encoder make in-place modifications */ - for (i = start_pos, k = 0; i < num_sc; a[k++] = bts->si_common.data.scramble_list[i++]); - - /* estimate bit length requirements */ - rc = append_utran_fdd_length(uarfcn, a, bts->si_common.uarfcn_length, k); - if (rc < 0) - return rc; /* range encoder failure */ - - if (budget - rc <= 0) - return -ENOMEM; /* we have ran out of budget in current SI2q */ - - /* compute next offset */ - bts->u_offset += k; - - return budget - append_utran_fdd(bv, uarfcn, a, k); -} - -/* Append multiple FDD UARFCNs */ -static inline void append_uarfcns(struct bitvec *bv, struct gsm_bts *bts, uint8_t budget) -{ - const uint16_t *u = bts->si_common.data.uarfcn_list; - int i, rem = budget - 7, st = bts->u_offset; /* account for constant bits right away */ - uint16_t cu = u[bts->u_offset]; /* caller ensures that length is positive */ - - OSMO_ASSERT(budget <= SI2Q_MAX_LEN); - - if (budget <= 7) - return; - - /* 3G Neighbour Cell Description */ - bitvec_set_bit(bv, 1); - /* No Index_Start_3G */ - bitvec_set_bit(bv, 0); - /* No Absolute_Index_Start_EMR */ - bitvec_set_bit(bv, 0); - - /* UTRAN FDD Description */ - bitvec_set_bit(bv, 1); - /* No Bandwidth_FDD */ - bitvec_set_bit(bv, 0); - - for (i = bts->u_offset; i <= bts->si_common.uarfcn_length; i++) - if (u[i] != cu) { /* we've reached new UARFCN */ - rem = try_adding_uarfcn(bv, bts, cu, i, st, rem); - if (rem < 0) - break; - - if (i < bts->si_common.uarfcn_length) { - cu = u[i]; - st = i; - } else - break; - } - - /* stop bit - end of Repeated UTRAN FDD Neighbour Cells */ - bitvec_set_bit(bv, 0); - - /* UTRAN TDD Description */ - bitvec_set_bit(bv, 0); -} - -/* generate SI2quater rest octets: 3GPP TS 44.018 ? 10.5.2.33b */ -int rest_octets_si2quater(uint8_t *data, struct gsm_bts *bts) -{ - int rc; - struct bitvec bv; - - if (bts->si2q_count < bts->si2q_index) - return -EINVAL; - - bv.data = data; - bv.data_len = 20; - bitvec_zero(&bv); - - /* BA_IND: Set to '0' as that's what we use for SI2xxx type, - * whereas '1' is used for SI5xxx type messages. The point here - * is to be able to correlate whether a given MS measurement - * report was using the neighbor cells advertised in SI2 or in - * SI5, as those two could very well be different */ - bitvec_set_bit(&bv, 0); - /* 3G_BA_IND */ - bitvec_set_bit(&bv, 1); - /* MP_CHANGE_MARK */ - bitvec_set_bit(&bv, 0); - - /* SI2quater_INDEX */ - bitvec_set_uint(&bv, bts->si2q_index, 4); - /* SI2quater_COUNT */ - bitvec_set_uint(&bv, bts->si2q_count, 4); - - /* No Measurement_Parameters Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_Real Time Difference Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_BSIC Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_REPORT PRIORITY Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_MEASUREMENT_Parameters Description */ - bitvec_set_bit(&bv, 0); - /* No NC Measurement Parameters */ - bitvec_set_bit(&bv, 0); - /* No extension (length) */ - bitvec_set_bit(&bv, 0); - - rc = SI2Q_MAX_LEN - (bv.cur_bit + 3); - if (rc > 0 && bts->si_common.uarfcn_length - bts->u_offset > 0) - append_uarfcns(&bv, bts, rc); - else /* No 3G Neighbour Cell Description */ - bitvec_set_bit(&bv, 0); - - /* No 3G Measurement Parameters Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_3G_MEASUREMENT Parameters Descr. */ - bitvec_set_bit(&bv, 0); - - rc = SI2Q_MAX_LEN - bv.cur_bit; - if (rc > 0 && si2q_earfcn_count(&bts->si_common.si2quater_neigh_list) - bts->e_offset > 0) - append_earfcn(&bv, bts, rc); - else /* No Additions in Rel-5: */ - bitvec_set_bit(&bv, L); - - bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); - return bv.data_len; -} - -/* Append selection parameters to bitvec */ -static void append_selection_params(struct bitvec *bv, - const struct gsm48_si_selection_params *sp) -{ - if (sp->present) { - bitvec_set_bit(bv, H); - bitvec_set_bit(bv, sp->cbq); - bitvec_set_uint(bv, sp->cell_resel_off, 6); - bitvec_set_uint(bv, sp->temp_offs, 3); - bitvec_set_uint(bv, sp->penalty_time, 5); - } else - bitvec_set_bit(bv, L); -} - -/* Append power offset to bitvec */ -static void append_power_offset(struct bitvec *bv, - const struct gsm48_si_power_offset *po) -{ - if (po->present) { - bitvec_set_bit(bv, H); - bitvec_set_uint(bv, po->power_offset, 2); - } else - bitvec_set_bit(bv, L); -} - -/* Append GPRS indicator to bitvec */ -static void append_gprs_ind(struct bitvec *bv, - const struct gsm48_si3_gprs_ind *gi) -{ - if (gi->present) { - bitvec_set_bit(bv, H); - bitvec_set_uint(bv, gi->ra_colour, 3); - /* 0 == SI13 in BCCH Norm, 1 == SI13 sent on BCCH Ext */ - bitvec_set_bit(bv, gi->si13_position); - } else - bitvec_set_bit(bv, L); -} - -/* Generate SI2ter Rest Octests 3GPP TS 44.018 Table 10.5.2.33a.1 */ -int rest_octets_si2ter(uint8_t *data) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 4; - - /* No SI2ter_MP_CHANGE_MARK */ - bitvec_set_bit(&bv, L); - - bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); - - return bv.data_len; -} - -/* Generate SI2bis Rest Octests 3GPP TS 44.018 Table 10.5.2.33.1 */ -int rest_octets_si2bis(uint8_t *data) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 1; - - bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); - - return bv.data_len; -} - -/* Generate SI3 Rest Octests (Chapter 10.5.2.34 / Table 10.4.72) */ -int rest_octets_si3(uint8_t *data, const struct gsm48_si_ro_info *si3) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 4; - - /* Optional Selection Parameters */ - append_selection_params(&bv, &si3->selection_params); - - /* Optional Power Offset */ - append_power_offset(&bv, &si3->power_offset); - - /* Do we have a SI2ter on the BCCH? */ - if (si3->si2ter_indicator) - bitvec_set_bit(&bv, H); - else - bitvec_set_bit(&bv, L); - - /* Early Classmark Sending Control */ - if (si3->early_cm_ctrl) - bitvec_set_bit(&bv, H); - else - bitvec_set_bit(&bv, L); - - /* Do we have a SI Type 9 on the BCCH? */ - if (si3->scheduling.present) { - bitvec_set_bit(&bv, H); - bitvec_set_uint(&bv, si3->scheduling.where, 3); - } else - bitvec_set_bit(&bv, L); - - /* GPRS Indicator */ - append_gprs_ind(&bv, &si3->gprs_ind); - - /* 3G Early Classmark Sending Restriction. If H, then controlled by - * early_cm_ctrl above */ - if (si3->early_cm_restrict_3g) - bitvec_set_bit(&bv, L); - else - bitvec_set_bit(&bv, H); - - if (si3->si2quater_indicator) { - bitvec_set_bit(&bv, H); /* indicator struct present */ - bitvec_set_uint(&bv, 0, 1); /* message is sent on BCCH Norm */ - } - - bitvec_spare_padding(&bv, (bv.data_len*8)-1); - return bv.data_len; -} - -static int append_lsa_params(struct bitvec *bv, - const struct gsm48_lsa_params *lsa_params) -{ - /* FIXME */ - return -1; -} - -/* Generate SI4 Rest Octets (Chapter 10.5.2.35) */ -int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4, int len) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = len; - - /* SI4 Rest Octets O */ - append_selection_params(&bv, &si4->selection_params); - append_power_offset(&bv, &si4->power_offset); - append_gprs_ind(&bv, &si4->gprs_ind); - - if (0 /* FIXME */) { - /* H and SI4 Rest Octets S */ - bitvec_set_bit(&bv, H); - - /* LSA Parameters */ - if (si4->lsa_params.present) { - bitvec_set_bit(&bv, H); - append_lsa_params(&bv, &si4->lsa_params); - } else - bitvec_set_bit(&bv, L); - - /* Cell Identity */ - if (1) { - bitvec_set_bit(&bv, H); - bitvec_set_uint(&bv, si4->cell_id, 16); - } else - bitvec_set_bit(&bv, L); - - /* LSA ID Information */ - if (0) { - bitvec_set_bit(&bv, H); - /* FIXME */ - } else - bitvec_set_bit(&bv, L); - } else { - /* L and break indicator */ - bitvec_set_bit(&bv, L); - bitvec_set_bit(&bv, si4->break_ind ? H : L); - } - - return bv.data_len; -} - - -/* GSM 04.18 ETSI TS 101 503 V8.27.0 (2006-05) - - ::= -{L | H } -{L | H } -{ < DTM_support : bit == L > I < DTM_support : bit == H > -< RAC : bit (8) > -< MAX_LAPDm : bit (3) > } -< Band indicator > -{ L | H < GPRS_MS_TXPWR_MAX_CCH : bit (5) > } -; -*/ -int rest_octets_si6(uint8_t *data, bool is1800_net) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 1; - - /* no PCH/NCH info */ - bitvec_set_bit(&bv, L); - /* no VBS/VGCS options */ - bitvec_set_bit(&bv, L); - /* no DTM_support */ - bitvec_set_bit(&bv, L); - /* band indicator */ - if (is1800_net) - bitvec_set_bit(&bv, L); - else - bitvec_set_bit(&bv, H); - /* no GPRS_MS_TXPWR_MAX_CCH */ - bitvec_set_bit(&bv, L); - - bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); - return bv.data_len; -} - -/* GPRS Mobile Allocation as per TS 04.60 Chapter 12.10a: - < GPRS Mobile Allocation IE > ::= - < HSN : bit (6) > - { 0 | 1 < RFL number list : < RFL number list struct > > } - { 0 < MA_LENGTH : bit (6) > - < MA_BITMAP: bit (val(MA_LENGTH) + 1) > - | 1 { 0 | 1 > } } ; - - < RFL number list struct > :: = - < RFL_NUMBER : bit (4) > - { 0 | 1 < RFL number list struct > } ; - < ARFCN index list struct > ::= - < ARFCN_INDEX : bit(6) > - { 0 | 1 < ARFCN index list struct > } ; - */ -static int append_gprs_mobile_alloc(struct bitvec *bv) -{ - /* Hopping Sequence Number */ - bitvec_set_uint(bv, 0, 6); - - if (0) { - /* We want to use a RFL number list */ - bitvec_set_bit(bv, 1); - /* FIXME: RFL number list */ - } else - bitvec_set_bit(bv, 0); - - if (0) { - /* We want to use a MA_BITMAP */ - bitvec_set_bit(bv, 0); - /* FIXME: MA_LENGTH, MA_BITMAP, ... */ - } else { - bitvec_set_bit(bv, 1); - if (0) { - /* We want to provide an ARFCN index list */ - bitvec_set_bit(bv, 1); - /* FIXME */ - } else - bitvec_set_bit(bv, 0); - } - return 0; -} - -static int encode_t3192(unsigned int t3192) -{ - /* See also 3GPP TS 44.060 - Table 12.24.2: GPRS Cell Options information element details */ - if (t3192 == 0) - return 3; - else if (t3192 <= 80) - return 4; - else if (t3192 <= 120) - return 5; - else if (t3192 <= 160) - return 6; - else if (t3192 <= 200) - return 7; - else if (t3192 <= 500) - return 0; - else if (t3192 <= 1000) - return 1; - else if (t3192 <= 1500) - return 2; - else - return -EINVAL; -} - -static int encode_drx_timer(unsigned int drx) -{ - if (drx == 0) - return 0; - else if (drx == 1) - return 1; - else if (drx == 2) - return 2; - else if (drx <= 4) - return 3; - else if (drx <= 8) - return 4; - else if (drx <= 16) - return 5; - else if (drx <= 32) - return 6; - else if (drx <= 64) - return 7; - else - return -EINVAL; -} - -/* GPRS Cell Options as per TS 04.60 Chapter 12.24 - < GPRS Cell Options IE > ::= - < NMO : bit(2) > - < T3168 : bit(3) > - < T3192 : bit(3) > - < DRX_TIMER_MAX: bit(3) > - < ACCESS_BURST_TYPE: bit > - < CONTROL_ACK_TYPE : bit > - < BS_CV_MAX: bit(4) > - { 0 | 1 < PAN_DEC : bit(3) > - < PAN_INC : bit(3) > - < PAN_MAX : bit(3) > - { 0 | 1 < Extension Length : bit(6) > - < bit (val(Extension Length) + 1 - & { < Extension Information > ! { bit ** = } } ; - < Extension Information > ::= - { 0 | 1 < EGPRS_PACKET_CHANNEL_REQUEST : bit > - < BEP_PERIOD : bit(4) > } - < PFC_FEATURE_MODE : bit > - < DTM_SUPPORT : bit > - - ** ; - */ -static int append_gprs_cell_opt(struct bitvec *bv, - const struct gprs_cell_options *gco) -{ - int t3192, drx_timer_max; - - t3192 = encode_t3192(gco->t3192); - if (t3192 < 0) - return t3192; - - drx_timer_max = encode_drx_timer(gco->drx_timer_max); - if (drx_timer_max < 0) - return drx_timer_max; - - bitvec_set_uint(bv, gco->nmo, 2); - - /* See also 3GPP TS 44.060 - Table 12.24.2: GPRS Cell Options information element details */ - bitvec_set_uint(bv, gco->t3168 / 500 - 1, 3); - - bitvec_set_uint(bv, t3192, 3); - bitvec_set_uint(bv, drx_timer_max, 3); - /* ACCESS_BURST_TYPE: Hard-code 8bit */ - bitvec_set_bit(bv, 0); - /* CONTROL_ACK_TYPE: */ - bitvec_set_bit(bv, gco->ctrl_ack_type_use_block); - bitvec_set_uint(bv, gco->bs_cv_max, 4); - - if (0) { - /* hard-code no PAN_{DEC,INC,MAX} */ - bitvec_set_bit(bv, 0); - } else { - /* copied from ip.access BSC protocol trace */ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, 1, 3); /* DEC */ - bitvec_set_uint(bv, 1, 3); /* INC */ - bitvec_set_uint(bv, 15, 3); /* MAX */ - } - - if (!gco->ext_info_present) { - /* no extension information */ - bitvec_set_bit(bv, 0); - } else { - /* extension information */ - bitvec_set_bit(bv, 1); - if (!gco->ext_info.egprs_supported) { - /* 6bit length of extension */ - bitvec_set_uint(bv, (1 + 3)-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); - /* EGPRS supported in the cell */ - bitvec_set_bit(bv, 1); - - /* 1bit EGPRS PACKET CHANNEL REQUEST (inverted logic) */ - bitvec_set_bit(bv, !gco->ext_info.use_egprs_p_ch_req); - - /* 4bit BEP PERIOD */ - bitvec_set_uint(bv, gco->ext_info.bep_period, 4); - } - bitvec_set_bit(bv, gco->ext_info.pfc_supported); - bitvec_set_bit(bv, gco->ext_info.dtm_supported); - bitvec_set_bit(bv, gco->ext_info.bss_paging_coordination); - } - - return 0; -} - -static void append_gprs_pwr_ctrl_pars(struct bitvec *bv, - const struct gprs_power_ctrl_pars *pcp) -{ - bitvec_set_uint(bv, pcp->alpha, 4); - bitvec_set_uint(bv, pcp->t_avg_w, 5); - bitvec_set_uint(bv, pcp->t_avg_t, 5); - bitvec_set_uint(bv, pcp->pc_meas_chan, 1); - bitvec_set_uint(bv, pcp->n_avg_i, 4); -} - -/* Generate SI13 Rest Octests (04.08 Chapter 10.5.2.37b) */ -int rest_octets_si13(uint8_t *data, const struct gsm48_si13_info *si13) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 20; - - if (0) { - /* No rest octets */ - bitvec_set_bit(&bv, L); - } else { - bitvec_set_bit(&bv, H); - bitvec_set_uint(&bv, si13->bcch_change_mark, 3); - bitvec_set_uint(&bv, si13->si_change_field, 4); - if (1) { - bitvec_set_bit(&bv, 0); - } else { - bitvec_set_bit(&bv, 1); - bitvec_set_uint(&bv, si13->bcch_change_mark, 2); - append_gprs_mobile_alloc(&bv); - } - /* PBCCH not present in cell: - it shall never be indicated according to 3GPP TS 44.018 Table 10.5.2.37b.1 */ - bitvec_set_bit(&bv, 0); - bitvec_set_uint(&bv, si13->rac, 8); - bitvec_set_bit(&bv, si13->spgc_ccch_sup); - bitvec_set_uint(&bv, si13->prio_acc_thr, 3); - bitvec_set_uint(&bv, si13->net_ctrl_ord, 2); - append_gprs_cell_opt(&bv, &si13->cell_opts); - append_gprs_pwr_ctrl_pars(&bv, &si13->pwr_ctrl_pars); - - /* 3GPP TS 44.018 Release 6 / 10.5.2.37b */ - bitvec_set_bit(&bv, H); /* added Release 99 */ - /* claim our SGSN is compatible with Release 99, as EDGE and EGPRS - * was only added in this Release */ - bitvec_set_bit(&bv, 1); - } - bitvec_spare_padding(&bv, (bv.data_len*8)-1); - return bv.data_len; -} diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index b969989..10b0e4d 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -31,12 +31,12 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include @@ -169,7 +169,12 @@ si2q->header.system_information = GSM48_MT_RR_SYSINFO_2quater; } - rc = rest_octets_si2quater(si2q->rest_octets, bts); + rc = osmo_gsm48_rest_octets_si2quater_encode(si2q->rest_octets, bts->si2q_index, + bts->si2q_count, bts->si_common.data.uarfcn_list, + &bts->u_offset, bts->si_common.uarfcn_length, + bts->si_common.data.scramble_list, + &bts->si_common.si2quater_neigh_list, + &bts->e_offset); if (rc < 0) return rc; @@ -729,7 +734,7 @@ * SI1 Rest Octets (10.5.2.32), contains NCH position and band * indicator but that is not in the 04.08. */ - rc = rest_octets_si1(si1->rest_octets, NULL, is_dcs_net(bts)); + rc = osmo_gsm48_rest_octets_si1_encode(si1->rest_octets, NULL, is_dcs_net(bts)); return sizeof(*si1) + rc; } @@ -759,6 +764,20 @@ return sizeof(*si2); } +/* Generate SI2bis Rest Octests 3GPP TS 44.018 Table 10.5.2.33.1 */ +static int rest_octets_si2bis(uint8_t *data) +{ + struct bitvec bv; + + memset(&bv, 0, sizeof(bv)); + bv.data = data; + bv.data_len = 1; + + bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); + + return bv.data_len; +} + static int generate_si2bis(enum osmo_sysinfo_type t, struct gsm_bts *bts) { int rc; @@ -796,6 +815,24 @@ return sizeof(*si2b) + rc; } + +/* Generate SI2ter Rest Octests 3GPP TS 44.018 Table 10.5.2.33a.1 */ +static int rest_octets_si2ter(uint8_t *data) +{ + struct bitvec bv; + + memset(&bv, 0, sizeof(bv)); + bv.data = data; + bv.data_len = 4; + + /* No SI2ter_MP_CHANGE_MARK */ + bitvec_set_bit(&bv, L); + + bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); + + return bv.data_len; +} + static int generate_si2ter(enum osmo_sysinfo_type t, struct gsm_bts *bts) { int rc; @@ -865,7 +902,7 @@ return sizeof(*si2q) + rc; } -static struct gsm48_si_ro_info si_info = { +static struct osmo_gsm48_si_ro_info si_info = { .selection_params = { .present = 0, }, @@ -934,7 +971,7 @@ CBQ, CELL_RESELECT_OFFSET, TEMPORARY_OFFSET, PENALTY_TIME Power Offset, 2ter Indicator, Early Classmark Sending, Scheduling if and WHERE, GPRS Indicator, SI13 position */ - rc = rest_octets_si3(si3->rest_octets, &si_info); + rc = osmo_gsm48_rest_octets_si3_encode(si3->rest_octets, &si_info); return sizeof(*si3) + rc; } @@ -989,7 +1026,7 @@ /* SI4 Rest Octets (10.5.2.35), containing Optional Power offset, GPRS Indicator, Cell Identity, LSA ID, Selection Parameter */ - rc = rest_octets_si4(tail, &si_info, (uint8_t *)GSM_BTS_SI(bts, t) + GSM_MACBLOCK_LEN - tail); + rc = osmo_gsm48_rest_octets_si4_encode(tail, &si_info, (uint8_t *)GSM_BTS_SI(bts, t) + GSM_MACBLOCK_LEN - tail); return l2_plen + 1 + rc; } @@ -1114,11 +1151,13 @@ static int generate_si6(enum osmo_sysinfo_type t, struct gsm_bts *bts) { struct gsm48_system_information_type_6 *si6; + struct osmo_gsm48_si6_ro_info si6_ro_info; uint8_t *output = GSM_BTS_SI(bts, t); int l2_plen = 11; int rc; memset(output, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN); + memset(&si6_ro_info, 0, sizeof(si6_ro_info)); /* ip.access nanoBTS needs l2_plen!! */ switch (bts->type) { @@ -1145,12 +1184,13 @@ gsm48_set_dtx(&si6->cell_options, bts->dtxu, bts->dtxu, false); /* SI6 Rest Octets: 10.5.2.35a: PCH / NCH info, VBS/VGCS options */ - rc = rest_octets_si6(si6->rest_octets, is_dcs_net(bts)); + si6_ro_info.band_indicator_1900 = is_dcs_net(bts); + rc = osmo_gsm48_rest_octets_si6_encode(si6->rest_octets, &si6_ro_info); return l2_plen + rc; } -static struct gsm48_si13_info si13_default = { +static struct osmo_gsm48_si13_info si13_default = { .cell_opts = { .nmo = GPRS_NMO_II, .t3168 = 2000, @@ -1215,7 +1255,7 @@ else si13_default.cell_opts.ext_info.bss_paging_coordination = 0; - ret = rest_octets_si13(si13->rest_octets, &si13_default); + ret = osmo_gsm48_rest_octets_si13_encode(si13->rest_octets, &si13_default); if (ret < 0) return ret; @@ -1262,7 +1302,7 @@ memcpy(&si_info.selection_params, &bts->si_common.cell_ro_sel_par, - sizeof(struct gsm48_si_selection_params)); + sizeof(struct osmo_gsm48_si_selection_params)); gen_si = gen_si_fn[si_type]; if (!gen_si) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 Gerrit-Change-Number: 21711 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 Dec 14 16:47:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 16:47:31 +0000 Subject: Change in osmo-bsc[master]: Use rest_octets functionalities from libosmocore In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21711 ) Change subject: Use rest_octets functionalities from libosmocore ...................................................................... Patch Set 1: After cherry-picking fixes I found from osmo-bsc.git into libosmocore.git APIs I still see the test results in osmo-bsc changing, I didn't find why yet :/ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 Gerrit-Change-Number: 21711 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 14 Dec 2020 16:47: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 Mon Dec 14 17:01:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 17:01:52 +0000 Subject: Change in libosmocore[master]: gsm: append_eutran_neib_cell: Fix SI2quater EARFCN list References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21712 ) Change subject: gsm: append_eutran_neib_cell: Fix SI2quater EARFCN list ...................................................................... gsm: append_eutran_neib_cell: Fix SI2quater EARFCN list Commit bd6e7a9f2dd5d4e881a0a21ebdb29b7a76ebdc9a did the initial porting of rest_octet APIs from osmo-bsc, but introduced a bug when moving bts->e_offset to a generic pointer independent of bts structure. As a result, using this API from osmo-bsc makes gsm0408 unit test fail due to bad encoding of several EARFCNs in si2quater. Fixes: bd6e7a9f2dd5d4e881a0a21ebdb29b7a76ebdc9a Change-Id: I2bf5635b8536b11d69774d17ac1908019633e3af --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/12/21712/1 diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 5c7d77a..1f9c2b5 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -64,6 +64,7 @@ uint8_t budget) { unsigned i, skip = 0; + size_t offset = *e_offset; int16_t rem = budget - 6; /* account for mandatory stop bit and THRESH_E-UTRAN_high */ uint8_t earfcn_budget; @@ -94,7 +95,7 @@ /* now we can proceed with actually adding EARFCNs within adjusted budget limit */ for (i = 0; i < e->length; i++) { if (e->arfcn[i] != OSMO_EARFCN_INVALID) { - if (skip < *e_offset) { + if (skip < offset) { skip++; /* ignore EARFCNs added on previous calls */ } else { earfcn_budget = 17; /* compute budget per-EARFCN */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2bf5635b8536b11d69774d17ac1908019633e3af Gerrit-Change-Number: 21712 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 Dec 14 17:02:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 17:02:50 +0000 Subject: Change in osmo-bsc[master]: Use rest_octets functionalities from libosmocore 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/+/21711 to look at the new patch set (#2). Change subject: Use rest_octets functionalities from libosmocore ...................................................................... Use rest_octets functionalities from libosmocore libosmocore > 1.4.0 is required (master, not yet released) since some fixes done in osmo-bsc code where not cherry-picked to libosmocore APIs. Depends: libosmocore.git I2bf5635b8536b11d69774d17ac1908019633e3af Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 --- M TODO-RELEASE M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_data.h D include/osmocom/bsc/rest_octets.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_vty.c D src/osmo-bsc/rest_octets.c M src/osmo-bsc/system_information.c M tests/gsm0408/Makefile.am M tests/handover/Makefile.am 11 files changed, 54 insertions(+), 1,038 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/21711/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 Gerrit-Change-Number: 21711 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 Mon Dec 14 17:03:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 17:03:19 +0000 Subject: Change in osmo-bsc[master]: Use rest_octets functionalities from libosmocore In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21711 ) Change subject: Use rest_octets functionalities from libosmocore ...................................................................... Patch Set 2: Tests are fixed once this libosmocore patch is merged: https://gerrit.osmocom.org/c/libosmocore/+/21712 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 Gerrit-Change-Number: 21711 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 14 Dec 2020 17:03: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 Mon Dec 14 17:14:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 17:14:11 +0000 Subject: Change in libosmocore[master]: GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21713 ) Change subject: GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit ...................................................................... GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit This is required in order to tell MS that osmo-pcu now supports Network Assisted Cell Change (NACC). Related: SYS#4909 Change-Id: I2aaa8c1107c977f711c2d7530034f57e36e3a237 --- M TODO-RELEASE M include/osmocom/gprs/protocol/gsm_04_60.h M src/gsm/gsm48_rest_octets.c 3 files changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/21713/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 7699aff..33e27af 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,5 +8,6 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #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) 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/gprs/protocol/gsm_04_60.h b/include/osmocom/gprs/protocol/gsm_04_60.h index 05728f4..ed63fe0 100644 --- a/include/osmocom/gprs/protocol/gsm_04_60.h +++ b/include/osmocom/gprs/protocol/gsm_04_60.h @@ -167,7 +167,7 @@ GPRS_NMO_III = 2, /* no paging coordination */ }; -/* TS 04.60 12.24 */ +/* TS 44.060 12.24 */ struct osmo_gprs_cell_options { enum osmo_gprs_nmo nmo; /* T3168: wait for packet uplink assignment message */ @@ -187,6 +187,7 @@ uint8_t pfc_supported; uint8_t dtm_supported; uint8_t bss_paging_coordination; + bool ccn_active; } ext_info; }; diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 1f9c2b5..3a424f7 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -906,6 +906,8 @@ bitvec_set_bit(bv, 0); } else { /* extension information */ + + /* R99 extension: */ bitvec_set_bit(bv, 1); if (!gco->ext_info.egprs_supported) { /* 6bit length of extension */ @@ -927,6 +929,10 @@ bitvec_set_bit(bv, gco->ext_info.pfc_supported); bitvec_set_bit(bv, gco->ext_info.dtm_supported); bitvec_set_bit(bv, gco->ext_info.bss_paging_coordination); + + /* REL-4 extension: */ + bitvec_set_bit(bv, gco->ext_info.ccn_active); + bitvec_set_bit(bv, 0); /* NW_EXT_UTBF disabled */ } return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2aaa8c1107c977f711c2d7530034f57e36e3a237 Gerrit-Change-Number: 21713 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 Dec 14 17:16:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 17:16:11 +0000 Subject: Change in osmo-bsc[master]: WIP: SI13: Enable CCN_ACTIVE bit References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21714 ) Change subject: WIP: SI13: Enable CCN_ACTIVE bit ...................................................................... WIP: SI13: Enable CCN_ACTIVE bit This is required in order to tell MS that osmo-pcu now supports Network Assisted Cell Change (NACC). Depends: libosmocore.git Change-Id I2aaa8c1107c977f711c2d7530034f57e36e3a237 Related: SYS#4909 Change-Id: If91d85331d402c3ab9c32b70c2c66cd7ba6ceb28 --- M src/osmo-bsc/system_information.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/14/21714/1 diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index 10b0e4d..51731f1 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 = true, }, }, .pwr_ctrl_pars = { -- 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: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 14 17:17:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 17:17:33 +0000 Subject: Change in osmo-bsc[master]: WIP: SI13: Enable CCN_ACTIVE bit In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21714 ) Change subject: WIP: SI13: Enable CCN_ACTIVE bit ...................................................................... Patch Set 1: Not sure what's the preferred way here, and the granularity needed. Do we want to enable it for all bts types? enabled based on bts type? use BTS_FEATURE to negotiate it? I guess BTS would need to somehow negotiate it at the same time with osmo-pcu? -- 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: 1 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 14 Dec 2020 17:17: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 Dec 14 17:30:06 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 14 Dec 2020 17:30:06 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration 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/+/21705 to look at the new patch set (#3). Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... gbproxy: Add SGSN NRI configuration In order to support SGSN pooling we need to configure the various NRI parameters such as the bitlen, NULL NRI, and which NRIs are assigned to which SGSN. Related: OS#4890 Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e --- 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_main.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/Makefile.am A tests/osmo-gbproxy_test-nodes.vty R tests/osmo-sgsn_test_nodes.vty 9 files changed, 388 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/05/21705/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 3 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 Mon Dec 14 17:31:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 17:31:41 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Expose error conditions from E1 driver References: Message-ID: laforge has uploaded this change for review. ( 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. Change-Id: Iba3e00a2b28a2fef6dbd986bfc706c1619c3a3ed --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/e1.h 2 files changed, 22 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/15/21715/1 diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 5d4d3ee..83cbd92 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -291,6 +291,7 @@ int in_flight; enum e1_pipe_state state; } tx; + uint32_t errors; /* E1_ERR_ bitmask */ } g_e1; @@ -395,6 +396,15 @@ return e1f_valid_frames(&g_e1.rx.fifo); } +/* get cumulative error bit mask since last call of this function */ +uint32_t +e1_get_and_clear_errors(void) +{ + uint32_t err = g_e1.errors; + g_e1.errors = 0; + return err; +} + void e1_poll(void) { @@ -421,8 +431,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 |= E1_ERR_CRC; + } g_e1.rx.in_flight--; } @@ -441,6 +453,7 @@ if (!(e1_regs->rx.csr & E1_RX_SR_ALIGNED)) { printf("[!] E1 rx misalign\n"); g_e1.rx.state = RECOVER; + g_e1.errors |= E1_ERR_ALIGN; } } @@ -449,6 +462,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 |= E1_ERR_OVFL; } } @@ -480,6 +494,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 |= E1_ERR_UNFL; } } diff --git a/firmware/ice40-riscv/icE1usb/e1.h b/firmware/ice40-riscv/icE1usb/e1.h index e68514f..c56cf0c 100644 --- a/firmware/ice40-riscv/icE1usb/e1.h +++ b/firmware/ice40-riscv/icE1usb/e1.h @@ -11,5 +11,11 @@ void e1_poll(void); void e1_debug_print(bool data); +#define E1_ERR_ALIGN 0x01 /* at least one alignment error */ +#define E1_ERR_CRC 0x02 /* at least one CRC error */ +#define E1_ERR_OVFL 0x04 /* at least one Rx overflow */ +#define E1_ERR_UNFL 0x08 /* at least one Tx underflow */ +uint32_t e1_get_and_clear_errors(void); + 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/+/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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 14 17:31:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 17:31:41 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 ) Change subject: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position ...................................................................... icE1usb fw: Have e1_rx_need_data() optionally return FIFO position The position indicates where we are in terms of frame and multiframe. The related code was ported over from e1-tracer. Change-Id: I9e59d86a2e8f4e85ca84c592438ad79966b49448 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/usb_e1.c 2 files changed, 9 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/16/21716/1 diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 83cbd92..b89b7c7 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -329,7 +329,7 @@ #include "dma.h" unsigned int -e1_rx_need_data(unsigned int usb_addr, unsigned int max_frames) +e1_rx_need_data(unsigned int usb_addr, unsigned int max_frames, unsigned int *pos) { unsigned int ofs; int tot_frames = 0; @@ -341,6 +341,12 @@ if (!n_frames) break; + /* Give pos */ + if (pos) { + *pos = ofs & g_e1.rx.fifo.mask; + pos = NULL; + } + /* Copy from FIFO to USB */ dma_exec(e1f_ofs_to_dma(ofs), usb_addr, n_frames * (32 / 4), false, NULL, NULL); diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index f724665..6bcb1b4 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -23,7 +23,7 @@ /* Hack */ -unsigned int e1_rx_need_data(unsigned int usb_addr, unsigned int max_len); +unsigned int e1_rx_need_data(unsigned int usb_addr, unsigned int max_len, unsigned int *pos); unsigned int e1_tx_feed_data(unsigned int usb_addr, unsigned int len); unsigned int e1_tx_level(void); unsigned int e1_rx_level(void); @@ -93,7 +93,7 @@ else if (!n) break; - n = e1_rx_need_data((ptr >> 2) + 1, n); + n = e1_rx_need_data((ptr >> 2) + 1, n, NULL); /* Write header */ hdr = 0x616b00b5; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 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: I9e59d86a2e8f4e85ca84c592438ad79966b49448 Gerrit-Change-Number: 21716 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 Dec 14 17:31:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 17:31:42 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Include error status + frame number in Rx USB header References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 ) Change subject: icE1usb fw: Include error status + frame number in Rx USB header ...................................................................... icE1usb fw: Include error status + frame number in Rx USB header Change-Id: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 --- M firmware/ice40-riscv/icE1usb/usb_e1.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/17/21717/1 diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index 6bcb1b4..e9daa39 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -14,6 +14,7 @@ #include "console.h" #include "misc.h" +#include "e1.h" struct { bool running; /* are we running (transceiving USB data)? */ @@ -75,7 +76,9 @@ while ((usb_ep_regs[2].in.bd[bdi].csr & USB_BD_STATE_MSK) != USB_BD_STATE_RDY_DATA) { uint32_t ptr = usb_ep_regs[2].in.bd[bdi].ptr; + uint32_t errmask = e1_get_and_clear_errors(); uint32_t hdr; + unsigned int pos; /* Error check */ if ((usb_ep_regs[2].in.bd[bdi].csr & USB_BD_STATE_MSK) == USB_BD_STATE_DONE_ERR) @@ -93,10 +96,10 @@ else if (!n) break; - n = e1_rx_need_data((ptr >> 2) + 1, n, NULL); + n = e1_rx_need_data((ptr >> 2) + 1, n, &pos); /* Write header */ - hdr = 0x616b00b5; + hdr = (4 << 28) | ((errmask & 0xff) << 8) | (pos & 0xff); usb_data_write(ptr, &hdr, 4); /* Resubmit */ -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 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: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 Gerrit-Change-Number: 21717 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 Dec 14 17:32:19 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 14 Dec 2020 17:32:19 +0000 Subject: Change in libosmocore[master]: gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21709 ) Change subject: gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0aae385a427205cc73f60feca161e38608e608d8 Gerrit-Change-Number: 21709 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 14 Dec 2020 17: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 Dec 14 17:33:10 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 14 Dec 2020 17:33:10 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 ) Change subject: gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." ...................................................................... gbproxy: rename vty command "show gbproxy ..." to "show gbproxy bvc ..." we have other objects to show, and the orthogoanl way to do this is to rename the existing one. Change-Id: I7836a37533a2de81720acedda712d61f429df12c --- M src/gbproxy/gb_proxy_vty.c M tests/vty_test_runner.py 2 files changed, 4 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 976ac12..fc2e8f1 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -198,8 +198,9 @@ return CMD_SUCCESS; } -DEFUN(show_gbproxy, show_gbproxy_cmd, "show gbproxy (bss|sgsn) [stats]", +DEFUN(show_gbproxy_bvc, show_gbproxy_bvc_cmd, "show gbproxy bvc (bss|sgsn) [stats]", SHOW_STR "Display information about the Gb proxy\n" + "Show BSSGP Virtual Connections\n" "Display BSS-side BVCs\n" "Display SGSN-side BVCs\n" "Show statistics\n") @@ -334,7 +335,7 @@ int gbproxy_vty_init(void) { - install_element_ve(&show_gbproxy_cmd); + install_element_ve(&show_gbproxy_bvc_cmd); install_element_ve(&show_gbproxy_links_cmd); install_element_ve(&logging_fltr_bvc_cmd); diff --git a/tests/vty_test_runner.py b/tests/vty_test_runner.py index be40abc..4fb67cb 100755 --- a/tests/vty_test_runner.py +++ b/tests/vty_test_runner.py @@ -97,7 +97,7 @@ res = self.vty.command("show ns") self.assertTrue(res.find('UDP bind') >= 0) - res = self.vty.command("show gbproxy bss stats") + res = self.vty.command("show gbproxy bvc bss stats") self.assertTrue(res.find('GBProxy Global Statistics') >= 0) def testVtyDeletePeer(self): -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7836a37533a2de81720acedda712d61f429df12c Gerrit-Change-Number: 21691 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: 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 Dec 14 17:45:06 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 14 Dec 2020 17:45:06 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration 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/+/21705 to look at the new patch set (#4). Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... gbproxy: Add SGSN NRI configuration In order to support SGSN pooling we need to configure the various NRI parameters such as the bitlen, NULL NRI, and which NRIs are assigned to which SGSN. Related: OS#4890 Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e --- 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_main.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c M tests/Makefile.am A tests/osmo-gbproxy_test-nodes.vty R tests/osmo-sgsn_test-nodes.vty 9 files changed, 388 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/05/21705/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 4 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 Dec 14 17:54:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 17:54:29 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Include error status + frame number in Rx USB header In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 ) Change subject: icE1usb fw: Include error status + frame number in Rx USB header ...................................................................... icE1usb fw: Include error status + frame number in Rx USB header Change-Id: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 --- M firmware/ice40-riscv/icE1usb/usb_e1.c 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/17/21717/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 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: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 Gerrit-Change-Number: 21717 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 Mon Dec 14 17:58:32 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 14 Dec 2020 17:58:32 +0000 Subject: Change in libosmocore[master]: gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21709 ) Change subject: gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0aae385a427205cc73f60feca161e38608e608d8 Gerrit-Change-Number: 21709 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 14 Dec 2020 17:58: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 Dec 14 18:02:15 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 14 Dec 2020 18:02:15 +0000 Subject: Change in libosmocore[master]: rest_octets: add Serving Cell Priority Parameters In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21708 ) Change subject: rest_octets: add Serving Cell Priority Parameters ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If9134759e9bc4ae0920800972632fd8c5dc9c2d9 Gerrit-Change-Number: 21708 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 14 Dec 2020 18:02: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 Dec 14 19:09:48 2020 From: gerrit-no-reply at lists.osmocom.org (ninjab3s) Date: Mon, 14 Dec 2020 19:09:48 +0000 Subject: Change in osmo-gsm-tester[master]: Introduce Android UEs as new modems 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/+/21302 to look at the new patch set (#5). Change subject: Introduce Android UEs as new modems ...................................................................... Introduce Android UEs as new modems To expand the test capacities we would like to introduce Android UEs as new modems. Currently the following tests are supported: - Ping - iPerf3 DL/UL - RRC Mobile MT Ping In the following is a small description. Prerequisites: - Android UE - Rooted (Ping, iPerf, RRC Idle MT Ping) - Qualcomm baseband with working diag_mdlog (RRC Idle MT Ping) - iPerf3 - Dropbear - OGT Slave Unit - Android SDK Platform-Tools (https://developer.android.com/studio/releases/platform-tools#downloads) - Pycrate (https://github.com/P1sec/pycrate) - SCAT clone https://github.com/bedrankara/scat/ & install dependencies checkout branch ogt symlink scat (ln -s ~/scat/scat.py /usr/local/bin/scat) Infrastructure explaination: The Android UEs are connected to the OGT Units via USB. We activate tethering and set up a SSH server (with Dropbear). We chose tethering over WiFi to have a more stable route for the ssh connection. We forward incoming connections to the OGT unit hosting the Android UE(s) on specific ports to the UEs via iptables. This enables OGT to issue commands directly to the UEs. In case of local execution we use ADB to issue commands to the AndroidUE. The set up was tested with 5 Android UEs connected in parallel but it should be scalable to the number of available IPs in the respective subnet. Furthermore, we need to cross compile Dropbear and iPerf3 to use them on the UEs. These tools have to be added to the $PATH variable of the UEs. Examplary set up: In this example we have two separate OGT units (master and slave) and two Android UEs that are connected to the slave unit. An illustration may be found here: https://ibb.co/6BXSP2C On UE 1: ip address add 192.168.42.130/24 dev rndis0 ip route add 192.168.42.0/24 dev rndis0 table local_network dropbearmulti dropbear -F -E -p 130 -R -T /data/local/tmp/authorized_keys -U 0 -G 0 -N root -A On UE 2: ip address add 192.168.42.131/24 dev rndis0 ip route add 192.168.42.0/24 dev rndis0 table local_network dropbearmulti dropbear -F -E -p 131 -R -T /data/local/tmp/authorized_keys -U 0 -G 0 -N root -A On OGT slave unit: sudo ip link add name ogt type bridge sudo ip l set eth0 master ogt sudo ip l set enp0s20f0u1 master ogt sudo ip l set enp0s20f0u2 master ogt sudo ip a a 192.168.42.1/24 dev ogt sudo ip link set ogt up Now we have to manually connect to every UE from OGT Master to set up SSH keys and verify that the setup works. Therefore, use: ssh -p [UE-PORT] root@[OGT SLAVE UNIT's IP] Finally, to finish the setup procedure create the remote_run_dir for Android UEs on the slave unit like following: mkdir /osmo-gsm-tester-androidue chown jenkins /osmo-gsm-tester-androidue Example for modem in resource.conf: - label: mi5g type: androidue imsi: '901700000034757' ki: '85E9E9A947B9ACBB966ED7113C7E1B8A' opc: '3E1C73A29B9C293DC5A763E42C061F15' apn: apn: 'srsapn' mcc: '901' mnc: '70' select: 'True' auth_algo: 'milenage' features: ['4g', 'dl_qam256', 'qc_diag'] run_node: run_type: ssh run_addr: 100.113.1.170 ssh_user: jenkins ssh_addr: 100.113.1.170 ue_ssh_port: 130 adb_serial_id: '8d3c79a7' scat_parser: run_type: local run_addr: 127.0.0.1 adb_serial_id: '8d3c79a7' Example for default-suites.conf: - 4g:ms-label at mi5g+srsenb-rftype@uhd+mod-enb-nprb at 25+mod-enb-txmode@1 Change-Id: I79a5d803e869a868d4dac5e0d4c2feb38038dc5c --- M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/core/schema.py A src/osmo_gsm_tester/obj/android_apn.py A src/osmo_gsm_tester/obj/android_bitrate_monitor.py A src/osmo_gsm_tester/obj/android_host.py M src/osmo_gsm_tester/obj/iperf3.py M src/osmo_gsm_tester/obj/ms.py A src/osmo_gsm_tester/obj/ms_android.py A src/osmo_gsm_tester/obj/qc_diag.py M src/osmo_gsm_tester/obj/run_node.py A sysmocom/scenarios/ms-label.conf A utils/bin/osmo-gsm-tester_androidue_conn_chk.sh A utils/bin/osmo-gsm-tester_androidue_diag_parser.sh 13 files changed, 963 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/02/21302/5 -- 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: 5 Gerrit-Owner: ninjab3s 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 Dec 14 19:15:32 2020 From: gerrit-no-reply at lists.osmocom.org (ninjab3s) Date: Mon, 14 Dec 2020 19:15:32 +0000 Subject: Change in osmo-gsm-tester[master]: Introduce Android UEs as new modems In-Reply-To: References: Message-ID: ninjab3s 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 5: My college Bedran (bedran.karakoc at softwareradiosystems.com) is working on a detailed description/explanation about the AndroidUE implementation. Further, he wrote a script that eases the preparation of Android UEs. We will follow up with another PR including in the next days. -- 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: 5 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 19:15: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 Mon Dec 14 19:27:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 14 Dec 2020 19:27:07 +0000 Subject: Change in libosmocore[master]: si2quater: fix budget calculation for multiple EARFCNs In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21710 ) Change subject: si2quater: fix budget calculation for multiple EARFCNs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc1ece39ad162d09720e104c5cbc12b07d6771a8 Gerrit-Change-Number: 21710 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 14 Dec 2020 19:27: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 Dec 14 19:46:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 14 Dec 2020 19:46:39 +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 5: Code-Review+2 -- 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: 5 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Dec 2020 19: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 Mon Dec 14 20:06:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 20:06:30 +0000 Subject: Change in osmo-e1-hardware[master]: move specifications to sub-directory References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21718 ) Change subject: move specifications to sub-directory ...................................................................... move specifications to sub-directory Change-Id: Ib310e9bea7391cf0af27cf560a393e8c8d7bb190 --- R doc/specifications/T-REC-G.702-198811.pdf R doc/specifications/T-REC-G.703-201604.pdf R doc/specifications/T-REC-G.704-199810.pdf R doc/specifications/T-REC-G.705-200010.pdf R doc/specifications/T-REC-G.706-199104.pdf 5 files changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/18/21718/1 diff --git a/doc/T-REC-G.702-198811.pdf b/doc/specifications/T-REC-G.702-198811.pdf similarity index 100% rename from doc/T-REC-G.702-198811.pdf rename to doc/specifications/T-REC-G.702-198811.pdf Binary files differ diff --git a/doc/T-REC-G.703-201604.pdf b/doc/specifications/T-REC-G.703-201604.pdf similarity index 100% rename from doc/T-REC-G.703-201604.pdf rename to doc/specifications/T-REC-G.703-201604.pdf Binary files differ diff --git a/doc/T-REC-G.704-199810.pdf b/doc/specifications/T-REC-G.704-199810.pdf similarity index 100% rename from doc/T-REC-G.704-199810.pdf rename to doc/specifications/T-REC-G.704-199810.pdf Binary files differ diff --git a/doc/T-REC-G.705-200010.pdf b/doc/specifications/T-REC-G.705-200010.pdf similarity index 100% rename from doc/T-REC-G.705-200010.pdf rename to doc/specifications/T-REC-G.705-200010.pdf Binary files differ diff --git a/doc/T-REC-G.706-199104.pdf b/doc/specifications/T-REC-G.706-199104.pdf similarity index 100% rename from doc/T-REC-G.706-199104.pdf rename to doc/specifications/T-REC-G.706-199104.pdf Binary files differ -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21718 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: Ib310e9bea7391cf0af27cf560a393e8c8d7bb190 Gerrit-Change-Number: 21718 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 Dec 14 20:06:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 20:06:30 +0000 Subject: Change in osmo-e1-hardware[master]: First version of icE1usb user manual References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21719 ) Change subject: First version of icE1usb user manual ...................................................................... First version of icE1usb user manual Change-Id: Ia04890cf3b321f8cb01e3c513a730031e76376b9 --- A doc/manuals/Makefile A doc/manuals/chapters/firmware.adoc A doc/manuals/chapters/hardware.adoc A doc/manuals/chapters/host-software.adoc A doc/manuals/icE1usb-usermanual.adoc 5 files changed, 287 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/19/21719/1 diff --git a/doc/manuals/Makefile b/doc/manuals/Makefile new file mode 100644 index 0000000..1bd4b6e --- /dev/null +++ b/doc/manuals/Makefile @@ -0,0 +1,9 @@ +OSMO_GSM_MANUALS_DIR:=$(shell pkg-config osmo-gsm-manuals --variable=osmogsmmanualsdir) + +sdcdir = . + +ASCIIDOC = icE1usb-usermanual.adoc +include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc +icE1usb-usermanual.pdf: chapters/*.adoc + +include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc diff --git a/doc/manuals/chapters/firmware.adoc b/doc/manuals/chapters/firmware.adoc new file mode 100644 index 0000000..665a657 --- /dev/null +++ b/doc/manuals/chapters/firmware.adoc @@ -0,0 +1,126 @@ +[[firmware]] +== icE1usb Firmware + +The icE1usb _firmware_ is a small amount of bare-iron software running +on the picoRISCV soft-core of the _gateware_. + +It mainly consists of drivers for the no2e1 E1 Framer IP core and the +no2usb USB Device IP core which are part of the gateware described in +<>. + +=== Firmware Upgrade (DFU) + +icE1usb contains support for the USB DFU (Device Firmware Upgrade) +standard. + +As such, you can use any USB DFU compliant utility to upgrade the +firmware of the icE1usb device. + +DFU mode can be entered in two ways: + +* by performing a DFU detach from the normal application firmware + (obviously that requires a [still] working firmware present on the + device). To do so, please use `dfu-util -e` + +* by pushing the push-button (see <>) during power-up. + Simply disconnect the USB cable, then push that button and keep it + pushed while re-attaching the USB cable. + +The icE1usb boot loader enumerates as VID:PID `1d50:6145`, while the +normal application firmware enumerates as `1d50:6144`, + +You can for example use `lsusb` to check the VID:PID: + +---- +$ lsusb -d 1d50: +Bus 001 Device 042: ID 1d50:6145<1> OpenMoko, Inc. icE1usb +$ sudo dfu-util -d 1d50:6145 -e <2> +... +$ lsusb -d 1d50: +Bus 001 Device 043: ID 1d50:6144<3> OpenMoko, Inc. icE1usb (DFU) +---- +<1> initially the device is in normal runtime mode +<2> we use `dfu-util -e` to switch to DFU mode +<3> we can see, the device is now in DFU mode + +==== Obtaining firmware upgrades + +The latest firmware can currently be found at the personal developer +directory of tnt at https://people.osmocom.org/tnt/e1/ + +A more official download location will be provided shortly. + +==== Upgrading the FPGA gateware + +Gateware files are called `icE1usb-*.bin`. + +The gateware can be upgraded by accessing the DFU _altsetting 0_ + +Assuming you already are in DFU mode, you would typically use a command +like `dfu-util -d 1d50:6144 -a 0 -D icE1usb-202010-bd3999e96.bin -R` to perform the upgrade. + +NOTE: The `-R` will switch the device back to runtime mode after the +upgrade. If you want to upgrade the firmware in the same session, skip +the `-R` in the above command. + +==== Upgrading the picoRISCV firmware + +Firmware files are called `fw_app*.bin`. + +The firmware can be upgraded by accessing the DFU _altsetting 1_ + +Assuming you already are in DFU mode, you would typically use a command +like `dfu-util -d 1d50:6144 -a 1 -D fw_app-202011-4d9a04e2.bin -R` to perform the upgrade. + +.Typical output during upgrade of the firmware +---- +$ sudo dfu-util -d 1d50:6144 -a 1 -D ./fw_app.bin -R +dfu-util 0.9 + +Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. +Copyright 2010-2016 Tormod Volden and Stefan Schmidt +This program is Free Software and has ABSOLUTELY NO WARRANTY +Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ + +dfu-util: Invalid DFU suffix signature +dfu-util: A valid DFU suffix will be required in a future dfu-util release!!! +Opening DFU capable USB device... +ID 1d50:6144 +Run-time device DFU version 0101 +Claiming USB DFU Interface... +Setting Alternate Setting #1 ... +Determining device status: state = dfuIDLE, status = 0 +dfuIDLE, continuing +DFU mode device DFU version 0101 +Device returned transfer size 4096 +Copying data from PC to DFU device +Download [=========================] 100% 11256 bytes +Download done. +state(2) = dfuIDLE, status(0) = No error condition is present +Done! +Resetting USB to switch back to runtime mode +---- + +As the `-R` option was used, the device will reset and re-enumerate in +the newly programmed firmware. + +You can verify this as follows: + +---- +$ lsusb -d 1d50: +Bus 001 Device 042: ID 1d50:6145<1> OpenMoko, Inc. icE1usb +---- + +or alternatively: + +---- +$ dfu-util -l -d 1d50: +dfu-util 0.9 + +Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. +Copyright 2010-2016 Tormod Volden and Stefan Schmidt +This program is Free Software and has ABSOLUTELY NO WARRANTY +Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ + +Found Runtime: [1d50:6145] ver=0003, devnum=44, cfg=1, intf=1, path="1-2", alt=0, name="DFU runtime", serial="dc697407e7881531" +---- diff --git a/doc/manuals/chapters/hardware.adoc b/doc/manuals/chapters/hardware.adoc new file mode 100644 index 0000000..3f19513 --- /dev/null +++ b/doc/manuals/chapters/hardware.adoc @@ -0,0 +1,103 @@ +[[hardware]] +== icE1usb Hardware + +The icE1usb Hardware consists of a single circuit board (in an optional +enclosure). + +It's main building blocks are: + +* an iCE40 FPGA +* Two E1 line interface (transformers, biasing networks and ESD protection) footnote:[Only one E1 line supported by firmware so far] +* a GPS receiver module with 1PPS output to the FPGA footnote:[GPS-DO supported by firmware yet] + +=== Schematics + +As icE1usb is an OSHW (Open Source Hardware) project, the full schematics +and design files are publicly available. + +The design files in KiCAD formwa are available at https://git.osmocom.org/osmo-e1-hardware/tree/hardware/icE1usb + +PDF rendered schematics are available at https://git.osmocom.org/osmo-e1-hardware/plain/hardware/icE1usb/r1.0/icE1usb.pdf + +=== Connectors + +==== X5A and X5B: E1 Interface Connectors + +On one side of the PCB there are two RJ45 connectors next to each other. + +Those are the two E1 line interfaces. The interfaces are of symmetric +120 Ohms type. + +Assuming the board is orented with the tab of the RJ45 connectors facing +up: + +* Interface 0 is on the right side +* Interface 1 is on the left side (next to the button) + +The pin-out of the connectors can be swapped between TE and NT mode using +the J4 and J5 jumper blocks on the circuit board. + +A GSM BTS typically implements TE pin-out, while the icE1usb should then +use NT mode pin-out if no cross-over cable is used. + +FIXME: pinout for both modes. + +NOTE: E1 cables use RJ45 like Ethernet, but Ethernet cables have a +different pin-out. Particularly, you cannot use an Ethernet cross-over +cable as an E1 cross-over! + +==== X4: USB Connector + +The USB connector is a USB Type C connector. However, it only carries +USB 1.1 full-speed signals. 5V DC power is also sourced from this +connector. + +==== X2: Serial Console Connector + +The serial console is used for development and debugging. It uses an +Osmocom-style 2.5mm stereo TRS jack. + +The serial console uses 3.3V CMOS logic levels + +The pin-out is as follows: + +* Tip: Tx output from PC (Rx input of icE1usb) +* Ring: Rx input of PC (Tx output of icE1usb) +* Shield: GND + +A compatible cable can be sourced from the sysmocom web-shop at +http://shop.sysmocom.de/. + +==== X1: GPS Antenna Connector + +The GPS antenna connector is a female SMA connector. + +You can connect most standard active GPS antennas with built-in LNA. + +icE1us provide phantom voltage. + +The use of a GPS antenna is only required when you need a high precision +clock reference for the 2.048 MHz E1 bit clock, e.g. to provide a clock +reference to a cellular base station on the A-bis interface. + +==== X3: GPIO / Extension Connector + +This is a RJ45 connector adjacent to the USB connector. + +It is currently unused and reserved for future use. + + +[[hw-pushbutton]] +=== Pushbutton + +This is a push-button next to the E1 interface '1'. It can be used to +force booting into the DFU loader in order to recover from a broken +firmware installation. + + +=== Multi-Color LED + +Above the USB-C connector, there is a multi-color RGB LED. + +This LED is used by the firmware to indicate a variety of status +information. Pleas see the firmware documentation in <>. diff --git a/doc/manuals/chapters/host-software.adoc b/doc/manuals/chapters/host-software.adoc new file mode 100644 index 0000000..8af1018 --- /dev/null +++ b/doc/manuals/chapters/host-software.adoc @@ -0,0 +1,34 @@ +== Host Software + +Host Software is software running on the USB host computer to which the +icE1usb is attached. + +At the time of this writing, the only software implementing icE1usb +support is `osmo-e1d`. + +=== `osmo-e1d` + +`osmo-e1d` utilizes `libusb` to talk to the icE1usb hardware and offers +a unix domain socket based interface to application software. + +Software such as `osmo-bsc` and `osmo-mgw` can interface `osmo-e1d` via +the `libosmo-abis` support for `osmo-e1d`. + +More information about `osmo-e1d` can be found at its homepage +https://osmocom.org/projects/osmo-e1d/wiki + +=== Other software + +you can interface 3rd party applications with osmo-e1d in the following +ways: + +* by adding support for `osmo-e1d`, e.g. via `libosmo-e1d` to the + respective appliation +* by implementing a device driver for whatever hardware interface (e.g. + for DAHDI) supported by your software +* by directly implementing the USB interface exposed by icE1usb in your + software + +Should you require any related development/porting services, please do +not hesitate to reach out to sysmocom. + diff --git a/doc/manuals/icE1usb-usermanual.adoc b/doc/manuals/icE1usb-usermanual.adoc new file mode 100644 index 0000000..260a18c --- /dev/null +++ b/doc/manuals/icE1usb-usermanual.adoc @@ -0,0 +1,15 @@ +:gfdl-enabled: + +icE1usb User Manual +=================== +Harald Welte + +include::./common/chapters/preface.adoc[] + +include::./chapters/hardware.adoc[] + +include::./chapters/firmware.adoc[] + +include::./chapters/host-software.adoc[] + +include::./common/chapters/gfdl.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21719 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: Ia04890cf3b321f8cb01e3c513a730031e76376b9 Gerrit-Change-Number: 21719 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 Dec 14 20:12:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 20:12:42 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb: Mark some private functions as 'static' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21702 ) Change subject: icE1usb: Mark some private functions as 'static' ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21702 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: Ie9808bb2fe264e9a3fa09168bfde57837b77d291 Gerrit-Change-Number: 21702 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 14 Dec 2020 20: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 Dec 14 20:13:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 20:13:43 +0000 Subject: Change in osmo-e1-hardware[master]: move specifications to sub-directory In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21718 ) Change subject: move specifications to sub-directory ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21718 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: Ib310e9bea7391cf0af27cf560a393e8c8d7bb190 Gerrit-Change-Number: 21718 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 14 Dec 2020 20:13: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 Dec 14 20:13:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 20:13:55 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb: Mark some private functions as 'static' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21702 ) Change subject: icE1usb: Mark some private functions as 'static' ...................................................................... icE1usb: Mark some private functions as 'static' Change-Id: Ie9808bb2fe264e9a3fa09168bfde57837b77d291 --- M firmware/ice40-riscv/icE1usb/usb_e1.c 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index 52fb53b..ff58c08 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -175,7 +175,8 @@ return NULL; } -enum usb_fnd_resp + +static enum usb_fnd_resp _e1_set_conf(const struct usb_conf_desc *conf) { const struct usb_intf_desc *intf; @@ -197,7 +198,7 @@ return USB_FND_SUCCESS; } -enum usb_fnd_resp +static enum usb_fnd_resp _e1_set_intf(const struct usb_intf_desc *base, const struct usb_intf_desc *sel) { if (base->bInterfaceNumber != 0) @@ -239,7 +240,7 @@ return USB_FND_SUCCESS; } -enum usb_fnd_resp +static enum usb_fnd_resp _e1_get_intf(const struct usb_intf_desc *base, uint8_t *alt) { if (base->bInterfaceNumber != 0) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21702 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: Ie9808bb2fe264e9a3fa09168bfde57837b77d291 Gerrit-Change-Number: 21702 Gerrit-PatchSet: 1 Gerrit-Owner: laforge 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 Mon Dec 14 20:22:22 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 14 Dec 2020 20:22:22 +0000 Subject: Change in libosmocore[master]: rest_octets: add Serving Cell Priority Parameters In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21708 ) Change subject: rest_octets: add Serving Cell Priority Parameters ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If9134759e9bc4ae0920800972632fd8c5dc9c2d9 Gerrit-Change-Number: 21708 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 14 Dec 2020 20: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 Mon Dec 14 21:37:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 14 Dec 2020 21:37:19 +0000 Subject: Change in osmo-e1-hardware[master]: add udev.rules files for icE1usb and e1-tracer References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21720 ) Change subject: add udev.rules files for icE1usb and e1-tracer ...................................................................... add udev.rules files for icE1usb and e1-tracer Change-Id: Ie1be28359def6fc181f88558834ac52a001312b7 --- A software/99_e1tracer.rules A software/99_icE1usb.rules 2 files changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/20/21720/1 diff --git a/software/99_e1tracer.rules b/software/99_e1tracer.rules new file mode 100644 index 0000000..d1344b1 --- /dev/null +++ b/software/99_e1tracer.rules @@ -0,0 +1,13 @@ +# copy this file to /etc/udev/rules.d/ + +# If not adding the device, go away +ACTION!="add", GOTO="e1_tracer_rules_end" +SUBSYSTEM!="usb", GOTO="e1_tracer_rules_end" + +# Osmocom e1-tracer, DFU mode +ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6150", GROUP="plugdev" +# Osmocom e1-tracer, runtime +ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6151", GROUP="plugdev" + +# All done +LABEL="e1_tracer_rules_end" diff --git a/software/99_icE1usb.rules b/software/99_icE1usb.rules new file mode 100644 index 0000000..7232b7c --- /dev/null +++ b/software/99_icE1usb.rules @@ -0,0 +1,13 @@ +# copy this file to /etc/udev/rules.d/ + +# If not adding the device, go away +ACTION!="add", GOTO="ice40_e1_rules_end" +SUBSYSTEM!="usb", GOTO="ice40_e1_rules_end" + +# Osmocom icE1usb USB E1 interface, DFU mode +ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6144", GROUP="plugdev" +# Osmocom icE1usb USB E1 interface, runtime +ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6145", GROUP="plugdev" + +# All done +LABEL="ice40_e1_rules_end" -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21720 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: Ie1be28359def6fc181f88558834ac52a001312b7 Gerrit-Change-Number: 21720 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 Dec 14 22:50:27 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 14 Dec 2020 22:50:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: Osmocom_Gb_types: add RIM templates 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/+/21587 to look at the new patch set (#2). Change subject: WIP: Osmocom_Gb_types: add RIM templates ...................................................................... WIP: 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, 799 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/21587/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: 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 Mon Dec 14 22:58:09 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 14 Dec 2020 22:58:09 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser for RIM Routing Information References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21721 ) Change subject: gprs_bssgp: add IE parser for RIM Routing Information ...................................................................... gprs_bssgp: add IE parser for RIM Routing Information The RIM Routing Information IE (see also 3GPP TS 48.018, section 11.3.70) is used to control the flow of BSSGP rim messages at the SGSN. Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M src/gb/gprs_bssgp.c M src/gb/libosmogb.map M tests/Makefile.am M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 6 files changed, 190 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/21721/1 diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index dfbd9b7..662685e 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -175,6 +175,41 @@ 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 */ +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 { + uint16_t mcc; + uint16_t mnc; + bool mnc_3_digits; + uint16_t tac; + } tai; + /* See also 3GPP TS 36.413 9.2.1.37 */ + 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); + /* 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/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 696c451..d73696c 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -326,6 +326,59 @@ 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 0; + + ri->discr = buf[0] & 0x0f; + + switch (ri->discr) { + case BSSGP_RIM_ROUTING_INFO_GERAN: + if (len < 9) + return -1; + ri->geran.cid = bssgp_parse_cell_id(&ri->geran.raid, buf + 1); + return 9; + break; + case BSSGP_RIM_ROUTING_INFO_UTRAN: + if (len < 9) + return -1; + gsm48_parse_ra(&ri->utran.raid, buf + 1); + ri->utran.rncid = osmo_load16be(buf + 7); + return 9; + break; + case BSSGP_RIM_ROUTING_INFO_EUTRAN: + if (len < 7) + return -1; + if (len > 15) + return -1; + /* 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; + break; + default: + return -EINVAL; + } + + return 0; +} + /* 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/libosmogb.map b/src/gb/libosmogb.map index f8ad901..48d8371 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -13,6 +13,7 @@ bssgp_msgb_tlli_put; bssgp_msgb_ra_put; bssgp_parse_cell_id; +bssgp_parse_rim_ri; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; diff --git a/tests/Makefile.am b/tests/Makefile.am index ed87aca..cb683f7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -172,7 +172,8 @@ gb_gprs_bssgp_test_SOURCES = gb/gprs_bssgp_test.c gb_gprs_bssgp_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DLSYM) \ $(top_builddir)/src/vty/libosmovty.la \ - $(top_builddir)/src/gsm/libosmogsm.la + $(top_builddir)/src/gsm/libosmogsm.la \ + $(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) \ diff --git a/tests/gb/gprs_bssgp_test.c b/tests/gb/gprs_bssgp_test.c index 52e986e..9f0f87f 100644 --- a/tests/gb/gprs_bssgp_test.c +++ b/tests/gb/gprs_bssgp_test.c @@ -289,6 +289,76 @@ 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=%u\n", rc); + dump_rim_ri(&result); + printf("\n"); + + rc = bssgp_parse_rim_ri(&result, testvec_utran, + sizeof(testvec_utran)); + printf("rc=%u\n", rc); + dump_rim_ri(&result); + printf("\n"); + + rc = bssgp_parse_rim_ri(&result, testvec_eutran, + sizeof(testvec_eutran)); + printf("rc=%u\n", rc); + dump_rim_ri(&result); + printf("\n"); + + printf("----- %s END\n", __func__); +} + static struct log_info info = {}; int main(int argc, char **argv) @@ -317,6 +387,7 @@ test_bssgp_bad_reset(); test_bssgp_flow_control_bvc(); test_bssgp_msgb_copy(); + test_bssgp_parse_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 c5b3e7d..40b8dfe 100644 --- a/tests/gb/gprs_bssgp_test.ok +++ b/tests/gb/gprs_bssgp_test.ok @@ -17,5 +17,33 @@ 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 ===== BSSGP test END -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 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 Dec 14 22:58:09 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 14 Dec 2020 22:58:09 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives References: Message-ID: dexter has uploaded this change for review. ( 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, 48 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/21722/1 diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index 662685e..1deafe3 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -55,6 +55,8 @@ PRIM_NM_BVC_BLOCK, PRIM_NM_BVC_UNBLOCK, PRIM_NM_STATUS, + + PRIM_BSSGP_RIM }; 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 d73696c..9e3227e 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -700,6 +700,41 @@ 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; + break; + default: + /* Caller already makes sure that this can't happen. */ + OSMO_ASSERT(false); + } + + /* Send NM_BVC_RESET.ind 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 { @@ -1125,6 +1160,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: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 15 00:58:48 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 00:58:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2: on ns2_create_vc parse the tlv before using it References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21723 ) Change subject: gprs_ns2: on ns2_create_vc parse the tlv before using it ...................................................................... gprs_ns2: on ns2_create_vc parse the tlv before using it reject_status_msg require a parsed tlv. Otherwise an uninitialized tlv is passed. Change-Id: I82cab518966b8b49c3522ff5f7b6f82d1027a526 --- M src/gb/gprs_ns2.c 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/21723/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index d90ba85..e668fe4 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -773,6 +773,15 @@ if (msg->len < sizeof(struct gprs_ns_hdr)) return GPRS_NS2_CS_ERROR; + rc = ns2_tlv_parse(&tp, nsh->data, + msgb_l2len(msg) - sizeof(*nsh), 0, 0); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " + "TLV Parse\n", rc); + /* TODO: send invalid message back */ + return GPRS_NS2_CS_REJECTED; + } + switch (nsh->pdu_type) { case NS_PDUT_STATUS: /* Do not respond, see 3GPP TS 08.16, 7.5.1 */ @@ -813,15 +822,6 @@ return GPRS_NS2_CS_REJECTED; } - rc = ns2_tlv_parse(&tp, nsh->data, - msgb_l2len(msg) - sizeof(*nsh), 0, 0); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " - "TLV Parse\n", rc); - /* TODO: send invalid message back */ - return GPRS_NS2_CS_REJECTED; - } - 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)) { LOGP(DLNS, LOGL_ERROR, "NS RESET Missing mandatory IE\n"); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82cab518966b8b49c3522ff5f7b6f82d1027a526 Gerrit-Change-Number: 21723 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 Dec 15 00:58:49 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 00:58:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21724 ) Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... gprs_ns2: improve handling of TLV errors on new nsvcs The specification says the PDU should be ignored if the PDU type is unknown. Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b --- M src/gb/gprs_ns2.c 1 file changed, 16 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/21724/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index e668fe4..0355d83 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -768,19 +768,17 @@ uint16_t nsvci; uint16_t nsei; - int rc; + int rc, tlv; if (msg->len < sizeof(struct gprs_ns_hdr)) return GPRS_NS2_CS_ERROR; - rc = ns2_tlv_parse(&tp, nsh->data, + /* parse the tlv early to allow reject status msg to + * work with valid tp. + * Ignore the return code until the pdu type is parsed because + * an unknown pdu type should be ignored */ + tlv = ns2_tlv_parse(&tp, nsh->data, msgb_l2len(msg) - sizeof(*nsh), 0, 0); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " - "TLV Parse\n", rc); - /* TODO: send invalid message back */ - return GPRS_NS2_CS_REJECTED; - } switch (nsh->pdu_type) { case NS_PDUT_STATUS: @@ -822,6 +820,16 @@ return GPRS_NS2_CS_REJECTED; } + if (tlv < 0) { + /* TODO: correct behaviour would checking what's wrong. + * If it's an essential TLV for the PDU return NS_CAUSE_INVAL_ESSENT_IE. + * Otherwise ignore the non-essential TLV. */ + LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " + "TLV Parse\n", rc); + rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PROTO_ERR_UNSPEC); + return GPRS_NS2_CS_REJECTED; + } + 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)) { LOGP(DLNS, LOGL_ERROR, "NS RESET Missing mandatory IE\n"); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 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 Dec 15 00:58:49 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 00:58:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't pass the return code of reject_status_msg References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21725 ) Change subject: gprs_ns2: don't pass the return code of reject_status_msg ...................................................................... gprs_ns2: don't pass the return code of reject_status_msg When reject_stats_msg() fails the code can't do anything about it. Stick to the original failure code and log it Change-Id: I105363957e59c41a68835b7a9830c048dba73e93 --- M src/gb/gprs_ns2.c 1 file changed, 4 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/21725/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 0355d83..53a4baa 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -805,18 +805,13 @@ break; rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); - if (rc < 0) { + if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return rc; - } return GPRS_NS2_CS_REJECTED; default: rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); - - if (rc < 0) { + if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return rc; - } return GPRS_NS2_CS_REJECTED; } @@ -834,6 +829,8 @@ !TLVP_PRES_LEN(&tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(&tp, NS_IE_NSEI, 2)) { LOGP(DLNS, LOGL_ERROR, "NS RESET Missing mandatory IE\n"); 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; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I105363957e59c41a68835b7a9830c048dba73e93 Gerrit-Change-Number: 21725 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Dec 15 01:33:04 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 01:33:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5fd8126242aec_22fc2aafec8545f041899@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_9.0/i586 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was goat17:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 01:35:04 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 01:35:04 +0000 Subject: Build failure of network:osmocom:nightly/libsmpp34 in xUbuntu_19.04/x86_64 In-Reply-To: References: Message-ID: <5fd812db7a87b_22fc2aafec8545f0423df@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libsmpp34/xUbuntu_19.04/x86_64 Package network:osmocom:nightly/libsmpp34 failed to build in xUbuntu_19.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libsmpp34 Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb61:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 01:45:04 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 01:45:04 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd81536ea5c7_22fc2aafec8545f042771@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: [ 156s] [COMPILING apps/dfu/main.c] [ 156s] [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: 16580 B 16 KB 101.20% [ 157s] 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 [ 157s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 157s] /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: warning: changing start of section .stack by 4 bytes [ 157s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 157s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 157s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 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] [ 147.432494] sysrq: Power Off [ 160s] [ 147.439242] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] lamb04 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 15 01:44:13 UTC 2020. [ 160s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 01:45:22 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 01:45:22 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd8153a45cfc_22fc2aafec8545f043034@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] [ 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] [ 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] [ 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] [ 146.338750] sysrq: Power Off [ 160s] [ 146.345324] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] cloud109 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 15 01:44:52 UTC 2020. [ 160s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:04:14 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:04:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fd819a798ae5_22fc2aafec8545f044377@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-mgw failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb06:8) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:06:30 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:06:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5fd81a403e566_22fc2aafec8545f044971@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-mgw failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb61:9) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:07:22 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:07:22 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5fd81a7c1568d_22fc2aafec8545f0450c9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-sip-connector failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud118:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:08:30 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:08:30 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5fd81ab62fb45_22fc2aafec8545f0451a2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/openSUSE_Leap_15.1_ARM/armv7l Package network:osmocom:nightly/libosmo-netif failed to build in openSUSE_Leap_15.1_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild02:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:23:39 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:23:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-hlr in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5fd81e3c1255_22fc2aafec8545f0475db@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-hlr/xUbuntu_19.10/x86_64 Package network:osmocom:nightly/osmo-hlr failed to build in xUbuntu_19.10/x86_64 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 lamb20:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:26:13 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:26:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-iuh in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5fd81ed1d79b5_22fc2aafec8545f0476ae@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-iuh/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-iuh failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-iuh Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb66:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:27:39 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:27:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5fd81f2befd15_22fc2aafec8545f047877@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/xUbuntu_19.10/x86_64 Package network:osmocom:nightly/osmo-smlc failed to build in xUbuntu_19.10/x86_64 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 lamb16:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:28:13 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:28:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd81f4c3143c_22fc2aafec8545f0479b5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/osmo-bsc failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb22:9) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:30:30 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:30:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd81fe8b5df1_22fc2aafec8545f0486a2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/osmo-smlc failed to build in xUbuntu_20.04/x86_64 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 lamb11:7) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:37:05 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:37:05 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5fd821663b4c5_22fc2aafec8545f0490e3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb51:10) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:43:06 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:43:06 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd822d1a3878_22fc2aafec8545f04971e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud127:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:44:14 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:44:14 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-abis in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fd823077a925_22fc2aafec8545f050073@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-abis/Debian_9.0/armv7l Package network:osmocom:nightly/libosmo-abis failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-abis Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild18:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:44:14 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:44:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd82307dad41_22fc2aafec8545f05011f@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud119:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:44:31 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:44:31 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fd8232c4d3ea_22fc2aafec8545f050335@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Debian_Testing/x86_64 Package network:osmocom:nightly/libosmo-netif failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was lamb74:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:55:39 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:55:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sysmon in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fd825bb52fdb_22fc2aafec8545f051382@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sysmon/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-sysmon failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sysmon Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb16:7) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:55:39 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:55:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fd825bbae317_22fc2aafec8545f0514ea@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-mgw failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was hci-cnode2-m1:8) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:55:39 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:55:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-uecups in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fd825bc2b80a_22fc2aafec8545f0515ae@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-uecups/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-uecups failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-uecups Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was build77:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 02:59:56 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 02:59:56 +0000 Subject: Build failure of network:osmocom:nightly/libasn1c in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5fd826c9a8f9e_22fc2aafec8545f051889@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libasn1c/openSUSE_Leap_15.1_ARM/armv7l Package network:osmocom:nightly/libasn1c failed to build in openSUSE_Leap_15.1_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libasn1c Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:15) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 03:11:40 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 03:11:40 +0000 Subject: Build failure of network:osmocom:latest/osmo-trx in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5fd8297c77213_22fc2aafec8545f0530c8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-trx/Raspbian_9.0/armv7l Package network:osmocom:latest/osmo-trx failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-trx Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild24:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 03:31:39 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 03:31:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5fd82e2b88fe1_22fc2aafec8545f0547d9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was old-atreju2:7) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 04:03:22 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 04:03:22 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fd8358f23e2_22fc2aafec8545f06258e@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:15) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 04:09:07 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 04:09:07 +0000 Subject: Build failure of network:osmocom:nightly/libasn1c in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fd836fda702d_22fc2aafec8545f0634b0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libasn1c/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/libasn1c failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libasn1c Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild01:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 04:16:47 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 04:16:47 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fd838b935cc7_22fc2aafec8545f064982@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Raspbian_10/armv7l Package network:osmocom:nightly/libosmo-netif failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif 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 admin at opensuse.org Tue Dec 15 04:18:13 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 04:18:13 +0000 Subject: Build failure of network:osmocom:nightly/libsmpp34 in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fd8391316867_22fc2aafec8545f0650f4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libsmpp34/Debian_9.0/armv7l Package network:osmocom:nightly/libsmpp34 failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libsmpp34 Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:16) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 05:43:56 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 05:43:56 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fd84d3b49f3f_22fc2aafec8545f07258c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/simtrace2 failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild10:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 15 06:18:13 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 06:18:13 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fd8552edb6c9_22fc2aafec8545f077845@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_9.0/armv7l Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_9.0/armv7l 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 armbuild24: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 Tue Dec 15 06:56:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 15 Dec 2020 06:56:24 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add ip.access Power Control structures References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21726 ) Change subject: protocol/gsm_08_58.h: add ip.access Power Control structures ...................................................................... protocol/gsm_08_58.h: add ip.access Power Control structures Change-Id: I9430bcb79c269efb4f9527f565cf4e12e4444940 Related: SYS#4918 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 53 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/26/21726/1 diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index 1ed4438..dad84ef 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -766,6 +766,15 @@ }; +/*! Measurement averaging method */ +enum ipac_preproc_ave_method { + RSL_IPACC_AVE_UNWEIGHTED = 0x00, + RSL_IPACC_AVE_WEIGHTED = 0x01, + RSL_IPACC_AVE_MOD_MEDIAN = 0x02, + /* EWMA is an Osmocom-specific extension */ + RSL_IPACC_AVE_OSMO_EWMA = 0x03, +}; + struct ipac_preproc_ave_cfg { #if OSMO_IS_LITTLE_ENDIAN uint8_t h_reqave:5, @@ -780,6 +789,22 @@ #endif }__attribute__ ((packed)); +/*! MS/BS Power Control Thresholds */ +struct ipac_preproc_pc_thresh { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t l_rxlev:6, reserved_l_rxlev:2; + uint8_t u_rxlev:6, reserved_u_rxlev:2; + uint8_t l_rxqual:3, reserved_l_rxqual:1, + u_rxqual:3, reserved_u_rxqual:1; +#elif OSMO_IS_BIG_ENDIAN + uint8_t reserved_l_rxlev:2, l_rxlev:6; + uint8_t reserved_u_rxlev:2, u_rxlev:6; + uint8_t reserved_l_rxqual:1, l_rxqual:3, + reserved_u_rxqual:1, u_rxqual:3; +#endif +}__attribute__ ((packed)); + +/*! Handover Thresholds */ struct ipac_preproc_ho_thresh { #if OSMO_IS_LITTLE_ENDIAN uint8_t l_rxlev_ul_h:6, @@ -807,6 +832,34 @@ #endif }__attribute__ ((packed)); +/*! PC Threshold Comparators */ +struct ipac_preproc_pc_comp { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t p1:5, reserved_p1:3; + uint8_t n1:5, reserved_n1:3; + uint8_t p2:5, reserved_p2:3; + uint8_t n2:5, reserved_n2:3; + uint8_t p3:5, reserved_p3:3; + uint8_t n3:5, reserved_n3:3; + uint8_t p4:5, reserved_p4:3; + uint8_t n4:5, reserved_n4:3; + uint8_t pc_interval:5, reserved_pc:3; + uint8_t red_step_size:4, inc_step_size:4; +#elif OSMO_IS_BIG_ENDIAN + uint8_t reserved_p1:3, p1:5; + uint8_t reserved_n1:3, n1:5; + uint8_t reserved_p2:3, p2:5; + uint8_t reserved_n2:3, n2:5; + uint8_t reserved_p3:3, p3:5; + uint8_t reserved_n3:3, n3:5; + uint8_t reserved_p4:3, p4:5; + uint8_t reserved_n4:3, n4:5; + uint8_t reserved_pc:3, pc_interval:5; + uint8_t inc_step_size:4, red_step_size:4; +#endif +}__attribute__ ((packed)); + +/*! HO Threshold Comparators */ struct ipac_preproc_ho_comp { #if OSMO_IS_LITTLE_ENDIAN uint8_t p5:5, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9430bcb79c269efb4f9527f565cf4e12e4444940 Gerrit-Change-Number: 21726 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 Dec 15 07:04:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 15 Dec 2020 07:04:57 +0000 Subject: Change in osmo-bsc[master]: vty: add new attribute for vendor-specific commands In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21684 ) Change subject: vty: add new attribute for vendor-specific commands ...................................................................... vty: add new attribute for vendor-specific commands Change-Id: I2254cdf8c4be85c89819d0f831102ee71349b188 Related: SYS#4918 --- M include/osmocom/bsc/vty.h M src/osmo-bsc/osmo_bsc_main.c 2 files changed, 4 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/bsc/vty.h b/include/osmocom/bsc/vty.h index d2361b0..cfdcbfc 100644 --- a/include/osmocom/bsc/vty.h +++ b/include/osmocom/bsc/vty.h @@ -40,6 +40,7 @@ BSC_VTY_ATTR_RESTART_ABIS_OML_LINK = 0, BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK, BSC_VTY_ATTR_NEW_LCHAN, + BSC_VTY_ATTR_VENDOR_SPECIFIC, /* NOTE: up to 32 entries */ }; diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index ca00ba0..df5235e 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -660,11 +660,14 @@ "This command applies on A-bis RSL link (re)establishment", [BSC_VTY_ATTR_NEW_LCHAN] = \ "This command applies for newly created lchans", + [BSC_VTY_ATTR_VENDOR_SPECIFIC] = \ + "This command/parameter is BTS vendor specific", }, .usr_attr_letters = { [BSC_VTY_ATTR_RESTART_ABIS_OML_LINK] = 'o', [BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK] = 'r', [BSC_VTY_ATTR_NEW_LCHAN] = 'l', + [BSC_VTY_ATTR_VENDOR_SPECIFIC] = 'v', }, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2254cdf8c4be85c89819d0f831102ee71349b188 Gerrit-Change-Number: 21684 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 Tue Dec 15 07:05:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 15 Dec 2020 07:05:39 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add ip.access Power Control structures 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/+/21726 to look at the new patch set (#2). Change subject: protocol/gsm_08_58.h: add ip.access Power Control structures ...................................................................... protocol/gsm_08_58.h: add ip.access Power Control structures Change-Id: I9430bcb79c269efb4f9527f565cf4e12e4444940 Related: SYS#4918 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 44 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/26/21726/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9430bcb79c269efb4f9527f565cf4e12e4444940 Gerrit-Change-Number: 21726 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 Dec 15 07:05:41 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 15 Dec 2020 07:05:41 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add Osmocom specific IPAC_EWMA_AVE References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21727 ) Change subject: protocol/gsm_08_58.h: add Osmocom specific IPAC_EWMA_AVE ...................................................................... protocol/gsm_08_58.h: add Osmocom specific IPAC_EWMA_AVE Change-Id: Ib436fd8b81afdb06c6d936f6839f847a705d00e2 Related: SYS#4918 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/27/21727/1 diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index aeaa6ff..b28a976 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -406,7 +406,9 @@ enum { IPAC_UNWEIGHTED_AVE = 0, IPAC_WEIGHTED_AVE, - IPAC_MEDIAN_AVE + IPAC_MEDIAN_AVE, + /* EWMA is an Osmocom specific extension */ + IPAC_EWMA_AVE, }; /* IPAC MEAS_PREPROC AVERAGING PARAMID */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib436fd8b81afdb06c6d936f6839f847a705d00e2 Gerrit-Change-Number: 21727 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Dec 15 08:18:47 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 08:18:47 +0000 Subject: Build failure of network:osmocom:nightly/neocon in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fd8717060e7a_22fc2aafec8545f096934@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/neocon/Debian_9.0/armv7l Package network:osmocom:nightly/neocon failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly neocon Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-5:17) -- 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 Dec 15 09:12:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:12:57 +0000 Subject: Change in osmo-e1-hardware[master]: move specifications to sub-directory In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21718 ) Change subject: move specifications to sub-directory ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21718 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: Ib310e9bea7391cf0af27cf560a393e8c8d7bb190 Gerrit-Change-Number: 21718 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:12: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 Dec 15 09:13:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:13:02 +0000 Subject: Change in osmo-e1-hardware[master]: First version of icE1usb user manual In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21719 ) Change subject: First version of icE1usb user manual ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21719 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: Ia04890cf3b321f8cb01e3c513a730031e76376b9 Gerrit-Change-Number: 21719 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:13: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 Dec 15 09:13:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:13:08 +0000 Subject: Change in osmo-e1-hardware[master]: First version of icE1usb user manual In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21719 ) Change subject: First version of icE1usb user manual ...................................................................... Patch Set 3: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21719 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: Ia04890cf3b321f8cb01e3c513a730031e76376b9 Gerrit-Change-Number: 21719 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09: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 Tue Dec 15 09:13:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:13:21 +0000 Subject: Change in osmo-e1-hardware[master]: cosmetic: comment spelling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21703 ) Change subject: cosmetic: comment spelling ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21703 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: I89e2ae1478688929a42c94c8279ebff1b3a6cd88 Gerrit-Change-Number: 21703 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 15 Dec 2020 09:13: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 Dec 15 09:13:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:13:29 +0000 Subject: Change in osmo-e1-hardware[master]: move specifications to sub-directory In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21718 ) Change subject: move specifications to sub-directory ...................................................................... move specifications to sub-directory Change-Id: Ib310e9bea7391cf0af27cf560a393e8c8d7bb190 --- R doc/specifications/T-REC-G.702-198811.pdf R doc/specifications/T-REC-G.703-201604.pdf R doc/specifications/T-REC-G.704-199810.pdf R doc/specifications/T-REC-G.705-200010.pdf R doc/specifications/T-REC-G.706-199104.pdf 5 files changed, 0 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/doc/T-REC-G.702-198811.pdf b/doc/specifications/T-REC-G.702-198811.pdf similarity index 100% rename from doc/T-REC-G.702-198811.pdf rename to doc/specifications/T-REC-G.702-198811.pdf Binary files differ diff --git a/doc/T-REC-G.703-201604.pdf b/doc/specifications/T-REC-G.703-201604.pdf similarity index 100% rename from doc/T-REC-G.703-201604.pdf rename to doc/specifications/T-REC-G.703-201604.pdf Binary files differ diff --git a/doc/T-REC-G.704-199810.pdf b/doc/specifications/T-REC-G.704-199810.pdf similarity index 100% rename from doc/T-REC-G.704-199810.pdf rename to doc/specifications/T-REC-G.704-199810.pdf Binary files differ diff --git a/doc/T-REC-G.705-200010.pdf b/doc/specifications/T-REC-G.705-200010.pdf similarity index 100% rename from doc/T-REC-G.705-200010.pdf rename to doc/specifications/T-REC-G.705-200010.pdf Binary files differ diff --git a/doc/T-REC-G.706-199104.pdf b/doc/specifications/T-REC-G.706-199104.pdf similarity index 100% rename from doc/T-REC-G.706-199104.pdf rename to doc/specifications/T-REC-G.706-199104.pdf Binary files differ -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21718 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: Ib310e9bea7391cf0af27cf560a393e8c8d7bb190 Gerrit-Change-Number: 21718 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 Tue Dec 15 09:13:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:13:29 +0000 Subject: Change in osmo-e1-hardware[master]: First version of icE1usb user manual In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21719 ) Change subject: First version of icE1usb user manual ...................................................................... First version of icE1usb user manual Change-Id: Ia04890cf3b321f8cb01e3c513a730031e76376b9 --- A doc/manuals/Makefile A doc/manuals/chapters/firmware.adoc A doc/manuals/chapters/gateware.adoc A doc/manuals/chapters/hardware.adoc A doc/manuals/chapters/host-software.adoc A doc/manuals/icE1usb-usermanual.adoc 6 files changed, 329 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/doc/manuals/Makefile b/doc/manuals/Makefile new file mode 100644 index 0000000..1bd4b6e --- /dev/null +++ b/doc/manuals/Makefile @@ -0,0 +1,9 @@ +OSMO_GSM_MANUALS_DIR:=$(shell pkg-config osmo-gsm-manuals --variable=osmogsmmanualsdir) + +sdcdir = . + +ASCIIDOC = icE1usb-usermanual.adoc +include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc +icE1usb-usermanual.pdf: chapters/*.adoc + +include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc diff --git a/doc/manuals/chapters/firmware.adoc b/doc/manuals/chapters/firmware.adoc new file mode 100644 index 0000000..d0542bd --- /dev/null +++ b/doc/manuals/chapters/firmware.adoc @@ -0,0 +1,137 @@ +[[firmware]] +== icE1usb Firmware + +The icE1usb _firmware_ is a small amount of bare-iron software running +on the picoRISCV soft-core of the _gateware_. + +It mainly consists of drivers for the no2e1 E1 Framer IP core and the +no2usb USB Device IP core which are part of the gateware described in +<>. + +=== Firmware Upgrade (DFU) + +icE1usb contains support for the USB DFU (Device Firmware Upgrade) +standard. + +As such, you can use any USB DFU compliant utility to upgrade the +firmware of the icE1usb device. + +DFU mode can be entered in two ways: + +1. by performing a DFU detach from the normal application firmware + (obviously that requires a [still] working firmware present on the + device). To do so, please use `dfu-util -e` + +1. by pushing the push-button (see <>) during power-up. + Simply disconnect the USB cable, then push that button and keep it + pushed while re-attaching the USB cable. + +The icE1usb boot loader enumerates as VID:PID `1d50:6145`, while the +normal application firmware enumerates as `1d50:6144`, + +You can for example use `lsusb` to check the VID:PID: + +---- +$ lsusb -d 1d50: +Bus 001 Device 042: ID 1d50:6145<1> OpenMoko, Inc. icE1usb +$ sudo dfu-util -d 1d50:6145 -e <2> +... +$ lsusb -d 1d50: +Bus 001 Device 043: ID 1d50:6144<3> OpenMoko, Inc. icE1usb (DFU) +---- +<1> initially the device is in normal runtime mode +<2> we use `dfu-util -e` to switch to DFU mode +<3> we can see, the device is now in DFU mode + +==== Obtaining firmware upgrades + +The latest firmware can currently be found at the personal developer +directory of tnt at https://people.osmocom.org/tnt/e1/ + +A more official download location will be provided shortly. + +==== Upgrading the FPGA gateware + +Gateware files are called `icE1usb-*.bin`. + +The gateware can be upgraded by accessing the DFU _altsetting 0_ using `dfu-util` *`-a 0`* + +Assuming you already are in DFU mode, you would typically use a command +like `dfu-util -d 1d50:6144 -a 0 -D icE1usb-202010-bd3999e96.bin -R` to perform the upgrade. + +NOTE: The `-R` will switch the device back to runtime mode after the +upgrade. If you want to upgrade the firmware in the same session, skip +the `-R` in the above command. + +==== Upgrading the picoRISCV firmware + +Firmware files are called `fw_app*.bin`. + +The firmware can be upgraded by accessing the DFU _altsetting 1_ using `dfu-util` *`-a 1`* + +Assuming you already are in DFU mode, you would typically use a command +like `dfu-util -d 1d50:6144 -a 1 -D fw_app-202011-4d9a04e2.bin -R` to perform the upgrade. + +.Typical output during upgrade of the firmware +---- +$ sudo dfu-util -d 1d50:6144 -a 1 -D ./fw_app.bin -R +dfu-util 0.9 + +Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. +Copyright 2010-2016 Tormod Volden and Stefan Schmidt +This program is Free Software and has ABSOLUTELY NO WARRANTY +Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ + +dfu-util: Invalid DFU suffix signature +dfu-util: A valid DFU suffix will be required in a future dfu-util release!!! +Opening DFU capable USB device... +ID 1d50:6144 +Run-time device DFU version 0101 +Claiming USB DFU Interface... +Setting Alternate Setting #1 ... +Determining device status: state = dfuIDLE, status = 0 +dfuIDLE, continuing +DFU mode device DFU version 0101 +Device returned transfer size 4096 +Copying data from PC to DFU device +Download [=========================] 100% 11256 bytes +Download done. +state(2) = dfuIDLE, status(0) = No error condition is present +Done! +Resetting USB to switch back to runtime mode +---- + +As the `-R` option was used, the device will reset and re-enumerate in +the newly programmed firmware. + +You can verify this as follows: + +---- +$ lsusb -d 1d50: +Bus 001 Device 042: ID 1d50:6145 OpenMoko, Inc. icE1usb +---- + +or alternatively: + +---- +$ dfu-util -l -d 1d50: +dfu-util 0.9 + +Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. +Copyright 2010-2016 Tormod Volden and Stefan Schmidt +This program is Free Software and has ABSOLUTELY NO WARRANTY +Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ + +Found Runtime: [1d50:6145] ver=0003, devnum=44, cfg=1, intf=1, path="1-2", alt=0, name="DFU runtime", serial="dc697407e7881531" +---- + + +=== Use of the E1 Interface LEDs + +Each E1 interface has two LEDs integrated into the RJ45 connector. + +FIXME: describe how they are used. + +=== Use of the Multi-Color RGB LED + +FIXME: describe how it is used. diff --git a/doc/manuals/chapters/gateware.adoc b/doc/manuals/chapters/gateware.adoc new file mode 100644 index 0000000..03487e1 --- /dev/null +++ b/doc/manuals/chapters/gateware.adoc @@ -0,0 +1,13 @@ +[[gateware]] +== icE1usb Gateware + +The icE1usb _gateware_ is where pretty much everything happens, +from the E1 Line Interface Unit to the E1 Framer/Deframer, the +picoRISCV soft-core running the [[firmware]] as well as the USB +device peripheral talking to the host PC. + +As an OSHW project, all of it is available in source code format +at https://git.osmocom.org/osmo-e1-hardware/tree/gateware/icE1usb + +Please use `git clone --recursive` when cloning the git repository +so you get all of the sub-modules for the various soft-cores. diff --git a/doc/manuals/chapters/hardware.adoc b/doc/manuals/chapters/hardware.adoc new file mode 100644 index 0000000..4b2f694 --- /dev/null +++ b/doc/manuals/chapters/hardware.adoc @@ -0,0 +1,119 @@ +[[hardware]] +== icE1usb Hardware + +The icE1usb Hardware consists of a single circuit board (in an optional +enclosure). + +It's main building blocks are: + +* an iCE40 FPGA +* Two E1 line interface (transformers, biasing networks and ESD protection) footnote:[Only one E1 line supported by firmware so far] +* a GPS receiver module with 1PPS output to the FPGA footnote:[GPS-DO supported by firmware yet] + +=== Schematics + +As icE1usb is an OSHW (Open Source Hardware) project, the full schematics +and design files are publicly available. + +The design files in KiCAD formwa are available at https://git.osmocom.org/osmo-e1-hardware/tree/hardware/icE1usb + +PDF rendered schematics are available at https://git.osmocom.org/osmo-e1-hardware/plain/hardware/icE1usb/r1.0/icE1usb.pdf + +=== Connectors + +==== X5A and X5B: E1 Interface Connectors + +On one side of the PCB there are two RJ45 connectors next to each other. + +Those are the two E1 line interfaces. The interfaces are of symmetric +120 Ohms type. + +Assuming the board is oriented with the tab of the RJ45 connectors facing +up: + +* Interface 0 is on the right side +* Interface 1 is on the left side (next to the button) + +The pin-out of the connectors can be swapped between TE and NT mode using +the J4 and J5 jumper blocks on the circuit board. + +A GSM BTS typically implements TE pin-out, while the icE1usb should then +use NT mode pin-out if no cross-over cable is used. + +.Pin-out of RJ45 E1 connectors +[options="header"] +|=== +| Pin | Function (TE) | Function (NT Mode) +| 1 | Rx | Tx +| 2 | Rx | Tx +| 3 | not used | not used +| 4 | Tx | Rx +| 5 | Tx | Rx +| 7 | not used | not used +| 8 | not used | not used +|=== + +NOTE: E1 cables use RJ45 like Ethernet, but Ethernet cables have a +different pin-out. Particularly, you cannot use an Ethernet cross-over +cable as an E1 cross-over! + +==== X4: USB Connector + +The USB connector is a USB Type C connector. However, it only carries +USB 1.1 full-speed signals. 5V DC power is also sourced from this +connector. + +==== X2: Serial Console Connector + +The serial console is used for development and debugging. It uses an +Osmocom-style 2.5mm stereo TRS jack. + +The serial console uses 3.3V CMOS logic levels + +The serial console uses a rate of 1000000 bps. + +The pin-out is as follows: + +* Tip: Tx output from PC (Rx input of icE1usb) +* Ring: Rx input of PC (Tx output of icE1usb) +* Shield: GND + +A compatible cable can be sourced from the sysmocom web-shop at +http://shop.sysmocom.de/. + +==== X1: GPS Antenna Connector + +The GPS antenna connector is a female SMA connector. + +You can connect most standard active GPS antennas with built-in LNA. + +icE1us provide phantom voltage. + +The use of a GPS antenna is only required when you need a high precision +clock reference for the 2.048 MHz E1 bit clock, e.g. to provide a clock +reference to a cellular base station on the A-bis interface. + +==== X3: GPIO / Extension Connector + +This is a RJ45 connector adjacent to the USB connector. + +It is currently unused and reserved for future use. + + +[[hw-pushbutton]] +=== Pushbutton + +This is a push-button next to the _E1 interface '1'_. It is recessed +to protect against accidental use. You will need to use a paper clip, +pen tip or other similar object to push it. + +The button can be used to force booting into the DFU loader in order to +recover from a broken firmware installation. + + +=== Multi-Color LED + +Above the USB-C connector, there is a multi-color RGB LED. + +This LED is used by the firmware to indicate a variety of status +information. Pleas see the firmware documentation in <>. diff --git a/doc/manuals/chapters/host-software.adoc b/doc/manuals/chapters/host-software.adoc new file mode 100644 index 0000000..8af1018 --- /dev/null +++ b/doc/manuals/chapters/host-software.adoc @@ -0,0 +1,34 @@ +== Host Software + +Host Software is software running on the USB host computer to which the +icE1usb is attached. + +At the time of this writing, the only software implementing icE1usb +support is `osmo-e1d`. + +=== `osmo-e1d` + +`osmo-e1d` utilizes `libusb` to talk to the icE1usb hardware and offers +a unix domain socket based interface to application software. + +Software such as `osmo-bsc` and `osmo-mgw` can interface `osmo-e1d` via +the `libosmo-abis` support for `osmo-e1d`. + +More information about `osmo-e1d` can be found at its homepage +https://osmocom.org/projects/osmo-e1d/wiki + +=== Other software + +you can interface 3rd party applications with osmo-e1d in the following +ways: + +* by adding support for `osmo-e1d`, e.g. via `libosmo-e1d` to the + respective appliation +* by implementing a device driver for whatever hardware interface (e.g. + for DAHDI) supported by your software +* by directly implementing the USB interface exposed by icE1usb in your + software + +Should you require any related development/porting services, please do +not hesitate to reach out to sysmocom. + diff --git a/doc/manuals/icE1usb-usermanual.adoc b/doc/manuals/icE1usb-usermanual.adoc new file mode 100644 index 0000000..5cfeef6 --- /dev/null +++ b/doc/manuals/icE1usb-usermanual.adoc @@ -0,0 +1,17 @@ +:gfdl-enabled: + +icE1usb User Manual +=================== +Harald Welte + +include::./common/chapters/preface.adoc[] + +include::./chapters/hardware.adoc[] + +include::./chapters/gateware.adoc[] + +include::./chapters/firmware.adoc[] + +include::./chapters/host-software.adoc[] + +include::./common/chapters/gfdl.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21719 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: Ia04890cf3b321f8cb01e3c513a730031e76376b9 Gerrit-Change-Number: 21719 Gerrit-PatchSet: 3 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 Tue Dec 15 09:13:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:13:30 +0000 Subject: Change in osmo-e1-hardware[master]: cosmetic: comment spelling In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21703 ) Change subject: cosmetic: comment spelling ...................................................................... cosmetic: comment spelling Change-Id: I89e2ae1478688929a42c94c8279ebff1b3a6cd88 --- M firmware/ice40-riscv/icE1usb/usb_e1.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index ff58c08..dafceb5 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -40,7 +40,7 @@ uint32_t val = 8192; unsigned int level; - /* Compute real E1 tick count (with safety agains bad values) */ + /* Compute real E1 tick count (with safety against bad values) */ ticks = e1_tick_read(); val = (ticks - ticks_prev) & 0xffff; ticks_prev = ticks; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21703 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: I89e2ae1478688929a42c94c8279ebff1b3a6cd88 Gerrit-Change-Number: 21703 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Dec 15 09:30:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:30:44 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add ip.access Power Control structures In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21726 ) Change subject: protocol/gsm_08_58.h: add ip.access Power Control structures ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9430bcb79c269efb4f9527f565cf4e12e4444940 Gerrit-Change-Number: 21726 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:30: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 Dec 15 09:31:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:31:25 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add Osmocom specific IPAC_EWMA_AVE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21727 ) Change subject: protocol/gsm_08_58.h: add Osmocom specific IPAC_EWMA_AVE ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21727/1/include/osmocom/gsm/protocol/gsm_08_58.h File include/osmocom/gsm/protocol/gsm_08_58.h: https://gerrit.osmocom.org/c/libosmocore/+/21727/1/include/osmocom/gsm/protocol/gsm_08_58.h at 411 PS1, Line 411: IPAC_EWMA_AVE maybe calle it IPAC_OSMO_EWMA_AVE ? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib436fd8b81afdb06c6d936f6839f847a705d00e2 Gerrit-Change-Number: 21727 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:31: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 Tue Dec 15 09:32:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:32:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: on ns2_create_vc parse the tlv before using it In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21723 ) Change subject: gprs_ns2: on ns2_create_vc parse the tlv before using it ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82cab518966b8b49c3522ff5f7b6f82d1027a526 Gerrit-Change-Number: 21723 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09: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 Tue Dec 15 09:34:43 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 09:34:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs 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/+/21724 to look at the new patch set (#2). Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... gprs_ns2: improve handling of TLV errors on new nsvcs The specification says the PDU should be ignored if the PDU type is unknown. Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b --- M src/gb/gprs_ns2.c 1 file changed, 20 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/21724/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 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 Tue Dec 15 09:34:43 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 09:34:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't pass the return code of reject_status_msg 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/+/21725 to look at the new patch set (#2). Change subject: gprs_ns2: don't pass the return code of reject_status_msg ...................................................................... gprs_ns2: don't pass the return code of reject_status_msg When reject_stats_msg() fails the code can't do anything about it. Stick to the original failure code and log it Change-Id: I105363957e59c41a68835b7a9830c048dba73e93 --- M src/gb/gprs_ns2.c 1 file changed, 5 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/21725/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I105363957e59c41a68835b7a9830c048dba73e93 Gerrit-Change-Number: 21725 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 Tue Dec 15 09:35:33 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 09:35:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects 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/+/21484 to look at the new patch set (#10). Change subject: gprs_ns2: introduce NS dialects ...................................................................... gprs_ns2: introduce NS dialects A NS dialect describes how the NS Entity interacts with different virtual circuits. E.g. ipaccess use reset/block on udp and is a dynamic connection. A single NS Entity can only support one dialect. This can be later used to protect a NS Entity against dynamic NS virtual circuits of a different type. It further allows a bind to support multiple dialects at the same time. Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 --- 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 M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 8 files changed, 79 insertions(+), 86 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/84/21484/10 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 10 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 Dec 15 09:36:38 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 15 Dec 2020 09:36:38 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add Osmocom specific IPAC_EWMA_AVE In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21727 ) Change subject: protocol/gsm_08_58.h: add Osmocom specific IPAC_EWMA_AVE ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21727/1/include/osmocom/gsm/protocol/gsm_08_58.h File include/osmocom/gsm/protocol/gsm_08_58.h: https://gerrit.osmocom.org/c/libosmocore/+/21727/1/include/osmocom/gsm/protocol/gsm_08_58.h at 411 PS1, Line 411: IPAC_EWMA_AVE > maybe calle it IPAC_OSMO_EWMA_AVE ? Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib436fd8b81afdb06c6d936f6839f847a705d00e2 Gerrit-Change-Number: 21727 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:36: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 Tue Dec 15 09:37:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:37:05 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21724 ) Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21724/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21724/2/src/gb/gprs_ns2.c at 827 PS2, Line 827: LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " : "TLV Parse\n", tlv); no need for a line break, but not critical. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:37: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 Dec 15 09:37:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 15 Dec 2020 09:37:50 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add Osmocom specific EWMA AVG algo 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/+/21727 to look at the new patch set (#2). Change subject: protocol/gsm_08_58.h: add Osmocom specific EWMA AVG algo ...................................................................... protocol/gsm_08_58.h: add Osmocom specific EWMA AVG algo Change-Id: Ib436fd8b81afdb06c6d936f6839f847a705d00e2 Related: SYS#4918 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/27/21727/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib436fd8b81afdb06c6d936f6839f847a705d00e2 Gerrit-Change-Number: 21727 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 Tue Dec 15 09:38:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:38:19 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't pass the return code of reject_status_msg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21725 ) Change subject: gprs_ns2: don't pass the return code of reject_status_msg ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21725/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21725/2/src/gb/gprs_ns2.c at 835 PS2, Line 835: LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); one could have a "goto" target that prints that log line and returns CS_REJECTED? This way we could avoid stating the same log line over and over again. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I105363957e59c41a68835b7a9830c048dba73e93 Gerrit-Change-Number: 21725 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:38: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 Tue Dec 15 09:43:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:43:00 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser for RIM Routing Information In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21721 ) Change subject: gprs_bssgp: add IE parser for RIM Routing Information ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21721/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/21721/1/include/osmocom/gprs/gprs_bssgp.h at 197 PS1, Line 197: struct { : uint16_t mcc; : uint16_t mnc; : bool mnc_3_digits; : uint16_t tac; : } tai; it might make sense to introduce a general/public 'struct' for this, like we have the gprs_ra_id. With more LTE/GSM integration we might need that in more places. https://gerrit.osmocom.org/c/libosmocore/+/21721/1/include/osmocom/gprs/gprs_bssgp.h at 204 PS1, Line 204: uint8_t global_enb_id[8]; : uint8_t global_enb_id_len; likewise that might be wrappend in something like a public'struct osmo_g_enb_id' - though I'm not sure it makes sense without parsing, so probably don't do it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 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 Tue Dec 15 09:45:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:45:20 +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 1: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/21722/1/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/21722/1/src/gb/gprs_bssgp.c at 707 PS1, Line 707: truct bssgp_normal_hdr *bgph = : (struct b no line break needed [not critical] https://gerrit.osmocom.org/c/libosmocore/+/21722/1/src/gb/gprs_bssgp.c at 711 PS1, Line 711: PDU likewise here this looks like it can fit in a single line with our current limit of 120? https://gerrit.osmocom.org/c/libosmocore/+/21722/1/src/gb/gprs_bssgp.c at 728 PS1, Line 728: / comment doesn't match code -- 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: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:45: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 Tue Dec 15 09:46:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:46:35 +0000 Subject: Change in osmo-e1-hardware[master]: add udev.rules files for icE1usb and e1-tracer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21720 ) Change subject: add udev.rules files for icE1usb and e1-tracer ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21720 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: Ie1be28359def6fc181f88558834ac52a001312b7 Gerrit-Change-Number: 21720 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:46: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 Dec 15 09:46:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:46:37 +0000 Subject: Change in osmo-e1-hardware[master]: add udev.rules files for icE1usb and e1-tracer In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21720 ) Change subject: add udev.rules files for icE1usb and e1-tracer ...................................................................... add udev.rules files for icE1usb and e1-tracer Change-Id: Ie1be28359def6fc181f88558834ac52a001312b7 --- A software/99_e1tracer.rules A software/99_icE1usb.rules 2 files changed, 26 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/software/99_e1tracer.rules b/software/99_e1tracer.rules new file mode 100644 index 0000000..d1344b1 --- /dev/null +++ b/software/99_e1tracer.rules @@ -0,0 +1,13 @@ +# copy this file to /etc/udev/rules.d/ + +# If not adding the device, go away +ACTION!="add", GOTO="e1_tracer_rules_end" +SUBSYSTEM!="usb", GOTO="e1_tracer_rules_end" + +# Osmocom e1-tracer, DFU mode +ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6150", GROUP="plugdev" +# Osmocom e1-tracer, runtime +ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6151", GROUP="plugdev" + +# All done +LABEL="e1_tracer_rules_end" diff --git a/software/99_icE1usb.rules b/software/99_icE1usb.rules new file mode 100644 index 0000000..7232b7c --- /dev/null +++ b/software/99_icE1usb.rules @@ -0,0 +1,13 @@ +# copy this file to /etc/udev/rules.d/ + +# If not adding the device, go away +ACTION!="add", GOTO="ice40_e1_rules_end" +SUBSYSTEM!="usb", GOTO="ice40_e1_rules_end" + +# Osmocom icE1usb USB E1 interface, DFU mode +ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6144", GROUP="plugdev" +# Osmocom icE1usb USB E1 interface, runtime +ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6145", GROUP="plugdev" + +# All done +LABEL="ice40_e1_rules_end" -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21720 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: Ie1be28359def6fc181f88558834ac52a001312b7 Gerrit-Change-Number: 21720 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 Tue Dec 15 09:48:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:48:12 +0000 Subject: Change in libosmocore[master]: gsm: append_eutran_neib_cell: Fix SI2quater EARFCN list In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21712 ) Change subject: gsm: append_eutran_neib_cell: Fix SI2quater EARFCN list ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2bf5635b8536b11d69774d17ac1908019633e3af Gerrit-Change-Number: 21712 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 15 Dec 2020 09:48: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 Dec 15 09:48:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:48:15 +0000 Subject: Change in libosmocore[master]: rest_octets: add Serving Cell Priority Parameters In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21708 ) Change subject: rest_octets: add Serving Cell Priority Parameters ...................................................................... rest_octets: add Serving Cell Priority Parameters When we add an EARFCN to to the SI2quater struct we do not add Serving Cell Priority Parameters. This essentially causes to MS to ignore the EARFCN because it is still undefined under which conditions the MS should change to LTE. This is a cherry-pick from osmo-bsc.git 295c965c063a8c431507191f6aef1ef78b720685 Related: SYS#4510 Change-Id: If9134759e9bc4ae0920800972632fd8c5dc9c2d9 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 19 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved dexter: Looks good to me, but someone else must approve diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index a527598..dd14d28 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -193,8 +193,25 @@ /* Priority and E-UTRAN Parameters Description */ bitvec_set_bit(bv, 1); - /* No Serving Cell Priority Parameters Descr. */ - bitvec_set_bit(bv, 0); + /* Serving Cell Priority Parameters Descr. is Present, + * see also: 3GPP TS 44.018, Table 10.5.2.33b.1 */ + bitvec_set_bit(bv, 1); + + /* GERAN_PRIORITY */ + bitvec_set_uint(bv, 0, 3); + + /* THRESH_Priority_Search */ + bitvec_set_uint(bv, 0, 4); + + /* THRESH_GSM_low */ + bitvec_set_uint(bv, 0, 4); + + /* H_PRIO */ + bitvec_set_uint(bv, 0, 2); + + /* T_Reselection */ + bitvec_set_uint(bv, 0, 2); + /* No 3G Priority Parameters Description */ bitvec_set_bit(bv, 0); /* E-UTRAN Parameters Description */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If9134759e9bc4ae0920800972632fd8c5dc9c2d9 Gerrit-Change-Number: 21708 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Dec 15 09:48:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:48:16 +0000 Subject: Change in libosmocore[master]: gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21709 ) Change subject: gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST ...................................................................... gsm: si13: Fix encode of EGPRS_PACKET_CHANNEL_REQUEST Cherry-pick from osmo-bsc.git e981f17200bf3a5d5114f46d9f7515fd10b96dbb Change-Id: I0aae385a427205cc73f60feca161e38608e608d8 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index dd14d28..84b7589 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -909,13 +909,8 @@ /* EGPRS supported in the cell */ bitvec_set_bit(bv, 1); - /* 1bit EGPRS PACKET CHANNEL REQUEST */ - if (gco->supports_egprs_11bit_rach == 0) { - bitvec_set_bit(bv, - gco->ext_info.use_egprs_p_ch_req); - } else { - bitvec_set_bit(bv, 0); - } + /* 1bit EGPRS PACKET CHANNEL REQUEST (inverted logic) */ + bitvec_set_bit(bv, !gco->ext_info.use_egprs_p_ch_req); /* 4bit BEP PERIOD */ bitvec_set_uint(bv, gco->ext_info.bep_period, 4); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0aae385a427205cc73f60feca161e38608e608d8 Gerrit-Change-Number: 21709 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 Dec 15 09:48:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:48:16 +0000 Subject: Change in libosmocore[master]: si2quater: fix budget calculation for multiple EARFCNs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21710 ) Change subject: si2quater: fix budget calculation for multiple EARFCNs ...................................................................... si2quater: fix budget calculation for multiple EARFCNs In rest_octets.c append_earfcn(), the unconditional bits added are 40, not 25. Removing only 25 bits from the budget resulted in malformed SI2quater starting with 4 configured EARFCNs, by adding more EARFCNs than fit in 20 bits. These malformed SI2quater were also expected in gsm0408_test.c. Update the expected SI2quater to what is being generated now. This patch passes the ttcn3 testing added in I45382f88686ca60e68569e93569fc4cfb63a0e0d, which provides some confidence that the coding expected in gsm0408_test.c is now correct. This commit is a cherry-pick of osmo-bsc.git 6589f7c3a8dfdaaf66dda3afa6bbb1118ec825f9 Change-Id: Icc1ece39ad162d09720e104c5cbc12b07d6771a8 Related: OS#4652 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 9 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 84b7589..5c7d77a 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -165,7 +165,7 @@ { bool appended; unsigned int old = bv->cur_bit; /* save current position to make rollback possible */ - int rem = budget - 25; + int rem = ((int)budget) - 40; if (rem <= 0) return; @@ -193,6 +193,8 @@ /* Priority and E-UTRAN Parameters Description */ bitvec_set_bit(bv, 1); + /* budget: 10 bits used above */ + /* Serving Cell Priority Parameters Descr. is Present, * see also: 3GPP TS 44.018, Table 10.5.2.33b.1 */ bitvec_set_bit(bv, 1); @@ -212,6 +214,8 @@ /* T_Reselection */ bitvec_set_uint(bv, 0, 2); + /* budget: 26 bits used above */ + /* No 3G Priority Parameters Description */ bitvec_set_bit(bv, 0); /* E-UTRAN Parameters Description */ @@ -235,12 +239,16 @@ /* Repeated E-UTRAN Neighbour Cells */ bitvec_set_bit(bv, 1); + /* budget: 34 bits used above */ + appended = append_eutran_neib_cell(bv, e, e_offset, rem); if (!appended) { /* appending is impossible within current budget: rollback */ bv->cur_bit = old; return; } + /* budget: further 6 bits used below, totalling 40 bits */ + /* stop bit - end of Repeated E-UTRAN Neighbour Cells sequence: */ bitvec_set_bit(bv, 0); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icc1ece39ad162d09720e104c5cbc12b07d6771a8 Gerrit-Change-Number: 21710 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Tue Dec 15 09:48:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:48:17 +0000 Subject: Change in libosmocore[master]: gsm: append_eutran_neib_cell: Fix SI2quater EARFCN list In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21712 ) Change subject: gsm: append_eutran_neib_cell: Fix SI2quater EARFCN list ...................................................................... gsm: append_eutran_neib_cell: Fix SI2quater EARFCN list Commit bd6e7a9f2dd5d4e881a0a21ebdb29b7a76ebdc9a did the initial porting of rest_octet APIs from osmo-bsc, but introduced a bug when moving bts->e_offset to a generic pointer independent of bts structure. As a result, using this API from osmo-bsc makes gsm0408 unit test fail due to bad encoding of several EARFCNs in si2quater. Fixes: bd6e7a9f2dd5d4e881a0a21ebdb29b7a76ebdc9a Change-Id: I2bf5635b8536b11d69774d17ac1908019633e3af --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 1 deletion(-) 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 5c7d77a..1f9c2b5 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -64,6 +64,7 @@ uint8_t budget) { unsigned i, skip = 0; + size_t offset = *e_offset; int16_t rem = budget - 6; /* account for mandatory stop bit and THRESH_E-UTRAN_high */ uint8_t earfcn_budget; @@ -94,7 +95,7 @@ /* now we can proceed with actually adding EARFCNs within adjusted budget limit */ for (i = 0; i < e->length; i++) { if (e->arfcn[i] != OSMO_EARFCN_INVALID) { - if (skip < *e_offset) { + if (skip < offset) { skip++; /* ignore EARFCNs added on previous calls */ } else { earfcn_budget = 17; /* compute budget per-EARFCN */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2bf5635b8536b11d69774d17ac1908019633e3af Gerrit-Change-Number: 21712 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Tue Dec 15 09:48:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:48:33 +0000 Subject: Change in libosmocore[master]: GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21713 ) Change subject: GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2aaa8c1107c977f711c2d7530034f57e36e3a237 Gerrit-Change-Number: 21713 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09: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 Tue Dec 15 09:49:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:49:40 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... Patch Set 10: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 09:49: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 Dec 15 09:49:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:49:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... Patch Set 10: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 09:49: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 Dec 15 09:52:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:52:18 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add Osmocom specific EWMA AVG algo In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21727 ) Change subject: protocol/gsm_08_58.h: add Osmocom specific EWMA AVG algo ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib436fd8b81afdb06c6d936f6839f847a705d00e2 Gerrit-Change-Number: 21727 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:52: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 Dec 15 09:52:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:52:24 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add ip.access Power Control structures In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21726 ) Change subject: protocol/gsm_08_58.h: add ip.access Power Control structures ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9430bcb79c269efb4f9527f565cf4e12e4444940 Gerrit-Change-Number: 21726 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 09:52: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 Tue Dec 15 09:52:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:52:42 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add ip.access Power Control structures In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21726 ) Change subject: protocol/gsm_08_58.h: add ip.access Power Control structures ...................................................................... protocol/gsm_08_58.h: add ip.access Power Control structures Change-Id: I9430bcb79c269efb4f9527f565cf4e12e4444940 Related: SYS#4918 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 44 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index 1ed4438..aeaa6ff 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -780,6 +780,22 @@ #endif }__attribute__ ((packed)); +/*! MS/BS Power Control Thresholds */ +struct ipac_preproc_pc_thresh { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t l_rxlev:6, reserved_l_rxlev:2; + uint8_t u_rxlev:6, reserved_u_rxlev:2; + uint8_t l_rxqual:3, reserved_l_rxqual:1, + u_rxqual:3, reserved_u_rxqual:1; +#elif OSMO_IS_BIG_ENDIAN + uint8_t reserved_l_rxlev:2, l_rxlev:6; + uint8_t reserved_u_rxlev:2, u_rxlev:6; + uint8_t reserved_l_rxqual:1, l_rxqual:3, + reserved_u_rxqual:1, u_rxqual:3; +#endif +}__attribute__ ((packed)); + +/*! Handover Thresholds */ struct ipac_preproc_ho_thresh { #if OSMO_IS_LITTLE_ENDIAN uint8_t l_rxlev_ul_h:6, @@ -807,6 +823,34 @@ #endif }__attribute__ ((packed)); +/*! PC Threshold Comparators */ +struct ipac_preproc_pc_comp { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t p1:5, reserved_p1:3; + uint8_t n1:5, reserved_n1:3; + uint8_t p2:5, reserved_p2:3; + uint8_t n2:5, reserved_n2:3; + uint8_t p3:5, reserved_p3:3; + uint8_t n3:5, reserved_n3:3; + uint8_t p4:5, reserved_p4:3; + uint8_t n4:5, reserved_n4:3; + uint8_t pc_interval:5, reserved_pc:3; + uint8_t red_step_size:4, inc_step_size:4; +#elif OSMO_IS_BIG_ENDIAN + uint8_t reserved_p1:3, p1:5; + uint8_t reserved_n1:3, n1:5; + uint8_t reserved_p2:3, p2:5; + uint8_t reserved_n2:3, n2:5; + uint8_t reserved_p3:3, p3:5; + uint8_t reserved_n3:3, n3:5; + uint8_t reserved_p4:3, p4:5; + uint8_t reserved_n4:3, n4:5; + uint8_t reserved_pc:3, pc_interval:5; + uint8_t inc_step_size:4, red_step_size:4; +#endif +}__attribute__ ((packed)); + +/*! HO Threshold Comparators */ struct ipac_preproc_ho_comp { #if OSMO_IS_LITTLE_ENDIAN uint8_t p5:5, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9430bcb79c269efb4f9527f565cf4e12e4444940 Gerrit-Change-Number: 21726 Gerrit-PatchSet: 3 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 Tue Dec 15 09:52:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 09:52:43 +0000 Subject: Change in libosmocore[master]: protocol/gsm_08_58.h: add Osmocom specific EWMA AVG algo In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21727 ) Change subject: protocol/gsm_08_58.h: add Osmocom specific EWMA AVG algo ...................................................................... protocol/gsm_08_58.h: add Osmocom specific EWMA AVG algo Change-Id: Ib436fd8b81afdb06c6d936f6839f847a705d00e2 Related: SYS#4918 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index aeaa6ff..0f7af92 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -406,7 +406,9 @@ enum { IPAC_UNWEIGHTED_AVE = 0, IPAC_WEIGHTED_AVE, - IPAC_MEDIAN_AVE + IPAC_MEDIAN_AVE, + /* EWMA is an Osmocom specific extension */ + IPAC_OSMO_EWMA_AVE, }; /* IPAC MEAS_PREPROC AVERAGING PARAMID */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib436fd8b81afdb06c6d936f6839f847a705d00e2 Gerrit-Change-Number: 21727 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Dec 15 09:57:22 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 09:57:22 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fd8889ba597b_22fc2aafec8545f0121286@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-sip-connector failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-5:7) -- 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 Dec 15 10:35:36 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 15 Dec 2020 10:35:36 +0000 Subject: Change in osmo-sgsn[master]: sgsn: check for NULL of gprs_subscr_get_or_create() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 ) Change subject: sgsn: check for NULL of gprs_subscr_get_or_create() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21639/2/src/sgsn/sgsn_vty.c File src/sgsn/sgsn_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21639/2/src/sgsn/sgsn_vty.c at 1023 PS2, Line 1023: if (subscr) { Missing "!"!! -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 Gerrit-Change-Number: 21639 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 15 Dec 2020 10:35:36 +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 Dec 15 10:39:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 10:39:42 +0000 Subject: Change in osmo-e1-hardware[master]: cosmetic: more comments in the code In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 ) Change subject: cosmetic: more comments in the code ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 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: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 Gerrit-Change-Number: 21704 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 15 Dec 2020 10: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 Tue Dec 15 10:41:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 10:41:06 +0000 Subject: Change in osmo-e1-hardware[master]: ice1usb: define e1_data_ptr() using e1_data_ofs() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 ) Change subject: ice1usb: define e1_data_ptr() using e1_data_ofs() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 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: I9a6cce07ea8b6eff1527215de00621da960b0472 Gerrit-Change-Number: 21706 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 15 Dec 2020 10:41: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 Dec 15 10:41:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 10:41:14 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb: Use register bit #define instead of magic number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 ) Change subject: icE1usb: Use register bit #define instead of magic number ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 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: Ic824ce5a6605c96989fefbf92f365bff618dccb2 Gerrit-Change-Number: 21707 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 15 Dec 2020 10:41: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 Dec 15 10:42:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 10:42:01 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Expose error conditions from E1 driver In-Reply-To: References: Message-ID: pespin 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 2: 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 15 Dec 2020 10: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 Tue Dec 15 10:42:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 10:42:36 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 ) Change subject: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 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: I9e59d86a2e8f4e85ca84c592438ad79966b49448 Gerrit-Change-Number: 21716 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 15 Dec 2020 10:42: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 Dec 15 10:46:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 10:46:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2: on ns2_create_vc parse the tlv before using it In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21723 ) Change subject: gprs_ns2: on ns2_create_vc parse the tlv before using it ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82cab518966b8b49c3522ff5f7b6f82d1027a526 Gerrit-Change-Number: 21723 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 10:46: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 Dec 15 10:49:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 10:49:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21724 ) Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... Patch Set 2: Code-Review-1 (1 comment) Looks like this commit needs more work. https://gerrit.osmocom.org/c/libosmocore/+/21724/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21724/2/src/gb/gprs_ns2.c at 807 PS2, Line 807: rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); so you may end up passing &tp in an incorrect/unknwon state here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 10:49: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 Tue Dec 15 10:56:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 10:56:46 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser for RIM Routing Information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21721 ) Change subject: gprs_bssgp: add IE parser for RIM Routing Information ...................................................................... Patch Set 1: Code-Review-1 (7 comments) https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 340 PS1, Line 340: return 0; -EINVAL? https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 347 PS1, Line 347: return -1; return codes are not marching documentation. https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 350 PS1, Line 350: break; unneeded break. https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 357 PS1, Line 357: break; uneeded break. https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 359 PS1, Line 359: if (len < 7) You can probable merge both conditions in one if. https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 374 PS1, Line 374: break; unneeded break https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 379 PS1, Line 379: return 0; This cannot happen, you can remove it (or remove default above) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 10:56: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 Tue Dec 15 10:57:23 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 10:57:23 +0000 Subject: Change in osmo-sgsn[master]: sgsn: check for NULL of gprs_subscr_get_or_create() 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/+/21639 to look at the new patch set (#3). Change subject: sgsn: check for NULL of gprs_subscr_get_or_create() ...................................................................... sgsn: check for NULL of gprs_subscr_get_or_create() gprs_subscr_get_or_create() can return NULL if no memory can be allocated. Detected by the compiler on Ubuntu s390x. Signed-off-by: Steve Langasek Signed-off-by: Alexander Couzens Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 --- M src/sgsn/gprs_subscriber.c M src/sgsn/sgsn_vty.c 2 files changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/39/21639/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 Gerrit-Change-Number: 21639 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 15 10:59:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 10:59:00 +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 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21722/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/21722/1/include/osmocom/gprs/gprs_bssgp.h at 59 PS1, Line 59: PRIM_BSSGP_RIM Add , at the end. -- 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: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 10:59: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 Tue Dec 15 11:06:18 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 15 Dec 2020 11:06:18 +0000 Subject: Change in osmo-sgsn[master]: sgsn: check for NULL of gprs_subscr_get_or_create() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 ) Change subject: sgsn: check for NULL of gprs_subscr_get_or_create() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 Gerrit-Change-Number: 21639 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 11:06: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 Dec 15 11:17:20 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:17:20 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api 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/+/20397 to look at the new patch set (#8). 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, 117 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/97/20397/8 -- 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: 8 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 Tue Dec 15 11:17:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 11:17:58 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/20397 ) Change subject: sgsn: Use the new NS2 api ...................................................................... Patch Set 8: Code-Review+1 -- 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: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 11:17: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 Dec 15 11:30:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 11:30:30 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21263 ) Change subject: Introduce osmo-ran docker image set up ...................................................................... Patch Set 6: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 11:30: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 Dec 15 11:45:22 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:45:22 +0000 Subject: Change in osmo-sgsn[master]: sgsn: check for NULL of gprs_subscr_get_or_create() In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 ) Change subject: sgsn: check for NULL of gprs_subscr_get_or_create() ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21639/2/src/sgsn/sgsn_vty.c File src/sgsn/sgsn_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21639/2/src/sgsn/sgsn_vty.c at 1023 PS2, Line 1023: if (subscr) { > Missing "!"!! Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 Gerrit-Change-Number: 21639 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 11:45:22 +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 Dec 15 11:45:25 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:45:25 +0000 Subject: Change in osmo-sgsn[master]: sgsn: check for NULL of gprs_subscr_get_or_create() In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 ) Change subject: sgsn: check for NULL of gprs_subscr_get_or_create() ...................................................................... sgsn: check for NULL of gprs_subscr_get_or_create() gprs_subscr_get_or_create() can return NULL if no memory can be allocated. Detected by the compiler on Ubuntu s390x. Signed-off-by: Steve Langasek Signed-off-by: Alexander Couzens Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 --- M src/sgsn/gprs_subscriber.c M src/sgsn/sgsn_vty.c 2 files changed, 10 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/src/sgsn/gprs_subscriber.c b/src/sgsn/gprs_subscriber.c index c23b332..943fbc3 100644 --- a/src/sgsn/gprs_subscriber.c +++ b/src/sgsn/gprs_subscriber.c @@ -870,6 +870,8 @@ if (!subscr) { subscr = gprs_subscr_get_or_create(mmctx->imsi); + if (!subscr) + return NULL; subscr->flags |= GPRS_SUBSCRIBER_FIRST_CONTACT; subscr->flags &= ~GPRS_SUBSCRIBER_ENABLE_PURGE; } @@ -893,6 +895,8 @@ LOGMMCTXP(LOGL_DEBUG, mmctx, "Requesting subscriber data update\n"); subscr = gprs_subscr_get_or_create_by_mmctx(mmctx); + if (!subscr) + return -ENOMEM; subscr->flags |= GPRS_SUBSCRIBER_UPDATE_LOCATION_PENDING; @@ -918,6 +922,8 @@ LOGMMCTXP(LOGL_DEBUG, mmctx, "Requesting subscriber authentication info\n"); subscr = gprs_subscr_get_or_create_by_mmctx(mmctx); + if (!subscr) + return -ENOMEM; subscr->flags |= GPRS_SUBSCRIBER_UPDATE_AUTH_INFO_PENDING; diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c index 33a652c..fee328e 100644 --- a/src/sgsn/sgsn_vty.c +++ b/src/sgsn/sgsn_vty.c @@ -1020,6 +1020,10 @@ } subscr = gprs_subscr_get_or_create(imsi); + if (!subscr) { + vty_out(vty, "Can not create subscriber. Out of memory.%s", imsi); + return CMD_WARNING; + } subscr->keep_in_ram = 1; gprs_subscr_put(subscr); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I86b3652d46bdd581fe6cbab16b52395a0daaa082 Gerrit-Change-Number: 21639 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 Tue Dec 15 11:46:45 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce NS dialects In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21484 ) Change subject: gprs_ns2: introduce NS dialects ...................................................................... gprs_ns2: introduce NS dialects A NS dialect describes how the NS Entity interacts with different virtual circuits. E.g. ipaccess use reset/block on udp and is a dynamic connection. A single NS Entity can only support one dialect. This can be later used to protect a NS Entity against dynamic NS virtual circuits of a different type. It further allows a bind to support multiple dialects at the same time. Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 --- 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 M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 8 files changed, 79 insertions(+), 86 deletions(-) Approvals: laforge: 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 4575329..6140da2 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -32,6 +32,14 @@ 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, +}; + /*! Osmocom NS link layer types */ enum gprs_ns2_ll { GPRS_NS2_LL_UDP, /*!< NS/UDP/IP */ @@ -144,7 +152,8 @@ gprs_ns2_foreach_nsvc_cb cb, void *cb_data); struct gprs_ns2_nse *gprs_ns2_nse_by_nsei(struct gprs_ns2_inst *nsi, uint16_t nsei); struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, - enum gprs_ns2_ll linklayer); + enum gprs_ns2_ll linklayer, + enum gprs_ns2_dialect dialect); uint16_t gprs_ns2_nse_nsei(struct gprs_ns2_nse *nse); void gprs_ns2_free_nse(struct gprs_ns2_nse *nse); void gprs_ns2_free_nses(struct gprs_ns2_inst *nsi); @@ -160,7 +169,6 @@ struct gprs_ns2_vc_bind **result); struct gprs_ns2_vc_bind *gprs_ns2_ip_bind_by_sockaddr(struct gprs_ns2_inst *nsi, const struct osmo_sockaddr *sockaddr); -void gprs_ns2_bind_set_mode(struct gprs_ns2_vc_bind *bind, enum gprs_ns2_vc_mode mode); /* FR VL driver */ struct gprs_ns2_vc_bind *gprs_ns2_fr_bind_by_netif( @@ -188,7 +196,8 @@ struct gprs_ns2_vc *gprs_ns2_ip_connect2(struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *remote, uint16_t nsei, - uint16_t nsvci); + uint16_t nsvci, + enum gprs_ns2_dialect dialect); struct gprs_ns2_vc *gprs_ns2_ip_connect_inactive(struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *remote, struct gprs_ns2_nse *nse, @@ -238,7 +247,5 @@ int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, const struct osmo_sockaddr_str *default_bind); int gprs_ns2_vty_create(); -void gprs_ns2_vty_force_vc_mode(bool force, enum gprs_ns2_vc_mode mode, const char *reason); - /*! @} */ diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index d90ba85..920fa68 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -492,7 +492,8 @@ * \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) * \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) +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) { struct gprs_ns2_vc *nsvc = talloc_zero(bind, struct gprs_ns2_vc); @@ -501,7 +502,7 @@ nsvc->bind = bind; nsvc->nse = nse; - nsvc->mode = bind->vc_mode; + nsvc->mode = vc_mode; nsvc->sig_weight = 1; nsvc->data_weight = 1; @@ -672,7 +673,8 @@ * \param[in] nsi NS instance in which to create NS Entity * \param[in] nsei NS Entity Identifier of to-be-created NSE * \returns newly-allocated NS-E in successful case; NULL on error */ -struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, enum gprs_ns2_ll linklayer) +struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, + enum gprs_ns2_ll linklayer, enum gprs_ns2_dialect dialect) { struct gprs_ns2_nse *nse; @@ -686,6 +688,7 @@ if (!nse) return NULL; + nse->dialect = dialect; nse->ll = linklayer; nse->nsei = nsei; nse->nsi = nsi; @@ -765,6 +768,8 @@ struct tlv_parsed tp; struct gprs_ns2_vc *nsvc; struct gprs_ns2_nse *nse; + enum gprs_ns2_dialect dialect; + enum gprs_ns2_vc_mode vc_mode; uint16_t nsvci; uint16_t nsei; @@ -794,8 +799,10 @@ return GPRS_NS2_CS_SKIPPED; case NS_PDUT_RESET: /* accept PDU RESET when vc_mode matches */ - if (bind->vc_mode == NS2_VC_MODE_BLOCKRESET) + if (bind->accept_ipaccess) { + dialect = NS2_DIALECT_IPACCESS; break; + } rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); if (rc < 0) { @@ -837,13 +844,14 @@ return GPRS_NS2_CS_SKIPPED; } - nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll); + nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll, dialect); if (!nse) { return GPRS_NS2_CS_ERROR; } } - nsvc = ns2_vc_alloc(bind, nse, false); + vc_mode = gprs_ns2_dialect_to_vc_mode(dialect); + nsvc = ns2_vc_alloc(bind, nse, false, vc_mode); if (!nsvc) return GPRS_NS2_CS_SKIPPED; @@ -911,12 +919,13 @@ struct gprs_ns2_vc *gprs_ns2_ip_connect2(struct gprs_ns2_vc_bind *bind, const struct osmo_sockaddr *remote, uint16_t nsei, - uint16_t nsvci) + uint16_t nsvci, + enum gprs_ns2_dialect dialect) { 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_UDP); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP, dialect); if (!nse) return NULL; } @@ -937,11 +946,19 @@ struct gprs_ns2_vc *nsvc; if (!nse) { - nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP, NS2_DIALECT_SNS); if (!nse) return -1; } + if (nse->ll != GPRS_NS2_LL_UDP) { + return -2; + } + + if (nse->dialect != NS2_DIALECT_SNS) { + return -2; + } + nsvc = gprs_ns2_ip_bind_connect(bind, nse, remote); if (!nsvc) return -1; @@ -1199,14 +1216,6 @@ } } -/*! Set the mode of given bind. - * \param[in] bind the bind we want to set the mode of - * \param[in] mode mode to set bind to */ -void gprs_ns2_bind_set_mode(struct gprs_ns2_vc_bind *bind, enum gprs_ns2_vc_mode mode) -{ - bind->vc_mode = mode; -} - /*! Destroy a given bind. * \param[in] bind the bind we want to destroy */ void gprs_ns2_free_bind(struct gprs_ns2_vc_bind *bind) @@ -1234,4 +1243,20 @@ gprs_ns2_free_bind(bind); } } + +enum gprs_ns2_vc_mode gprs_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; + default: + return -1; + } +} + /*! @} */ diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 2d5b021..6b4fa52 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -486,7 +486,6 @@ } strncpy(priv->netif, netif, sizeof(priv->netif)); - ns2_vty_bind_apply(bind); if (result) *result = bind; @@ -600,7 +599,7 @@ 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); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK); if (!nse) return NULL; created_nse = true; @@ -611,7 +610,7 @@ goto err_nse; } - nsvc = ns2_vc_alloc(bind, nse, true); + nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET); if (!nsvc) goto err_nse; diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 3c276bc..423ea4b 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -592,8 +592,6 @@ dscp, rc, errno); } - ns2_vty_bind_apply(bind); - if (result) *result = bind; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index e72deff..8c0c135 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -130,6 +130,9 @@ /*! which link-layer are we based on? */ enum gprs_ns2_ll ll; + /*! which dialect does this NSE speaks? */ + enum gprs_ns2_dialect dialect; + struct osmo_fsm_inst *bss_sns_fi; }; @@ -188,8 +191,8 @@ struct gprs_ns2_inst *nsi; struct gprs_ns2_vc_driver *driver; - /*! if VCs use reset/block/unblock method. IP shall not use this */ - enum gprs_ns2_vc_mode vc_mode; + bool accept_ipaccess; + bool accept_sns; /*! which link-layer are we based on? */ enum gprs_ns2_ll ll; @@ -222,7 +225,8 @@ struct gprs_ns2_vc *ns2_vc_alloc(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_nse *nse, - bool initiater); + bool initiater, + enum gprs_ns2_vc_mode vc_mode); struct msgb *gprs_ns2_msgb_alloc(void); @@ -298,8 +302,6 @@ int gprs_ns2_vc_is_alive(struct gprs_ns2_vc *nsvc); int gprs_ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc); -/* vty.c */ -void ns2_vty_bind_apply(struct gprs_ns2_vc_bind *bind); - /* 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); diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 928116d..b923e81 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -359,8 +359,6 @@ } llist_add(&bind->list, &nsi->binding); - ns2_vty_bind_apply(bind); - if (result) *result = bind; @@ -378,8 +376,16 @@ { struct gprs_ns2_vc *nsvc; struct priv_vc *priv; + enum gprs_ns2_vc_mode vc_mode; - nsvc = ns2_vc_alloc(bind, nse, true); + 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); + return NULL; + } + + nsvc = ns2_vc_alloc(bind, nse, true, vc_mode); if (!nsvc) return NULL; diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 43e9c2c..d285c22 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -62,10 +62,6 @@ struct osmo_sockaddr_str frgreaddr; int dscp; enum gprs_ns2_vc_mode vc_mode; - /* force vc mode if another configuration forces - * the vc mode. E.g. SNS configuration */ - bool force_vc_mode; - const char *force_vc_mode_reason; bool frgre; struct llist_head vtyvc; @@ -714,30 +710,14 @@ "Disable NS-{RESET,BLOCK,UNBLOCK}\n") { enum gprs_ns2_vc_mode vc_mode; - struct gprs_ns2_vc_bind *bind; if (!strcmp(argv[0], "enabled")) vc_mode = NS2_VC_MODE_BLOCKRESET; else vc_mode = NS2_VC_MODE_ALIVE; - if (priv.force_vc_mode) { - if (priv.vc_mode != vc_mode) - { - vty_out(vty, "Ignoring use-reset-block because it's already set by %s.%s", - priv.force_vc_mode_reason, VTY_NEWLINE); - return CMD_WARNING; - } - - return CMD_SUCCESS; - } - priv.vc_mode = vc_mode; - llist_for_each_entry(bind, &vty_nsi->binding, list) { - gprs_ns2_bind_set_mode(bind, priv.vc_mode); - } - return CMD_SUCCESS; } @@ -902,6 +882,7 @@ struct gprs_ns2_nse *nse; struct gprs_ns2_vc *nsvc; struct osmo_sockaddr sockaddr; + enum gprs_ns2_dialect dialect = NS2_DIALECT_UNDEF; int rc = 0; if (!vty_nsi) @@ -918,7 +899,7 @@ /* TODO: could not bind on the specific address */ return -1; } - gprs_ns2_bind_set_mode(bind, priv.vc_mode); + bind->accept_ipaccess = true; } /* create vcs */ @@ -926,6 +907,7 @@ /* validate settings */ switch (vtyvc->ll) { case GPRS_NS2_LL_UDP: + dialect = NS2_DIALECT_IPACCESS; if (strlen(vtyvc->remote.ip) == 0) { /* Invalid IP for VC */ continue; @@ -942,14 +924,16 @@ } break; case GPRS_NS2_LL_FR: + dialect = NS2_DIALECT_STATIC_RESETBLOCK; break; case GPRS_NS2_LL_FR_GRE: + dialect = NS2_DIALECT_STATIC_RESETBLOCK; continue; } nse = gprs_ns2_nse_by_nsei(vty_nsi, vtyvc->nsei); if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll); + nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll, dialect); if (!nse) { /* Could not create NSE for VTY */ continue; @@ -1001,29 +985,3 @@ return 0; } - -/*! - * \brief ns2_vty_bind_apply will be called when a new bind is created to apply vty settings - * \param bind - * \return - */ -void ns2_vty_bind_apply(struct gprs_ns2_vc_bind *bind) -{ - gprs_ns2_bind_set_mode(bind, priv.vc_mode); -} - -/*! - * \brief ns2_vty_force_vc_mode force a mode and prevents the vty from overwriting it. - * \param force if true mode and reason will be set. false to allow modification via vty. - * \param mode - * \param reason A description shown to the user when a vty command wants to change the mode. - */ -void gprs_ns2_vty_force_vc_mode(bool force, enum gprs_ns2_vc_mode mode, const char *reason) -{ - priv.force_vc_mode = force; - - if (force) { - priv.vc_mode = mode; - priv.force_vc_mode_reason = reason; - } -} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index f8ad901..e3301be 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -109,7 +109,6 @@ gprs_ns_msgb_alloc; gprs_ns2_aff_cause_prim_strs; -gprs_ns2_bind_set_mode; gprs_ns2_cause_strs; gprs_ns2_create_nse; gprs_ns2_dynamic_create_nse; @@ -159,7 +158,6 @@ gprs_ns2_reset_persistent_nsvcs; gprs_ns2_start_alive_all_nsvcs; gprs_ns2_vty_create; -gprs_ns2_vty_force_vc_mode; gprs_ns2_vty_init; gprs_nsvc_create2; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404 Gerrit-Change-Number: 21484 Gerrit-PatchSet: 11 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 Dec 15 11:46:46 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move allocation of the SNS fsm into create_nse In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21571 ) Change subject: gprs_ns2: move allocation of the SNS fsm into create_nse ...................................................................... gprs_ns2: move allocation of the SNS fsm into create_nse The allocation of the SNS fsm can be done in create_nse because the dialect is now known at that time. Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 --- M src/gb/gprs_ns2.c 1 file changed, 13 insertions(+), 6 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.c b/src/gb/gprs_ns2.c index 920fa68..890b656 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -677,6 +677,7 @@ enum gprs_ns2_ll linklayer, enum gprs_ns2_dialect dialect) { struct gprs_ns2_nse *nse; + char sns[16]; nse = gprs_ns2_nse_by_nsei(nsi, nsei); if (nse) { @@ -688,6 +689,15 @@ if (!nse) return NULL; + if (dialect == 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) { + talloc_free(nse); + return NULL; + } + } + nse->dialect = dialect; nse->ll = linklayer; nse->nsei = nsei; @@ -959,14 +969,11 @@ return -2; } - nsvc = gprs_ns2_ip_bind_connect(bind, nse, remote); - if (!nsvc) + if (!nse->bss_sns_fi) return -1; - if (!nse->bss_sns_fi) - nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, NULL); - - if (!nse->bss_sns_fi) + nsvc = gprs_ns2_ip_bind_connect(bind, nse, remote); + if (!nsvc) return -1; return ns2_sns_bss_fsm_start(nse, nsvc, remote); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I64e1f3dcc63d38e65bb486c9ac08d4032b7ad222 Gerrit-Change-Number: 21571 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: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 15 11:46:47 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add member name to bind In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21485 ) Change subject: gprs_ns2: add member name to bind ...................................................................... gprs_ns2: add member name to bind Every bind will have a unique name. Add a name argument to all bind creating functions and require them to be unique. This is an API break but there wasn't yet a release with NS2. Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e --- 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 M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 8 files changed, 75 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve daniel: 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 6140da2..86bf1ae 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -162,8 +162,13 @@ void gprs_ns2_free_nsvc(struct gprs_ns2_vc *nsvc); struct gprs_ns2_vc *gprs_ns2_nsvc_by_nsvci(struct gprs_ns2_inst *nsi, uint16_t nsvci); +/* generic VL driver */ +struct gprs_ns2_vc_bind *gprs_ns2_bind_by_name(struct gprs_ns2_inst *nsi, + const char *name); + /* IP VL driver */ int gprs_ns2_ip_bind(struct gprs_ns2_inst *nsi, + const char *name, const struct osmo_sockaddr *local, int dscp, struct gprs_ns2_vc_bind **result); @@ -176,6 +181,7 @@ const char *netif); const char *gprs_ns2_fr_bind_netif(struct gprs_ns2_vc_bind *bind); int gprs_ns2_fr_bind(struct gprs_ns2_inst *nsi, + const char *name, const char *netif, struct osmo_fr_network *fr_network, enum osmo_fr_role fr_role, @@ -226,6 +232,7 @@ const struct osmo_sockaddr *saddr); int gprs_ns2_frgre_bind(struct gprs_ns2_inst *nsi, + const char *name, const struct osmo_sockaddr *local, int dscp, struct gprs_ns2_vc_bind **result); diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 890b656..bd69acf 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1239,6 +1239,7 @@ bind->driver->free_bind(bind); llist_del(&bind->list); + talloc_free((char *)bind->name); talloc_free(bind); } @@ -1251,6 +1252,24 @@ } } +/*! Search for a bind with a unique name + * \param[in] nsi NS instance on which we operate + * \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 *bind; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!strcmp(bind->name, name)) + return bind; + } + + return NULL; +} + enum gprs_ns2_vc_mode gprs_ns2_dialect_to_vc_mode( enum gprs_ns2_dialect dialect) { diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 6b4fa52..5da6fce 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -453,19 +453,33 @@ * \param[out] result pointer to created bind * \return 0 on success; negative on error */ int gprs_ns2_fr_bind(struct gprs_ns2_inst *nsi, + const char *name, const char *netif, struct osmo_fr_network *fr_network, enum osmo_fr_role fr_role, 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; struct osmo_fr_link *fr_link; int rc = 0; + 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) { + rc = -ENOSPC; + goto err_bind; + } + bind->driver = &vc_driver_fr; bind->ll = GPRS_NS2_LL_FR; bind->send_vc = fr_vc_sendmsg; @@ -475,7 +489,7 @@ priv = bind->priv = talloc_zero(bind, struct priv_bind); if (!priv) { rc = -ENOSPC; - goto err_bind; + goto err_name; } priv->fd.cb = fr_fd_cb; @@ -536,6 +550,8 @@ osmo_fr_link_free(fr_link); err_priv: talloc_free(priv); +err_name: + talloc_free((char *)bind->name); err_bind: talloc_free(bind); diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 423ea4b..014517a 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -538,6 +538,7 @@ * \param[out] result pointer to created bind * \return 0 on success; negative on error */ int gprs_ns2_frgre_bind(struct gprs_ns2_inst *nsi, + const char *name, const struct osmo_sockaddr *local, int dscp, struct gprs_ns2_vc_bind **result) @@ -546,6 +547,12 @@ struct priv_bind *priv; int rc; + if (!name) + return -ENOSPC; + + if (gprs_ns2_bind_by_name(nsi, name)) + return -EALREADY; + if (!bind) return -ENOSPC; @@ -554,6 +561,12 @@ return -EINVAL; } + bind->name = talloc_strdup(bind, name); + if (!bind->name) { + talloc_free(bind); + return -ENOSPC; + } + bind->driver = &vc_driver_frgre; bind->ll = GPRS_NS2_LL_FR_GRE; bind->send_vc = frgre_vc_sendmsg; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 8c0c135..9bfe0b0 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -181,6 +181,8 @@ /*! Structure repesenting a bind instance. E.g. IPv4 listen port. */ struct gprs_ns2_vc_bind { + /*! unique name */ + const char *name; /*! list entry in nsi */ struct llist_head list; /*! list of all VC */ diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index b923e81..3eb8116 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -298,6 +298,7 @@ * \param[out] result if set, returns the bind object * \return 0 on success; negative in case of error */ int gprs_ns2_ip_bind(struct gprs_ns2_inst *nsi, + const char *name, const struct osmo_sockaddr *local, int dscp, struct gprs_ns2_vc_bind **result) @@ -306,6 +307,12 @@ struct priv_bind *priv; int rc; + if (!name) + 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; @@ -316,6 +323,12 @@ 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; diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index d285c22..fdb6b0b 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -895,7 +895,7 @@ } else { /* UDP */ osmo_sockaddr_str_to_sockaddr(&priv.udp, &sockaddr.u.sas); - if (gprs_ns2_ip_bind(vty_nsi, &sockaddr, priv.dscp, &bind)) { + if (gprs_ns2_ip_bind(vty_nsi, "vtybind", &sockaddr, priv.dscp, &bind)) { /* TODO: could not bind on the specific address */ return -1; } @@ -962,7 +962,7 @@ vty_nsi, vtyvc->netif); if (!fr) { - rc = gprs_ns2_fr_bind(vty_nsi, vtyvc->netif, vty_fr_network, vtyvc->fr.role, &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; diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index e3301be..7cc1cc8 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -109,6 +109,7 @@ gprs_ns_msgb_alloc; gprs_ns2_aff_cause_prim_strs; +gprs_ns2_bind_by_name; gprs_ns2_cause_strs; gprs_ns2_create_nse; gprs_ns2_dynamic_create_nse; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Gerrit-Change-Number: 21485 Gerrit-PatchSet: 11 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 Tue Dec 15 11:46:47 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework gprs_ns2_fr_connect*() In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21486 ) Change subject: gprs_ns2: rework gprs_ns2_fr_connect*() ...................................................................... gprs_ns2: rework gprs_ns2_fr_connect*() Add gprs_ns2_fr_connect2() and change gprs_ns2_fr_connect() to be similar to gprs_ns2_ip_connect() and gprs_ns2_connect2(). This is an API break but there wasn't yet a release with NS2. Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_vty.c 3 files changed, 44 insertions(+), 1 deletion(-) 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 86bf1ae..41587d3 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -189,6 +189,10 @@ int gprs_ns2_is_fr_bind(struct gprs_ns2_vc_bind *bind); struct gprs_ns2_vc *gprs_ns2_fr_nsvc_by_dlci(struct gprs_ns2_vc_bind *bind, uint16_t dlci); struct gprs_ns2_vc *gprs_ns2_fr_connect(struct gprs_ns2_vc_bind *bind, + struct gprs_ns2_nse *nse, + uint16_t nsvci, + uint16_t dlci); +struct gprs_ns2_vc *gprs_ns2_fr_connect2(struct gprs_ns2_vc_bind *bind, uint16_t nsei, uint16_t nsvci, uint16_t dlci); diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 5da6fce..b62b5af 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -606,6 +606,45 @@ * \param[in] dlci Data Link connection identifier * \return pointer to newly-allocated, connected and activated NS-VC; NULL on error */ struct gprs_ns2_vc *gprs_ns2_fr_connect(struct gprs_ns2_vc_bind *bind, + struct gprs_ns2_nse *nse, + uint16_t nsvci, + uint16_t dlci) +{ + struct gprs_ns2_vc *nsvc = NULL; + struct priv_vc *priv = NULL; + + nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); + if (nsvc) { + goto err; + } + + nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET); + if (!nsvc) + goto err; + + 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); + return NULL; +} + + +/*! Create, connect and activate a new FR-based NS-VC + * \param[in] bind bind in which the new NS-VC is to be created + * \param[in] nsei NSEI of the NS Entity in which the NS-VC is to be created + * \param[in] dlci Data Link connection identifier + * \return pointer to newly-allocated, connected and activated NS-VC; NULL on error */ +struct gprs_ns2_vc *gprs_ns2_fr_connect2(struct gprs_ns2_vc_bind *bind, uint16_t nsei, uint16_t nsvci, uint16_t dlci) diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index fdb6b0b..87284c2 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -969,7 +969,7 @@ } } - nsvc = gprs_ns2_fr_connect(fr, vtyvc->nsei, vtyvc->nsvci, vtyvc->frdlci); + nsvc = gprs_ns2_fr_connect(fr, nse, vtyvc->nsvci, vtyvc->frdlci); if (!nsvc) { /* Could not create NSVC, connect failed */ continue; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916 Gerrit-Change-Number: 21486 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 Dec 15 11:46:48 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21572 ) Change subject: gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE ...................................................................... gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE Change-Id: I909443b540dbf75146297f1d7f94940690be6c0d --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/libosmogb.map 3 files changed, 18 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve daniel: 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 41587d3..00879d7 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -160,6 +160,7 @@ /* create vc */ void gprs_ns2_free_nsvc(struct gprs_ns2_vc *nsvc); +void gprs_ns2_free_nsvcs(struct gprs_ns2_nse *nse); struct gprs_ns2_vc *gprs_ns2_nsvc_by_nsvci(struct gprs_ns2_inst *nsi, uint16_t nsvci); /* generic VL driver */ diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index bd69acf..21c69cb 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -562,6 +562,21 @@ talloc_free(nsvc); } +/*! Destroy/release all NS-VC of given NSE + * \param[in] nse NSE + */ +void gprs_ns2_free_nsvcs(struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc, *tmp; + + if (!nse) + return; + + llist_for_each_entry_safe(nsvc, tmp, &nse->nsvc, list) { + gprs_ns2_free_nsvc(nsvc); + } +} + /*! Allocate a message buffer for use with the NS2 stack. */ struct msgb *gprs_ns2_msgb_alloc(void) { @@ -722,15 +737,10 @@ * \param[in] nse NS Entity to destroy */ void gprs_ns2_free_nse(struct gprs_ns2_nse *nse) { - struct gprs_ns2_vc *nsvc, *tmp; - if (!nse) return; - llist_for_each_entry_safe(nsvc, tmp, &nse->nsvc, list) { - gprs_ns2_free_nsvc(nsvc); - } - + gprs_ns2_free_nsvcs(nse); ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); llist_del(&nse->list); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 7cc1cc8..d4114df 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -120,6 +120,7 @@ gprs_ns2_free_nse; gprs_ns2_free_nses; gprs_ns2_free_nsvc; +gprs_ns2_free_nsvcs; gprs_ns2_frgre_bind; gprs_ns2_fr_bind; gprs_ns2_fr_bind_netif; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I909443b540dbf75146297f1d7f94940690be6c0d Gerrit-Change-Number: 21572 Gerrit-PatchSet: 12 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 Tue Dec 15 11:46:49 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework IP-SNS initial remote In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21573 ) Change subject: gprs_ns2_sns: rework IP-SNS initial remote ...................................................................... gprs_ns2_sns: rework IP-SNS initial remote The IP-SNS requires at least one initial remote address of the SGSN. However it should be multiple initial remote address instead of a single in case the interface might fail. Rework the SNS to support multiple initial remote addresses. Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/libosmogb.map 6 files changed, 364 insertions(+), 190 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_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 00879d7..8dd5699 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -82,6 +82,7 @@ /* osmocom own causes */ NS_AFF_CAUSE_SNS_CONFIGURED, NS_AFF_CAUSE_SNS_FAILURE, + NS_AFF_CAUSE_SNS_NO_ENDPOINTS, }; extern const struct value_string gprs_ns2_aff_cause_prim_strs[]; @@ -218,9 +219,11 @@ void gprs_ns2_free_binds(struct gprs_ns2_inst *nsi); /* create a VC SNS connection */ -int gprs_ns2_ip_connect_sns(struct gprs_ns2_vc_bind *bind, - const struct osmo_sockaddr *remote, - uint16_t nsei); +int gprs_ns2_sns_count(struct gprs_ns2_nse *nse); +int gprs_ns2_sns_add_endpoint(struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *saddr); +int gprs_ns2_sns_del_endpoint(struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *saddr); const struct osmo_sockaddr *gprs_ns2_nse_sns_remote(struct gprs_ns2_nse *nse); const struct osmo_sockaddr *gprs_ns2_ip_vc_remote(const struct gprs_ns2_vc *nsvc); diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 21c69cb..5e5dd83 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -953,42 +953,6 @@ return gprs_ns2_ip_connect(bind, remote, nse, nsvci); } -/*! Create, connect and activate a new IP-SNS NSE. - * \param[in] bind bind in which the new NS-VC is to be created - * \param[in] remote remote address to which to connect - * \param[in] nsei NSEI of the NS Entity in which the NS-VC is to be created - * \return 0 on success; negative on error */ -int gprs_ns2_ip_connect_sns(struct gprs_ns2_vc_bind *bind, - const struct osmo_sockaddr *remote, - uint16_t nsei) -{ - struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); - struct gprs_ns2_vc *nsvc; - - if (!nse) { - nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP, NS2_DIALECT_SNS); - if (!nse) - return -1; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - return -2; - } - - if (nse->dialect != NS2_DIALECT_SNS) { - return -2; - } - - if (!nse->bss_sns_fi) - return -1; - - nsvc = gprs_ns2_ip_bind_connect(bind, nse, remote); - if (!nsvc) - return -1; - - return ns2_sns_bss_fsm_start(nse, nsvc, remote); -} - /*! Find NS-VC for given socket address. * \param[in] nse NS Entity in which to search * \param[in] sockaddr socket address to search for diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 9bfe0b0..d12c663 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -286,13 +286,15 @@ 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); +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); struct osmo_fsm_inst *ns2_sns_bss_fsm_alloc(struct gprs_ns2_nse *nse, const char *id); -int ns2_sns_bss_fsm_start(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, - const struct osmo_sockaddr *remote); void ns2_sns_free_nsvc(struct gprs_ns2_vc *nsvc); /* vc */ diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 5d18d04..b7fbbf8 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -69,7 +69,7 @@ }; enum gprs_sns_event { - GPRS_SNS_EV_START, + GPRS_SNS_EV_SELECT_ENDPOINT, /*!< Select a SNS endpoint from the list */ GPRS_SNS_EV_SIZE, GPRS_SNS_EV_SIZE_ACK, GPRS_SNS_EV_CONFIG, @@ -82,7 +82,7 @@ }; static const struct value_string gprs_sns_event_names[] = { - { GPRS_SNS_EV_START, "START" }, + { GPRS_SNS_EV_SELECT_ENDPOINT, "SELECT_ENDPOINT" }, { GPRS_SNS_EV_SIZE, "SIZE" }, { GPRS_SNS_EV_SIZE_ACK, "SIZE_ACK" }, { GPRS_SNS_EV_CONFIG, "CONFIG" }, @@ -95,14 +95,26 @@ { 0, NULL } }; +struct sns_endpoint { + struct llist_head list; + struct osmo_sockaddr saddr; +}; + struct ns2_sns_state { struct gprs_ns2_nse *nse; enum ns2_sns_type ip; - /* initial connection. the initial connection will be terminated - * in configured state or moved into NSE if valid */ - struct osmo_sockaddr initial; + /* holds the list of initial SNS endpoints */ + struct llist_head sns_endpoints; + /* prevent recursive reselection */ + bool reselection_running; + + /* The current initial SNS endpoints. + * The initial connection will be moved into the NSE + * if configured via SNS. Otherwise it will be removed + * in configured state. */ + struct sns_endpoint *initial; /* all SNS PDU will be sent over this nsvc */ struct gprs_ns2_vc *sns_nsvc; @@ -207,7 +219,7 @@ return NULL; gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; - return &gss->initial; + return &gss->initial->saddr; } /*! called when a nsvc is beeing freed */ @@ -646,16 +658,7 @@ static void ns2_sns_st_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, void *data) { - struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); - struct gprs_ns2_inst *nsi = nse->nsi; - - switch (event) { - case GPRS_SNS_EV_START: - osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); - break; - default: - OSMO_ASSERT(0); - } + /* empty state - SNS Select will start by ns2_sns_st_all_action() */ } static void ns2_sns_st_size(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -681,18 +684,133 @@ } } +/* setup all dynamic SNS settings, create a new nsvc and send the SIZE */ static void ns2_sns_st_size_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; + struct gprs_ns_ie_ip4_elem *ip4_elems; + struct gprs_ns_ie_ip6_elem *ip6_elems; + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_inst *nsi = gss->nse->nsi; + struct osmo_sockaddr *remote; + const struct osmo_sockaddr *sa; + struct osmo_sockaddr local; + int count; + /* 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); + /* no initial available */ + if (!gss->initial) + return; + + remote = &gss->initial->saddr; + + /* count how many bindings are available (only UDP binds) */ + count = ns2_ip_count_bind(nsi, remote); + if (count == 0) { + /* TODO: logging */ + return; + } + + bind = ns2_ip_get_bind_by_index(nsi, remote, 0); + if (!bind) { + return; + } + + /* setup the NSVC */ + if (!gss->sns_nsvc) { + gss->sns_nsvc = gprs_ns2_ip_bind_connect(bind, gss->nse, remote); + if (!gss->sns_nsvc) + return; + gss->sns_nsvc->sns_only = true; + } + + switch (gss->ip) { + case IPv4: + ip4_elems = talloc_zero_size(fi, sizeof(struct gprs_ns_ie_ip4_elem) * count); + if (!ip4_elems) + return; + + gss->ip4_local = ip4_elems; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!gprs_ns2_is_ip_bind(bind)) + continue; + + sa = gprs_ns2_ip_bind_sockaddr(bind); + if (!sa) + continue; + + if (sa->u.sas.ss_family != AF_INET) + continue; + + /* check if this is an specific bind */ + if (sa->u.sin.sin_addr.s_addr == 0) { + if (osmo_sockaddr_local_ip(&local, remote)) + continue; + + ip4_elems->ip_addr = local.u.sin.sin_addr.s_addr; + } else { + ip4_elems->ip_addr = sa->u.sin.sin_addr.s_addr; + } + + ip4_elems->udp_port = sa->u.sin.sin_port; + ip4_elems->sig_weight = 2; + ip4_elems->data_weight = 1; + ip4_elems++; + } + + gss->num_ip4_local = count; + gss->num_max_ip4_remote = 4; + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip4_remote * gss->num_ip4_local, 8); + break; + case IPv6: + /* IPv6 */ + ip6_elems = talloc_zero_size(fi, sizeof(struct gprs_ns_ie_ip6_elem) * count); + if (!ip6_elems) + return; + + gss->ip6_local = ip6_elems; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!gprs_ns2_is_ip_bind(bind)) + continue; + + sa = gprs_ns2_ip_bind_sockaddr(bind); + if (!sa) + continue; + + if (sa->u.sas.ss_family != AF_INET6) + continue; + + /* check if this is an specific bind */ + if (IN6_IS_ADDR_UNSPECIFIED(&sa->u.sin6.sin6_addr)) { + if (osmo_sockaddr_local_ip(&local, remote)) + continue; + + ip6_elems->ip_addr = local.u.sin6.sin6_addr; + } else { + ip6_elems->ip_addr = sa->u.sin6.sin6_addr; + } + + ip6_elems->udp_port = sa->u.sin.sin_port; + ip6_elems->sig_weight = 2; + ip6_elems->data_weight = 1; + + ip6_elems++; + } + gss->num_ip6_local = count; + gss->num_max_ip6_remote = 4; + gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * gss->num_ip6_local, 8); + break; + } + if (gss->num_max_ip4_remote > 0) ns2_tx_sns_size(gss->sns_nsvc, true, gss->num_max_nsvcs, gss->num_max_ip4_remote, -1); else ns2_tx_sns_size(gss->sns_nsvc, true, gss->num_max_nsvcs, -1, gss->num_max_ip6_remote); - } static void ns2_sns_st_config_bss(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -1130,7 +1248,7 @@ static const struct osmo_fsm_state ns2_sns_bss_states[] = { [GPRS_SNS_ST_UNCONFIGURED] = { - .in_event_mask = S(GPRS_SNS_EV_START), + .in_event_mask = 0, /* handled by all_state_action */ .out_state_mask = S(GPRS_SNS_ST_SIZE), .name = "UNCONFIGURED", .action = ns2_sns_st_unconfigured, @@ -1194,17 +1312,49 @@ static void ns2_sns_st_all_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) { + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); /* reset when receiving GPRS_SNS_EV_NO_NSVC */ - osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nse->nsi->timeout[NS_TOUT_TSNS_PROV], 3); + switch (event) { + case GPRS_SNS_EV_NO_NSVC: + if (!gss->reselection_running) + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + break; + case GPRS_SNS_EV_SELECT_ENDPOINT: + /* tear down previous state + * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */ + gss->reselection_running = true; + gprs_ns2_free_nsvcs(nse); + + /* 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); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 3); + return; + } else if (!gss->initial) { + gss->initial = llist_first_entry(&gss->sns_endpoints, struct sns_endpoint, list); + } else if (gss->initial->list.next == &gss->sns_endpoints) { + /* last entry, continue with first */ + gss->initial = llist_first_entry(&gss->sns_endpoints, struct sns_endpoint, list); + } else { + /* next element is an entry */ + gss->initial = llist_entry(gss->initial->list.next, struct sns_endpoint, list); + } + + gss->reselection_running = false; + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nse->nsi->timeout[NS_TOUT_TSNS_PROV], 1); + break; + } } static struct osmo_fsm gprs_ns2_sns_bss_fsm = { .name = "GPRS-NS2-SNS-BSS", .states = ns2_sns_bss_states, .num_states = ARRAY_SIZE(ns2_sns_bss_states), - .allstate_event_mask = S(GPRS_SNS_EV_NO_NSVC), + .allstate_event_mask = S(GPRS_SNS_EV_NO_NSVC) | + S(GPRS_SNS_EV_SELECT_ENDPOINT), .allstate_action = ns2_sns_st_all_action, .cleanup = NULL, .timer_cb = ns2_sns_fsm_bss_timer_cb, @@ -1234,6 +1384,7 @@ fi->priv = gss; gss->nse = nse; + INIT_LLIST_HEAD(&gss->sns_endpoints); return fi; err: @@ -1241,134 +1392,6 @@ return NULL; } -/*! Start an IP-SNS FSM. - * \param[in] nse NS Entity whose IP-SNS FSM shall be started - * \param[in] nsvc Initial NS-VC - * \param[in] remote remote (SGSN) address - * \returns 0 on success; negative on error */ -int ns2_sns_bss_fsm_start(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, - const struct osmo_sockaddr *remote) -{ - struct osmo_fsm_inst *fi = nse->bss_sns_fi; - struct ns2_sns_state *gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; - struct gprs_ns_ie_ip4_elem *ip4_elems; - struct gprs_ns_ie_ip6_elem *ip6_elems; - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_inst *nsi = nse->nsi; - const struct osmo_sockaddr *sa; - struct osmo_sockaddr local; - - gss->ip = remote->u.sa.sa_family == AF_INET ? IPv4 : IPv6; - - gss->initial = *remote; - gss->sns_nsvc = nsvc; - nsvc->sns_only = true; - - /* count how many bindings are available (only UDP binds) */ - int count = 0; - llist_for_each_entry(bind, &nsi->binding, list) { - if (!gprs_ns2_is_ip_bind(bind)) - continue; - - sa = gprs_ns2_ip_bind_sockaddr(bind); - if (!sa) - continue; - - if (sa->u.sa.sa_family == remote->u.sa.sa_family) - count++; - } - - if (count == 0) { - /* TODO: logging */ - goto err; - } - - switch (gss->ip) { - case IPv4: - ip4_elems = talloc_zero_size(fi, sizeof(struct gprs_ns_ie_ip4_elem) * count); - if (!ip4_elems) - goto err; - - gss->ip4_local = ip4_elems; - - llist_for_each_entry(bind, &nsi->binding, list) { - if (!gprs_ns2_is_ip_bind(bind)) - continue; - - sa = gprs_ns2_ip_bind_sockaddr(bind); - if (!sa) - continue; - - if (sa->u.sas.ss_family != AF_INET) - continue; - - /* check if this is an specific bind */ - if (sa->u.sin.sin_addr.s_addr == 0) { - if (osmo_sockaddr_local_ip(&local, remote)) - continue; - - ip4_elems->ip_addr = local.u.sin.sin_addr.s_addr; - } else { - ip4_elems->ip_addr = sa->u.sin.sin_addr.s_addr; - } - - ip4_elems->udp_port = sa->u.sin.sin_port; - ip4_elems->sig_weight = 2; - ip4_elems->data_weight = 1; - ip4_elems++; - } - - gss->num_ip4_local = count; - gss->num_max_ip4_remote = 4; - gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip4_remote * gss->num_ip4_local, 8); - break; - case IPv6: - /* IPv6 */ - ip6_elems = talloc_zero_size(fi, sizeof(struct gprs_ns_ie_ip6_elem) * count); - if (!ip6_elems) - goto err; - - gss->ip6_local = ip6_elems; - - llist_for_each_entry(bind, &nsi->binding, list) { - if (!gprs_ns2_is_ip_bind(bind)) - continue; - - sa = gprs_ns2_ip_bind_sockaddr(bind); - if (!sa) - continue; - - if (sa->u.sas.ss_family != AF_INET6) - continue; - - /* check if this is an specific bind */ - if (IN6_IS_ADDR_UNSPECIFIED(&sa->u.sin6.sin6_addr)) { - if (osmo_sockaddr_local_ip(&local, remote)) - continue; - - ip6_elems->ip_addr = local.u.sin6.sin6_addr; - } else { - ip6_elems->ip_addr = sa->u.sin6.sin6_addr; - } - - ip6_elems->udp_port = sa->u.sin.sin_port; - ip6_elems->sig_weight = 2; - ip6_elems->data_weight = 1; - - ip6_elems++; - } - gss->num_ip6_local = count; - gss->num_max_ip6_remote = 4; - gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * gss->num_ip6_local, 8); - break; - } - - return osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_START, NULL); - -err: - return -1; -} - /*! main entry point for receiving SNS messages from the network. * \param[in] nsvc NS-VC on which the message was received * \param[in] msg message buffer of the IP-SNS message @@ -1490,6 +1513,138 @@ } } +static struct sns_endpoint *ns2_get_sns_endpoint(struct ns2_sns_state *state, + const struct osmo_sockaddr *saddr) +{ + struct sns_endpoint *endpoint; + + llist_for_each_entry(endpoint, &state->sns_endpoints, list) { + if (!osmo_sockaddr_cmp(saddr, &endpoint->saddr)) + return endpoint; + } + + return NULL; +} + +/*! gprs_ns2_sns_add_endpoint + * \param[in] nse + * \param[in] sockaddr + * \return + */ +int gprs_ns2_sns_add_endpoint(struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *saddr) +{ + struct ns2_sns_state *gss; + struct sns_endpoint *endpoint; + bool do_selection = false; + + if (nse->ll != GPRS_NS2_LL_UDP) { + return -EINVAL; + } + + if (nse->dialect != NS2_DIALECT_SNS) { + return -EINVAL; + } + + gss = nse->bss_sns_fi->priv; + + if (ns2_get_sns_endpoint(gss, saddr)) + return -EADDRINUSE; + + endpoint = talloc_zero(nse->bss_sns_fi->priv, struct sns_endpoint); + if (!endpoint) + return -ENOMEM; + + endpoint->saddr = *saddr; + if (llist_empty(&gss->sns_endpoints)) + do_selection = true; + + llist_add_tail(&endpoint->list, &gss->sns_endpoints); + if (do_selection) + osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + + return 0; +} + +/*! gprs_ns2_sns_del_endpoint + * \param[in] nse + * \param[in] sockaddr + * \return 0 on success, otherwise < 0 + */ +int gprs_ns2_sns_del_endpoint(struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *saddr) +{ + struct ns2_sns_state *gss; + struct sns_endpoint *endpoint; + + if (nse->ll != GPRS_NS2_LL_UDP) { + return -EINVAL; + } + + if (nse->dialect != NS2_DIALECT_SNS) { + return -EINVAL; + } + + gss = nse->bss_sns_fi->priv; + endpoint = ns2_get_sns_endpoint(gss, saddr); + if (!endpoint) + return -ENOENT; + + /* if this is an unused SNS endpoint it's done */ + if (gss->initial != endpoint) { + llist_del(&endpoint->list); + talloc_free(endpoint); + return 0; + } + + /* 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." + "Closing all NS-VC and restart SNS-SIZE procedure" + "with a remaining SNS endpoint.\n"); + + /* Continue with the next endpoint in the list. + * Special case if the endpoint is at the start or end of the list */ + if (endpoint->list.prev == &gss->sns_endpoints || + endpoint->list.next == &gss->sns_endpoints) + gss->initial = NULL; + else + gss->initial = llist_entry(endpoint->list.next->prev, + struct sns_endpoint, + list); + + llist_del(&endpoint->list); + gprs_ns2_free_nsvcs(nse); + talloc_free(endpoint); + + return 0; +} + +/*! gprs_ns2_sns_count + * \param[in] nse NS Entity whose IP-SNS endpoints shall be printed + * \return the count of endpoints or < 0 if NSE doesn't contain sns. + */ +int gprs_ns2_sns_count(struct gprs_ns2_nse *nse) +{ + struct ns2_sns_state *gss; + struct sns_endpoint *endpoint; + int count = 0; + + if (nse->ll != GPRS_NS2_LL_UDP) { + return -EINVAL; + } + + if (nse->dialect != NS2_DIALECT_SNS) { + return -EINVAL; + } + + gss = nse->bss_sns_fi->priv; + llist_for_each_entry(endpoint, &gss->sns_endpoints, list) + count++; + + return count; +} + /* initialize osmo_ctx on main tread */ static __attribute__((constructor)) void on_dso_load_ctx(void) { diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 3eb8116..9058279 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -514,3 +514,52 @@ return rc; } + +/*! Count UDP binds compatible with remote */ +int ns2_ip_count_bind(struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *sa; + int count = 0; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!gprs_ns2_is_ip_bind(bind)) + continue; + + sa = gprs_ns2_ip_bind_sockaddr(bind); + if (!sa) + continue; + + if (sa->u.sa.sa_family == remote->u.sa.sa_family) + count++; + } + + return count; +} + +/* return the matching bind by index */ +struct gprs_ns2_vc_bind *ns2_ip_get_bind_by_index(struct gprs_ns2_inst *nsi, + struct osmo_sockaddr *remote, + int index) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *sa; + int i = 0; + + llist_for_each_entry(bind, &nsi->binding, list) { + if (!gprs_ns2_is_ip_bind(bind)) + continue; + + sa = gprs_ns2_ip_bind_sockaddr(bind); + if (!sa) + continue; + + if (sa->u.sa.sa_family == remote->u.sa.sa_family) { + if (index == i) + return bind; + i++; + } + } + + return NULL; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index d4114df..59405b0 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -138,7 +138,6 @@ gprs_ns2_ip_connect; gprs_ns2_ip_connect2; gprs_ns2_ip_connect_inactive; -gprs_ns2_ip_connect_sns; gprs_ns2_ip_vc_local; gprs_ns2_ip_vc_remote; gprs_ns2_ip_vc_equal; @@ -159,6 +158,8 @@ gprs_ns2_recv_prim; gprs_ns2_reset_persistent_nsvcs; gprs_ns2_start_alive_all_nsvcs; +gprs_ns2_sns_add_endpoint; +gprs_ns2_sns_del_endpoint; gprs_ns2_vty_create; gprs_ns2_vty_init; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Gerrit-Change-Number: 21573 Gerrit-PatchSet: 12 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 Dec 15 11:46:49 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: use different binds for the initial connection In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21574 ) Change subject: gprs_ns2_sns: use different binds for the initial connection ...................................................................... gprs_ns2_sns: use different binds for the initial connection In case the first bind is not working the SNS would never build a succesful connection to the SGSN. Iterate over all binds by using an offset. Instead of tracking the binds use an offset instead of a direct pointer. This might result in skipping the order of the next bind. Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb --- M src/gb/gprs_ns2_sns.c 1 file changed, 13 insertions(+), 2 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_sns.c b/src/gb/gprs_ns2_sns.c index b7fbbf8..0676b61 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -117,6 +117,8 @@ struct sns_endpoint *initial; /* all SNS PDU will be sent over this nsvc */ struct gprs_ns2_vc *sns_nsvc; + /* iterate over the binds after all remote has been tested */ + int bind_offset; /* local configuration to send to the remote end */ struct gprs_ns_ie_ip4_elem *ip4_local; @@ -714,9 +716,15 @@ return; } - bind = ns2_ip_get_bind_by_index(nsi, remote, 0); + bind = ns2_ip_get_bind_by_index(nsi, remote, gss->bind_offset); if (!bind) { - return; + if (gss->bind_offset) { + gss->bind_offset = 0; + bind = ns2_ip_get_bind_by_index(nsi, remote, gss->bind_offset); + } + + if (!bind) + return; } /* setup the NSVC */ @@ -1335,9 +1343,12 @@ return; } else if (!gss->initial) { gss->initial = llist_first_entry(&gss->sns_endpoints, struct sns_endpoint, list); + gss->bind_offset = 0; } else if (gss->initial->list.next == &gss->sns_endpoints) { /* last entry, continue with first */ gss->initial = llist_first_entry(&gss->sns_endpoints, struct sns_endpoint, list); + gss->bind_offset++; + gss->bind_offset %= ns2_ip_count_bind(nse->nsi, &gss->initial->saddr); } else { /* next element is an entry */ gss->initial = llist_entry(gss->initial->list.next, struct sns_endpoint, list); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4a0a0608dac6ad8b5769ada2a14ca23f61eb0bcb Gerrit-Change-Number: 21574 Gerrit-PatchSet: 12 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 Dec 15 11:46:50 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: introduce SNS Size/Config retries In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21575 ) Change subject: gprs_ns2_sns: introduce SNS Size/Config retries ...................................................................... gprs_ns2_sns: introduce SNS Size/Config retries According to 3GPP Size and Config procedure can have retries in case the timeout of the procedure runs out. Change-Id: I00e9023a6e7adc6ad48f4016fcaef189ac8b353e --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 3 files changed, 19 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 5e5dd83..fd016e6 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1153,6 +1153,8 @@ nsi->timeout[NS_TOUT_TNS_ALIVE] = 3; nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES] = 10; nsi->timeout[NS_TOUT_TSNS_PROV] = 3; /* 1..10 */ + nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES] = 3; + nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES] = 3; return nsi; } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index d12c663..9e63c70 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -15,10 +15,8 @@ struct gprs_ns2_vc_driver; struct gprs_ns2_vc_bind; - - -#define NS_TIMERS_COUNT 8 -#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov)" +#define NS_TIMERS_COUNT 10 +#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-prov-retries)" #define NS_TIMERS_HELP \ "(un)blocking Timer (Tns-block) timeout\n" \ "(un)blocking Timer (Tns-block) number of retries\n" \ @@ -27,7 +25,9 @@ "Test Timer (Tns-test) timeout\n" \ "Alive Timer (Tns-alive) timeout\n" \ "Alive Timer (Tns-alive) number of retries\n" \ - "SNS Provision Timer (Tsns-prov) timeout\n" + "SNS Provision Timer (Tsns-prov) timeout\n" \ + "SNS Size number of retries\n" \ + "SNS Config number of retries\n" \ /* Educated guess - LLC user payload is 1500 bytes plus possible headers */ #define NS_ALLOC_SIZE 3072 @@ -42,6 +42,8 @@ NS_TOUT_TNS_ALIVE, NS_TOUT_TNS_ALIVE_RETRIES, NS_TOUT_TSNS_PROV, + NS_TOUT_TSNS_SIZE_RETRIES, + NS_TOUT_TSNS_CONFIG_RETRIES, }; enum nsvc_timer_mode { diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 0676b61..f25d93a 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -119,6 +119,8 @@ struct gprs_ns2_vc *sns_nsvc; /* iterate over the binds after all remote has been tested */ int bind_offset; + /* timer N */ + int N; /* local configuration to send to the remote end */ struct gprs_ns_ie_ip4_elem *ip4_local; @@ -1304,14 +1306,22 @@ static int ns2_sns_fsm_bss_timer_cb(struct osmo_fsm_inst *fi) { + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); struct gprs_ns2_inst *nsi = nse->nsi; + gss->N++; switch (fi->T) { case 1: + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES]) + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); break; case 2: + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); break; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e9023a6e7adc6ad48f4016fcaef189ac8b353e Gerrit-Change-Number: 21575 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus 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 Dec 15 11:46:51 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2: make nsvc argument const In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21652 ) Change subject: gprs_ns2: make nsvc argument const ...................................................................... gprs_ns2: make nsvc argument const The nsvc isn't change. It can be const Change-Id: Ie5052f02781d7fdc639456c6f02515a927cee1f3 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_fr.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: 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 8dd5699..ef9a56a 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -245,7 +245,7 @@ int dscp, struct gprs_ns2_vc_bind **result); int gprs_ns2_is_frgre_bind(struct gprs_ns2_vc_bind *bind); -uint16_t gprs_ns2_fr_nsvc_dlci(struct gprs_ns2_vc *nsvc); +uint16_t gprs_ns2_fr_nsvc_dlci(const struct gprs_ns2_vc *nsvc); struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_nse( struct gprs_ns2_nse *nse, diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index b62b5af..925d5ed 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -714,7 +714,7 @@ * \param[in] nsvc * \return the dlci or 0 on error. 0 is not a valid dlci. */ -uint16_t gprs_ns2_fr_nsvc_dlci(struct gprs_ns2_vc *nsvc) +uint16_t gprs_ns2_fr_nsvc_dlci(const struct gprs_ns2_vc *nsvc) { struct priv_vc *vcpriv; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie5052f02781d7fdc639456c6f02515a927cee1f3 Gerrit-Change-Number: 21652 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder 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 Dec 15 11:46:52 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:46:52 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21653 ) Change subject: gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role ...................................................................... gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role Change-Id: I277b805e588ba68536789b4a64a428ea0b31728a --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2_fr.c 2 files changed, 16 insertions(+), 0 deletions(-) Approvals: laforge: 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 ef9a56a..0b3ea1f 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -182,6 +182,7 @@ struct gprs_ns2_inst *nsi, const char *netif); const char *gprs_ns2_fr_bind_netif(struct gprs_ns2_vc_bind *bind); +enum osmo_fr_role gprs_ns2_fr_bind_role(struct gprs_ns2_vc_bind *bind); int gprs_ns2_fr_bind(struct gprs_ns2_inst *nsi, const char *name, const char *netif, diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 925d5ed..8147f66 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -558,6 +558,21 @@ return rc; } +/*! Return the frame relay role of a bind + * \param[in] bind The bind + * \return the frame relay role or -EINVAL if bind is not frame relay + */ +enum osmo_fr_role gprs_ns2_fr_bind_role(struct gprs_ns2_vc_bind *bind) +{ + struct priv_bind *priv; + + if (bind->driver != &vc_driver_fr) + return -EINVAL; + + priv = bind->priv; + return priv->link->role; +} + /*! Return the network interface of the bind * \param[in] bind The bind * \return the network interface -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I277b805e588ba68536789b4a64a428ea0b31728a Gerrit-Change-Number: 21653 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus 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 Dec 15 11:52:12 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:52:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21724 ) Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21724/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21724/2/src/gb/gprs_ns2.c at 807 PS2, Line 807: rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); > so you may end up passing &tp in an incorrect/unknwon state here? no, because tp get's always initialized. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 11:52:12 +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 Dec 15 11:52:52 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 15 Dec 2020 11:52:52 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21724 ) Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 11:52: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 Dec 15 11:55:49 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 15 Dec 2020 11:55:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't pass the return code of reject_status_msg In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21725 ) Change subject: gprs_ns2: don't pass the return code of reject_status_msg ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I105363957e59c41a68835b7a9830c048dba73e93 Gerrit-Change-Number: 21725 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 11:55: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 Dec 15 11:56:29 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 11:56:29 +0000 Subject: Change in libosmocore[master]: gprs_ns2: on ns2_create_vc parse the tlv before using it In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21723 ) Change subject: gprs_ns2: on ns2_create_vc parse the tlv before using it ...................................................................... gprs_ns2: on ns2_create_vc parse the tlv before using it reject_status_msg require a parsed tlv. Otherwise an uninitialized tlv is passed. Change-Id: I82cab518966b8b49c3522ff5f7b6f82d1027a526 --- M src/gb/gprs_ns2.c 1 file changed, 9 insertions(+), 9 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.c b/src/gb/gprs_ns2.c index fd016e6..9d5a97c 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -798,6 +798,15 @@ if (msg->len < sizeof(struct gprs_ns_hdr)) return GPRS_NS2_CS_ERROR; + rc = ns2_tlv_parse(&tp, nsh->data, + msgb_l2len(msg) - sizeof(*nsh), 0, 0); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " + "TLV Parse\n", rc); + /* TODO: send invalid message back */ + return GPRS_NS2_CS_REJECTED; + } + switch (nsh->pdu_type) { case NS_PDUT_STATUS: /* Do not respond, see 3GPP TS 08.16, 7.5.1 */ @@ -840,15 +849,6 @@ return GPRS_NS2_CS_REJECTED; } - rc = ns2_tlv_parse(&tp, nsh->data, - msgb_l2len(msg) - sizeof(*nsh), 0, 0); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " - "TLV Parse\n", rc); - /* TODO: send invalid message back */ - return GPRS_NS2_CS_REJECTED; - } - 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)) { LOGP(DLNS, LOGL_ERROR, "NS RESET Missing mandatory IE\n"); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82cab518966b8b49c3522ff5f7b6f82d1027a526 Gerrit-Change-Number: 21723 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 Tue Dec 15 12:00:52 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 12:00:52 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api 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/+/20397 to look at the new patch set (#9). 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, 117 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/97/20397/9 -- 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: 9 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 Tue Dec 15 12:09:58 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 12:09:58 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api 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/+/20397 to look at the new patch set (#10). 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, 119 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/97/20397/10 -- 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: 10 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 Tue Dec 15 12:13:14 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 15 Dec 2020 12:13:14 +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 11: Code-Review+1 -- 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: 11 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, 15 Dec 2020 12:13: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 Dec 15 13:00:36 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 15 Dec 2020 13:00:36 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21705/4/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21705/4/src/gbproxy/gb_proxy_vty.c at 50 PS4, Line 50: #define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" s/MSC/SGSN here and below -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 15 Dec 2020 13:00:36 +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 Dec 15 16:02:56 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 16:02:56 +0000 Subject: Change in osmo-pcu[master]: ns: follow ns2 dialect changes References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21728 ) Change subject: ns: follow ns2 dialect changes ...................................................................... ns: follow ns2 dialect changes NS2 introduce a ns dialect to differentiate between the 4 possible dialects. Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc --- M src/bts.h M src/gprs_bssgp_pcu.cpp M src/pcu_vty.c 3 files changed, 8 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/28/21728/1 diff --git a/src/bts.h b/src/bts.h index fd52067..c3880f4 100644 --- a/src/bts.h +++ b/src/bts.h @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -170,7 +171,7 @@ char *pcu_sock_path; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ - bool gb_dialect_sns; + 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. */ diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 934d8fc..4d24d2e 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -984,7 +984,7 @@ bts->nse = gprs_ns2_nse_by_nsei(bts->nsi, nsei); if (!bts->nse) bts->nse = gprs_ns2_create_nse(bts->nsi, nsei, - GPRS_NS2_LL_UDP); + GPRS_NS2_LL_UDP, bts->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->gb_dialect_sns) { + if (bts->ns_dialect == NS2_DIALECT_SNS) { rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); if (!rc) return rc; @@ -1066,7 +1066,7 @@ gprs_ns2_free_nses(bts->nsi); gprs_ns2_free_binds(bts->nsi); rc = ns_create_nsvc(bts, nsei, local, remote, nsvci, valid); - } else if (bts->gb_dialect_sns) { + } else if (bts->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/pcu_vty.c b/src/pcu_vty.c index bf45686..800079c 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -246,7 +246,7 @@ } } - if (bts->gb_dialect_sns) + if (bts->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); @@ -1131,11 +1131,9 @@ struct gprs_rlcmac_bts *bts = bts_main_data(); if (!strcmp(argv[0], "ip-sns")) { - bts->gb_dialect_sns = true; - gprs_ns2_vty_force_vc_mode(true, NS2_VC_MODE_ALIVE, "gb-dialect is ip-sns"); + bts->ns_dialect = NS2_DIALECT_SNS; } else { - bts->gb_dialect_sns = false; - gprs_ns2_vty_force_vc_mode(false, 0, NULL); + bts->ns_dialect = NS2_DIALECT_IPACCESS; } return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 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 Dec 15 16:02:57 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 16:02:57 +0000 Subject: Change in osmo-pcu[master]: ns2: follow changes to add a unique name to all binds References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21729 ) Change subject: ns2: follow changes to add a unique name to all binds ...................................................................... ns2: follow changes to add a unique name to all binds Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/29/21729/1 diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 4d24d2e..b29413d 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -957,6 +957,7 @@ bool nsvcs = false; struct gprs_ns2_vc *nsvc; struct gprs_ns2_vc_bind *bind[PCU_IF_NUM_NSVC] = { }; + char name[5]; if (!valid) return -1; @@ -966,7 +967,8 @@ continue; if (!gprs_ns2_ip_bind_by_sockaddr(bts->nsi, &local[i])) { - rc = gprs_ns2_ip_bind(bts->nsi, &local[i], 0, &bind[i]); + snprintf(name, sizeof(name), "pcu%d", i); + rc = gprs_ns2_ip_bind(bts->nsi, name, &local[i], 0, &bind[i]); if (rc < 0) { LOGP(DBSSGP, LOGL_ERROR, "Failed to bind to %s\n", osmo_sockaddr_to_str(&local[i])); continue; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 Gerrit-Change-Number: 21729 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 Dec 15 16:02:57 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 16:02:57 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 sns api changes References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21730 ) Change subject: ns2: follow ns2 sns api changes ...................................................................... ns2: follow ns2 sns api changes Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa --- M src/gprs_bssgp_pcu.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/30/21730/1 diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index b29413d..f966a79 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -1000,7 +1000,7 @@ /* 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) { - rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); + rc = gprs_ns2_sns_add_endpoint(bts->nse, &remote[i]); if (!rc) return rc; else -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa Gerrit-Change-Number: 21730 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 Dec 15 16:03:21 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 16:03:21 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 dialect changes In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-pcu/+/21728 ) Change subject: ns2: follow ns2 dialect changes ...................................................................... ns2: follow ns2 dialect changes NS2 introduce a ns dialect to differentiate between the 4 possible dialects. Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc --- M src/bts.h M src/gprs_bssgp_pcu.cpp M src/pcu_vty.c 3 files changed, 8 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/28/21728/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 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 Tue Dec 15 16:03:21 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 16:03:21 +0000 Subject: Change in osmo-pcu[master]: ns2: follow changes to add a unique name to all binds In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-pcu/+/21729 ) Change subject: ns2: follow changes to add a unique name to all binds ...................................................................... ns2: follow changes to add a unique name to all binds Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/29/21729/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 Gerrit-Change-Number: 21729 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 Tue Dec 15 16:03:21 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 16:03:21 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 sns api changes In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-pcu/+/21730 ) Change subject: ns2: follow ns2 sns api changes ...................................................................... ns2: follow ns2 sns api changes Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa --- M src/gprs_bssgp_pcu.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/30/21730/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa Gerrit-Change-Number: 21730 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 Tue Dec 15 16:07:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 16:07:48 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 dialect changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21728 ) Change subject: ns2: follow ns2 dialect changes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 15 Dec 2020 16:07: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 Dec 15 16:09:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 16:09:02 +0000 Subject: Change in osmo-pcu[master]: ns2: follow changes to add a unique name to all binds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21729 ) Change subject: ns2: follow changes to add a unique name to all binds ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/21729/2/src/gprs_bssgp_pcu.cpp File src/gprs_bssgp_pcu.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/21729/2/src/gprs_bssgp_pcu.cpp at 960 PS2, Line 960: char name[5]; so on tenth byte we run out of space? I think we can afford setting it to 32 or alike :) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 Gerrit-Change-Number: 21729 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 15 Dec 2020 16:09: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 Dec 15 16:09:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 16:09:30 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 sns api changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21730 ) Change subject: ns2: follow ns2 sns api changes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa Gerrit-Change-Number: 21730 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 15 Dec 2020 16:09: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 Dec 15 16:28:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 16:28:39 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 dialect changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21728 ) Change subject: ns2: follow ns2 dialect changes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 16: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 Tue Dec 15 16:29:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 16:29:14 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 sns api changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21730 ) Change subject: ns2: follow ns2 sns api changes ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa Gerrit-Change-Number: 21730 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 15 Dec 2020 16:29: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 Dec 15 17:01:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 15 Dec 2020 17:01:07 +0000 Subject: Change in osmo-bsc[master]: Use rest_octets functionalities from libosmocore In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21711 ) Change subject: Use rest_octets functionalities from libosmocore ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 Gerrit-Change-Number: 21711 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 15 Dec 2020 17:01: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 Dec 15 18:07:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 18:07:21 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Use green per-port LED to indicate alignment status References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21731 ) Change subject: icE1usb fw: Use green per-port LED to indicate alignment status ...................................................................... icE1usb fw: Use green per-port LED to indicate alignment status Whenever Rx is aligned, the green LED is permanently on. Whenever Rx is not aligned, the green LED is blinking. What's missing is to check for E1 clock ticks and turn the LED off completely if there are no clock ticks. Change-Id: I42d53544858dbbbae5206d9a62b08672966c9ebf --- M doc/manuals/chapters/firmware.adoc M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/e1.h M firmware/ice40-riscv/icE1usb/misc.c 4 files changed, 51 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/31/21731/1 diff --git a/doc/manuals/chapters/firmware.adoc b/doc/manuals/chapters/firmware.adoc index d0542bd..254e235 100644 --- a/doc/manuals/chapters/firmware.adoc +++ b/doc/manuals/chapters/firmware.adoc @@ -128,9 +128,17 @@ === Use of the E1 Interface LEDs -Each E1 interface has two LEDs integrated into the RJ45 connector. +Each E1 interface has two LEDs integrated into the RJ45 connector. They +are (starting to get) used by the firmware to indicate status +information to the user. -FIXME: describe how they are used. +[options="header"] +|=== +|Color | Pattern | Meaning +|Green | Blinking (slow) | E1 Receiver attempting to align +|Green | On | E1 Receiver fully aligned +|=== + === Use of the Multi-Color RGB LED diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index b89b7c7..9ad2798 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -422,10 +422,14 @@ return; /* HACK: LED link status */ - if (e1_regs->rx.csr & E1_RX_SR_ALIGNED) + 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); - else + } 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); + } /* Recover any done TX BD */ while ( (bd = e1_regs->tx.bd) & E1_BD_VALID ) { diff --git a/firmware/ice40-riscv/icE1usb/e1.h b/firmware/ice40-riscv/icE1usb/e1.h index c56cf0c..c6b6fea 100644 --- a/firmware/ice40-riscv/icE1usb/e1.h +++ b/firmware/ice40-riscv/icE1usb/e1.h @@ -19,3 +19,19 @@ volatile uint8_t *e1_data_ptr(int mf, int frame, int ts); unsigned int e1_data_ofs(int mf, int frame, int ts); + +enum e1_platform_led { + E1P_LED_GREEN = 0, + E1P_LED_YELLOW = 1, +}; + +enum e1_platform_led_state { + E1P_LED_ST_OFF = 0, + E1P_LED_ST_ON = 1, + E1P_LED_ST_BLINK = 2, + E1P_LED_ST_BLINK_FAST = 3 +}; + +/* external function provided by the platform; used by E1 driver to control LEDs */ +extern void e1_platform_led_set(uint8_t port, enum e1_platform_led led, + enum e1_platform_led_state state); diff --git a/firmware/ice40-riscv/icE1usb/misc.c b/firmware/ice40-riscv/icE1usb/misc.c index dca126a..3117be9 100644 --- a/firmware/ice40-riscv/icE1usb/misc.c +++ b/firmware/ice40-riscv/icE1usb/misc.c @@ -10,6 +10,7 @@ #include "config.h" #include "misc.h" +#include "e1.h" struct misc { @@ -51,6 +52,24 @@ misc_regs->e1_led = (enable ? 0x100 : 0x000) | cfg; } +void +e1_platform_led_set(uint8_t port, enum e1_platform_led led, + enum e1_platform_led_state state) +{ + uint32_t tmp; + unsigned int shift; + + if (port >= 2) + return; + + shift = 4*port + 2*led; + + tmp = misc_regs->e1_led; + tmp &= ~(3 << shift); + tmp |= 0x100 | ((state & 3) << shift); + misc_regs->e1_led = tmp; +} + uint16_t e1_tick_read(void) { -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21731 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: I42d53544858dbbbae5206d9a62b08672966c9ebf Gerrit-Change-Number: 21731 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 Dec 15 18:07:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 18:07:22 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb: add port number argument to e1_tick_read() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21732 ) Change subject: icE1usb: add port number argument to e1_tick_read() ...................................................................... icE1usb: add port number argument to e1_tick_read() Change-Id: I0f4548b5623a7eaf74af3076c301e029bb3933da --- M firmware/ice40-riscv/icE1usb/misc.c M firmware/ice40-riscv/icE1usb/misc.h M firmware/ice40-riscv/icE1usb/usb_e1.c 3 files changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/32/21732/1 diff --git a/firmware/ice40-riscv/icE1usb/misc.c b/firmware/ice40-riscv/icE1usb/misc.c index 3117be9..25fb7f4 100644 --- a/firmware/ice40-riscv/icE1usb/misc.c +++ b/firmware/ice40-riscv/icE1usb/misc.c @@ -71,9 +71,11 @@ } uint16_t -e1_tick_read(void) +e1_tick_read(uint8_t port) { - return misc_regs->e1_tick[0].tx; + if (port >= 2) + return 0xffff; + return misc_regs->e1_tick[port].tx; } void diff --git a/firmware/ice40-riscv/icE1usb/misc.h b/firmware/ice40-riscv/icE1usb/misc.h index 69c0da7..b405b02 100644 --- a/firmware/ice40-riscv/icE1usb/misc.h +++ b/firmware/ice40-riscv/icE1usb/misc.h @@ -27,6 +27,6 @@ void pdm_set(int chan, bool enable, unsigned value, bool normalize); void e1_led_set(bool enable, uint8_t cfg); -uint16_t e1_tick_read(void); +uint16_t e1_tick_read(uint8_t port); void reboot(int fw); diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index 151d902..b4d4f81 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -42,7 +42,7 @@ unsigned int level; /* Compute real E1 tick count (with safety against bad values) */ - ticks = e1_tick_read(); + ticks = e1_tick_read(0); val = (ticks - ticks_prev) & 0xffff; ticks_prev = ticks; if ((val < 7168) | (val > 9216)) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21732 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: I0f4548b5623a7eaf74af3076c301e029bb3933da Gerrit-Change-Number: 21732 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 Dec 15 18:07:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 18:07:22 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Turn green LED off completely if no E1 signal is received References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 ) Change subject: icE1usb fw: Turn green LED off completely if no E1 signal is received ...................................................................... icE1usb fw: Turn green LED off completely if no E1 signal is received We don't really have an idea of the analog signal level and hence no true LOS detection. However, we can check the Rx clock tick counter to detect if there is at least still any kind of signal at all or not. Change-Id: Ibd23cbf1d044b46d8fed48fb97622e6ef980b99f --- M doc/manuals/chapters/firmware.adoc M firmware/ice40-riscv/icE1usb/e1.c 2 files changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/33/21733/1 diff --git a/doc/manuals/chapters/firmware.adoc b/doc/manuals/chapters/firmware.adoc index 254e235..798f5f4 100644 --- a/doc/manuals/chapters/firmware.adoc +++ b/doc/manuals/chapters/firmware.adoc @@ -135,6 +135,7 @@ [options="header"] |=== |Color | Pattern | Meaning +|Green | Off | E1 Receiver detects no signal |Green | Blinking (slow) | E1 Receiver attempting to align |Green | On | E1 Receiver fully aligned |=== diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 9ad2798..6f85d19 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -16,6 +16,8 @@ #include "dma.h" #include "led.h" // FIXME +#include "misc.h" // needed to get the E1 tick for "LOS" detection + // Hardware // -------- @@ -283,6 +285,7 @@ struct e1_fifo fifo; int in_flight; enum e1_pipe_state state; + uint16_t last_tick; } rx; struct { @@ -426,8 +429,12 @@ e1_platform_led_set(0, E1P_LED_GREEN, E1P_LED_ST_ON); led_color(0, 48, 0); } else { - e1_platform_led_set(0, E1P_LED_GREEN, E1P_LED_ST_BLINK); - /* TODO: completely off if rx tick counter not incrementing */ + uint16_t cur_tick = e1_tick_read(0); + if (g_e1.rx.last_tick == cur_tick) + e1_platform_led_set(0, E1P_LED_GREEN, E1P_LED_ST_OFF); + else + e1_platform_led_set(0, E1P_LED_GREEN, E1P_LED_ST_BLINK); + g_e1.rx.last_tick = cur_tick; led_color(48, 0, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 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: Ibd23cbf1d044b46d8fed48fb97622e6ef980b99f Gerrit-Change-Number: 21733 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 Dec 15 18:44:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 18:44:52 +0000 Subject: Change in osmo-bsc[master]: Use rest_octets functionalities from libosmocore In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21711 ) Change subject: Use rest_octets functionalities from libosmocore ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 Gerrit-Change-Number: 21711 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 15 Dec 2020 18:44: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 Dec 15 18:49:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 15 Dec 2020 18:49:31 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/20397 ) Change subject: sgsn: Use the new NS2 api ...................................................................... Patch Set 11: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/11/src/sgsn/gprs_gb.c File src/sgsn/gprs_gb.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/11/src/sgsn/gprs_gb.c at 117 PS11, Line 117: osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, no line break needed, here and in many other occasions, at least that's my feeling https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/11/src/sgsn/gprs_gb.c at 143 PS11, Line 143: LOGP(DGPRS, LOGL_NOTICE, no line break needed (at leat not for four lines), here and in many other occasions, at least that's my feeling https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/11/src/sgsn/gprs_gb.c at 184 PS11, Line 184: get_value_string(osmo_prim_op_names, oph->operation), likewise -- 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: 11 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, 15 Dec 2020 18: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 Tue Dec 15 19:21:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 15 Dec 2020 19:21:44 +0000 Subject: Change in osmo-bsc[master]: Use rest_octets functionalities from libosmocore In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21711 ) Change subject: Use rest_octets functionalities from libosmocore ...................................................................... Use rest_octets functionalities from libosmocore libosmocore > 1.4.0 is required (master, not yet released) since some fixes done in osmo-bsc code where not cherry-picked to libosmocore APIs. Depends: libosmocore.git I2bf5635b8536b11d69774d17ac1908019633e3af Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 --- M TODO-RELEASE M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_data.h D include/osmocom/bsc/rest_octets.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_vty.c D src/osmo-bsc/rest_octets.c M src/osmo-bsc/system_information.c M tests/gsm0408/Makefile.am M tests/handover/Makefile.am 11 files changed, 54 insertions(+), 1,038 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index 6a39a21..4760012 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -9,4 +9,4 @@ #library what description / commit summary line manual needs common chapter cs7-config.adoc, vty_cpu_sched.adoc from osmo-gsm-manuals > 0.3.0 osmo-bsc Mobile Identity Coding OsmoBSC is stricter in rejecting invalid coding of Mobile Identity IEs -libosmocore >1.4.0 (1.4.1?) need BSSMAP-LE, BSSLAP, GAD coding +libosmocore >1.4.0 (1.4.1?) need BSSMAP-LE, BSSLAP, GAD coding, osmo_gsm48_si* diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index e2d5db8..7ca99fa 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -51,7 +51,6 @@ pcu_if.h \ pcuif_proto.h \ bssmap_reset.h \ - rest_octets.h \ rs232.h \ signal.h \ system_information.h \ diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 2b05418..d2f1307 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -390,7 +390,7 @@ struct gsm48_rach_control rach_control; uint8_t ncc_permitted; struct gsm48_cell_sel_par cell_sel_par; - struct gsm48_si_selection_params cell_ro_sel_par; /* rest octet */ + struct osmo_gsm48_si_selection_params cell_ro_sel_par; /* rest octet */ struct gsm48_cell_options cell_options; struct gsm48_control_channel_descr chan_desc; struct bitvec neigh_list; diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 584c0e6..3472f39 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -21,7 +21,7 @@ #include -#include +#include #include #include diff --git a/include/osmocom/bsc/rest_octets.h b/include/osmocom/bsc/rest_octets.h deleted file mode 100644 index 7df66f7..0000000 --- a/include/osmocom/bsc/rest_octets.h +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef _REST_OCTETS_H -#define _REST_OCTETS_H - -#include -#include - -struct gsm_bts; - -/* generate SI1 rest octets */ -int rest_octets_si1(uint8_t *data, uint8_t *nch_pos, int is1800_net); -int rest_octets_si2quater(uint8_t *data, struct gsm_bts *bts); -int rest_octets_si2ter(uint8_t *data); -int rest_octets_si2bis(uint8_t *data); -int rest_octets_si6(uint8_t *data, bool is1800_net); - -struct gsm48_si_selection_params { - uint16_t penalty_time:5, - temp_offs:3, - cell_resel_off:6, - cbq:1, - present:1; -}; - -struct gsm48_si_power_offset { - uint8_t power_offset:2, - present:1; -}; - -struct gsm48_si3_gprs_ind { - uint8_t si13_position:1, - ra_colour:3, - present:1; -}; - -struct gsm48_lsa_params { - uint32_t prio_thr:3, - lsa_offset:3, - mcc:12, - mnc:12; - unsigned int present; -}; - -struct gsm48_si_ro_info { - struct gsm48_si_selection_params selection_params; - struct gsm48_si_power_offset power_offset; - bool si2ter_indicator; - bool early_cm_ctrl; - struct { - uint8_t where:3, - present:1; - } scheduling; - struct gsm48_si3_gprs_ind gprs_ind; - /* SI 3 specific */ - bool early_cm_restrict_3g; - bool si2quater_indicator; - /* SI 4 specific */ - struct gsm48_lsa_params lsa_params; - uint16_t cell_id; - uint8_t break_ind; /* do we have SI7 + SI8 ? */ -}; - - -/* Generate SI3 Rest Octests (Chapter 10.5.2.34 / Table 10.4.72) */ -int rest_octets_si3(uint8_t *data, const struct gsm48_si_ro_info *si3); - -/* Generate SI4 Rest Octets (Chapter 10.5.2.35) */ -int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4, int len); - -/* TS 03.60 Chapter 6.3.3.1: Network Mode of Operation */ -enum gprs_nmo { - GPRS_NMO_I = 0, /* CS pagin on GPRS paging or traffic channel */ - GPRS_NMO_II = 1, /* all paging on CCCH */ - GPRS_NMO_III = 2, /* no paging coordination */ -}; - -/* TS 04.60 12.24 */ -struct gprs_cell_options { - enum gprs_nmo nmo; - /* T3168: wait for packet uplink assignment message */ - uint32_t t3168; /* in milliseconds */ - /* T3192: wait for release of the TBF after reception of the final block */ - uint32_t t3192; /* in milliseconds */ - uint32_t drx_timer_max;/* in seconds */ - uint32_t bs_cv_max; - bool ctrl_ack_type_use_block; /* use PACKET CONTROL ACKNOWLEDGMENT */ - - uint8_t ext_info_present; - struct { - uint8_t egprs_supported; - uint8_t use_egprs_p_ch_req; - uint8_t bep_period; - uint8_t pfc_supported; - uint8_t dtm_supported; - uint8_t bss_paging_coordination; - } ext_info; -}; - -/* TS 04.60 Table 12.9.2 */ -struct gprs_power_ctrl_pars { - uint8_t alpha; - uint8_t t_avg_w; - uint8_t t_avg_t; - uint8_t pc_meas_chan; - uint8_t n_avg_i; -}; - -struct gsm48_si13_info { - struct gprs_cell_options cell_opts; - struct gprs_power_ctrl_pars pwr_ctrl_pars; - uint8_t bcch_change_mark; - uint8_t si_change_field; - uint8_t rac; - uint8_t spgc_ccch_sup; - uint8_t net_ctrl_ord; - uint8_t prio_acc_thr; -}; - -/* Generate SI13 Rest Octests (Chapter 10.5.2.37b) */ -int rest_octets_si13(uint8_t *data, const struct gsm48_si13_info *si13); - -#endif /* _REST_OCTETS_H */ diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 92ef7c3..49b7890 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -100,7 +100,6 @@ pcu_sock.c \ penalty_timers.c \ bssmap_reset.c \ - rest_octets.c \ system_information.c \ timeslot_fsm.c \ smscb.c \ diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index c98a254..b75b41c 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -896,7 +896,7 @@ bts->si_common.cell_sel_par.rxlev_acc_min, VTY_NEWLINE); if (bts->si_common.cell_ro_sel_par.present) { - struct gsm48_si_selection_params *sp; + struct osmo_gsm48_si_selection_params *sp; sp = &bts->si_common.cell_ro_sel_par; if (sp->cbq) diff --git a/src/osmo-bsc/rest_octets.c b/src/osmo-bsc/rest_octets.c deleted file mode 100644 index 7307cb8..0000000 --- a/src/osmo-bsc/rest_octets.c +++ /dev/null @@ -1,899 +0,0 @@ -/* GSM Mobile Radio Interface Layer 3 messages on the A-bis interface, - * rest octet handling according to - * 3GPP TS 04.08 version 7.21.0 Release 1998 / ETSI TS 100 940 V7.21.0 */ - -/* (C) 2009 by Harald Welte - * - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -/* generate SI1 rest octets */ -int rest_octets_si1(uint8_t *data, uint8_t *nch_pos, int is1800_net) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 1; - - if (nch_pos) { - bitvec_set_bit(&bv, H); - bitvec_set_uint(&bv, *nch_pos, 5); - } else - bitvec_set_bit(&bv, L); - - if (is1800_net) - bitvec_set_bit(&bv, L); - else - bitvec_set_bit(&bv, H); - - bitvec_spare_padding(&bv, 6); - return bv.data_len; -} - -/* Append Repeated E-UTRAN Neighbour Cell to bitvec: see 3GPP TS 44.018 Table 10.5.2.33b.1 */ -static inline bool append_eutran_neib_cell(struct bitvec *bv, struct gsm_bts *bts, uint8_t budget) -{ - const struct osmo_earfcn_si2q *e = &bts->si_common.si2quater_neigh_list; - unsigned i, skip = 0; - size_t offset = bts->e_offset; - int16_t rem = budget - 6; /* account for mandatory stop bit and THRESH_E-UTRAN_high */ - uint8_t earfcn_budget; - - if (budget <= 6) - return false; - - OSMO_ASSERT(budget <= SI2Q_MAX_LEN); - - /* first we have to properly adjust budget requirements */ - if (e->prio_valid) /* E-UTRAN_PRIORITY: 3GPP TS 45.008*/ - rem -= 4; - else - rem--; - - if (e->thresh_lo_valid) /* THRESH_E-UTRAN_low: */ - rem -= 6; - else - rem--; - - if (e->qrxlm_valid) /* E-UTRAN_QRXLEVMIN: */ - rem -= 6; - else - rem--; - - if (rem < 0) - return false; - - /* now we can proceed with actually adding EARFCNs within adjusted budget limit */ - for (i = 0; i < e->length; i++) { - if (e->arfcn[i] != OSMO_EARFCN_INVALID) { - if (skip < offset) { - skip++; /* ignore EARFCNs added on previous calls */ - } else { - earfcn_budget = 17; /* compute budget per-EARFCN */ - if (OSMO_EARFCN_MEAS_INVALID == e->meas_bw[i]) - earfcn_budget++; - else - earfcn_budget += 4; - - if (rem - earfcn_budget < 0) - break; - else { - bts->e_offset++; - rem -= earfcn_budget; - - if (rem < 0) - return false; - - bitvec_set_bit(bv, 1); /* EARFCN: */ - bitvec_set_uint(bv, e->arfcn[i], 16); - - if (OSMO_EARFCN_MEAS_INVALID == e->meas_bw[i]) - bitvec_set_bit(bv, 0); - else { /* Measurement Bandwidth: 9.1.54 */ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, e->meas_bw[i], 3); - } - } - } - } - } - - /* stop bit - end of EARFCN + Measurement Bandwidth sequence */ - bitvec_set_bit(bv, 0); - - /* Note: we don't support different EARFCN arrays each with different priority, threshold etc. */ - - if (e->prio_valid) { - /* E-UTRAN_PRIORITY: 3GPP TS 45.008*/ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, e->prio, 3); - } else - bitvec_set_bit(bv, 0); - - /* THRESH_E-UTRAN_high */ - bitvec_set_uint(bv, e->thresh_hi, 5); - - if (e->thresh_lo_valid) { - /* THRESH_E-UTRAN_low: */ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, e->thresh_lo, 5); - } else - bitvec_set_bit(bv, 0); - - if (e->qrxlm_valid) { - /* E-UTRAN_QRXLEVMIN: */ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, e->qrxlm, 5); - } else - bitvec_set_bit(bv, 0); - - return true; -} - -static inline void append_earfcn(struct bitvec *bv, struct gsm_bts *bts, uint8_t budget) -{ - bool appended; - unsigned int old = bv->cur_bit; /* save current position to make rollback possible */ - int rem = ((int)budget) - 40; - if (rem <= 0) - return; - - OSMO_ASSERT(budget <= SI2Q_MAX_LEN); - - /* Additions in Rel-5: */ - bitvec_set_bit(bv, H); - /* No 3G Additional Measurement Param. Descr. */ - bitvec_set_bit(bv, 0); - /* No 3G ADDITIONAL MEASUREMENT Param. Descr. 2 */ - bitvec_set_bit(bv, 0); - /* Additions in Rel-6: */ - bitvec_set_bit(bv, H); - /* 3G_CCN_ACTIVE */ - bitvec_set_bit(bv, 0); - /* Additions in Rel-7: */ - bitvec_set_bit(bv, H); - /* No 700_REPORTING_OFFSET */ - bitvec_set_bit(bv, 0); - /* No 810_REPORTING_OFFSET */ - bitvec_set_bit(bv, 0); - /* Additions in Rel-8: */ - bitvec_set_bit(bv, H); - - /* Priority and E-UTRAN Parameters Description */ - bitvec_set_bit(bv, 1); - - /* budget: 10 bits used above */ - - /* Serving Cell Priority Parameters Descr. is Present, - * see also: 3GPP TS 44.018, Table 10.5.2.33b.1 */ - bitvec_set_bit(bv, 1); - - /* GERAN_PRIORITY */ - bitvec_set_uint(bv, 0, 3); - - /* THRESH_Priority_Search */ - bitvec_set_uint(bv, 0, 4); - - /* THRESH_GSM_low */ - bitvec_set_uint(bv, 0, 4); - - /* H_PRIO */ - bitvec_set_uint(bv, 0, 2); - - /* T_Reselection */ - bitvec_set_uint(bv, 0, 2); - - /* budget: 26 bits used above */ - - /* No 3G Priority Parameters Description */ - bitvec_set_bit(bv, 0); - /* E-UTRAN Parameters Description */ - bitvec_set_bit(bv, 1); - - /* E-UTRAN_CCN_ACTIVE */ - bitvec_set_bit(bv, 0); - /* E-UTRAN_Start: 9.1.54 */ - bitvec_set_bit(bv, 1); - /* E-UTRAN_Stop: 9.1.54 */ - bitvec_set_bit(bv, 1); - - /* No E-UTRAN Measurement Parameters Descr. */ - bitvec_set_bit(bv, 0); - /* No GPRS E-UTRAN Measurement Param. Descr. */ - bitvec_set_bit(bv, 0); - - /* Note: each of next 3 "repeated" structures might be repeated any - (0, 1, 2...) times - we only support 1 and 0 */ - - /* Repeated E-UTRAN Neighbour Cells */ - bitvec_set_bit(bv, 1); - - /* budget: 34 bits used above */ - - appended = append_eutran_neib_cell(bv, bts, rem); - if (!appended) { /* appending is impossible within current budget: rollback */ - bv->cur_bit = old; - return; - } - - /* budget: further 6 bits used below, totalling 40 bits */ - - /* stop bit - end of Repeated E-UTRAN Neighbour Cells sequence: */ - bitvec_set_bit(bv, 0); - - /* Note: following 2 repeated structs are not supported ATM */ - /* stop bit - end of Repeated E-UTRAN Not Allowed Cells sequence: */ - bitvec_set_bit(bv, 0); - /* stop bit - end of Repeated E-UTRAN PCID to TA mapping sequence: */ - bitvec_set_bit(bv, 0); - - /* Priority and E-UTRAN Parameters Description ends here */ - /* No 3G CSG Description */ - bitvec_set_bit(bv, 0); - /* No E-UTRAN CSG Description */ - bitvec_set_bit(bv, 0); - /* No Additions in Rel-9: */ - bitvec_set_bit(bv, L); -} - -static inline int f0_helper(int *sc, size_t length, uint8_t *chan_list) -{ - int w[RANGE_ENC_MAX_ARFCNS] = { 0 }; - - return range_encode(ARFCN_RANGE_1024, sc, length, w, 0, chan_list); -} - -/* Estimate how many bits it'll take to append single FDD UARFCN */ -static inline int append_utran_fdd_length(uint16_t u, const int *sc, size_t sc_len, size_t length) -{ - uint8_t chan_list[16] = { 0 }; - int tmp[sc_len], f0; - - memcpy(tmp, sc, sizeof(tmp)); - - f0 = f0_helper(tmp, length, chan_list); - if (f0 < 0) - return f0; - - return 21 + range1024_p(length); -} - -/* Append single FDD UARFCN */ -static inline int append_utran_fdd(struct bitvec *bv, uint16_t u, int *sc, size_t length) -{ - uint8_t chan_list[16] = { 0 }; - int f0 = f0_helper(sc, length, chan_list); - - if (f0 < 0) - return f0; - - /* Repeated UTRAN FDD Neighbour Cells */ - bitvec_set_bit(bv, 1); - - /* FDD-ARFCN */ - bitvec_set_bit(bv, 0); - bitvec_set_uint(bv, u, 14); - - /* FDD_Indic0: parameter value '0000000000' is a member of the set? */ - bitvec_set_bit(bv, f0); - /* NR_OF_FDD_CELLS */ - bitvec_set_uint(bv, length, 5); - - f0 = bv->cur_bit; - bitvec_add_range1024(bv, (struct gsm48_range_1024 *)chan_list); - bv->cur_bit = f0 + range1024_p(length); - - return 21 + range1024_p(length); -} - -static inline int try_adding_uarfcn(struct bitvec *bv, struct gsm_bts *bts, uint16_t uarfcn, - uint8_t num_sc, uint8_t start_pos, uint8_t budget) -{ - int i, k, rc, a[bts->si_common.uarfcn_length]; - - if (budget < 23) - return -ENOMEM; - - /* copy corresponding Scrambling Codes: range encoder make in-place modifications */ - for (i = start_pos, k = 0; i < num_sc; a[k++] = bts->si_common.data.scramble_list[i++]); - - /* estimate bit length requirements */ - rc = append_utran_fdd_length(uarfcn, a, bts->si_common.uarfcn_length, k); - if (rc < 0) - return rc; /* range encoder failure */ - - if (budget - rc <= 0) - return -ENOMEM; /* we have ran out of budget in current SI2q */ - - /* compute next offset */ - bts->u_offset += k; - - return budget - append_utran_fdd(bv, uarfcn, a, k); -} - -/* Append multiple FDD UARFCNs */ -static inline void append_uarfcns(struct bitvec *bv, struct gsm_bts *bts, uint8_t budget) -{ - const uint16_t *u = bts->si_common.data.uarfcn_list; - int i, rem = budget - 7, st = bts->u_offset; /* account for constant bits right away */ - uint16_t cu = u[bts->u_offset]; /* caller ensures that length is positive */ - - OSMO_ASSERT(budget <= SI2Q_MAX_LEN); - - if (budget <= 7) - return; - - /* 3G Neighbour Cell Description */ - bitvec_set_bit(bv, 1); - /* No Index_Start_3G */ - bitvec_set_bit(bv, 0); - /* No Absolute_Index_Start_EMR */ - bitvec_set_bit(bv, 0); - - /* UTRAN FDD Description */ - bitvec_set_bit(bv, 1); - /* No Bandwidth_FDD */ - bitvec_set_bit(bv, 0); - - for (i = bts->u_offset; i <= bts->si_common.uarfcn_length; i++) - if (u[i] != cu) { /* we've reached new UARFCN */ - rem = try_adding_uarfcn(bv, bts, cu, i, st, rem); - if (rem < 0) - break; - - if (i < bts->si_common.uarfcn_length) { - cu = u[i]; - st = i; - } else - break; - } - - /* stop bit - end of Repeated UTRAN FDD Neighbour Cells */ - bitvec_set_bit(bv, 0); - - /* UTRAN TDD Description */ - bitvec_set_bit(bv, 0); -} - -/* generate SI2quater rest octets: 3GPP TS 44.018 ? 10.5.2.33b */ -int rest_octets_si2quater(uint8_t *data, struct gsm_bts *bts) -{ - int rc; - struct bitvec bv; - - if (bts->si2q_count < bts->si2q_index) - return -EINVAL; - - bv.data = data; - bv.data_len = 20; - bitvec_zero(&bv); - - /* BA_IND: Set to '0' as that's what we use for SI2xxx type, - * whereas '1' is used for SI5xxx type messages. The point here - * is to be able to correlate whether a given MS measurement - * report was using the neighbor cells advertised in SI2 or in - * SI5, as those two could very well be different */ - bitvec_set_bit(&bv, 0); - /* 3G_BA_IND */ - bitvec_set_bit(&bv, 1); - /* MP_CHANGE_MARK */ - bitvec_set_bit(&bv, 0); - - /* SI2quater_INDEX */ - bitvec_set_uint(&bv, bts->si2q_index, 4); - /* SI2quater_COUNT */ - bitvec_set_uint(&bv, bts->si2q_count, 4); - - /* No Measurement_Parameters Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_Real Time Difference Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_BSIC Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_REPORT PRIORITY Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_MEASUREMENT_Parameters Description */ - bitvec_set_bit(&bv, 0); - /* No NC Measurement Parameters */ - bitvec_set_bit(&bv, 0); - /* No extension (length) */ - bitvec_set_bit(&bv, 0); - - rc = SI2Q_MAX_LEN - (bv.cur_bit + 3); - if (rc > 0 && bts->si_common.uarfcn_length - bts->u_offset > 0) - append_uarfcns(&bv, bts, rc); - else /* No 3G Neighbour Cell Description */ - bitvec_set_bit(&bv, 0); - - /* No 3G Measurement Parameters Description */ - bitvec_set_bit(&bv, 0); - /* No GPRS_3G_MEASUREMENT Parameters Descr. */ - bitvec_set_bit(&bv, 0); - - rc = SI2Q_MAX_LEN - bv.cur_bit; - if (rc > 0 && si2q_earfcn_count(&bts->si_common.si2quater_neigh_list) - bts->e_offset > 0) - append_earfcn(&bv, bts, rc); - else /* No Additions in Rel-5: */ - bitvec_set_bit(&bv, L); - - bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); - return bv.data_len; -} - -/* Append selection parameters to bitvec */ -static void append_selection_params(struct bitvec *bv, - const struct gsm48_si_selection_params *sp) -{ - if (sp->present) { - bitvec_set_bit(bv, H); - bitvec_set_bit(bv, sp->cbq); - bitvec_set_uint(bv, sp->cell_resel_off, 6); - bitvec_set_uint(bv, sp->temp_offs, 3); - bitvec_set_uint(bv, sp->penalty_time, 5); - } else - bitvec_set_bit(bv, L); -} - -/* Append power offset to bitvec */ -static void append_power_offset(struct bitvec *bv, - const struct gsm48_si_power_offset *po) -{ - if (po->present) { - bitvec_set_bit(bv, H); - bitvec_set_uint(bv, po->power_offset, 2); - } else - bitvec_set_bit(bv, L); -} - -/* Append GPRS indicator to bitvec */ -static void append_gprs_ind(struct bitvec *bv, - const struct gsm48_si3_gprs_ind *gi) -{ - if (gi->present) { - bitvec_set_bit(bv, H); - bitvec_set_uint(bv, gi->ra_colour, 3); - /* 0 == SI13 in BCCH Norm, 1 == SI13 sent on BCCH Ext */ - bitvec_set_bit(bv, gi->si13_position); - } else - bitvec_set_bit(bv, L); -} - -/* Generate SI2ter Rest Octests 3GPP TS 44.018 Table 10.5.2.33a.1 */ -int rest_octets_si2ter(uint8_t *data) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 4; - - /* No SI2ter_MP_CHANGE_MARK */ - bitvec_set_bit(&bv, L); - - bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); - - return bv.data_len; -} - -/* Generate SI2bis Rest Octests 3GPP TS 44.018 Table 10.5.2.33.1 */ -int rest_octets_si2bis(uint8_t *data) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 1; - - bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); - - return bv.data_len; -} - -/* Generate SI3 Rest Octests (Chapter 10.5.2.34 / Table 10.4.72) */ -int rest_octets_si3(uint8_t *data, const struct gsm48_si_ro_info *si3) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 4; - - /* Optional Selection Parameters */ - append_selection_params(&bv, &si3->selection_params); - - /* Optional Power Offset */ - append_power_offset(&bv, &si3->power_offset); - - /* Do we have a SI2ter on the BCCH? */ - if (si3->si2ter_indicator) - bitvec_set_bit(&bv, H); - else - bitvec_set_bit(&bv, L); - - /* Early Classmark Sending Control */ - if (si3->early_cm_ctrl) - bitvec_set_bit(&bv, H); - else - bitvec_set_bit(&bv, L); - - /* Do we have a SI Type 9 on the BCCH? */ - if (si3->scheduling.present) { - bitvec_set_bit(&bv, H); - bitvec_set_uint(&bv, si3->scheduling.where, 3); - } else - bitvec_set_bit(&bv, L); - - /* GPRS Indicator */ - append_gprs_ind(&bv, &si3->gprs_ind); - - /* 3G Early Classmark Sending Restriction. If H, then controlled by - * early_cm_ctrl above */ - if (si3->early_cm_restrict_3g) - bitvec_set_bit(&bv, L); - else - bitvec_set_bit(&bv, H); - - if (si3->si2quater_indicator) { - bitvec_set_bit(&bv, H); /* indicator struct present */ - bitvec_set_uint(&bv, 0, 1); /* message is sent on BCCH Norm */ - } - - bitvec_spare_padding(&bv, (bv.data_len*8)-1); - return bv.data_len; -} - -static int append_lsa_params(struct bitvec *bv, - const struct gsm48_lsa_params *lsa_params) -{ - /* FIXME */ - return -1; -} - -/* Generate SI4 Rest Octets (Chapter 10.5.2.35) */ -int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4, int len) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = len; - - /* SI4 Rest Octets O */ - append_selection_params(&bv, &si4->selection_params); - append_power_offset(&bv, &si4->power_offset); - append_gprs_ind(&bv, &si4->gprs_ind); - - if (0 /* FIXME */) { - /* H and SI4 Rest Octets S */ - bitvec_set_bit(&bv, H); - - /* LSA Parameters */ - if (si4->lsa_params.present) { - bitvec_set_bit(&bv, H); - append_lsa_params(&bv, &si4->lsa_params); - } else - bitvec_set_bit(&bv, L); - - /* Cell Identity */ - if (1) { - bitvec_set_bit(&bv, H); - bitvec_set_uint(&bv, si4->cell_id, 16); - } else - bitvec_set_bit(&bv, L); - - /* LSA ID Information */ - if (0) { - bitvec_set_bit(&bv, H); - /* FIXME */ - } else - bitvec_set_bit(&bv, L); - } else { - /* L and break indicator */ - bitvec_set_bit(&bv, L); - bitvec_set_bit(&bv, si4->break_ind ? H : L); - } - - return bv.data_len; -} - - -/* GSM 04.18 ETSI TS 101 503 V8.27.0 (2006-05) - - ::= -{L | H } -{L | H } -{ < DTM_support : bit == L > I < DTM_support : bit == H > -< RAC : bit (8) > -< MAX_LAPDm : bit (3) > } -< Band indicator > -{ L | H < GPRS_MS_TXPWR_MAX_CCH : bit (5) > } -; -*/ -int rest_octets_si6(uint8_t *data, bool is1800_net) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 1; - - /* no PCH/NCH info */ - bitvec_set_bit(&bv, L); - /* no VBS/VGCS options */ - bitvec_set_bit(&bv, L); - /* no DTM_support */ - bitvec_set_bit(&bv, L); - /* band indicator */ - if (is1800_net) - bitvec_set_bit(&bv, L); - else - bitvec_set_bit(&bv, H); - /* no GPRS_MS_TXPWR_MAX_CCH */ - bitvec_set_bit(&bv, L); - - bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); - return bv.data_len; -} - -/* GPRS Mobile Allocation as per TS 04.60 Chapter 12.10a: - < GPRS Mobile Allocation IE > ::= - < HSN : bit (6) > - { 0 | 1 < RFL number list : < RFL number list struct > > } - { 0 < MA_LENGTH : bit (6) > - < MA_BITMAP: bit (val(MA_LENGTH) + 1) > - | 1 { 0 | 1 > } } ; - - < RFL number list struct > :: = - < RFL_NUMBER : bit (4) > - { 0 | 1 < RFL number list struct > } ; - < ARFCN index list struct > ::= - < ARFCN_INDEX : bit(6) > - { 0 | 1 < ARFCN index list struct > } ; - */ -static int append_gprs_mobile_alloc(struct bitvec *bv) -{ - /* Hopping Sequence Number */ - bitvec_set_uint(bv, 0, 6); - - if (0) { - /* We want to use a RFL number list */ - bitvec_set_bit(bv, 1); - /* FIXME: RFL number list */ - } else - bitvec_set_bit(bv, 0); - - if (0) { - /* We want to use a MA_BITMAP */ - bitvec_set_bit(bv, 0); - /* FIXME: MA_LENGTH, MA_BITMAP, ... */ - } else { - bitvec_set_bit(bv, 1); - if (0) { - /* We want to provide an ARFCN index list */ - bitvec_set_bit(bv, 1); - /* FIXME */ - } else - bitvec_set_bit(bv, 0); - } - return 0; -} - -static int encode_t3192(unsigned int t3192) -{ - /* See also 3GPP TS 44.060 - Table 12.24.2: GPRS Cell Options information element details */ - if (t3192 == 0) - return 3; - else if (t3192 <= 80) - return 4; - else if (t3192 <= 120) - return 5; - else if (t3192 <= 160) - return 6; - else if (t3192 <= 200) - return 7; - else if (t3192 <= 500) - return 0; - else if (t3192 <= 1000) - return 1; - else if (t3192 <= 1500) - return 2; - else - return -EINVAL; -} - -static int encode_drx_timer(unsigned int drx) -{ - if (drx == 0) - return 0; - else if (drx == 1) - return 1; - else if (drx == 2) - return 2; - else if (drx <= 4) - return 3; - else if (drx <= 8) - return 4; - else if (drx <= 16) - return 5; - else if (drx <= 32) - return 6; - else if (drx <= 64) - return 7; - else - return -EINVAL; -} - -/* GPRS Cell Options as per TS 04.60 Chapter 12.24 - < GPRS Cell Options IE > ::= - < NMO : bit(2) > - < T3168 : bit(3) > - < T3192 : bit(3) > - < DRX_TIMER_MAX: bit(3) > - < ACCESS_BURST_TYPE: bit > - < CONTROL_ACK_TYPE : bit > - < BS_CV_MAX: bit(4) > - { 0 | 1 < PAN_DEC : bit(3) > - < PAN_INC : bit(3) > - < PAN_MAX : bit(3) > - { 0 | 1 < Extension Length : bit(6) > - < bit (val(Extension Length) + 1 - & { < Extension Information > ! { bit ** = } } ; - < Extension Information > ::= - { 0 | 1 < EGPRS_PACKET_CHANNEL_REQUEST : bit > - < BEP_PERIOD : bit(4) > } - < PFC_FEATURE_MODE : bit > - < DTM_SUPPORT : bit > - - ** ; - */ -static int append_gprs_cell_opt(struct bitvec *bv, - const struct gprs_cell_options *gco) -{ - int t3192, drx_timer_max; - - t3192 = encode_t3192(gco->t3192); - if (t3192 < 0) - return t3192; - - drx_timer_max = encode_drx_timer(gco->drx_timer_max); - if (drx_timer_max < 0) - return drx_timer_max; - - bitvec_set_uint(bv, gco->nmo, 2); - - /* See also 3GPP TS 44.060 - Table 12.24.2: GPRS Cell Options information element details */ - bitvec_set_uint(bv, gco->t3168 / 500 - 1, 3); - - bitvec_set_uint(bv, t3192, 3); - bitvec_set_uint(bv, drx_timer_max, 3); - /* ACCESS_BURST_TYPE: Hard-code 8bit */ - bitvec_set_bit(bv, 0); - /* CONTROL_ACK_TYPE: */ - bitvec_set_bit(bv, gco->ctrl_ack_type_use_block); - bitvec_set_uint(bv, gco->bs_cv_max, 4); - - if (0) { - /* hard-code no PAN_{DEC,INC,MAX} */ - bitvec_set_bit(bv, 0); - } else { - /* copied from ip.access BSC protocol trace */ - bitvec_set_bit(bv, 1); - bitvec_set_uint(bv, 1, 3); /* DEC */ - bitvec_set_uint(bv, 1, 3); /* INC */ - bitvec_set_uint(bv, 15, 3); /* MAX */ - } - - if (!gco->ext_info_present) { - /* no extension information */ - bitvec_set_bit(bv, 0); - } else { - /* extension information */ - bitvec_set_bit(bv, 1); - if (!gco->ext_info.egprs_supported) { - /* 6bit length of extension */ - bitvec_set_uint(bv, (1 + 3)-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); - /* EGPRS supported in the cell */ - bitvec_set_bit(bv, 1); - - /* 1bit EGPRS PACKET CHANNEL REQUEST (inverted logic) */ - bitvec_set_bit(bv, !gco->ext_info.use_egprs_p_ch_req); - - /* 4bit BEP PERIOD */ - bitvec_set_uint(bv, gco->ext_info.bep_period, 4); - } - bitvec_set_bit(bv, gco->ext_info.pfc_supported); - bitvec_set_bit(bv, gco->ext_info.dtm_supported); - bitvec_set_bit(bv, gco->ext_info.bss_paging_coordination); - } - - return 0; -} - -static void append_gprs_pwr_ctrl_pars(struct bitvec *bv, - const struct gprs_power_ctrl_pars *pcp) -{ - bitvec_set_uint(bv, pcp->alpha, 4); - bitvec_set_uint(bv, pcp->t_avg_w, 5); - bitvec_set_uint(bv, pcp->t_avg_t, 5); - bitvec_set_uint(bv, pcp->pc_meas_chan, 1); - bitvec_set_uint(bv, pcp->n_avg_i, 4); -} - -/* Generate SI13 Rest Octests (04.08 Chapter 10.5.2.37b) */ -int rest_octets_si13(uint8_t *data, const struct gsm48_si13_info *si13) -{ - struct bitvec bv; - - memset(&bv, 0, sizeof(bv)); - bv.data = data; - bv.data_len = 20; - - if (0) { - /* No rest octets */ - bitvec_set_bit(&bv, L); - } else { - bitvec_set_bit(&bv, H); - bitvec_set_uint(&bv, si13->bcch_change_mark, 3); - bitvec_set_uint(&bv, si13->si_change_field, 4); - if (1) { - bitvec_set_bit(&bv, 0); - } else { - bitvec_set_bit(&bv, 1); - bitvec_set_uint(&bv, si13->bcch_change_mark, 2); - append_gprs_mobile_alloc(&bv); - } - /* PBCCH not present in cell: - it shall never be indicated according to 3GPP TS 44.018 Table 10.5.2.37b.1 */ - bitvec_set_bit(&bv, 0); - bitvec_set_uint(&bv, si13->rac, 8); - bitvec_set_bit(&bv, si13->spgc_ccch_sup); - bitvec_set_uint(&bv, si13->prio_acc_thr, 3); - bitvec_set_uint(&bv, si13->net_ctrl_ord, 2); - append_gprs_cell_opt(&bv, &si13->cell_opts); - append_gprs_pwr_ctrl_pars(&bv, &si13->pwr_ctrl_pars); - - /* 3GPP TS 44.018 Release 6 / 10.5.2.37b */ - bitvec_set_bit(&bv, H); /* added Release 99 */ - /* claim our SGSN is compatible with Release 99, as EDGE and EGPRS - * was only added in this Release */ - bitvec_set_bit(&bv, 1); - } - bitvec_spare_padding(&bv, (bv.data_len*8)-1); - return bv.data_len; -} diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index b969989..10b0e4d 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -31,12 +31,12 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include @@ -169,7 +169,12 @@ si2q->header.system_information = GSM48_MT_RR_SYSINFO_2quater; } - rc = rest_octets_si2quater(si2q->rest_octets, bts); + rc = osmo_gsm48_rest_octets_si2quater_encode(si2q->rest_octets, bts->si2q_index, + bts->si2q_count, bts->si_common.data.uarfcn_list, + &bts->u_offset, bts->si_common.uarfcn_length, + bts->si_common.data.scramble_list, + &bts->si_common.si2quater_neigh_list, + &bts->e_offset); if (rc < 0) return rc; @@ -729,7 +734,7 @@ * SI1 Rest Octets (10.5.2.32), contains NCH position and band * indicator but that is not in the 04.08. */ - rc = rest_octets_si1(si1->rest_octets, NULL, is_dcs_net(bts)); + rc = osmo_gsm48_rest_octets_si1_encode(si1->rest_octets, NULL, is_dcs_net(bts)); return sizeof(*si1) + rc; } @@ -759,6 +764,20 @@ return sizeof(*si2); } +/* Generate SI2bis Rest Octests 3GPP TS 44.018 Table 10.5.2.33.1 */ +static int rest_octets_si2bis(uint8_t *data) +{ + struct bitvec bv; + + memset(&bv, 0, sizeof(bv)); + bv.data = data; + bv.data_len = 1; + + bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); + + return bv.data_len; +} + static int generate_si2bis(enum osmo_sysinfo_type t, struct gsm_bts *bts) { int rc; @@ -796,6 +815,24 @@ return sizeof(*si2b) + rc; } + +/* Generate SI2ter Rest Octests 3GPP TS 44.018 Table 10.5.2.33a.1 */ +static int rest_octets_si2ter(uint8_t *data) +{ + struct bitvec bv; + + memset(&bv, 0, sizeof(bv)); + bv.data = data; + bv.data_len = 4; + + /* No SI2ter_MP_CHANGE_MARK */ + bitvec_set_bit(&bv, L); + + bitvec_spare_padding(&bv, (bv.data_len * 8) - 1); + + return bv.data_len; +} + static int generate_si2ter(enum osmo_sysinfo_type t, struct gsm_bts *bts) { int rc; @@ -865,7 +902,7 @@ return sizeof(*si2q) + rc; } -static struct gsm48_si_ro_info si_info = { +static struct osmo_gsm48_si_ro_info si_info = { .selection_params = { .present = 0, }, @@ -934,7 +971,7 @@ CBQ, CELL_RESELECT_OFFSET, TEMPORARY_OFFSET, PENALTY_TIME Power Offset, 2ter Indicator, Early Classmark Sending, Scheduling if and WHERE, GPRS Indicator, SI13 position */ - rc = rest_octets_si3(si3->rest_octets, &si_info); + rc = osmo_gsm48_rest_octets_si3_encode(si3->rest_octets, &si_info); return sizeof(*si3) + rc; } @@ -989,7 +1026,7 @@ /* SI4 Rest Octets (10.5.2.35), containing Optional Power offset, GPRS Indicator, Cell Identity, LSA ID, Selection Parameter */ - rc = rest_octets_si4(tail, &si_info, (uint8_t *)GSM_BTS_SI(bts, t) + GSM_MACBLOCK_LEN - tail); + rc = osmo_gsm48_rest_octets_si4_encode(tail, &si_info, (uint8_t *)GSM_BTS_SI(bts, t) + GSM_MACBLOCK_LEN - tail); return l2_plen + 1 + rc; } @@ -1114,11 +1151,13 @@ static int generate_si6(enum osmo_sysinfo_type t, struct gsm_bts *bts) { struct gsm48_system_information_type_6 *si6; + struct osmo_gsm48_si6_ro_info si6_ro_info; uint8_t *output = GSM_BTS_SI(bts, t); int l2_plen = 11; int rc; memset(output, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN); + memset(&si6_ro_info, 0, sizeof(si6_ro_info)); /* ip.access nanoBTS needs l2_plen!! */ switch (bts->type) { @@ -1145,12 +1184,13 @@ gsm48_set_dtx(&si6->cell_options, bts->dtxu, bts->dtxu, false); /* SI6 Rest Octets: 10.5.2.35a: PCH / NCH info, VBS/VGCS options */ - rc = rest_octets_si6(si6->rest_octets, is_dcs_net(bts)); + si6_ro_info.band_indicator_1900 = is_dcs_net(bts); + rc = osmo_gsm48_rest_octets_si6_encode(si6->rest_octets, &si6_ro_info); return l2_plen + rc; } -static struct gsm48_si13_info si13_default = { +static struct osmo_gsm48_si13_info si13_default = { .cell_opts = { .nmo = GPRS_NMO_II, .t3168 = 2000, @@ -1215,7 +1255,7 @@ else si13_default.cell_opts.ext_info.bss_paging_coordination = 0; - ret = rest_octets_si13(si13->rest_octets, &si13_default); + ret = osmo_gsm48_rest_octets_si13_encode(si13->rest_octets, &si13_default); if (ret < 0) return ret; @@ -1262,7 +1302,7 @@ memcpy(&si_info.selection_params, &bts->si_common.cell_ro_sel_par, - sizeof(struct gsm48_si_selection_params)); + sizeof(struct osmo_gsm48_si_selection_params)); gen_si = gen_si_fn[si_type]; if (!gen_si) { diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index 6e2ba6c..a00da46 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -33,7 +33,6 @@ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ - $(top_builddir)/src/osmo-bsc/rest_octets.o \ $(top_builddir)/src/osmo-bsc/system_information.o \ $(top_builddir)/src/osmo-bsc/neighbor_ident.o \ $(top_builddir)/src/osmo-bsc/nm_common_fsm.o \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 5139595..eb2a26b 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -97,7 +97,6 @@ $(top_builddir)/src/osmo-bsc/paging.o \ $(top_builddir)/src/osmo-bsc/pcu_sock.o \ $(top_builddir)/src/osmo-bsc/penalty_timers.o \ - $(top_builddir)/src/osmo-bsc/rest_octets.o \ $(top_builddir)/src/osmo-bsc/system_information.o \ $(top_builddir)/src/osmo-bsc/timeslot_fsm.o \ $(top_builddir)/src/osmo-bsc/smscb.o \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7d5e5ddd174463c2a3d957c8245d2911ce013681 Gerrit-Change-Number: 21711 Gerrit-PatchSet: 3 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 admin at opensuse.org Tue Dec 15 19:29:57 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 15 Dec 2020 19:29:57 +0000 Subject: Build failure of network:osmocom:nightly/uhd in CentOS_8/aarch64 In-Reply-To: References: Message-ID: <5fd90ed27cad4_22fc2aafec8545f02768eb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/uhd/CentOS_8/aarch64 Package network:osmocom:nightly/uhd failed to build in CentOS_8/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly uhd Last lines of build log: [ 1864s] cd /home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib && /usr/bin/c++ -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW -DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DHAVE_CONFIG_H -DUHD_DLL_EXPORTS -DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -DUHD_RFNOC_ENABLED -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/include -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/include -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/include -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/ic_reg_maps -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/convert -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/convert -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/rfnoc/nocscript -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/rfnoc/nocscript -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp/common/ad9361_driver -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp/common -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/transport/nirio/lvbitx -I/usr/include/libusb-1.0 -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/deps/rpclib/include -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fvisibility=hidden -fvisibility-inlines-hidden -DNDEBUG -fPIC -Wall -Wextra -Wsign-compare -std=gnu++14 -o CMakeFiles/uhd.dir/usrp/x300/x300_eth_mgr.cpp.o -c /home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp/x300/x300_eth_mgr.cpp [ 1880s] [ 60%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/x300/x300_io_impl.cpp.o [ 1880s] cd /home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib && /usr/bin/c++ -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW -DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DHAVE_CONFIG_H -DUHD_DLL_EXPORTS -DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -DUHD_RFNOC_ENABLED -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/include -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/include -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/include -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/ic_reg_maps -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/convert -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/convert -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/rfnoc/nocscript -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/rfnoc/nocscript -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp/common/ad9361_driver -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp/common -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/transport/nirio/lvbitx -I/usr/include/libusb-1.0 -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/deps/rpclib/include -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fvisibility=hidden -fvisibility-inlines-hidden -DNDEBUG -fPIC -Wall -Wextra -Wsign-compare -std=gnu++14 -o CMakeFiles/uhd.dir/usrp/x300/x300_io_impl.cpp.o -c /home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp/x300/x300_io_impl.cpp [ 1964s] [ 1919.740516] Out of memory: Killed process 7738 (cc1plus) total-vm:1127580kB, anon-rss:488600kB, file-rss:0kB, shmem-rss:0kB [ 1964s] {standard input}: Assembler messages: [ 1964s] {standard input}:3309371: Warning: end of file not at end of a line; newline inserted [ 1964s] {standard input}:3310774: Error: unknown pseudo-op: `.8' [ 1968s] [ 60%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/x300/x300_dboard_iface.cpp.o [ 1968s] cd /home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib && /usr/bin/c++ -DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW -DBOOST_ASIO_DISABLE_STD_STRING_VIEW -DHAVE_CONFIG_H -DUHD_DLL_EXPORTS -DUHD_LOG_CONSOLE_COLOR -DUHD_LOG_CONSOLE_LEVEL=2 -DUHD_LOG_FILE_LEVEL=2 -DUHD_LOG_MIN_LEVEL=1 -DUHD_RFNOC_ENABLED -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/include -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/include -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/include -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/ic_reg_maps -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/convert -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/convert -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/rfnoc/nocscript -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/rfnoc/nocscript -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp/common/ad9361_driver -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp/common -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build/lib/transport/nirio/lvbitx -I/usr/include/libusb-1.0 -I/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/deps/rpclib/include -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fvisibility=hidden -fvisibility-inlines-hidden -DNDEBUG -fPIC -Wall -Wextra -Wsign-compare -std=gnu++14 -o CMakeFiles/uhd.dir/usrp/x300/x300_dboard_iface.cpp.o -c /home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/lib/usrp/x300/x300_dboard_iface.cpp [ 1970s] c++: fatal error: Killed signal terminated program cc1plus [ 1970s] compilation terminated. [ 1971s] make[2]: *** [lib/CMakeFiles/uhd.dir/build.make:2433: lib/CMakeFiles/uhd.dir/usrp/usrp2/usrp2_impl.cpp.o] Error 1 [ 1971s] make[2]: *** Waiting for unfinished jobs.... [ 2062s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build' [ 2062s] make[1]: *** [CMakeFiles/Makefile2:123: lib/CMakeFiles/uhd.dir/all] Error 2 [ 2062s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/uhd-3.15.0.0-rc2/host/build' [ 2062s] make: *** [Makefile:166: all] Error 2 [ 2062s] error: Bad exit status from /var/tmp/rpm-tmp.covCpq (%build) [ 2062s] [ 2062s] [ 2062s] RPM build errors: [ 2062s] Bad exit status from /var/tmp/rpm-tmp.covCpq (%build) [ 2062s] ### VM INTERACTION START ### [ 2064s] Powering off. [ 2064s] [ 2020.192298] reboot: Power down [ 2065s] ### VM INTERACTION END ### [ 2065s] [ 2065s] obs-arm-2 failed "build uhd.spec" at Tue Dec 15 19:29:27 UTC 2020. [ 2065s] -- 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 Dec 15 21:08:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 15 Dec 2020 21:08:08 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 1 second before respawning the IUT 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/+/21640 to look at the new patch set (#3). Change subject: ttcn3-bts-test: fix: sleep 1 second before respawning the IUT ...................................................................... ttcn3-bts-test: fix: sleep 1 second before respawning the IUT There has been a lot of changes merged to both osmo-{bsc,bts}, so now the later seems to be respawning faster then before. Because of that, osmo-bts-trx is now reaching the limit of 500 runs on Jenkins right in the middle of ttcn3-bts-test execution: respawn.sh: exiting after 500 runs causing the remaining test cases to fail due to: "BTS_Tests.ttcn:253 : Timeout waiting for RSL bring up" Most likely, the IUT respawns several times in the windows between the test cases, i.e. after TITAN finishes one test case and before it starts another. Let's instruct respawn.sh to sleep 1 second before starting the process again. Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/40/21640/3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 15 21:45:24 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 15 Dec 2020 21:45:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates 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/+/21587 to look at the new patch set (#3). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/21587/3 -- 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: 3 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 Dec 15 21:45:25 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 15 Dec 2020 21:45:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21734 ) Change subject: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP ...................................................................... deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP Temporarily use titan.ProtocolModules.BSSGP_v13.0.0 from https://github.com/osmocom/ Change-Id: I5d7261a5ac33a0231c1a3d73bdff7fb099568687 --- M deps/Makefile 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/34/21734/1 diff --git a/deps/Makefile b/deps/Makefile index 61bab99..73b3283 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -51,7 +51,6 @@ titan.ProtocolModules.SUA \ titan.ProtocolModules.SDP \ titan.ProtocolModules.BSSAPP_v7.3.0 \ - titan.ProtocolModules.BSSGP_v13.0.0 \ titan.ProtocolModules.GTP_v13.5.0 \ titan.ProtocolModules.GTPv2_v13.7.0 \ titan.ProtocolModules.ISUP_Q.762 \ @@ -65,7 +64,8 @@ OSMOGITHUB_REPOS= titan.TestPorts.SCTPasp \ titan.TestPorts.MTP3asp \ titan.TestPorts.UDPasp \ - titan.ProtocolEmulations.SCCP + titan.ProtocolEmulations.SCCP \ + titan.ProtocolModules.BSSGP_v13.0.0 OSMOGIT_REPOS= titan.ProtocolModules.MAP \ titan.ProtocolModules.BSSMAP \ @@ -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= R.2.A-6-gc447f28 +titan.ProtocolModules.BSSGP_v13.0.0_commit= master 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/+/21734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5d7261a5ac33a0231c1a3d73bdff7fb099568687 Gerrit-Change-Number: 21734 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 Dec 15 21:45:26 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 15 Dec 2020 21:45:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN_Tests: test RIM message passing References: Message-ID: dexter has uploaded this change for review. ( 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, 86 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/35/21735/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 8e7d6e4..9d54c2e 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,88 @@ 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 si3 := '1b753000f110236ec9033c2747407900003c0b2b2b'O + 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,1,si3)), + 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 +3280,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: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 15 23:32:31 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 15 Dec 2020 23:32:31 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 dialect changes 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/+/21728 to look at the new patch set (#3). Change subject: ns2: follow ns2 dialect changes ...................................................................... ns2: follow ns2 dialect changes NS2 introduce a ns dialect to differentiate between the 4 possible dialects. Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc --- M src/bts.h M src/gprs_bssgp_pcu.cpp M src/pcu_vty.c 3 files changed, 13 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/28/21728/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 Gerrit-PatchSet: 3 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 admin at opensuse.org Wed Dec 16 01:36:30 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:36:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5fd964b7ee075_22fc2aafec8545f03364cc@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: [ 55s] 987 | GPRS_NS2_LL_UDP); [ 55s] | ^ [ 55s] In file included from ./gprs_bssgp_pcu.h:31, [ 55s] from gprs_bssgp_pcu.cpp:22: [ 55s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 55s] 155 | struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 55s] | ^~~~~~~~~~~~~~~~~~~ [ 55s] CXX gsm_timer.lo [ 55s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope; did you mean 'gprs_ns2_ip_connect2'? [ 55s] 1001 | rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 55s] | ^~~~~~~~~~~~~~~~~~~~~~~ [ 55s] | gprs_ns2_ip_connect2 [ 55s] CXX pcu_l1_if.lo [ 55s] make[1]: *** [Makefile:834: gprs_bssgp_pcu.lo] Error 1 [ 55s] make[1]: *** Waiting for unfinished jobs.... [ 57s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 57s] make: *** [Makefile:416: all-recursive] Error 1 [ 57s] error: Bad exit status from /var/tmp/rpm-tmp.pdmHWZ (%build) [ 57s] [ 57s] [ 57s] RPM build errors: [ 57s] Bad exit status from /var/tmp/rpm-tmp.pdmHWZ (%build) [ 57s] ### VM INTERACTION START ### [ 60s] [ 51.349028] sysrq: Power Off [ 60s] [ 51.429958] reboot: Power down [ 60s] ### VM INTERACTION END ### [ 60s] [ 60s] lamb09 failed "build osmo-pcu.spec" at Wed Dec 16 01:36:11 UTC 2020. [ 60s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:39:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:39:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fd9658a9c2e9_22fc2aafec8545f03370ac@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: [ 166s] ^ [ 166s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 166s] GPRS_NS2_LL_UDP); [ 166s] ^ [ 166s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 166s] from gprs_bssgp_pcu.cpp:22: [ 166s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 166s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 166s] ^ [ 166s] gprs_bssgp_pcu.cpp:1001:58: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 166s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 166s] ^ [ 166s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 166s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 166s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 166s] Makefile:405: recipe for target 'all-recursive' failed [ 166s] make[1]: *** [all-recursive] Error 1 [ 166s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 166s] dh_auto_build: make -j1 returned exit code 2 [ 166s] debian/rules:12: recipe for target 'build' failed [ 166s] make: *** [build] Error 2 [ 166s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 166s] ### VM INTERACTION START ### [ 168s] Powering off. [ 168s] [ 157.833186] reboot: Power down [ 168s] ### VM INTERACTION END ### [ 168s] [ 168s] lamb27 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:39:41 UTC 2020. [ 168s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:39:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:39:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5fd9658a29de3_22fc2aafec8545f0336931@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: [ 187s] ^ [ 187s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 187s] GPRS_NS2_LL_UDP); [ 187s] ^ [ 187s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 187s] from gprs_bssgp_pcu.cpp:22: [ 187s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 187s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 187s] ^~~~~~~~~~~~~~~~~~~ [ 187s] gprs_bssgp_pcu.cpp:1001:58: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 187s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 187s] ^ [ 187s] Makefile:802: recipe for target 'gprs_bssgp_pcu.lo' failed [ 187s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 187s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 187s] Makefile:417: recipe for target 'all-recursive' failed [ 187s] make[1]: *** [all-recursive] Error 1 [ 187s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 187s] dh_auto_build: make -j1 returned exit code 2 [ 187s] debian/rules:12: recipe for target 'build' failed [ 187s] make: *** [build] Error 2 [ 187s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 187s] ### VM INTERACTION START ### [ 190s] [ 179.881375] sysrq: Power Off [ 190s] [ 179.883774] reboot: Power down [ 190s] ### VM INTERACTION END ### [ 190s] [ 190s] old-atreju2 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:39:37 UTC 2020. [ 190s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:40:47 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:40:47 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd965a95113a_22fc2aafec8545f0337334@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] [ 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] [ 144.939329] sysrq: Power Off [ 159s] [ 144.943455] reboot: Power down [ 159s] ### VM INTERACTION END ### [ 159s] [ 159s] cloud116 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 16 01:40:39 UTC 2020. [ 159s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:41:04 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:41:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fd965c57c11a_22fc2aafec8545f0337498@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: [ 44s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 44s] 987 | GPRS_NS2_LL_UDP); [ 44s] | ^ [ 44s] In file included from ./gprs_bssgp_pcu.h:31, [ 44s] from gprs_bssgp_pcu.cpp:22: [ 44s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 44s] 155 | struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 44s] | ^~~~~~~~~~~~~~~~~~~ [ 44s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope; did you mean 'gprs_ns2_ip_connect2'? [ 44s] 1001 | rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 44s] | ^~~~~~~~~~~~~~~~~~~~~~~ [ 44s] | gprs_ns2_ip_connect2 [ 44s] CXX gsm_timer.lo [ 44s] make[1]: *** [Makefile:834: gprs_bssgp_pcu.lo] Error 1 [ 44s] make[1]: *** Waiting for unfinished jobs.... [ 45s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 45s] make: *** [Makefile:416: all-recursive] Error 1 [ 45s] error: Bad exit status from /var/tmp/rpm-tmp.C02Lp0 (%build) [ 45s] [ 45s] [ 45s] RPM build errors: [ 45s] Bad exit status from /var/tmp/rpm-tmp.C02Lp0 (%build) [ 45s] ### VM INTERACTION START ### [ 48s] [ 41.540194] sysrq: Power Off [ 48s] [ 41.546870] reboot: Power down [ 49s] ### VM INTERACTION END ### [ 49s] [ 49s] lamb51 failed "build osmo-pcu.spec" at Wed Dec 16 01:40:53 UTC 2020. [ 49s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:41:39 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:41:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <5fd965e583b72_22fc2aafec8545f0337675@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: [ 42s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 42s] from gprs_bssgp_pcu.cpp:22: [ 42s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 42s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 42s] ^~~~~~~~~~~~~~~~~~~ [ 42s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 42s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 42s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 42s] CXX gprs_rlcmac_ts_alloc.lo [ 42s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 42s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 42s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 42s] gprs_ns2_ip_connect2 [ 42s] make[1]: *** [Makefile:801: gprs_bssgp_pcu.lo] Error 1 [ 42s] make[1]: *** Waiting for unfinished jobs.... [ 43s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 43s] make: *** [Makefile:416: all-recursive] Error 1 [ 43s] error: Bad exit status from /var/tmp/rpm-tmp.6rp3pI (%build) [ 43s] [ 43s] [ 43s] RPM build errors: [ 43s] Bad exit status from /var/tmp/rpm-tmp.6rp3pI (%build) [ 43s] ### VM INTERACTION START ### [ 46s] [ 39.333720] sysrq: Power Off [ 46s] [ 39.338118] reboot: Power down [ 46s] ### VM INTERACTION END ### [ 46s] [ 46s] sheep88 failed "build osmo-pcu.spec" at Wed Dec 16 01:41:23 UTC 2020. [ 46s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:42:13 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:42:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5fd966038740b_22fc2aafec8545f03377c9@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: [ 35s] ^ [ 35s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 35s] from gprs_bssgp_pcu.cpp:22: [ 35s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 35s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 35s] ^~~~~~~~~~~~~~~~~~~ [ 35s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 35s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 35s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 35s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 35s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 35s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 35s] gprs_ns2_ip_connect2 [ 35s] make[1]: *** [Makefile:801: gprs_bssgp_pcu.lo] Error 1 [ 35s] make[1]: *** Waiting for unfinished jobs.... [ 36s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 36s] make: *** [Makefile:416: all-recursive] Error 1 [ 36s] error: Bad exit status from /var/tmp/rpm-tmp.gjwXvz (%build) [ 36s] [ 36s] [ 36s] RPM build errors: [ 36s] Bad exit status from /var/tmp/rpm-tmp.gjwXvz (%build) [ 36s] ### VM INTERACTION START ### [ 39s] [ 33.003658] sysrq: SysRq : Power Off [ 39s] [ 33.010139] reboot: Power down [ 39s] ### VM INTERACTION END ### [ 39s] [ 39s] goat15 failed "build osmo-pcu.spec" at Wed Dec 16 01:42:01 UTC 2020. [ 39s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:42:13 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:42:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_10/i586 In-Reply-To: References: Message-ID: <5fd9660461d68_22fc2aafec8545f0337845@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: [ 290s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 290s] GPRS_NS2_LL_UDP); [ 290s] ^ [ 290s] In file included from ./gprs_bssgp_pcu.h:31, [ 290s] from gprs_bssgp_pcu.cpp:22: [ 290s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 290s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 290s] ^~~~~~~~~~~~~~~~~~~ [ 290s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 290s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 290s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 290s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 290s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 290s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 290s] gprs_ns2_ip_connect2 [ 290s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 290s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 290s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 290s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 290s] dh_auto_build: make -j1 returned exit code 2 [ 290s] make: *** [debian/rules:12: build] Error 2 [ 290s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 290s] ### VM INTERACTION START ### [ 293s] [ 279.398531] sysrq: Power Off [ 293s] [ 279.405320] reboot: Power down [ 293s] ### VM INTERACTION END ### [ 293s] [ 293s] lamb03 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:42:02 UTC 2020. [ 293s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:42:30 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:42:30 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd9661ed428b_22fc2aafec8545f0337987@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: [ 230s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 230s] [COMPILING libboard/qmod/source/card_pres.c] [ 230s] [COMPILING libboard/qmod/source/wwan_led.c] [ 230s] [COMPILING libboard/qmod/source/i2c.c] [ 230s] [COMPILING libboard/qmod/source/board_qmod.c] [ 230s] [COMPILING apps/dfu/main.c] [ 231s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 231s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 231s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 231s] Memory region Used Size Region Size %age Used [ 231s] rom: 16588 B 16 KB 101.25% [ 231s] 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' [ 231s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 231s] collect2: error: ld returned 1 exit status [ 231s] % [ 231s] make[2]: *** [Makefile:234: flash] Error 1 [ 231s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 231s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 231s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 231s] dh_auto_build: error: make -j1 returned exit code 2 [ 231s] make: *** [debian/rules:16: build] Error 25 [ 231s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 231s] ### VM INTERACTION START ### [ 234s] [ 188.257103] sysrq: Power Off [ 234s] [ 188.264081] reboot: Power down [ 234s] ### VM INTERACTION END ### [ 234s] [ 234s] cloud105 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 16 01:42:13 UTC 2020. [ 234s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:42:47 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:42:47 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fd9662037fde_22fc2aafec8545f033801b@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: [ 54s] | ~~~~~~~~~~~~^~~~ [ 54s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 54s] 987 | GPRS_NS2_LL_UDP); [ 54s] | ^ [ 54s] In file included from ./gprs_bssgp_pcu.h:31, [ 54s] from gprs_bssgp_pcu.cpp:22: [ 54s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 54s] 155 | struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 54s] | ^~~~~~~~~~~~~~~~~~~ [ 54s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope; did you mean 'gprs_ns2_ip_connect2'? [ 54s] 1001 | rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 54s] | ^~~~~~~~~~~~~~~~~~~~~~~ [ 54s] | gprs_ns2_ip_connect2 [ 54s] make[1]: *** [Makefile:834: gprs_bssgp_pcu.lo] Error 1 [ 54s] make[1]: *** Waiting for unfinished jobs.... [ 54s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 54s] make: *** [Makefile:416: all-recursive] Error 1 [ 54s] error: Bad exit status from /var/tmp/rpm-tmp.VecZkN (%build) [ 54s] [ 54s] [ 54s] RPM build errors: [ 54s] Bad exit status from /var/tmp/rpm-tmp.VecZkN (%build) [ 55s] ### VM INTERACTION START ### [ 58s] [ 44.064523] sysrq: Power Off [ 58s] [ 44.066454] reboot: Power down [ 58s] ### VM INTERACTION END ### [ 58s] [ 58s] obs-arm-8 failed "build osmo-pcu.spec" at Wed Dec 16 01:42:35 UTC 2020. [ 58s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:45:04 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:45:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fd966b75f331_22fc2aafec8545f03381b3@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: [ 267s] /usr/include/osmocom/gprs/gprs_ns2.h:173:20: note: initializing argument 2 of 'int gprs_ns2_ip_bind(gprs_ns2_inst*, const char*, const osmo_sockaddr*, int, gprs_ns2_vc_bind**)' [ 267s] 173 | const char *name, [ 267s] | ~~~~~~~~~~~~^~~~ [ 267s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 267s] 987 | GPRS_NS2_LL_UDP); [ 267s] | ^ [ 267s] In file included from ./gprs_bssgp_pcu.h:31, [ 267s] from gprs_bssgp_pcu.cpp:22: [ 267s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 267s] 155 | struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 267s] | ^~~~~~~~~~~~~~~~~~~ [ 267s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope; did you mean 'gprs_ns2_ip_connect2'? [ 267s] 1001 | rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 267s] | ^~~~~~~~~~~~~~~~~~~~~~~ [ 267s] | gprs_ns2_ip_connect2 [ 267s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 267s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 267s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 267s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 267s] dh_auto_build: error: make -j1 returned exit code 2 [ 267s] make: *** [debian/rules:12: build] Error 25 [ 267s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 267s] ### VM INTERACTION START ### [ 268s] Powering off. [ 268s] [ 260.306810] reboot: Power down [ 268s] ### VM INTERACTION END ### [ 268s] [ 268s] goat03 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:44:40 UTC 2020. [ 268s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:45:39 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:45:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in CentOS_8/x86_64 In-Reply-To: References: Message-ID: <5fd966d298c8a_22fc2aafec8545f0338229@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: [ 106s] from gprs_bssgp_pcu.cpp:22: [ 106s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 106s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 106s] ^~~~~~~~~~~~~~~~~~~ [ 106s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 106s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 106s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 106s] CXX gprs_ms_storage.lo [ 106s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 106s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 106s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 106s] gprs_ns2_ip_connect2 [ 106s] CXX gsm_timer.lo [ 106s] make[1]: *** [Makefile:834: gprs_bssgp_pcu.lo] Error 1 [ 106s] make[1]: *** Waiting for unfinished jobs.... [ 108s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 108s] make: *** [Makefile:416: all-recursive] Error 1 [ 108s] error: Bad exit status from /var/tmp/rpm-tmp.ls7zfW (%build) [ 108s] [ 108s] [ 108s] RPM build errors: [ 108s] Bad exit status from /var/tmp/rpm-tmp.ls7zfW (%build) [ 108s] ### VM INTERACTION START ### [ 109s] Powering off. [ 109s] [ 95.677718] reboot: Power down [ 109s] ### VM INTERACTION END ### [ 109s] [ 109s] lamb55 failed "build osmo-pcu.spec" at Wed Dec 16 01:45:19 UTC 2020. [ 109s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:45:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:45:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5fd966f1bf4f5_22fc2aafec8545f0338393@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: [ 201s] /usr/include/osmocom/gprs/gprs_ns2.h:173:20: note: initializing argument 2 of 'int gprs_ns2_ip_bind(gprs_ns2_inst*, const char*, const osmo_sockaddr*, int, gprs_ns2_vc_bind**)' [ 201s] 173 | const char *name, [ 201s] | ~~~~~~~~~~~~^~~~ [ 201s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 201s] 987 | GPRS_NS2_LL_UDP); [ 201s] | ^ [ 201s] In file included from ./gprs_bssgp_pcu.h:31, [ 201s] from gprs_bssgp_pcu.cpp:22: [ 201s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 201s] 155 | struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 201s] | ^~~~~~~~~~~~~~~~~~~ [ 201s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope; did you mean 'gprs_ns2_ip_connect2'? [ 201s] 1001 | rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 201s] | ^~~~~~~~~~~~~~~~~~~~~~~ [ 201s] | gprs_ns2_ip_connect2 [ 201s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 201s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 201s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 201s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 201s] dh_auto_build: make -j1 returned exit code 2 [ 201s] make: *** [debian/rules:12: build] Error 255 [ 201s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 201s] ### VM INTERACTION START ### [ 204s] [ 194.217754] sysrq: Power Off [ 204s] [ 194.221980] reboot: Power down [ 204s] ### VM INTERACTION END ### [ 204s] [ 204s] sheep85 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:45:30 UTC 2020. [ 204s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:45:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:45:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5fd966f2a1334_22fc2aafec8545f033849d@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: [ 164s] ^ [ 164s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 164s] GPRS_NS2_LL_UDP); [ 164s] ^ [ 164s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 164s] from gprs_bssgp_pcu.cpp:22: [ 164s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 164s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 164s] ^ [ 164s] gprs_bssgp_pcu.cpp:1001:58: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 164s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 164s] ^ [ 164s] Makefile:790: recipe for target 'gprs_bssgp_pcu.lo' failed [ 164s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 164s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 164s] Makefile:405: recipe for target 'all-recursive' failed [ 164s] make[1]: *** [all-recursive] Error 1 [ 164s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 164s] dh_auto_build: make -j1 returned exit code 2 [ 164s] debian/rules:12: recipe for target 'build' failed [ 164s] make: *** [build] Error 2 [ 164s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 164s] ### VM INTERACTION START ### [ 165s] Powering off. [ 165s] [ 156.163893] reboot: Power down [ 166s] ### VM INTERACTION END ### [ 166s] [ 166s] lamb07 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:45:39 UTC 2020. [ 166s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:46:13 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:46:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5fd966f3a0a14_22fc2aafec8545f033857f@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: [ 247s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 247s] from gprs_bssgp_pcu.cpp:22: [ 247s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 247s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 247s] ^~~~~~~~~~~~~~~~~~~ [ 247s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 247s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 247s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 247s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 247s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 247s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 247s] gprs_ns2_ip_connect2 [ 247s] Makefile:802: recipe for target 'gprs_bssgp_pcu.lo' failed [ 247s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 247s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 247s] Makefile:417: recipe for target 'all-recursive' failed [ 247s] make[1]: *** [all-recursive] Error 1 [ 247s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 247s] dh_auto_build: make -j1 returned exit code 2 [ 247s] debian/rules:12: recipe for target 'build' failed [ 247s] make: *** [build] Error 2 [ 247s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 247s] ### VM INTERACTION START ### [ 251s] [ 239.382116] sysrq: Power Off [ 251s] [ 239.389618] reboot: Power down [ 251s] ### VM INTERACTION END ### [ 251s] [ 251s] lamb64 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:45:55 UTC 2020. [ 251s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:46:30 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:46:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <5fd9670e20b7e_22fc2aafec8545f03386a7@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: [ 56s] ^ [ 56s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 56s] from gprs_bssgp_pcu.cpp:22: [ 56s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 56s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 56s] ^~~~~~~~~~~~~~~~~~~ [ 56s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 56s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 56s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 56s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 56s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 56s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 56s] gprs_ns2_ip_connect2 [ 56s] make[1]: *** [Makefile:801: gprs_bssgp_pcu.lo] Error 1 [ 56s] make[1]: *** Waiting for unfinished jobs.... [ 57s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 57s] make: *** [Makefile:416: all-recursive] Error 1 [ 57s] error: Bad exit status from /var/tmp/rpm-tmp.UklqQS (%build) [ 57s] [ 57s] [ 57s] RPM build errors: [ 57s] Bad exit status from /var/tmp/rpm-tmp.UklqQS (%build) [ 57s] ### VM INTERACTION START ### [ 60s] [ 49.706517] sysrq: SysRq : Power Off [ 60s] [ 49.707986] reboot: Power down [ 60s] ### VM INTERACTION END ### [ 60s] [ 60s] obs-arm-9 failed "build osmo-pcu.spec" at Wed Dec 16 01:46:16 UTC 2020. [ 60s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:46:30 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:46:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fd9670fd2183_22fc2aafec8545f03387a0@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: [ 344s] /usr/include/osmocom/gprs/gprs_ns2.h:173:20: note: initializing argument 2 of 'int gprs_ns2_ip_bind(gprs_ns2_inst*, const char*, const osmo_sockaddr*, int, gprs_ns2_vc_bind**)' [ 344s] 173 | const char *name, [ 344s] | ~~~~~~~~~~~~^~~~ [ 344s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 344s] 987 | GPRS_NS2_LL_UDP); [ 344s] | ^ [ 344s] In file included from ./gprs_bssgp_pcu.h:31, [ 344s] from gprs_bssgp_pcu.cpp:22: [ 344s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 344s] 155 | struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 344s] | ^~~~~~~~~~~~~~~~~~~ [ 344s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope; did you mean 'gprs_ns2_ip_connect2'? [ 344s] 1001 | rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 344s] | ^~~~~~~~~~~~~~~~~~~~~~~ [ 344s] | gprs_ns2_ip_connect2 [ 344s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 344s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 344s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 344s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 344s] dh_auto_build: error: make -j1 returned exit code 2 [ 344s] make: *** [debian/rules:12: build] Error 25 [ 344s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 344s] ### VM INTERACTION START ### [ 347s] [ 333.371447] sysrq: Power Off [ 347s] [ 333.378052] reboot: Power down [ 347s] ### VM INTERACTION END ### [ 347s] [ 347s] lamb19 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:46:14 UTC 2020. [ 347s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:47:04 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:47:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_19.04/x86_64 In-Reply-To: References: Message-ID: <5fd9672b44f93_22fc2aafec8545f0338844@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: [ 264s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 264s] GPRS_NS2_LL_UDP); [ 264s] ^ [ 264s] In file included from ./gprs_bssgp_pcu.h:31, [ 264s] from gprs_bssgp_pcu.cpp:22: [ 264s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 264s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 264s] ^~~~~~~~~~~~~~~~~~~ [ 264s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 264s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 264s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 264s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 264s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 264s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 264s] gprs_ns2_ip_connect2 [ 264s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 264s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 264s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 264s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 264s] dh_auto_build: make -j1 returned exit code 2 [ 265s] make: *** [debian/rules:12: build] Error 2 [ 265s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 265s] ### VM INTERACTION START ### [ 268s] [ 255.895574] sysrq: Power Off [ 268s] [ 255.902683] reboot: Power down [ 268s] ### VM INTERACTION END ### [ 268s] [ 268s] lamb12 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:46:52 UTC 2020. [ 268s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:48:13 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:48:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5fd96768cb240_22fc2aafec8545f033893a@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: [ 196s] ^ [ 196s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 196s] GPRS_NS2_LL_UDP); [ 196s] ^ [ 196s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 196s] from gprs_bssgp_pcu.cpp:22: [ 196s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 196s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 196s] ^~~~~~~~~~~~~~~~~~~ [ 196s] gprs_bssgp_pcu.cpp:1001:58: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 196s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 196s] ^ [ 196s] Makefile:802: recipe for target 'gprs_bssgp_pcu.lo' failed [ 196s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 196s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 196s] Makefile:417: recipe for target 'all-recursive' failed [ 196s] make[1]: *** [all-recursive] Error 1 [ 196s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 196s] dh_auto_build: make -j1 returned exit code 2 [ 196s] debian/rules:12: recipe for target 'build' failed [ 196s] make: *** [build] Error 2 [ 196s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 196s] ### VM INTERACTION START ### [ 200s] [ 187.855503] sysrq: Power Off [ 200s] [ 187.862587] reboot: Power down [ 200s] ### VM INTERACTION END ### [ 200s] [ 200s] lamb28 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:48:01 UTC 2020. [ 200s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:48:31 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:48:31 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in CentOS_8/aarch64 In-Reply-To: References: Message-ID: <5fd9678b1ca35_22fc2aafec8545f033913@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: [ 99s] ^ [ 99s] In file included from ./gprs_bssgp_pcu.h:31, [ 99s] from gprs_bssgp_pcu.cpp:22: [ 99s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 99s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 99s] ^~~~~~~~~~~~~~~~~~~ [ 99s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 99s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 99s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 99s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 99s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 99s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 99s] gprs_ns2_ip_connect2 [ 99s] make[1]: *** [Makefile:834: gprs_bssgp_pcu.lo] Error 1 [ 99s] make[1]: *** Waiting for unfinished jobs.... [ 100s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 100s] make: *** [Makefile:416: all-recursive] Error 1 [ 100s] error: Bad exit status from /var/tmp/rpm-tmp.iYtO1v (%build) [ 100s] [ 100s] [ 100s] RPM build errors: [ 100s] Bad exit status from /var/tmp/rpm-tmp.iYtO1v (%build) [ 100s] ### VM INTERACTION START ### [ 101s] Powering off. [ 101s] [ 84.305766] reboot: Power down [ 101s] ### VM INTERACTION END ### [ 101s] [ 101s] obs-arm-8 failed "build osmo-pcu.spec" at Wed Dec 16 01:48:22 UTC 2020. [ 101s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:55:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:55:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fd96947c7645_22fc2aafec8545f03398d7@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: [ 534s] /usr/include/osmocom/gprs/gprs_ns2.h:173:20: note: initializing argument 2 of 'int gprs_ns2_ip_bind(gprs_ns2_inst*, const char*, const osmo_sockaddr*, int, gprs_ns2_vc_bind**)' [ 534s] 173 | const char *name, [ 534s] | ~~~~~~~~~~~~^~~~ [ 534s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 534s] 987 | GPRS_NS2_LL_UDP); [ 534s] | ^ [ 534s] In file included from ./gprs_bssgp_pcu.h:31, [ 534s] from gprs_bssgp_pcu.cpp:22: [ 534s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 534s] 155 | struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 534s] | ^~~~~~~~~~~~~~~~~~~ [ 534s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope; did you mean 'gprs_ns2_ip_connect2'? [ 534s] 1001 | rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 534s] | ^~~~~~~~~~~~~~~~~~~~~~~ [ 534s] | gprs_ns2_ip_connect2 [ 534s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 534s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 534s] make[1]: *** [Makefile:419: all-recursive] Error 1 [ 534s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 534s] dh_auto_build: error: make -j1 returned exit code 2 [ 534s] make: *** [debian/rules:12: build] Error 25 [ 534s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 534s] ### VM INTERACTION START ### [ 535s] Powering off. [ 535s] [ 499.650972] reboot: Power down [ 535s] ### VM INTERACTION END ### [ 535s] [ 535s] cloud125 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:55:34 UTC 2020. [ 535s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 01:57:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 01:57:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5fd969c0b63c6_22fc2aafec8545f03400dd@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: [ 270s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 270s] GPRS_NS2_LL_UDP); [ 270s] ^ [ 270s] In file included from ./gprs_bssgp_pcu.h:31, [ 270s] from gprs_bssgp_pcu.cpp:22: [ 270s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 270s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 270s] ^~~~~~~~~~~~~~~~~~~ [ 270s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 270s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 270s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 270s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 270s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 270s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 270s] gprs_ns2_ip_connect2 [ 270s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 270s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 270s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 270s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 270s] dh_auto_build: make -j1 returned exit code 2 [ 270s] make: *** [debian/rules:12: build] Error 2 [ 270s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 270s] ### VM INTERACTION START ### [ 273s] [ 258.913461] sysrq: Power Off [ 273s] [ 258.920245] reboot: Power down [ 273s] ### VM INTERACTION END ### [ 273s] [ 273s] lamb02 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 01:57:31 UTC 2020. [ 273s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 02:04:47 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 02:04:47 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5fd96b48c08cb_22fc2aafec8545f034102@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: [ 741s] ^ [ 741s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 741s] GPRS_NS2_LL_UDP); [ 741s] ^ [ 741s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 741s] from gprs_bssgp_pcu.cpp:22: [ 741s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 741s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 741s] ^~~~~~~~~~~~~~~~~~~ [ 741s] gprs_bssgp_pcu.cpp:1001:58: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 741s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 741s] ^ [ 741s] Makefile:802: recipe for target 'gprs_bssgp_pcu.lo' failed [ 741s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 741s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 741s] Makefile:417: recipe for target 'all-recursive' failed [ 741s] make[1]: *** [all-recursive] Error 1 [ 741s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 741s] dh_auto_build: make -j1 returned exit code 2 [ 741s] debian/rules:12: recipe for target 'build' failed [ 741s] make: *** [build] Error 2 [ 741s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 741s] ### VM INTERACTION START ### [ 744s] [ 675.512912] sysrq: Power Off [ 744s] [ 675.525054] reboot: Power down [ 744s] ### VM INTERACTION END ### [ 744s] [ 744s] obs-arm-2 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 02:04:31 UTC 2020. [ 744s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 02:11:22 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 02:11:22 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5fd96cce29299_22fc2aafec8545f034265d@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: [ 821s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 821s] GPRS_NS2_LL_UDP); [ 821s] ^ [ 821s] In file included from ./gprs_bssgp_pcu.h:31, [ 821s] from gprs_bssgp_pcu.cpp:22: [ 821s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 821s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 821s] ^~~~~~~~~~~~~~~~~~~ [ 821s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 821s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 821s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 821s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 821s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 821s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 821s] gprs_ns2_ip_connect2 [ 821s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 821s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 821s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 821s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 821s] dh_auto_build: make -j1 returned exit code 2 [ 821s] make: *** [debian/rules:12: build] Error 2 [ 821s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 821s] ### VM INTERACTION START ### [ 824s] [ 739.156999] sysrq: Power Off [ 824s] [ 739.180386] reboot: Power down [ 824s] ### VM INTERACTION END ### [ 824s] [ 824s] obs-arm-2 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 02:11:12 UTC 2020. [ 824s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 02:38:13 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 02:38:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fd9732036008_22fc2aafec8545f03457ad@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: [ 126s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 126s] 987 | GPRS_NS2_LL_UDP); [ 126s] | ^ [ 126s] In file included from ./gprs_bssgp_pcu.h:31, [ 126s] from gprs_bssgp_pcu.cpp:22: [ 126s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 126s] 155 | struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 126s] | ^~~~~~~~~~~~~~~~~~~ [ 126s] CXX gprs_ms.lo [ 126s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope; did you mean 'gprs_ns2_ip_connect2'? [ 126s] 1001 | rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 126s] | ^~~~~~~~~~~~~~~~~~~~~~~ [ 126s] | gprs_ns2_ip_connect2 [ 126s] make[1]: *** [Makefile:834: gprs_bssgp_pcu.lo] Error 1 [ 126s] make[1]: *** Waiting for unfinished jobs.... [ 131s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 131s] make: *** [Makefile:416: all-recursive] Error 1 [ 131s] error: Bad exit status from /var/tmp/rpm-tmp.weHYdT (%build) [ 131s] [ 131s] [ 131s] RPM build errors: [ 131s] Bad exit status from /var/tmp/rpm-tmp.weHYdT (%build) [ 131s] ### VM INTERACTION START ### [ 134s] [ 104.674354] sysrq: Power Off [ 134s] [ 104.690511] reboot: Power down [ 135s] ### VM INTERACTION END ### [ 135s] [ 135s] obs-arm-5 failed "build osmo-pcu.spec" at Wed Dec 16 02:38:02 UTC 2020. [ 135s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 03:05:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 03:05:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5fd979972c26f_22fc2aafec8545f03487fb@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: [ 123s] ^ [ 123s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 123s] from gprs_bssgp_pcu.cpp:22: [ 123s] /usr/include/libosmocore/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 123s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 123s] ^~~~~~~~~~~~~~~~~~~ [ 123s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 123s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 123s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 123s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 123s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 123s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 123s] gprs_ns2_ip_connect2 [ 123s] make[1]: *** [Makefile:801: gprs_bssgp_pcu.lo] Error 1 [ 123s] make[1]: *** Waiting for unfinished jobs.... [ 123s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.289.398f/src' [ 123s] make: *** [Makefile:416: all-recursive] Error 1 [ 123s] error: Bad exit status from /var/tmp/rpm-tmp.H77bOD (%build) [ 123s] [ 123s] [ 123s] RPM build errors: [ 123s] Bad exit status from /var/tmp/rpm-tmp.H77bOD (%build) [ 123s] ### VM INTERACTION START ### [ 126s] [ 108.278207] sysrq: SysRq : Power Off [ 126s] [ 108.291707] reboot: Power down [ 127s] ### VM INTERACTION END ### [ 127s] [ 127s] armbuild02 failed "build osmo-pcu.spec" at Wed Dec 16 03:05:49 UTC 2020. [ 127s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 06:21:39 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 06:21:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fd9a78062d55_22fc2aafec8545f03816ca@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-pcu failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 662s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 662s] GPRS_NS2_LL_UDP); [ 662s] ^ [ 662s] In file included from ./gprs_bssgp_pcu.h:31, [ 662s] from gprs_bssgp_pcu.cpp:22: [ 662s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 662s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 662s] ^~~~~~~~~~~~~~~~~~~ [ 662s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 662s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 662s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 662s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 662s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 662s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 662s] gprs_ns2_ip_connect2 [ 662s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 662s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 662s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 662s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 662s] dh_auto_build: make -j1 returned exit code 2 [ 662s] make: *** [debian/rules:12: build] Error 2 [ 662s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 662s] ### VM INTERACTION START ### [ 666s] [ 621.846182] sysrq: SysRq : Power Off [ 666s] [ 621.851947] reboot: Power down [ 667s] ### VM INTERACTION END ### [ 667s] [ 667s] obs-arm-5 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 06:21:28 UTC 2020. [ 667s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 06:21:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 06:21:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fd9a79f4161b_22fc2aafec8545f0381710@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: [ 957s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 957s] GPRS_NS2_LL_UDP); [ 957s] ^ [ 957s] In file included from ./gprs_bssgp_pcu.h:31, [ 957s] from gprs_bssgp_pcu.cpp:22: [ 957s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 957s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 957s] ^~~~~~~~~~~~~~~~~~~ [ 957s] gprs_bssgp_pcu.cpp:1001:9: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 957s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 957s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 957s] gprs_bssgp_pcu.cpp:1001:9: note: suggested alternative: 'gprs_ns2_ip_connect2' [ 957s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 957s] ^~~~~~~~~~~~~~~~~~~~~~~ [ 957s] gprs_ns2_ip_connect2 [ 957s] make[2]: *** [Makefile:835: gprs_bssgp_pcu.lo] Error 1 [ 957s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 957s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 957s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 957s] dh_auto_build: make -j1 returned exit code 2 [ 957s] make: *** [debian/rules:12: build] Error 2 [ 957s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 957s] ### VM INTERACTION START ### [ 960s] [ 898.954596] sysrq: SysRq : Power Off [ 960s] [ 898.963641] reboot: Power down [ 962s] ### VM INTERACTION END ### [ 962s] [ 962s] obs-arm-6 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 06:21:40 UTC 2020. [ 962s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 07:03:39 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 07:03:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fd9b159d16c0_22fc2aafec8545f03920a1@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: [ 739s] ^ [ 739s] gprs_bssgp_pcu.cpp:987:28: error: too few arguments to function 'gprs_ns2_nse* gprs_ns2_create_nse(gprs_ns2_inst*, uint16_t, gprs_ns2_ll, gprs_ns2_dialect)' [ 739s] GPRS_NS2_LL_UDP); [ 739s] ^ [ 739s] In file included from ./gprs_bssgp_pcu.h:31:0, [ 739s] from gprs_bssgp_pcu.cpp:22: [ 739s] /usr/include/osmocom/gprs/gprs_ns2.h:155:22: note: declared here [ 739s] struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, [ 739s] ^~~~~~~~~~~~~~~~~~~ [ 739s] gprs_bssgp_pcu.cpp:1001:58: error: 'gprs_ns2_ip_connect_sns' was not declared in this scope [ 739s] rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); [ 739s] ^ [ 739s] Makefile:802: recipe for target 'gprs_bssgp_pcu.lo' failed [ 739s] make[2]: *** [gprs_bssgp_pcu.lo] Error 1 [ 739s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 739s] Makefile:417: recipe for target 'all-recursive' failed [ 739s] make[1]: *** [all-recursive] Error 1 [ 739s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 739s] dh_auto_build: make -j1 returned exit code 2 [ 739s] debian/rules:12: recipe for target 'build' failed [ 739s] make: *** [build] Error 2 [ 739s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 739s] ### VM INTERACTION START ### [ 742s] [ 716.895675] sysrq: SysRq : Power Off [ 742s] [ 716.911553] reboot: Power down [ 743s] ### VM INTERACTION END ### [ 743s] [ 743s] obs-arm-6 failed "build osmo-pcu_0.8.0.289.398f.dsc" at Wed Dec 16 07:03:25 UTC 2020. [ 743s] -- 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 Dec 16 09:53:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:53:43 +0000 Subject: Change in docker-playground[master]: Import freeswitch Dockerfile References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21736 ) Change subject: Import freeswitch Dockerfile ...................................................................... Import freeswitch Dockerfile Use https://github.com/signalwire/freeswitch current master (ae0444e9cbccdee55a80467d605e1e8c3363a36d) which has ancient Docker containers. Change-Id: Ib859b0ac869a82239a8c54c6e14ffa36e6497cd4 --- A freeswitch/Dockerfile A freeswitch/build/freeswitch.limits.conf A freeswitch/docker-entrypoint.sh 3 files changed, 119 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/36/21736/1 diff --git a/freeswitch/Dockerfile b/freeswitch/Dockerfile new file mode 100644 index 0000000..ef37e93 --- /dev/null +++ b/freeswitch/Dockerfile @@ -0,0 +1,77 @@ +# vim:set ft=dockerfile: +FROM debian:jessie + +# Source Dockerfile: +# https://github.com/docker-library/postgres/blob/master/9.4/Dockerfile + +# explicitly set user/group IDs +RUN groupadd -r freeswitch --gid=999 && useradd -r -g freeswitch --uid=999 freeswitch + +# grab gosu for easy step-down from root +RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 +RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \ + && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.2/gosu-$(dpkg --print-architecture)" \ + && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/1.2/gosu-$(dpkg --print-architecture).asc" \ + && gpg --verify /usr/local/bin/gosu.asc \ + && rm /usr/local/bin/gosu.asc \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove ca-certificates wget + +# make the "en_US.UTF-8" locale so freeswitch will be utf-8 enabled by default +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +# https://files.freeswitch.org/repo/deb/freeswitch-1.*/dists/jessie/main/binary-amd64/Packages + +ENV FS_MAJOR 1.6 + +RUN sed -i "s/jessie main/jessie main contrib non-free/" /etc/apt/sources.list + +# https://freeswitch.org/confluence/display/FREESWITCH/Debian+8+Jessie#Debian8Jessie-InstallingfromDebianpackages + +RUN apt-get update && apt-get install -y curl \ + && curl https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add - \ + && echo "deb http://files.freeswitch.org/repo/deb/freeswitch-$FS_MAJOR/ jessie main" > /etc/apt/sources.list.d/freeswitch.list \ + && apt-get purge -y --auto-remove curl + +RUN apt-get update && apt-get install -y freeswitch-all \ + && apt-get clean && rm -rf /var/lib/apt/lists/* + +# Clean up +RUN apt-get autoremove + +COPY docker-entrypoint.sh / +## Ports +# Open the container up to the world. +### 8021 fs_cli, 5060 5061 5080 5081 sip and sips, 64535-65535 rtp +EXPOSE 8021/tcp +EXPOSE 5060/tcp 5060/udp 5080/tcp 5080/udp +EXPOSE 5061/tcp 5061/udp 5081/tcp 5081/udp +EXPOSE 7443/tcp +EXPOSE 5070/udp 5070/tcp +EXPOSE 64535-65535/udp +EXPOSE 16384-32768/udp + + +# Volumes +## Freeswitch Configuration +VOLUME ["/etc/freeswitch"] +## Tmp so we can get core dumps out +VOLUME ["/tmp"] + +# Limits Configuration +COPY build/freeswitch.limits.conf /etc/security/limits.d/ + +# Healthcheck to make sure the service is running +SHELL ["/bin/bash"] +HEALTHCHECK --interval=15s --timeout=5s \ + CMD fs_cli -x status | grep -q ^UP || exit 1 + +## Add additional things here + +## + +ENTRYPOINT ["/docker-entrypoint.sh"] + +CMD ["freeswitch"] diff --git a/freeswitch/build/freeswitch.limits.conf b/freeswitch/build/freeswitch.limits.conf new file mode 100644 index 0000000..d6568eb --- /dev/null +++ b/freeswitch/build/freeswitch.limits.conf @@ -0,0 +1,15 @@ +freeswitch soft core unlimited +freeswitch soft data unlimited +freeswitch soft fsize unlimited +freeswitch soft memlock unlimited +freeswitch soft nofile 999999 +freeswitch soft rss unlimited +freeswitch hard stack 240 +freeswitch soft cpu unlimited +freeswitch soft nproc unlimited +freeswitch soft as unlimited +freeswitch soft priority -11 +freeswitch soft locks unlimited +freeswitch soft sigpending unlimited +freeswitch soft msgqueue unlimited +freeswitch soft nice -11 diff --git a/freeswitch/docker-entrypoint.sh b/freeswitch/docker-entrypoint.sh new file mode 100644 index 0000000..8b645a2 --- /dev/null +++ b/freeswitch/docker-entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -e + +# Source docker-entrypoint.sh: +# https://github.com/docker-library/postgres/blob/master/9.4/docker-entrypoint.sh +# https://github.com/kovalyshyn/docker-freeswitch/blob/vanilla/docker-entrypoint.sh + +if [ "$1" = 'freeswitch' ]; then + + if [ ! -f "/etc/freeswitch/freeswitch.xml" ]; then + mkdir -p /etc/freeswitch + cp -varf /usr/share/freeswitch/conf/vanilla/* /etc/freeswitch/ + fi + + chown -R freeswitch:freeswitch /etc/freeswitch + chown -R freeswitch:freeswitch /var/{run,lib}/freeswitch + + if [ -d /docker-entrypoint.d ]; then + for f in /docker-entrypoint.d/*.sh; do + [ -f "$f" ] && . "$f" + done + fi + + exec gosu freeswitch /usr/bin/freeswitch -u freeswitch -g freeswitch -nonat -c +fi + +exec "$@" -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ib859b0ac869a82239a8c54c6e14ffa36e6497cd4 Gerrit-Change-Number: 21736 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 Dec 16 09:53:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:53:43 +0000 Subject: Change in docker-playground[master]: freeswitch: Attempt to ugprade Dockerfile to 1.10.2 + buster References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21737 ) Change subject: freeswitch: Attempt to ugprade Dockerfile to 1.10.2 + buster ...................................................................... freeswitch: Attempt to ugprade Dockerfile to 1.10.2 + buster Change-Id: Ia18ff8a45bcb662352d29abdbf1b9a555f23d161 --- M freeswitch/Dockerfile 1 file changed, 15 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/37/21737/1 diff --git a/freeswitch/Dockerfile b/freeswitch/Dockerfile index ef37e93..50db389 100644 --- a/freeswitch/Dockerfile +++ b/freeswitch/Dockerfile @@ -1,5 +1,5 @@ # vim:set ft=dockerfile: -FROM debian:jessie +FROM debian:buster # Source Dockerfile: # https://github.com/docker-library/postgres/blob/master/9.4/Dockerfile @@ -8,14 +8,10 @@ RUN groupadd -r freeswitch --gid=999 && useradd -r -g freeswitch --uid=999 freeswitch # grab gosu for easy step-down from root -RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 -RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \ - && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.2/gosu-$(dpkg --print-architecture)" \ - && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/1.2/gosu-$(dpkg --print-architecture).asc" \ - && gpg --verify /usr/local/bin/gosu.asc \ - && rm /usr/local/bin/gosu.asc \ - && chmod +x /usr/local/bin/gosu \ - && apt-get purge -y --auto-remove ca-certificates wget +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + gosu \ + && rm -rf /var/lib/apt/lists/* # make the "en_US.UTF-8" locale so freeswitch will be utf-8 enabled by default RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ @@ -24,16 +20,18 @@ # https://files.freeswitch.org/repo/deb/freeswitch-1.*/dists/jessie/main/binary-amd64/Packages -ENV FS_MAJOR 1.6 +ENV FS_MAJOR 1.10 -RUN sed -i "s/jessie main/jessie main contrib non-free/" /etc/apt/sources.list +RUN sed -i "s/buster main/buster main contrib non-free/" /etc/apt/sources.list -# https://freeswitch.org/confluence/display/FREESWITCH/Debian+8+Jessie#Debian8Jessie-InstallingfromDebianpackages - -RUN apt-get update && apt-get install -y curl \ - && curl https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add - \ - && echo "deb http://files.freeswitch.org/repo/deb/freeswitch-$FS_MAJOR/ jessie main" > /etc/apt/sources.list.d/freeswitch.list \ - && apt-get purge -y --auto-remove curl +# https://freeswitch.org/confluence/display/FREESWITCH/Debian+10+Buster +RUN apt-get update && \ + apt-get install -y \ + gnupg2 \ + wget \ + && wget -O - https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc | apt-key add - \ + && echo "deb http://files.freeswitch.org/repo/deb/debian-release/ buster main" > /etc/apt/sources.list.d/freeswitch.list \ + && apt-get purge -y --auto-remove wget RUN apt-get update && apt-get install -y freeswitch-all \ && apt-get clean && rm -rf /var/lib/apt/lists/* -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia18ff8a45bcb662352d29abdbf1b9a555f23d161 Gerrit-Change-Number: 21737 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 Dec 16 09:53:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:53:44 +0000 Subject: Change in docker-playground[master]: migrate from CentOS_8_Stream to CentOS_8 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21738 ) Change subject: migrate from CentOS_8_Stream to CentOS_8 ...................................................................... migrate from CentOS_8_Stream to CentOS_8 Change-Id: I72c8fdae14816ec0a243f3fca4b4c2a49b562845 Related: SYS#5250 --- M centos8-build/Dockerfile M osmo-bsc-master/Dockerfile M osmo-bts-master/Dockerfile M osmo-ggsn-master/Dockerfile M osmo-hlr-master/Dockerfile M osmo-hnbgw-master/Dockerfile M osmo-mgw-master/Dockerfile M osmo-msc-master/Dockerfile M osmo-nitb-master/Dockerfile M osmo-pcu-master/Dockerfile M osmo-remsim-master/Dockerfile M osmo-sgsn-master/Dockerfile M osmo-sip-master/Dockerfile M osmo-smlc-master/Dockerfile M osmo-stp-master/Dockerfile 15 files changed, 15 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/38/21738/1 diff --git a/centos8-build/Dockerfile b/centos8-build/Dockerfile index f4aab6c..1130f34 100644 --- a/centos8-build/Dockerfile +++ b/centos8-build/Dockerfile @@ -10,7 +10,7 @@ RUN dnf install -y dnf-utils wget && \ yum config-manager --set-enabled powertools && \ cd /etc/yum.repos.d/ && \ - wget $OSMOCOM_REPO_MIRROR/repositories/network:osmocom:nightly/CentOS_8_Stream/network:osmocom:nightly.repo + wget $OSMOCOM_REPO_MIRROR/repositories/network:osmocom:nightly/CentOS_8/network:osmocom:nightly.repo RUN dnf install -y \ autoconf \ diff --git a/osmo-bsc-master/Dockerfile b/osmo-bsc-master/Dockerfile index 00ca4cb..1c0b04a 100644 --- a/osmo-bsc-master/Dockerfile +++ b/osmo-bsc-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-bts-master/Dockerfile b/osmo-bts-master/Dockerfile index e3adeba..4699b2b 100644 --- a/osmo-bts-master/Dockerfile +++ b/osmo-bts-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-ggsn-master/Dockerfile b/osmo-ggsn-master/Dockerfile index 1d246d0..3610f74 100644 --- a/osmo-ggsn-master/Dockerfile +++ b/osmo-ggsn-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-hlr-master/Dockerfile b/osmo-hlr-master/Dockerfile index 3757a32..2f7a165 100644 --- a/osmo-hlr-master/Dockerfile +++ b/osmo-hlr-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-hnbgw-master/Dockerfile b/osmo-hnbgw-master/Dockerfile index 46d5fe5..ed35431 100644 --- a/osmo-hnbgw-master/Dockerfile +++ b/osmo-hnbgw-master/Dockerfile @@ -18,7 +18,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN apt-get update && \ apt-get install -y --no-install-recommends \ telnet \ diff --git a/osmo-mgw-master/Dockerfile b/osmo-mgw-master/Dockerfile index 12dd1b0..02337ca 100644 --- a/osmo-mgw-master/Dockerfile +++ b/osmo-mgw-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-msc-master/Dockerfile b/osmo-msc-master/Dockerfile index 93d1798..7f9e6f5 100644 --- a/osmo-msc-master/Dockerfile +++ b/osmo-msc-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-nitb-master/Dockerfile b/osmo-nitb-master/Dockerfile index 6542eaf..c0d3405 100644 --- a/osmo-nitb-master/Dockerfile +++ b/osmo-nitb-master/Dockerfile @@ -19,7 +19,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN apt-get update && \ apt-get install -y --no-install-recommends \ telnet \ diff --git a/osmo-pcu-master/Dockerfile b/osmo-pcu-master/Dockerfile index e48de6f..6a0a55d 100644 --- a/osmo-pcu-master/Dockerfile +++ b/osmo-pcu-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-remsim-master/Dockerfile b/osmo-remsim-master/Dockerfile index ac940c0..4542537 100644 --- a/osmo-remsim-master/Dockerfile +++ b/osmo-remsim-master/Dockerfile @@ -48,7 +48,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-sgsn-master/Dockerfile b/osmo-sgsn-master/Dockerfile index 6f55bf9..fb25f84 100644 --- a/osmo-sgsn-master/Dockerfile +++ b/osmo-sgsn-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-sip-master/Dockerfile b/osmo-sip-master/Dockerfile index 9793c9c..4a53b7e 100644 --- a/osmo-sip-master/Dockerfile +++ b/osmo-sip-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-smlc-master/Dockerfile b/osmo-smlc-master/Dockerfile index c09771d..38cd41b 100644 --- a/osmo-smlc-master/Dockerfile +++ b/osmo-smlc-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-stp-master/Dockerfile b/osmo-stp-master/Dockerfile index a38b4a8..39363bc 100644 --- a/osmo-stp-master/Dockerfile +++ b/osmo-stp-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I72c8fdae14816ec0a243f3fca4b4c2a49b562845 Gerrit-Change-Number: 21738 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 Dec 16 09:53:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:53:44 +0000 Subject: Change in docker-playground[master]: fpga-build: Make riscv + fpga toolchain version configurable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21739 ) Change subject: fpga-build: Make riscv + fpga toolchain version configurable ...................................................................... fpga-build: Make riscv + fpga toolchain version configurable Change-Id: I8969e383975c673c29169ff5b60229c4a75a499c --- M fpga-build/Dockerfile 1 file changed, 9 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/39/21739/1 diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index 9253f73..4056143 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -3,15 +3,16 @@ MAINTAINER Harald Welte -ARG TOOLCHAIN_DATE=20200914 +ARG FPGA_TOOLCHAIN_DATE=20200914 +ARG RISCV_TOOLCHAIN_VER=8.3.0-1.2 -RUN wget --quiet https://github.com/open-tool-forge/fpga-toolchain/releases/download/nightly-$TOOLCHAIN_DATE/fpga-toolchain-linux_x86_64-nightly-$TOOLCHAIN_DATE.tar.gz -RUN tar -C /opt -xzf fpga-toolchain-linux_x86_64-nightly-$TOOLCHAIN_DATE.tar.gz && \ - rm fpga-toolchain-linux_x86_64-nightly-$TOOLCHAIN_DATE.tar.gz +RUN wget https://github.com/open-tool-forge/fpga-toolchain/releases/download/nightly-${FPGA_TOOLCHAIN_DATE}/fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz +RUN tar -C /opt -xf fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz && \ + rm fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz -RUN wget --quiet https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases/download/v8.3.0-1.2/xpack-riscv-none-embed-gcc-8.3.0-1.2-linux-x64.tar.gz -RUN tar -C /opt -xzvf /xpack-riscv-none-embed-gcc-8.3.0-1.2-linux-x64.tar.gz && \ - rm xpack-riscv-none-embed-gcc-8.3.0-1.2-linux-x64.tar.gz +RUN wget --quiet https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases/download/v${RISCV_TOOLCHAIN_VER}/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz +RUN tar -C /opt -xf /xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz && \ + rm xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz RUN apt-get update && \ apt-get upgrade -y && \ @@ -23,4 +24,4 @@ USER osmocom WORKDIR /home/osmocom -ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-8.3.0-1.2/bin:${PATH} +ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:${PATH} -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8969e383975c673c29169ff5b60229c4a75a499c Gerrit-Change-Number: 21739 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 Dec 16 09:54:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:54:45 +0000 Subject: Change in docker-playground[master]: centos8-build: Make 'make' work again References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21740 ) Change subject: centos8-build: Make 'make' work again ...................................................................... centos8-build: Make 'make' work again Change-Id: I695ff7d6db7026a3b91771d4964f23d3151ef0aa --- M centos8-build/Makefile 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/40/21740/1 diff --git a/centos8-build/Makefile b/centos8-build/Makefile index 8d0e10b..cba5cee 100644 --- a/centos8-build/Makefile +++ b/centos8-build/Makefile @@ -1 +1,3 @@ +UPSTREAM_DISTRO:=centos:centos8 +DISTRO:=centos8 include ../make/Makefile -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I695ff7d6db7026a3b91771d4964f23d3151ef0aa Gerrit-Change-Number: 21740 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 Dec 16 09:55:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:55:57 +0000 Subject: Change in docker-playground[master]: migrate from CentOS_8_Stream to CentOS_8 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21738 ) Change subject: migrate from CentOS_8_Stream to CentOS_8 ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I72c8fdae14816ec0a243f3fca4b4c2a49b562845 Gerrit-Change-Number: 21738 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 09:55: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 Dec 16 09:56:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:56:06 +0000 Subject: Change in docker-playground[master]: migrate from CentOS_8_Stream to CentOS_8 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21738 ) Change subject: migrate from CentOS_8_Stream to CentOS_8 ...................................................................... migrate from CentOS_8_Stream to CentOS_8 Change-Id: I72c8fdae14816ec0a243f3fca4b4c2a49b562845 Related: SYS#5250 --- M centos8-build/Dockerfile M osmo-bsc-master/Dockerfile M osmo-bts-master/Dockerfile M osmo-ggsn-master/Dockerfile M osmo-hlr-master/Dockerfile M osmo-hnbgw-master/Dockerfile M osmo-mgw-master/Dockerfile M osmo-msc-master/Dockerfile M osmo-nitb-master/Dockerfile M osmo-pcu-master/Dockerfile M osmo-remsim-master/Dockerfile M osmo-sgsn-master/Dockerfile M osmo-sip-master/Dockerfile M osmo-smlc-master/Dockerfile M osmo-stp-master/Dockerfile 15 files changed, 15 insertions(+), 15 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/centos8-build/Dockerfile b/centos8-build/Dockerfile index f4aab6c..1130f34 100644 --- a/centos8-build/Dockerfile +++ b/centos8-build/Dockerfile @@ -10,7 +10,7 @@ RUN dnf install -y dnf-utils wget && \ yum config-manager --set-enabled powertools && \ cd /etc/yum.repos.d/ && \ - wget $OSMOCOM_REPO_MIRROR/repositories/network:osmocom:nightly/CentOS_8_Stream/network:osmocom:nightly.repo + wget $OSMOCOM_REPO_MIRROR/repositories/network:osmocom:nightly/CentOS_8/network:osmocom:nightly.repo RUN dnf install -y \ autoconf \ diff --git a/osmo-bsc-master/Dockerfile b/osmo-bsc-master/Dockerfile index 00ca4cb..1c0b04a 100644 --- a/osmo-bsc-master/Dockerfile +++ b/osmo-bsc-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-bts-master/Dockerfile b/osmo-bts-master/Dockerfile index e3adeba..4699b2b 100644 --- a/osmo-bts-master/Dockerfile +++ b/osmo-bts-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-ggsn-master/Dockerfile b/osmo-ggsn-master/Dockerfile index 1d246d0..3610f74 100644 --- a/osmo-ggsn-master/Dockerfile +++ b/osmo-ggsn-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-hlr-master/Dockerfile b/osmo-hlr-master/Dockerfile index 3757a32..2f7a165 100644 --- a/osmo-hlr-master/Dockerfile +++ b/osmo-hlr-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-hnbgw-master/Dockerfile b/osmo-hnbgw-master/Dockerfile index 46d5fe5..ed35431 100644 --- a/osmo-hnbgw-master/Dockerfile +++ b/osmo-hnbgw-master/Dockerfile @@ -18,7 +18,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN apt-get update && \ apt-get install -y --no-install-recommends \ telnet \ diff --git a/osmo-mgw-master/Dockerfile b/osmo-mgw-master/Dockerfile index 12dd1b0..02337ca 100644 --- a/osmo-mgw-master/Dockerfile +++ b/osmo-mgw-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-msc-master/Dockerfile b/osmo-msc-master/Dockerfile index 93d1798..7f9e6f5 100644 --- a/osmo-msc-master/Dockerfile +++ b/osmo-msc-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-nitb-master/Dockerfile b/osmo-nitb-master/Dockerfile index 6542eaf..c0d3405 100644 --- a/osmo-nitb-master/Dockerfile +++ b/osmo-nitb-master/Dockerfile @@ -19,7 +19,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN apt-get update && \ apt-get install -y --no-install-recommends \ telnet \ diff --git a/osmo-pcu-master/Dockerfile b/osmo-pcu-master/Dockerfile index e48de6f..6a0a55d 100644 --- a/osmo-pcu-master/Dockerfile +++ b/osmo-pcu-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-remsim-master/Dockerfile b/osmo-remsim-master/Dockerfile index ac940c0..4542537 100644 --- a/osmo-remsim-master/Dockerfile +++ b/osmo-remsim-master/Dockerfile @@ -48,7 +48,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-sgsn-master/Dockerfile b/osmo-sgsn-master/Dockerfile index 6f55bf9..fb25f84 100644 --- a/osmo-sgsn-master/Dockerfile +++ b/osmo-sgsn-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-sip-master/Dockerfile b/osmo-sip-master/Dockerfile index 9793c9c..4a53b7e 100644 --- a/osmo-sip-master/Dockerfile +++ b/osmo-sip-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-smlc-master/Dockerfile b/osmo-smlc-master/Dockerfile index c09771d..38cd41b 100644 --- a/osmo-smlc-master/Dockerfile +++ b/osmo-smlc-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ diff --git a/osmo-stp-master/Dockerfile b/osmo-stp-master/Dockerfile index a38b4a8..39363bc 100644 --- a/osmo-stp-master/Dockerfile +++ b/osmo-stp-master/Dockerfile @@ -23,7 +23,7 @@ # we need to add this to invalidate the cache once the repository is updated. # unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM ADD $OSMOCOM_REPO/Release /tmp/Release -ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8_Stream/repodata/repomd.xml /tmp/repomd.xml +ADD $OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/CentOS_8/repodata/repomd.xml /tmp/repomd.xml RUN case "$DISTRO" in \ debian*) \ apt-get update && \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I72c8fdae14816ec0a243f3fca4b4c2a49b562845 Gerrit-Change-Number: 21738 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 Wed Dec 16 09:56:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:56:16 +0000 Subject: Change in docker-playground[master]: fpga-build: Make riscv + fpga toolchain version configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21739 ) Change subject: fpga-build: Make riscv + fpga toolchain version configurable ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8969e383975c673c29169ff5b60229c4a75a499c Gerrit-Change-Number: 21739 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 09: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 Wed Dec 16 09:56:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:56:21 +0000 Subject: Change in docker-playground[master]: centos8-build: Make 'make' work again In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21740 ) Change subject: centos8-build: Make 'make' work again ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I695ff7d6db7026a3b91771d4964f23d3151ef0aa Gerrit-Change-Number: 21740 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 09:56: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 Dec 16 09:56:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:56:24 +0000 Subject: Change in docker-playground[master]: centos8-build: Make 'make' work again In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21740 ) Change subject: centos8-build: Make 'make' work again ...................................................................... centos8-build: Make 'make' work again Change-Id: I695ff7d6db7026a3b91771d4964f23d3151ef0aa --- M centos8-build/Makefile 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/centos8-build/Makefile b/centos8-build/Makefile index 8d0e10b..cba5cee 100644 --- a/centos8-build/Makefile +++ b/centos8-build/Makefile @@ -1 +1,3 @@ +UPSTREAM_DISTRO:=centos:centos8 +DISTRO:=centos8 include ../make/Makefile -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I695ff7d6db7026a3b91771d4964f23d3151ef0aa Gerrit-Change-Number: 21740 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 Dec 16 09:56:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 09:56:24 +0000 Subject: Change in docker-playground[master]: fpga-build: Make riscv + fpga toolchain version configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21739 ) Change subject: fpga-build: Make riscv + fpga toolchain version configurable ...................................................................... fpga-build: Make riscv + fpga toolchain version configurable Change-Id: I8969e383975c673c29169ff5b60229c4a75a499c --- M fpga-build/Dockerfile 1 file changed, 9 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index 9253f73..4056143 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -3,15 +3,16 @@ MAINTAINER Harald Welte -ARG TOOLCHAIN_DATE=20200914 +ARG FPGA_TOOLCHAIN_DATE=20200914 +ARG RISCV_TOOLCHAIN_VER=8.3.0-1.2 -RUN wget --quiet https://github.com/open-tool-forge/fpga-toolchain/releases/download/nightly-$TOOLCHAIN_DATE/fpga-toolchain-linux_x86_64-nightly-$TOOLCHAIN_DATE.tar.gz -RUN tar -C /opt -xzf fpga-toolchain-linux_x86_64-nightly-$TOOLCHAIN_DATE.tar.gz && \ - rm fpga-toolchain-linux_x86_64-nightly-$TOOLCHAIN_DATE.tar.gz +RUN wget https://github.com/open-tool-forge/fpga-toolchain/releases/download/nightly-${FPGA_TOOLCHAIN_DATE}/fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz +RUN tar -C /opt -xf fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz && \ + rm fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz -RUN wget --quiet https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases/download/v8.3.0-1.2/xpack-riscv-none-embed-gcc-8.3.0-1.2-linux-x64.tar.gz -RUN tar -C /opt -xzvf /xpack-riscv-none-embed-gcc-8.3.0-1.2-linux-x64.tar.gz && \ - rm xpack-riscv-none-embed-gcc-8.3.0-1.2-linux-x64.tar.gz +RUN wget --quiet https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases/download/v${RISCV_TOOLCHAIN_VER}/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz +RUN tar -C /opt -xf /xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz && \ + rm xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz RUN apt-get update && \ apt-get upgrade -y && \ @@ -23,4 +24,4 @@ USER osmocom WORKDIR /home/osmocom -ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-8.3.0-1.2/bin:${PATH} +ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:${PATH} -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8969e383975c673c29169ff5b60229c4a75a499c Gerrit-Change-Number: 21739 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 Wed Dec 16 10:49:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 10:49:07 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 dialect changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21728 ) Change subject: ns2: follow ns2 dialect changes ...................................................................... Patch Set 3: this change seems related to an API/ABI change in libosmocore, yet no 'Related' Change-Id is listed in the commit message. Also, no OS# or SYS# related issue at all? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 10:49: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 Wed Dec 16 10:49:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 10:49:22 +0000 Subject: Change in osmo-pcu[master]: ns2: follow changes to add a unique name to all binds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21729 ) Change subject: ns2: follow changes to add a unique name to all binds ...................................................................... Patch Set 3: this change seems related to an API/ABI change in libosmocore, yet no 'Related' Change-Id is listed in the commit message. Also, no OS# or SYS# related issue at all? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 Gerrit-Change-Number: 21729 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 10:49: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 Dec 16 10:49:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 10:49:27 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 sns api changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21730 ) Change subject: ns2: follow ns2 sns api changes ...................................................................... Patch Set 3: this change seems related to an API/ABI change in libosmocore, yet no 'Related' Change-Id is listed in the commit message. Also, no OS# or SYS# related issue at all? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa Gerrit-Change-Number: 21730 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 10:49: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 Wed Dec 16 11:06:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 11:06:56 +0000 Subject: Change in libosmocore[master]: Fix VTY syntax for newly-introduced NS2 timers References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21741 ) Change subject: Fix VTY syntax for newly-introduced NS2 timers ...................................................................... Fix VTY syntax for newly-introduced NS2 timers In I00e9023a6e7adc6ad48f4016fcaef189ac8b353e we introduced two new "timers": Number of retries for SNS-CONFIG and for SNS-SIZE. Yet, the VTY syntax only added one string (tsns-prov-retires), probably dating back to an earlier version. Change-Id: I25fa579c7d68a8e4cb1175ae2245f009ab40fda7 --- M src/gb/gprs_ns2_internal.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/41/21741/1 diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 9e63c70..df3772a 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -16,7 +16,7 @@ struct gprs_ns2_vc_bind; #define NS_TIMERS_COUNT 10 -#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-prov-retries)" +#define NS_TIMERS "(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)" #define NS_TIMERS_HELP \ "(un)blocking Timer (Tns-block) timeout\n" \ "(un)blocking Timer (Tns-block) number of retries\n" \ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I25fa579c7d68a8e4cb1175ae2245f009ab40fda7 Gerrit-Change-Number: 21741 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 Dec 16 11:06:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 11:06:56 +0000 Subject: Change in libosmocore[master]: gors_ns2_vty: Fix saving of new NS2 timers References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21742 ) Change subject: gors_ns2_vty: Fix saving of new NS2 timers ...................................................................... gors_ns2_vty: Fix saving of new NS2 timers In I00e9023a6e7adc6ad48f4016fcaef189ac8b353e we introduced two new timers, but failed to add the related value_string[] entries. This caused the VTY code to save something like timer unknown 0x8 3 timer unknown 0x9 3 which fails to parse on re-start. Change-Id: If5cfdf1ef68d98933985406d0ac071a0a1185646 --- M src/gb/gprs_ns2_vty.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/42/21742/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 87284c2..742f181 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -103,6 +103,8 @@ { 5, "tns-alive" }, { 6, "tns-alive-retries" }, { 7, "tsns-prov" }, + { 8, "tsns-size-retries" }, + { 9, "tsns-config-retries" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If5cfdf1ef68d98933985406d0ac071a0a1185646 Gerrit-Change-Number: 21742 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 Dec 16 11:07:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 11:07:54 +0000 Subject: Change in libosmocore[master]: Fix VTY syntax for newly-introduced NS2 timers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21741 ) Change subject: Fix VTY syntax for newly-introduced NS2 timers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I25fa579c7d68a8e4cb1175ae2245f009ab40fda7 Gerrit-Change-Number: 21741 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 16 Dec 2020 11: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 Wed Dec 16 11:07:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 11:07:54 +0000 Subject: Change in libosmocore[master]: Fix VTY syntax for newly-introduced NS2 timers In-Reply-To: References: Message-ID: laforge has removed Jenkins Builder from this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21741 ) Change subject: Fix VTY syntax for newly-introduced NS2 timers ...................................................................... Removed reviewer Jenkins Builder. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I25fa579c7d68a8e4cb1175ae2245f009ab40fda7 Gerrit-Change-Number: 21741 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: deleteReviewer -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 16 11:08:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 11:08:02 +0000 Subject: Change in libosmocore[master]: gors_ns2_vty: Fix saving of new NS2 timers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21742 ) Change subject: gors_ns2_vty: Fix saving of new NS2 timers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If5cfdf1ef68d98933985406d0ac071a0a1185646 Gerrit-Change-Number: 21742 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 16 Dec 2020 11:08: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 Dec 16 11:40:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 11:40:10 +0000 Subject: Change in libosmocore[master]: Fix VTY syntax for newly-introduced NS2 timers In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21741 ) Change subject: Fix VTY syntax for newly-introduced NS2 timers ...................................................................... Fix VTY syntax for newly-introduced NS2 timers In I00e9023a6e7adc6ad48f4016fcaef189ac8b353e we introduced two new "timers": Number of retries for SNS-CONFIG and for SNS-SIZE. Yet, the VTY syntax only added one string (tsns-prov-retires), probably dating back to an earlier version. Change-Id: I25fa579c7d68a8e4cb1175ae2245f009ab40fda7 --- M src/gb/gprs_ns2_internal.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 9e63c70..df3772a 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -16,7 +16,7 @@ struct gprs_ns2_vc_bind; #define NS_TIMERS_COUNT 10 -#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-prov-retries)" +#define NS_TIMERS "(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)" #define NS_TIMERS_HELP \ "(un)blocking Timer (Tns-block) timeout\n" \ "(un)blocking Timer (Tns-block) number of retries\n" \ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I25fa579c7d68a8e4cb1175ae2245f009ab40fda7 Gerrit-Change-Number: 21741 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 Wed Dec 16 11:40:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 11:40:11 +0000 Subject: Change in libosmocore[master]: gors_ns2_vty: Fix saving of new NS2 timers In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21742 ) Change subject: gors_ns2_vty: Fix saving of new NS2 timers ...................................................................... gors_ns2_vty: Fix saving of new NS2 timers In I00e9023a6e7adc6ad48f4016fcaef189ac8b353e we introduced two new timers, but failed to add the related value_string[] entries. This caused the VTY code to save something like timer unknown 0x8 3 timer unknown 0x9 3 which fails to parse on re-start. Change-Id: If5cfdf1ef68d98933985406d0ac071a0a1185646 --- M src/gb/gprs_ns2_vty.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: laforge: 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 87284c2..742f181 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -103,6 +103,8 @@ { 5, "tns-alive" }, { 6, "tns-alive-retries" }, { 7, "tsns-prov" }, + { 8, "tsns-size-retries" }, + { 9, "tsns-config-retries" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If5cfdf1ef68d98933985406d0ac071a0a1185646 Gerrit-Change-Number: 21742 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 Wed Dec 16 12:00:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:10 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 dialect changes In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#4) to the change originally created by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21728 ) Change subject: ns2: follow ns2 dialect changes ...................................................................... ns2: follow ns2 dialect changes NS2 introduce a ns dialect to differentiate between the 4 possible dialects. Related: OS#4472, OS#4890 Depends: libosmocore.git Ia118bb6f994845d84db09de7a94856f5ca573404 Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc --- M src/bts.h M src/gprs_bssgp_pcu.cpp M src/pcu_vty.c 3 files changed, 13 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/28/21728/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 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 Wed Dec 16 12:00:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:10 +0000 Subject: Change in osmo-pcu[master]: ns2: follow changes to add a unique name to all binds In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#4) to the change originally created by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21729 ) Change subject: ns2: follow changes to add a unique name to all binds ...................................................................... ns2: follow changes to add a unique name to all binds Related: OS#4472, OS#4890 Depends: libosmocore.git I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/29/21729/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 Gerrit-Change-Number: 21729 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 Wed Dec 16 12:00:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:10 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 sns api changes In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#4) to the change originally created by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21730 ) Change subject: ns2: follow ns2 sns api changes ...................................................................... ns2: follow ns2 sns api changes Related: OS#4472, OS#4890 Depends: libosmocore.git I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa --- M src/gprs_bssgp_pcu.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/30/21730/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa Gerrit-Change-Number: 21730 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 Wed Dec 16 12:00:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:19 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 dialect changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21728 ) Change subject: ns2: follow ns2 dialect changes ...................................................................... Patch Set 4: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 12:00: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 Dec 16 12:00:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:23 +0000 Subject: Change in osmo-pcu[master]: ns2: follow changes to add a unique name to all binds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21729 ) Change subject: ns2: follow changes to add a unique name to all binds ...................................................................... Patch Set 4: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 Gerrit-Change-Number: 21729 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 12:00: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 Dec 16 12:00:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:27 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 sns api changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21730 ) Change subject: ns2: follow ns2 sns api changes ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa Gerrit-Change-Number: 21730 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 12:00: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 Dec 16 12:00:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:32 +0000 Subject: Change in osmo-pcu[master]: ns2: follow changes to add a unique name to all binds In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21729 ) Change subject: ns2: follow changes to add a unique name to all binds ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 Gerrit-Change-Number: 21729 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 16 12:00:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:36 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 dialect changes In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21728 ) Change subject: ns2: follow ns2 dialect changes ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 16 12:00:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:40 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 dialect changes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21728 ) Change subject: ns2: follow ns2 dialect changes ...................................................................... ns2: follow ns2 dialect changes NS2 introduce a ns dialect to differentiate between the 4 possible dialects. Related: OS#4472, OS#4890 Depends: libosmocore.git Ia118bb6f994845d84db09de7a94856f5ca573404 Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc --- M src/bts.h M src/gprs_bssgp_pcu.cpp M src/pcu_vty.c 3 files changed, 13 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/src/bts.h b/src/bts.h index fd52067..055b131 100644 --- a/src/bts.h +++ b/src/bts.h @@ -23,17 +23,23 @@ #ifdef __cplusplus extern "C" { +#endif + #include #include #include #include +#include #include #include #include #include "mslot_class.h" #include "gsm_rlcmac.h" +#ifdef __cplusplus } +#endif +#ifdef __cplusplus #include "poll_controller.h" #include "sba.h" #include "tbf.h" @@ -170,7 +176,7 @@ char *pcu_sock_path; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ - bool gb_dialect_sns; + 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. */ diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 934d8fc..4d24d2e 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -984,7 +984,7 @@ bts->nse = gprs_ns2_nse_by_nsei(bts->nsi, nsei); if (!bts->nse) bts->nse = gprs_ns2_create_nse(bts->nsi, nsei, - GPRS_NS2_LL_UDP); + GPRS_NS2_LL_UDP, bts->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->gb_dialect_sns) { + if (bts->ns_dialect == NS2_DIALECT_SNS) { rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); if (!rc) return rc; @@ -1066,7 +1066,7 @@ gprs_ns2_free_nses(bts->nsi); gprs_ns2_free_binds(bts->nsi); rc = ns_create_nsvc(bts, nsei, local, remote, nsvci, valid); - } else if (bts->gb_dialect_sns) { + } else if (bts->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/pcu_vty.c b/src/pcu_vty.c index bf45686..800079c 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -246,7 +246,7 @@ } } - if (bts->gb_dialect_sns) + if (bts->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); @@ -1131,11 +1131,9 @@ struct gprs_rlcmac_bts *bts = bts_main_data(); if (!strcmp(argv[0], "ip-sns")) { - bts->gb_dialect_sns = true; - gprs_ns2_vty_force_vc_mode(true, NS2_VC_MODE_ALIVE, "gb-dialect is ip-sns"); + bts->ns_dialect = NS2_DIALECT_SNS; } else { - bts->gb_dialect_sns = false; - gprs_ns2_vty_force_vc_mode(false, 0, NULL); + bts->ns_dialect = NS2_DIALECT_IPACCESS; } return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc Gerrit-Change-Number: 21728 Gerrit-PatchSet: 4 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 Dec 16 12:00:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:40 +0000 Subject: Change in osmo-pcu[master]: ns2: follow changes to add a unique name to all binds In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21729 ) Change subject: ns2: follow changes to add a unique name to all binds ...................................................................... ns2: follow changes to add a unique name to all binds Related: OS#4472, OS#4890 Depends: libosmocore.git I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 4d24d2e..b29413d 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -957,6 +957,7 @@ bool nsvcs = false; struct gprs_ns2_vc *nsvc; struct gprs_ns2_vc_bind *bind[PCU_IF_NUM_NSVC] = { }; + char name[5]; if (!valid) return -1; @@ -966,7 +967,8 @@ continue; if (!gprs_ns2_ip_bind_by_sockaddr(bts->nsi, &local[i])) { - rc = gprs_ns2_ip_bind(bts->nsi, &local[i], 0, &bind[i]); + snprintf(name, sizeof(name), "pcu%d", i); + rc = gprs_ns2_ip_bind(bts->nsi, name, &local[i], 0, &bind[i]); if (rc < 0) { LOGP(DBSSGP, LOGL_ERROR, "Failed to bind to %s\n", osmo_sockaddr_to_str(&local[i])); continue; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3638c7204db576116ba2e20dae27539ce6143bd7 Gerrit-Change-Number: 21729 Gerrit-PatchSet: 4 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 Dec 16 12:00:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 12:00:41 +0000 Subject: Change in osmo-pcu[master]: ns2: follow ns2 sns api changes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21730 ) Change subject: ns2: follow ns2 sns api changes ...................................................................... ns2: follow ns2 sns api changes Related: OS#4472, OS#4890 Depends: libosmocore.git I71cdbfb53e361e6112fed5e2712236d797ef3ab2 Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa --- M src/gprs_bssgp_pcu.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index b29413d..f966a79 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -1000,7 +1000,7 @@ /* 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) { - rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei); + rc = gprs_ns2_sns_add_endpoint(bts->nse, &remote[i]); if (!rc) return rc; else -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id530e5497c17885817493f8a8a9436bc187c88aa Gerrit-Change-Number: 21730 Gerrit-PatchSet: 4 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 Dec 16 12:05:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 16 Dec 2020 12:05:13 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 1 second before respawning the IUT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21640 ) Change subject: ttcn3-bts-test: fix: sleep 1 second before respawning the IUT ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Wed, 16 Dec 2020 12:05: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 Dec 16 12:07:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 16 Dec 2020 12:07:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21734 ) Change subject: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5d7261a5ac33a0231c1a3d73bdff7fb099568687 Gerrit-Change-Number: 21734 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 12:07: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 Dec 16 12:23:32 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 16 Dec 2020 12:23:32 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 1 second before respawning the IUT In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21640 ) Change subject: ttcn3-bts-test: fix: sleep 1 second before respawning the IUT ...................................................................... Patch Set 3: Verified+1 Code-Review+2 LGTM! -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Wed, 16 Dec 2020 12:23: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 Dec 16 13:27:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 16 Dec 2020 13:27:29 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: Use helper structure to store several tbf pointer ... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21743 ) Change subject: gprs_rlcmac_sched: Use helper structure to store several tbf pointer params ...................................................................... gprs_rlcmac_sched: Use helper structure to store several tbf pointer params The resulting code is cleaner since it becomes clear the relation between all those pointers, which are set in one function and used in another one, passed through the caller of the former two. Moreover, if more tbf candidates are to be added for other type of actions, having them in a struct is much easier since only one pointer is passed. Change-Id: I55482aa5af7be5a176a7b4879a672ad37e618020 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 41 insertions(+), 41 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/43/21743/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 84a5970..6505425 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -34,12 +34,16 @@ #include } +struct tbf_sched_candidates { + struct gprs_rlcmac_tbf *poll; + struct gprs_rlcmac_tbf *ul_ass; + struct gprs_rlcmac_tbf *dl_ass; + struct gprs_rlcmac_ul_tbf *ul_ack; +}; + static uint32_t sched_poll(BTS *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr, - struct gprs_rlcmac_tbf **poll_tbf, - struct gprs_rlcmac_tbf **ul_ass_tbf, - struct gprs_rlcmac_tbf **dl_ass_tbf, - struct gprs_rlcmac_ul_tbf **ul_ack_tbf) + struct tbf_sched_candidates *tbf_cand) { struct gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_dl_tbf *dl_tbf; @@ -59,14 +63,14 @@ continue; /* polling for next uplink block */ if (ul_tbf->poll_scheduled() && ul_tbf->poll_fn == poll_fn) - *poll_tbf = ul_tbf; + tbf_cand->poll = ul_tbf; if (ul_tbf->ul_ack_state_is(GPRS_RLCMAC_UL_ACK_SEND_ACK)) - *ul_ack_tbf = ul_tbf; + tbf_cand->ul_ack = ul_tbf; if (ul_tbf->dl_ass_state_is(GPRS_RLCMAC_DL_ASS_SEND_ASS)) - *dl_ass_tbf = ul_tbf; + tbf_cand->dl_ass = ul_tbf; 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)) - *ul_ass_tbf = ul_tbf; + tbf_cand->ul_ass = 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? */ } @@ -78,12 +82,12 @@ continue; /* polling for next uplink block */ if (dl_tbf->poll_scheduled() && dl_tbf->poll_fn == poll_fn) - *poll_tbf = dl_tbf; + tbf_cand->poll = dl_tbf; if (dl_tbf->dl_ass_state_is(GPRS_RLCMAC_DL_ASS_SEND_ASS)) - *dl_ass_tbf = dl_tbf; + tbf_cand->dl_ass = dl_tbf; 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)) - *ul_ass_tbf = dl_tbf; + tbf_cand->ul_ass = dl_tbf; } return poll_fn; @@ -156,16 +160,16 @@ static struct msgb *sched_select_ctrl_msg( uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr, struct gprs_rlcmac_pdch *pdch, - struct gprs_rlcmac_tbf *ul_ass_tbf, - struct gprs_rlcmac_tbf *dl_ass_tbf, - struct gprs_rlcmac_ul_tbf *ul_ack_tbf) + struct tbf_sched_candidates *tbfs) { struct msgb *msg = NULL; struct gprs_rlcmac_tbf *tbf = NULL; - struct gprs_rlcmac_tbf *next_list[3] = { ul_ass_tbf, dl_ass_tbf, ul_ack_tbf }; + struct gprs_rlcmac_tbf *next_list[3] = { tbfs->ul_ass, + tbfs->dl_ass, + tbfs->ul_ack }; /* Send Packet Application Information first (ETWS primary notifications) */ - msg = sched_app_info(dl_ass_tbf); + msg = sched_app_info(tbfs->dl_ass); if (!msg) { for (size_t i = 0; i < ARRAY_SIZE(next_list); ++i) { @@ -178,18 +182,19 @@ * because they may kill the TBF when the CONTROL ACK is * received, thus preventing the others from being processed. */ - if (tbf == ul_ass_tbf && tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) - msg = ul_ass_tbf->create_packet_access_reject(); - else if (tbf == ul_ass_tbf && tbf->direction == + if (tbf == tbfs->ul_ass && tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) + msg = tbfs->ul_ass->create_packet_access_reject(); + else if (tbf == tbfs->ul_ass && tbf->direction == GPRS_RLCMAC_DL_TBF) if (tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) - msg = ul_ass_tbf->create_packet_access_reject(); + msg = tbfs->ul_ass->create_packet_access_reject(); else - msg = ul_ass_tbf->create_ul_ass(fn, ts); - else if (tbf == dl_ass_tbf && tbf->direction == GPRS_RLCMAC_UL_TBF) - msg = dl_ass_tbf->create_dl_ass(fn, ts); - else if (tbf == ul_ack_tbf) - msg = ul_ack_tbf->create_ul_ack(fn, ts); + msg = tbfs->ul_ass->create_ul_ass(fn, ts); + else if (tbf == tbfs->dl_ass && tbf->direction == GPRS_RLCMAC_UL_TBF) + 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/ms is pending to send tx_neigbhourData or tx_CellchangeContinue, send it */ if (!msg) { tbf = NULL; @@ -208,12 +213,12 @@ * MS will kill the current TBF, only one of them can be * non-NULL */ - if (dl_ass_tbf) { - tbf = dl_ass_tbf; - msg = dl_ass_tbf->create_dl_ass(fn, ts); - } else if (ul_ass_tbf) { - tbf = ul_ass_tbf; - msg = ul_ass_tbf->create_ul_ass(fn, ts); + if (tbfs->dl_ass) { + tbf = tbfs->dl_ass; + msg = tbfs->dl_ass->create_dl_ass(fn, ts); + } else if (tbfs->ul_ass) { + tbf = tbfs->ul_ass; + msg = tbfs->ul_ass->create_ul_ass(fn, ts); } } @@ -397,10 +402,8 @@ uint32_t fn, uint8_t block_nr) { struct gprs_rlcmac_pdch *pdch; - struct gprs_rlcmac_tbf *poll_tbf = NULL, *dl_ass_tbf = NULL, - *ul_ass_tbf = NULL; + struct tbf_sched_candidates tbf_cand = {0}; struct gprs_rlcmac_ul_tbf *usf_tbf; - struct gprs_rlcmac_ul_tbf *ul_ack_tbf = NULL; uint8_t usf; struct msgb *msg = NULL; uint32_t poll_fn, sba_fn; @@ -437,15 +440,13 @@ req_mcs_kind = EGPRS; /* all kinds are fine */ } - poll_fn = sched_poll(bts->bts, trx, ts, fn, block_nr, &poll_tbf, &ul_ass_tbf, - &dl_ass_tbf, &ul_ack_tbf); + poll_fn = sched_poll(bts->bts, trx, ts, fn, block_nr, &tbf_cand); /* check uplink resource for polling */ - if (poll_tbf) { + if (tbf_cand.poll) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Received RTS for PDCH: TRX=%d " "TS=%d FN=%d block_nr=%d scheduling free USF for " "polling at FN=%d of %s\n", trx, ts, fn, - block_nr, poll_fn, - tbf_name(poll_tbf)); + 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)) { @@ -471,8 +472,7 @@ } /* Prio 1: select control message */ - if ((msg = sched_select_ctrl_msg(trx, ts, fn, block_nr, pdch, ul_ass_tbf, - dl_ass_tbf, ul_ack_tbf))) { + if ((msg = sched_select_ctrl_msg(trx, ts, fn, block_nr, pdch, &tbf_cand))) { gsmtap_cat = PCU_GSMTAP_C_DL_CTRL; } /* Prio 2: select data message for downlink */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I55482aa5af7be5a176a7b4879a672ad37e618020 Gerrit-Change-Number: 21743 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 Dec 16 13:27:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 16 Dec 2020 13:27:31 +0000 Subject: Change in osmo-pcu[master]: sched: Convert code handling next_list array to be size independant References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21744 ) Change subject: sched: Convert code handling next_list array to be size independant ...................................................................... sched: Convert code handling next_list array to be size independant Change-Id: Id209fe66f85501437a79f7ca0c8e3cf816177611 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 5 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/44/21744/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 6505425..e6f7176 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -164,16 +164,16 @@ { struct msgb *msg = NULL; struct gprs_rlcmac_tbf *tbf = NULL; - struct gprs_rlcmac_tbf *next_list[3] = { tbfs->ul_ass, - tbfs->dl_ass, - tbfs->ul_ack }; + struct gprs_rlcmac_tbf *next_list[] = { tbfs->ul_ass, + tbfs->dl_ass, + tbfs->ul_ack }; /* Send Packet Application Information first (ETWS primary notifications) */ msg = sched_app_info(tbfs->dl_ass); if (!msg) { for (size_t i = 0; i < ARRAY_SIZE(next_list); ++i) { - tbf = next_list[(pdch->next_ctrl_prio + i) % 3]; + tbf = next_list[(pdch->next_ctrl_prio + i) % ARRAY_SIZE(next_list)]; if (!tbf) continue; @@ -201,8 +201,7 @@ continue; } - pdch->next_ctrl_prio += 1; - pdch->next_ctrl_prio %= 3; + pdch->next_ctrl_prio = (pdch->next_ctrl_prio + 1) % ARRAY_SIZE(next_list); break; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21744 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id209fe66f85501437a79f7ca0c8e3cf816177611 Gerrit-Change-Number: 21744 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 Dec 16 13:27:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 16 Dec 2020 13:27:31 +0000 Subject: Change in osmo-pcu[master]: WIP: Implement NACC References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21745 ) Change subject: WIP: Implement NACC ...................................................................... WIP: Implement NACC Change-Id: Icac5cfe93bcad0e18e5c9380d4e82233856633aa --- M src/Makefile.am M src/encoding.cpp M src/encoding.h M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.cpp M src/gprs_ms.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.cpp A src/nacc_fsm.h M src/pdch.cpp M src/pdch.h 12 files changed, 317 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/45/21745/1 diff --git a/src/Makefile.am b/src/Makefile.am index ece372d..ab6abf2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -54,6 +54,7 @@ pcu_vty.c \ pcu_vty_functions.cpp \ mslot_class.c \ + nacc_fsm.cpp \ 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 \ diff --git a/src/encoding.cpp b/src/encoding.cpp index a16962a..8c5aabc 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -804,6 +804,31 @@ pda_r99->Exist_COMPACT_ReducedMA = 0; } +void Encoding::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) +{ + + 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_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; +} + /* Generate paging request. See 44.018, sections 10 and 9.1.22 */ int Encoding::write_paging_request(bitvec * dest, const struct osmo_mobile_identity *mi) { diff --git a/src/encoding.h b/src/encoding.h index da63a61..98320a7 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -70,6 +70,10 @@ uint8_t alpha, uint8_t gamma, int8_t ta_idx, uint8_t ta_ts, bool use_egprs); + static 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); + static void encode_rbb(const char *show_rbb, uint8_t *rbb); static void write_packet_access_reject( 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.cpp b/src/gprs_ms.cpp index c891cdf..e52585b 100644 --- a/src/gprs_ms.cpp +++ b/src/gprs_ms.cpp @@ -26,6 +26,7 @@ #include "gprs_debug.h" #include "gprs_codel.h" #include "pcu_utils.h" +#include "nacc_fsm.h" #include @@ -898,3 +899,10 @@ return NULL; } + +int GprsMs::start_nacc(Packet_Cell_Change_Notification_t *notif) +{ + if (!nacc) + nacc = nacc_fsm_alloc(this); + return osmo_fsm_inst_dispatch(nacc->fi, NACC_EV_CELL_CHG_NOTIFICATION, notif); +} diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 8b8940b..0836d07 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -43,6 +43,8 @@ #include #include +#include + struct BTS; struct gprs_rlcmac_trx; @@ -139,6 +141,8 @@ unsigned dl_ctrl_msg() const; void update_dl_ctrl_msg(); + int start_nacc(Packet_Cell_Change_Notification_t *notif); + /* internal use */ static void timeout(void *priv_); @@ -193,6 +197,8 @@ enum mcs_kind m_mode; unsigned m_dl_ctrl_msg; + + struct nacc_fsm_ctx *nacc; }; inline bool GprsMs::is_idle() const diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index e6f7176..5170bb6 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_tbf; struct gprs_rlcmac_ul_tbf *ul_ack; }; @@ -71,6 +72,7 @@ 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; + /* TODO: if ul_tbf has NeighbourCellData or CellChangeContinue pending to send, select */ /* 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 +90,7 @@ 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; + /* TODO: if dl_tbf has NeighbourCellData or CellChangeContinue pending to send, select */ } return poll_fn; diff --git a/src/nacc_fsm.cpp b/src/nacc_fsm.cpp new file mode 100644 index 0000000..2a6dec4 --- /dev/null +++ b/src/nacc_fsm.cpp @@ -0,0 +1,204 @@ +#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_SI_INFO_RECEIVED, "SI_INFO_RECEIVED" }, + { 0, 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; + /* Here we'll do RIM requested whenver we support it, and jump to st NACC_ST_REQUESTING_SI */ + nacc_fsm_state_chg(fi, NACC_ST_TX_NEIGHBOUR_DATA); + break; + default: + LOGPFSML(fi, LOGL_NOTICE, "TargetCell type=0x%x not supported\n", + notif->Target_Cell.UnionType); + return; + } + break; + default: + OSMO_ASSERT(0); + } +} + +extern void *tall_pcu_ctx; +static struct msgb *create_packet_neighbour_cell_data(struct nacc_fsm_ctx *ctx) +{ + struct msgb *msg; + RlcMacDownlink_t *mac_control_block = NULL; + + 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. + * Old G++ does not support non-trivial designated initializers. Sigh. */ + struct bitvec bv = { }; + bv.data = msgb_put(msg, GSM_MACBLOCK_LEN); + bv.data_len = GSM_MACBLOCK_LEN; + bitvec_unhex(&bv, DUMMY_VEC); + + mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t); + + uint8_t tfi_is_dl = 0; /* FIXME: get from any tbf from MS */ + uint8_t tfi = 0; /* FIXME: get from any tbf from MS */ + 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_arfcn; + Encoding::write_packet_neighbour_cell_data(mac_control_block, + tfi_is_dl, tfi, container_id, + container_idx, &container); + talloc_free(mac_control_block); + return msg; +} + +static void st_tx_neighbour_data_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct msgb *msg = create_packet_neighbour_cell_data(ctx); + (void)msg; + + /* TODO: submit RIM message to obtain real SI info of {req_arfcn+req_bsic} */ + + /* TODO: flag MS/TBF somehow that we have data to send so that it gets + selected in sched_select_ctrl_msg */ + + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); +} + +static void st_cell_cgh_continue_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + //struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + + /* send fake CELL_CGH_CONTINUE message to MS for req_arfcn req_bsic */ + + nacc_fsm_state_chg(fi, NAC_ST_DONE); + /* TODO: terminate FSM somehow and free it? */ +} + + +static void st_done_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + nacc_fsm_state_chg(fi, NACC_ST_INITIAL); + /* TODO: terminate FSM somehow and free it? */ +} + +extern "C" { +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_REQUESTING_SI) | + X(NAC_ST_DONE), + .name = "INITIAL", + //.onenter = st_initial_on_enter, + .action = st_initial, + }, + [NACC_ST_REQUESTING_SI] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION) | + X(NACC_EV_SI_INFO_RECEIVED), + .out_state_mask = + X(NACC_ST_TX_CELL_CHG_CONTINUE), + .name = "REQUESTING_SI", + //.onenter = st_requesting_si_on_enter, + //.action = st_requesting_si, + }, + [NACC_ST_TX_NEIGHBOUR_DATA] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION) | + X(NACC_EV_SI_INFO_RECEIVED), + .out_state_mask = + X(NACC_ST_REQUESTING_SI) | + X(NACC_ST_TX_CELL_CHG_CONTINUE), + .name = "DISABLED_DEPENDENCY", + .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), + .out_state_mask = + X(NAC_ST_DONE), + .name = "CELL_CHG_CONTINUE", + .onenter = st_cell_cgh_continue_on_enter, + //.action = st_cell_cgh_continue, + }, + [NAC_ST_DONE] = { + .in_event_mask = 0, + .out_state_mask = + X(NACC_ST_INITIAL), + .name = "DONE", + .onenter = st_done_on_enter, + //.action = st_done, + }, +}; + +} + +/* Structure fields set at runtime in constructor in order to avoid g++ < 8: + * "sorry, unimplemented: non-trivial designated initializers not supported" */ +static struct osmo_fsm nacc_fsm; +static __attribute__((constructor)) void nacc_fsm_init(void) +{ + nacc_fsm.name = "NACC"; + nacc_fsm.states = nacc_fsm_states; + nacc_fsm.num_states = ARRAY_SIZE(nacc_fsm_states); + nacc_fsm.log_subsys = DNACC; + nacc_fsm.event_names = nacc_fsm_event_names; + OSMO_ASSERT(osmo_fsm_register(&nacc_fsm) == 0); +} + +static int nacc_fsm_ctx_talloc_destructor(struct nacc_fsm_ctx *ctx) +{ + if (ctx->fi) { + osmo_fsm_inst_free(ctx->fi); + ctx->fi = NULL; + } + + return 0; +} + +struct nacc_fsm_ctx *nacc_fsm_alloc(GprsMs* ms) +{ + struct nacc_fsm_ctx *ctx = talloc_zero(ms, struct nacc_fsm_ctx); + char buf[64]; + + talloc_set_destructor(ctx, nacc_fsm_ctx_talloc_destructor); + + ctx->ms = ms; + + snprintf(buf, sizeof(buf), "TLLI-0x%08x", ms->tlli()); + ctx->fi = osmo_fsm_inst_alloc(&nacc_fsm, ctx, ctx, LOGL_INFO, buf); + + return ctx; +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h new file mode 100644 index 0000000..a1dc1f0 --- /dev/null +++ b/src/nacc_fsm.h @@ -0,0 +1,28 @@ +#pragma once +extern "C" { +#include +} + +class GprsMs; + +enum nacc_fsm_event { + NACC_EV_CELL_CHG_NOTIFICATION, /* data: Packet_Cell_Change_Notification_t* */ + NACC_EV_SI_INFO_RECEIVED, +}; + +enum nacc_fsm_states { + NACC_ST_INITIAL, + NACC_ST_REQUESTING_SI, + NACC_ST_TX_NEIGHBOUR_DATA, + NACC_ST_TX_CELL_CHG_CONTINUE, + NAC_ST_DONE, +}; + +struct nacc_fsm_ctx { + struct osmo_fsm_inst *fi; + GprsMs* ms; /* back pointer */ + uint16_t req_arfcn; + uint8_t req_bsic; +}; + +struct nacc_fsm_ctx *nacc_fsm_alloc(GprsMs* ms); diff --git a/src/pdch.cpp b/src/pdch.cpp index 4a0ff06..a0d53d4 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -683,6 +683,31 @@ 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; + + 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(meas); + ms->start_nacc(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) @@ -732,6 +757,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(CTR_DECODE_ERRORS); LOGP(DRLCMAC, LOGL_NOTICE, diff --git a/src/pdch.h b/src/pdch.h index 5185045..4515439 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -140,6 +140,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); -- 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: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 16 14:07:12 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 16 Dec 2020 14:07:12 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test: fix: sleep 1 second before respawning the IUT In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21640 ) Change subject: ttcn3-bts-test: fix: sleep 1 second before respawning the IUT ...................................................................... ttcn3-bts-test: fix: sleep 1 second before respawning the IUT There has been a lot of changes merged to both osmo-{bsc,bts}, so now the later seems to be respawning faster then before. Because of that, osmo-bts-trx is now reaching the limit of 500 runs on Jenkins right in the middle of ttcn3-bts-test execution: respawn.sh: exiting after 500 runs causing the remaining test cases to fail due to: "BTS_Tests.ttcn:253 : Timeout waiting for RSL bring up" Most likely, the IUT respawns several times in the windows between the test cases, i.e. after TITAN finishes one test case and before it starts another. Let's instruct respawn.sh to sleep 1 second before starting the process again. Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: fixeria: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index be6a71c..87e2896 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -142,7 +142,7 @@ # 1) classic test suite with BSC for OML and trxcon+fake_trx start_bsc -start_bts trx 0 +start_bts trx 1 start_fake_trx start_trxcon start_testsuite generic @@ -178,7 +178,7 @@ # restart the BSC/BTS and run the testsuite again docker container kill ${BUILD_TAG}-bts start_bsc -start_bts trx 0 +start_bts trx 1 start_testsuite hopping # append ':hopping' to the classnames, # e.g. "classname='BTS_Tests'" => "classname='BTS_Tests:hopping'" -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838 Gerrit-Change-Number: 21640 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 16 14:52:25 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 16 Dec 2020 14:52:25 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser for RIM Routing Information 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/+/21721 to look at the new patch set (#2). Change subject: gprs_bssgp: add IE parser for RIM Routing Information ...................................................................... gprs_bssgp: add IE parser for RIM Routing Information The RIM Routing Information IE (see also 3GPP TS 48.018, section 11.3.70) is used to control the flow of BSSGP rim messages at the SGSN. Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M src/gb/gprs_bssgp.c M src/gb/libosmogb.map M tests/Makefile.am M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 6 files changed, 183 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/21721/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 Gerrit-PatchSet: 2 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 Wed Dec 16 14:52:25 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 16 Dec 2020 14:52:25 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives 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/+/21722 to look at the new patch set (#2). 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, 63 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/21722/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: 2 Gerrit-Owner: dexter 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 Wed Dec 16 14:52:55 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 16 Dec 2020 14:52:55 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser for RIM Routing Information In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21721 ) Change subject: gprs_bssgp: add IE parser for RIM Routing Information ...................................................................... Patch Set 2: (9 comments) (ensure comments are sent) https://gerrit.osmocom.org/c/libosmocore/+/21721/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/21721/1/include/osmocom/gprs/gprs_bssgp.h at 197 PS1, Line 197: struct { : uint16_t mcc; : uint16_t mnc; : bool mnc_3_digits; : uint16_t tac; : } tai; > it might make sense to introduce a general/public 'struct' for this, like we have the gprs_ra_id. [?] I have now seperated the struct, but I do not know exactly in which header file to put it. Maybe we need to add a gsm_24_301.h - what do you think? https://gerrit.osmocom.org/c/libosmocore/+/21721/1/include/osmocom/gprs/gprs_bssgp.h at 204 PS1, Line 204: uint8_t global_enb_id[8]; : uint8_t global_enb_id_len; > likewise that might be wrappend in something like a public'struct osmo_g_enb_id' - though I'm not s [?] Same here, I am not sure where to put the struct. https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 340 PS1, Line 340: return 0; > -EINVAL? Done https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 347 PS1, Line 347: return -1; > return codes are not marching documentation. Done https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 350 PS1, Line 350: break; > unneeded break. Done https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 357 PS1, Line 357: break; > uneeded break. Done https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 359 PS1, Line 359: if (len < 7) > You can probable merge both conditions in one if. Done https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 374 PS1, Line 374: break; > unneeded break Done https://gerrit.osmocom.org/c/libosmocore/+/21721/1/src/gb/gprs_bssgp.c at 379 PS1, Line 379: return 0; > This cannot happen, you can remove it (or remove default above) Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 14:52:55 +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 Dec 16 14:53:26 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 16 Dec 2020 14:53:26 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives In-Reply-To: References: Message-ID: dexter 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 2: (4 comments) (ensure comments are sent) https://gerrit.osmocom.org/c/libosmocore/+/21722/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/21722/1/include/osmocom/gprs/gprs_bssgp.h at 59 PS1, Line 59: PRIM_BSSGP_RIM > Add , at the end. Done https://gerrit.osmocom.org/c/libosmocore/+/21722/1/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/21722/1/src/gb/gprs_bssgp.c at 707 PS1, Line 707: truct bssgp_normal_hdr *bgph = : (struct b > no line break needed [not critical] Done https://gerrit.osmocom.org/c/libosmocore/+/21722/1/src/gb/gprs_bssgp.c at 711 PS1, Line 711: PDU > likewise here this looks like it can fit in a single line with our current limit of 120? This is old code, with 80 col limit - I don't know exactly how we agreed on this. As far as I know old code should be continued with 80 col limit. https://gerrit.osmocom.org/c/libosmocore/+/21722/1/src/gb/gprs_bssgp.c at 728 PS1, Line 728: / > comment doesn't match code Done -- 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: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 14:53:26 +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 Dec 16 15:02:56 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 16 Dec 2020 15:02:56 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: mark repeated ACCH value of 1.9% to 2.7% BER as default References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21746 ) Change subject: bsc_vty: mark repeated ACCH value of 1.9% to 2.7% BER as default ...................................................................... bsc_vty: mark repeated ACCH value of 1.9% to 2.7% BER as default Change-Id: I40fdc3df6448bcac9d3bd531f7a7d0ded33d98d4 Related: SYS#5114, OS#4796, OS#4794, OS#4795 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/46/21746/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index b75b41c..3858da8 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2750,7 +2750,7 @@ "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\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", -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I40fdc3df6448bcac9d3bd531f7a7d0ded33d98d4 Gerrit-Change-Number: 21746 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 Dec 16 15:09:45 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 16 Dec 2020 15:09:45 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: print bts number in VTY error message. In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21250 ) Change subject: bsc_vty: print bts number in VTY error message. ...................................................................... Abandoned change already merged with a different patch -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic4213b257cb149634529e62782e4d98b3de9868b Gerrit-Change-Number: 21250 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder 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 Wed Dec 16 15:39:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:39:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21734 ) Change subject: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP ...................................................................... deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP Temporarily use titan.ProtocolModules.BSSGP_v13.0.0 from https://github.com/osmocom/ as we have some fixes that are not yet part of upstream. Change-Id: I5d7261a5ac33a0231c1a3d73bdff7fb099568687 --- M deps/Makefile 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/34/21734/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5d7261a5ac33a0231c1a3d73bdff7fb099568687 Gerrit-Change-Number: 21734 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 Wed Dec 16 15:39:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:39:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21734 ) Change subject: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5d7261a5ac33a0231c1a3d73bdff7fb099568687 Gerrit-Change-Number: 21734 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 15: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 Wed Dec 16 15:39:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:39:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21734 ) Change subject: deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP ...................................................................... deps/Makefile: temporarily use own repo for ProtocolModules.BSSGP Temporarily use titan.ProtocolModules.BSSGP_v13.0.0 from https://github.com/osmocom/ as we have some fixes that are not yet part of upstream. Change-Id: I5d7261a5ac33a0231c1a3d73bdff7fb099568687 --- M deps/Makefile 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/deps/Makefile b/deps/Makefile index 61bab99..73b3283 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -51,7 +51,6 @@ titan.ProtocolModules.SUA \ titan.ProtocolModules.SDP \ titan.ProtocolModules.BSSAPP_v7.3.0 \ - titan.ProtocolModules.BSSGP_v13.0.0 \ titan.ProtocolModules.GTP_v13.5.0 \ titan.ProtocolModules.GTPv2_v13.7.0 \ titan.ProtocolModules.ISUP_Q.762 \ @@ -65,7 +64,8 @@ OSMOGITHUB_REPOS= titan.TestPorts.SCTPasp \ titan.TestPorts.MTP3asp \ titan.TestPorts.UDPasp \ - titan.ProtocolEmulations.SCCP + titan.ProtocolEmulations.SCCP \ + titan.ProtocolModules.BSSGP_v13.0.0 OSMOGIT_REPOS= titan.ProtocolModules.MAP \ titan.ProtocolModules.BSSMAP \ @@ -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= R.2.A-6-gc447f28 +titan.ProtocolModules.BSSGP_v13.0.0_commit= master 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/+/21734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5d7261a5ac33a0231c1a3d73bdff7fb099568687 Gerrit-Change-Number: 21734 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 Dec 16 15:41:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:41:34 +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 1: Code-Review+1 -- 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: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 15:41: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 Dec 16 15:41:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:41:38 +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 3: 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: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 15:41: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 Dec 16 15:47:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:47:51 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser for RIM Routing Information In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21721 ) Change subject: gprs_bssgp: add IE parser for RIM Routing Information ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21721/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/21721/1/include/osmocom/gprs/gprs_bssgp.h at 197 PS1, Line 197: struct { : uint16_t mcc; : uint16_t mnc; : bool mnc_3_digits; : uint16_t tac; : } tai; > I have now seperated the struct, but I do not know exactly in which header file to put it. [?] it's probably the most correct course of action, yes. https://gerrit.osmocom.org/c/libosmocore/+/21721/1/include/osmocom/gprs/gprs_bssgp.h at 204 PS1, Line 204: uint8_t global_enb_id[8]; : uint8_t global_enb_id_len; > Same here, I am not sure where to put the struct. I see that it is basically just a container of 22..32bits length, so we can keep this part as-is. The comment could also reference 36.401. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 15:47:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No 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 Wed Dec 16 15:48:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:48:14 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: mark repeated ACCH value of 1.9% to 2.7% BER as default In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21746 ) Change subject: bsc_vty: mark repeated ACCH value of 1.9% to 2.7% BER as default ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I40fdc3df6448bcac9d3bd531f7a7d0ded33d98d4 Gerrit-Change-Number: 21746 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 15:48: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 Dec 16 15:48:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:48:19 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: mark repeated ACCH value of 1.9% to 2.7% BER as default In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21746 ) Change subject: bsc_vty: mark repeated ACCH value of 1.9% to 2.7% BER as default ...................................................................... bsc_vty: mark repeated ACCH value of 1.9% to 2.7% BER as default Change-Id: I40fdc3df6448bcac9d3bd531f7a7d0ded33d98d4 Related: SYS#5114, OS#4796, OS#4794, OS#4795 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index b75b41c..3858da8 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2750,7 +2750,7 @@ "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\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", -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I40fdc3df6448bcac9d3bd531f7a7d0ded33d98d4 Gerrit-Change-Number: 21746 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 Dec 16 15:52:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:52:45 +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 2: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21722/2/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/21722/2/include/osmocom/gprs/gprs_bssgp.h at 59 PS2, Line 59: PRIM_BSSGP_RIM, 3GPP TS 48.018 Section 5.3.37 + 5.3.38 calls this the RIM-PDU-TRANSFER (request / response) so it might make sense to also expand here to PRIM_BSSGP_RIM_PDU_TRANSFER. https://gerrit.osmocom.org/c/libosmocore/+/21722/2/include/osmocom/gprs/gprs_bssgp.h at 188 PS2, Line 188: /* See also 3GPP TS 36.413, section 9.2.1.37 */ those changes should have gone to the previous patch I suppose? -- 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: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 15:52: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 Wed Dec 16 15:53:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:53:51 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: Use helper structure to store several tbf pointer ... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21743 ) Change subject: gprs_rlcmac_sched: Use helper structure to store several tbf pointer params ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I55482aa5af7be5a176a7b4879a672ad37e618020 Gerrit-Change-Number: 21743 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 15:53: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 Dec 16 15:54:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:54:10 +0000 Subject: Change in osmo-pcu[master]: sched: Convert code handling next_list array to be size independant In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21744 ) Change subject: sched: Convert code handling next_list array to be size independant ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21744 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id209fe66f85501437a79f7ca0c8e3cf816177611 Gerrit-Change-Number: 21744 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 15:54: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 Dec 16 15:58:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:58:38 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21263 ) Change subject: Introduce osmo-ran docker image set up ...................................................................... Patch Set 6: (1 comment) The CentOS_8_Stream repositories are gone, the URLs will need to change now. Out of our control :/ https://gerrit.osmocom.org/c/docker-playground/+/21263/6//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/docker-playground/+/21263/6//COMMIT_MSG at 1 PS6, Line 1: Parent: 233d37ee (ttcn3-gbproxy-test-fr: Fix hdlcnet device names) needs to be non _Stream now -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 15: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 Wed Dec 16 15:58:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 15:58:44 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21263 ) Change subject: Introduce osmo-ran docker image set up ...................................................................... Patch Set 6: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 15:58:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Dec 16 16:18:27 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 16:18:27 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fda33734bcc7_22fc2aafec8545f058147d@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: [ 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] [ 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] [ 149.842671] sysrq: Power Off [ 161s] [ 149.849757] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] lamb19 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 16 16:18:17 UTC 2020. [ 161s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 16 16:19:01 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 16 Dec 2020 16:19:01 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fda338c5b8c0_22fc2aafec8545f05816c3@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: [ 173s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 173s] [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] [ 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: 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.038837] sysrq: Power Off [ 178s] [ 166.052185] reboot: Power down [ 178s] ### VM INTERACTION END ### [ 178s] [ 178s] lamb21 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 16 16:18:36 UTC 2020. [ 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 Wed Dec 16 16:30:06 2020 From: gerrit-no-reply at lists.osmocom.org (rousseau) Date: Wed, 16 Dec 2020 16:30:06 +0000 Subject: Change in osmo-sim-auth[master]: SIM.py: convert to Python 3 using 2to3 In-Reply-To: References: Message-ID: rousseau has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sim-auth/+/20903 ) Change subject: SIM.py: convert to Python 3 using 2to3 ...................................................................... Patch Set 1: > Patch Set 1: Code-Review-1 > > we shouldn't introduce changes here, as this code is copied from https://github.com/mitshell/card > > So any changes should go in upstream, and then we should either convert to using mishell/card as a python module, or import it using git submodule, or git subtree or the like. I reported the issue to https://github.com/mitshell/card/issues/7 But the problem is already fixed upstream. osmo-sim-auth uses a very old copy/fork of https://github.com/mitshell/card Maybe you should use a git submodule instead? -- To view, visit https://gerrit.osmocom.org/c/osmo-sim-auth/+/20903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sim-auth Gerrit-Branch: master Gerrit-Change-Id: I1f972e308e14dbdbfc85892685682220a89f77fe Gerrit-Change-Number: 20903 Gerrit-PatchSet: 1 Gerrit-Owner: rousseau Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 16 Dec 2020 16:30:06 +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 Dec 16 19:10:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 19:10:48 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#12) to the change originally created by lynxis lazus. ( 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, 113 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/97/20397/12 -- 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: 12 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 Wed Dec 16 20:25:38 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 16 Dec 2020 20:25:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: udp: fixup dialect changes References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21747 ) Change subject: gprs_ns2_vty: udp: fixup dialect changes ...................................................................... gprs_ns2_vty: udp: fixup dialect changes Only accept receiving ipaccess style messages when use-reset-block is selected. Also allow static ns alive NSVC when it's unselected. Change-Id: Ia787528b1a6fac6bf1570c21643ef6cd8c209108 --- M src/gb/gprs_ns2_vty.c 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/21747/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 742f181..e33869b 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -901,7 +901,8 @@ /* TODO: could not bind on the specific address */ return -1; } - bind->accept_ipaccess = true; + + bind->accept_ipaccess = priv.vc_mode == NS2_VC_MODE_BLOCKRESET; } /* create vcs */ @@ -909,7 +910,10 @@ /* validate settings */ switch (vtyvc->ll) { case GPRS_NS2_LL_UDP: - dialect = NS2_DIALECT_IPACCESS; + if (priv.vc_mode == NS2_VC_MODE_BLOCKRESET) + dialect = NS2_DIALECT_IPACCESS; + else + dialect = NS2_DIALECT_STATIC_ALIVE; if (strlen(vtyvc->remote.ip) == 0) { /* Invalid IP for VC */ continue; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia787528b1a6fac6bf1570c21643ef6cd8c209108 Gerrit-Change-Number: 21747 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 Dec 16 20:34:37 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 16 Dec 2020 20:34:37 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: udp: fixup dialect 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/+/21747 to look at the new patch set (#2). Change subject: gprs_ns2_vty: udp: fixup dialect changes ...................................................................... gprs_ns2_vty: udp: fixup dialect changes Only accept receiving ipaccess style messages when use-reset-block is selected. If use-reset-block is disabled allow static NSVCs. Change-Id: Ia787528b1a6fac6bf1570c21643ef6cd8c209108 --- M src/gb/gprs_ns2_vty.c 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/21747/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia787528b1a6fac6bf1570c21643ef6cd8c209108 Gerrit-Change-Number: 21747 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 Wed Dec 16 20:36:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 16 Dec 2020 20:36:41 +0000 Subject: Change in osmo-pcu[master]: WIP: Convert GprsMS and helpers classes to C References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21748 ) Change subject: WIP: Convert GprsMS and helpers classes to C ...................................................................... WIP: 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/ms/MsTest.cpp 25 files changed, 1,571 insertions(+), 1,423 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/21748/1 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 1376686..e7a9c17 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -711,7 +711,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); @@ -1139,9 +1139,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; } @@ -1205,22 +1205,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) @@ -1276,3 +1276,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..17fb494 --- /dev/null +++ b/src/gprs_ms.c @@ -0,0 +1,876 @@ +/* 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 + +#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; +} + +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..3e40ab6 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -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,12 +46,19 @@ struct BTS; struct gprs_rlcmac_trx; +struct GprsMs; -class GprsMs { -public: +struct gpr_ms_callback { + void (*ms_idle)(struct GprsMs *); + void (*ms_active)(struct GprsMs *); +}; + +struct GprsMs { +//public: + /* struct Callback { - virtual void ms_idle(class GprsMs *) = 0; - virtual void ms_active(class GprsMs *) = 0; + virtual void ms_idle(struct GprsMs *) = 0; + virtual void ms_active(struct GprsMs *) = 0; }; class Guard { @@ -61,7 +69,7 @@ bool is_idle() const; private: - GprsMs * const m_ms; + GprsMs * const ms->ms; }; GprsMs(BTS *bts, uint32_t tlli); @@ -71,8 +79,8 @@ 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_ul_tbf *ul_tbf() const {return ms->ul_tbf;} + gprs_rlcmac_dl_tbf *dl_tbf() const {return ms->dl_tbf;} gprs_rlcmac_tbf *tbf(enum gprs_rlcmac_tbf_direction dir) const; uint32_t tlli() const; void set_tlli(uint32_t tlli); @@ -99,7 +107,6 @@ 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; @@ -131,182 +138,221 @@ LListHead& list() {return this->m_list;} const LListHead& list() const {return this->m_list;} - const LListHead& old_tbfs() const {return m_old_tbfs;} + const LListHead& old_tbfs() const {return ms->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(); + void update_dl_ctrl_msg();*/ /* internal use */ - static void timeout(void *priv_); + //static void timeout(void *priv_); + struct gpr_ms_callback cb; 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*); +//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; +//private: + 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 m_tlli; - uint32_t m_new_ul_tlli; - uint32_t m_new_dl_tlli; + uint32_t tlli; + uint32_t new_ul_tlli; + uint32_t 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; + char imsi[OSMO_IMSI_BUF_SIZE]; + uint8_t ta; + uint8_t ms_class; + uint8_t egprs_ms_class; /* current coding scheme */ - enum CodingScheme m_current_cs_ul; - enum CodingScheme m_current_cs_dl; + enum CodingScheme current_cs_ul; + enum CodingScheme current_cs_dl; - gprs_llc_queue m_llc_queue; + struct gprs_llc_queue llc_queue; - bool m_is_idle; - int m_ref; - LListHead m_list; - struct osmo_timer_list m_timer; - unsigned m_delay; + bool is_idle; + int ref; + struct llist_head list; /* list of all GprsMs */ + struct osmo_timer_list timer; + unsigned delay; - int64_t m_last_cs_not_low; + int64_t 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 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 *m_codel_state; - enum mcs_kind m_mode; + struct gprs_codel *codel_state; + enum mcs_kind mode; - unsigned m_dl_ctrl_msg; + unsigned dl_ctrl_msg; }; -inline bool GprsMs::is_idle() const +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_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); + +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;} + + +static inline void ms_set_callback(struct GprsMs *ms, struct gpr_ms_callback *cb) { - return !m_ul_tbf && !m_dl_tbf && !m_ref && llist_empty(&m_old_tbfs); + ms->cb = *cb; } -inline bool GprsMs::need_dl_tbf() const +static inline bool ms_is_idle(const struct GprsMs *ms) { - if (dl_tbf() != NULL && dl_tbf()->state_is_not(GPRS_RLCMAC_WAIT_RELEASE)) + return !ms->ul_tbf && !ms->dl_tbf && !ms->ref && llist_empty(&ms->old_tbfs); +} + +static inline struct gprs_llc_queue *ms_llc_queue(struct GprsMs *ms) +{ + 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..ae076c6 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,23 @@ void GprsMsStorage::cleanup() { - LListHead *pos, *tmp; + struct GprsMs *pos, *tmp; - llist_for_each_safe(pos, tmp, &m_list) { - GprsMs *ms = pos->entry(); - ms->set_callback(NULL); - ms_idle(ms); + llist_for_each_entry_safe(pos, tmp, &m_list, list) { + ms_set_callback(pos, NULL); + ms_storage_ms_idle_cb(pos); } } -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 { 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_entry(ms, &m_list, 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 +87,8 @@ /* 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_entry(ms, &m_list, list) { + if (strcmp(imsi, ms_imsi(ms)) == 0) return ms; } } @@ -98,10 +100,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 e6f7176..06be68a 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..6659e01 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,8 +296,8 @@ /* 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& 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 +348,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 +360,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 +404,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]; @@ -577,5 +598,4 @@ } uint16_t egprs_window_size(const struct gprs_rlcmac_bts *bts_data, uint8_t slots); - #endif 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/ms/MsTest.cpp b/tests/ms/MsTest.cpp index 4f47bc9..15a3d22 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -56,7 +56,7 @@ printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, tlli); + ms = ms_alloc(&the_bts, tlli); OSMO_ASSERT(ms->is_idle()); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); @@ -102,12 +102,12 @@ static enum {UNKNOWN, IS_IDLE, IS_ACTIVE} last_cb = UNKNOWN; struct MyCallback: public GprsMs::Callback { - virtual void ms_idle(class GprsMs *ms) { + virtual void ms_idle(struct GprsMs *ms) { OSMO_ASSERT(ms->is_idle()); printf(" ms_idle() was called\n"); last_cb = IS_IDLE; } - virtual void ms_active(class GprsMs *ms) { + virtual void ms_active(struct GprsMs *ms) { OSMO_ASSERT(!ms->is_idle()); printf(" ms_active() was called\n"); last_cb = IS_ACTIVE; @@ -116,7 +116,7 @@ printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, tlli); + ms = ms_alloc(&the_bts, tlli); ms->set_callback(&cb); OSMO_ASSERT(ms->is_idle()); @@ -173,12 +173,12 @@ static bool was_idle; struct MyCallback: public GprsMs::Callback { - virtual void ms_idle(class GprsMs *ms) { + virtual void ms_idle(struct GprsMs *ms) { OSMO_ASSERT(ms->is_idle()); printf(" ms_idle() was called\n"); was_idle = true; } - virtual void ms_active(class GprsMs *ms) { + virtual void ms_active(struct GprsMs *ms) { OSMO_ASSERT(!ms->is_idle()); printf(" ms_active() was called\n"); } @@ -186,7 +186,7 @@ printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, tlli); + ms = ms_alloc(&the_bts, tlli); ms->set_callback(&cb); OSMO_ASSERT(ms->is_idle()); @@ -260,7 +260,7 @@ printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, start_tlli); + ms = ms_alloc(&the_bts, start_tlli); OSMO_ASSERT(ms->is_idle()); @@ -444,12 +444,12 @@ static enum {UNKNOWN, IS_IDLE, IS_ACTIVE} last_cb = UNKNOWN; struct MyCallback: public GprsMs::Callback { - virtual void ms_idle(class GprsMs *ms) { + virtual void ms_idle(struct GprsMs *ms) { OSMO_ASSERT(ms->is_idle()); printf(" ms_idle() was called\n"); last_cb = IS_IDLE; } - virtual void ms_active(class GprsMs *ms) { + virtual void ms_active(struct GprsMs *ms) { OSMO_ASSERT(!ms->is_idle()); printf(" ms_active() was called\n"); last_cb = IS_ACTIVE; @@ -458,7 +458,7 @@ printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, tlli); + ms = ms_alloc(&the_bts, tlli); ms->set_callback(&cb); ms->set_timeout(1); @@ -519,7 +519,7 @@ 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()); @@ -560,14 +560,14 @@ 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); -- 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: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 16 20:39:09 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 16 Dec 2020 20:39:09 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: set default dialect to ipaccess References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21749 ) Change subject: gprs_ns2: set default dialect to ipaccess ...................................................................... gprs_ns2: set default dialect to ipaccess The default pcu dialect is ipaccess. Keep it that way. Fixes ttcn3 pcu testcases. Change-Id: I426f507fb8863abd8995bc615dc6a6fa7ae69217 --- M src/bts.cpp 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/49/21749/1 diff --git a/src/bts.cpp b/src/bts.cpp index 1376686..b4f902a 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -254,6 +254,7 @@ 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 */ bts->ws_base = 64; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I426f507fb8863abd8995bc615dc6a6fa7ae69217 Gerrit-Change-Number: 21749 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 Dec 16 20:39:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 16 Dec 2020 20:39:19 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: udp: fixup dialect changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21747 ) Change subject: gprs_ns2_vty: udp: fixup dialect changes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia787528b1a6fac6bf1570c21643ef6cd8c209108 Gerrit-Change-Number: 21747 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 20:39: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 Dec 16 20:39:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 16 Dec 2020 20:39:47 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: set default dialect to ipaccess In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21749 ) Change subject: gprs_ns2: set default dialect to ipaccess ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I426f507fb8863abd8995bc615dc6a6fa7ae69217 Gerrit-Change-Number: 21749 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 16 Dec 2020 20:39: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 Dec 16 20:42:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 20:42:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: udp: fixup dialect changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21747 ) Change subject: gprs_ns2_vty: udp: fixup dialect changes ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21747/2/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/21747/2/src/gb/gprs_ns2_vty.c at 905 PS2, Line 905: bind->accept_ipaccess = priv.vc_mode == NS2_VC_MODE_BLOCKRESET; : } i'd prefer an if/else clause here, it's hard to understand the above as a double-assignment. but we can merge it as is. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia787528b1a6fac6bf1570c21643ef6cd8c209108 Gerrit-Change-Number: 21747 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 16 Dec 2020 20:42:06 +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 Dec 16 20:42:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 20:42:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty: udp: fixup dialect changes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21747 ) Change subject: gprs_ns2_vty: udp: fixup dialect changes ...................................................................... gprs_ns2_vty: udp: fixup dialect changes Only accept receiving ipaccess style messages when use-reset-block is selected. If use-reset-block is disabled allow static NSVCs. Change-Id: Ia787528b1a6fac6bf1570c21643ef6cd8c209108 --- M src/gb/gprs_ns2_vty.c 1 file changed, 6 insertions(+), 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/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 742f181..e33869b 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -901,7 +901,8 @@ /* TODO: could not bind on the specific address */ return -1; } - bind->accept_ipaccess = true; + + bind->accept_ipaccess = priv.vc_mode == NS2_VC_MODE_BLOCKRESET; } /* create vcs */ @@ -909,7 +910,10 @@ /* validate settings */ switch (vtyvc->ll) { case GPRS_NS2_LL_UDP: - dialect = NS2_DIALECT_IPACCESS; + if (priv.vc_mode == NS2_VC_MODE_BLOCKRESET) + dialect = NS2_DIALECT_IPACCESS; + else + dialect = NS2_DIALECT_STATIC_ALIVE; if (strlen(vtyvc->remote.ip) == 0) { /* Invalid IP for VC */ continue; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia787528b1a6fac6bf1570c21643ef6cd8c209108 Gerrit-Change-Number: 21747 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 Dec 16 20:47:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 20:47:06 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: set default dialect to ipaccess In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21749 ) Change subject: gprs_ns2: set default dialect to ipaccess ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I426f507fb8863abd8995bc615dc6a6fa7ae69217 Gerrit-Change-Number: 21749 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 16 Dec 2020 20: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 Wed Dec 16 20:47:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 16 Dec 2020 20:47:51 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 16 Dec 2020 20:47: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 Dec 16 20:48:46 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 16 Dec 2020 20:48:46 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser/generator for RIM Routing Information 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/+/21721 to look at the new patch set (#3). Change subject: gprs_bssgp: add IE parser/generator for RIM Routing Information ...................................................................... gprs_bssgp: add IE parser/generator for RIM Routing Information The RIM Routing Information IE (see also 3GPP TS 48.018, section 11.3.70) is used to control the flow of BSSGP rim messages at the SGSN. Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h A include/osmocom/gprs/protocol/gsm_24_301.h M src/gb/gprs_bssgp.c M src/gb/libosmogb.map M tests/Makefile.am M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 7 files changed, 323 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/21721/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 Gerrit-PatchSet: 3 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 Wed Dec 16 20:48:46 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 16 Dec 2020 20:48:46 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives 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/+/21722 to look at the new patch set (#3). 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(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/21722/3 -- 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: 3 Gerrit-Owner: dexter 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 Wed Dec 16 20:58:17 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 16 Dec 2020 20:58:17 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser/generator for RIM Routing Information 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/+/21721 to look at the new patch set (#4). Change subject: gprs_bssgp: add IE parser/generator for RIM Routing Information ...................................................................... gprs_bssgp: add IE parser/generator for RIM Routing Information The RIM Routing Information IE (see also 3GPP TS 48.018, section 11.3.70) is used to control the flow of BSSGP rim messages at the SGSN. Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Related: SYS#5103 --- M include/Makefile.am M include/osmocom/gprs/gprs_bssgp.h A include/osmocom/gprs/protocol/gsm_24_301.h M src/gb/gprs_bssgp.c M src/gb/libosmogb.map M tests/Makefile.am M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 8 files changed, 324 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/21721/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 Gerrit-PatchSet: 4 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 Wed Dec 16 20:59:05 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 16 Dec 2020 20:59:05 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: set default dialect to ipaccess In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21749 ) Change subject: gprs_ns2: set default dialect to ipaccess ...................................................................... gprs_ns2: set default dialect to ipaccess The default pcu dialect is ipaccess. Keep it that way. Fixes ttcn3 pcu testcases. Change-Id: I426f507fb8863abd8995bc615dc6a6fa7ae69217 --- M src/bts.cpp 1 file changed, 1 insertion(+), 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/bts.cpp b/src/bts.cpp index 1376686..b4f902a 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -254,6 +254,7 @@ 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 */ bts->ws_base = 64; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I426f507fb8863abd8995bc615dc6a6fa7ae69217 Gerrit-Change-Number: 21749 Gerrit-PatchSet: 1 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 Dec 16 21:38:33 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 16 Dec 2020 21:38:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests_SNS: improve SGSN originated BVC-RESETs 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/+/20923 to look at the new patch set (#2). Change subject: PCU_Tests_SNS: improve SGSN originated BVC-RESETs ...................................................................... PCU_Tests_SNS: improve SGSN originated BVC-RESETs The BVC-RESETs are a little bit more complicated. The PCU will send a BVC-RESET after the NSE become available. Ensure the RESET is received and ignored so there is no race condition if both sides send a BVC-RESET at the same time. The test case TC_sns_1c1u_so_bvc_reset is still failing because the PCU can't handle BVC-RESETs properly (both PTP and signalling). Change-Id: Id681749d75073c1d50a4b0a2e86f0a2dd0955b45 --- M library/RAW_NS.ttcn M pcu/PCU_Tests_SNS.ttcn 2 files changed, 32 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/23/20923/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id681749d75073c1d50a4b0a2e86f0a2dd0955b45 Gerrit-Change-Number: 20923 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus 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 Dec 16 22:38:53 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 16 Dec 2020 22:38:53 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api 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/+/20397 to look at the new patch set (#13). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/97/20397/13 -- 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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 16 22:39:09 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 16 Dec 2020 22:39:09 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: lynxis lazus 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: (4 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/4//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/4//COMMIT_MSG at 7 PS4, Line 7: sgsn: Use the new NS2 api > it would be good to elaborate a bit here. [?] Done https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/11/src/sgsn/gprs_gb.c File src/sgsn/gprs_gb.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/11/src/sgsn/gprs_gb.c at 117 PS11, Line 117: osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, > no line break needed, here and in many other occasions, at least that's my feeling usually it's than bigger as 80 chars. but I don't mind. https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/11/src/sgsn/gprs_gb.c at 143 PS11, Line 143: LOGP(DGPRS, LOGL_NOTICE, > no line break needed (at leat not for four lines), here and in many other occasions, at least that's [?] Ack https://gerrit.osmocom.org/c/osmo-sgsn/+/20397/11/src/sgsn/gprs_gb.c at 184 PS11, Line 184: get_value_string(osmo_prim_op_names, oph->operation), > likewise Ack -- 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: Wed, 16 Dec 2020 22:39:09 +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 Dec 17 02:11:18 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 02:11:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: fix crash when frame relay interface doesn't exists References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21750 ) Change subject: gprs_ns2: fr: fix crash when frame relay interface doesn't exists ...................................................................... gprs_ns2: fr: fix crash when frame relay interface doesn't exists When a frame relay interface doesn't exist gprs_ns2_fr_bind() would detect this but still return a success. Change-Id: I815b6ef5c3df780ac94461a05975a2b70898b01e --- M src/gb/gprs_ns2_fr.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/50/21750/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 8147f66..fc6f166 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -514,8 +514,8 @@ fr_link->tx_cb_data = bind; priv->link = fr_link; - priv->ifindex = devname2ifindex(netif); - if (priv->ifindex < 0) { + priv->ifindex = rc = devname2ifindex(netif); + if (rc < 0) { LOGP(DLNS, LOGL_ERROR, "Can not get interface index for interface %s\n", netif); goto err_fr; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I815b6ef5c3df780ac94461a05975a2b70898b01e Gerrit-Change-Number: 21750 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 Dec 17 02:11:19 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 02:11:19 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: implement a write queue References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21751 ) Change subject: gprs_ns2: fr: implement a write queue ...................................................................... gprs_ns2: fr: implement a write queue Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 --- M src/gb/gprs_ns2_fr.c 1 file changed, 20 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/21751/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index fc6f166..6aa687c 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #ifdef ENABLE_LIBMNL @@ -83,9 +84,9 @@ }; struct priv_bind { - struct osmo_fd fd; char netif[IF_NAMESIZE]; struct osmo_fr_link *link; + struct osmo_wqueue wqueue; int ifindex; bool if_running; }; @@ -142,7 +143,7 @@ OSMO_ASSERT(llist_empty(&bind->nsvc)); osmo_fr_link_free(priv->link); - osmo_fd_close(&priv->fd); + osmo_fd_close(&priv->wqueue.bfd); talloc_free(priv); } @@ -238,22 +239,9 @@ return rc; } -static int handle_netif_write(struct osmo_fd *bfd) +static int handle_netif_write(struct osmo_fd *ofd, struct msgb *msg) { - /* FIXME */ - return -EIO; -} - -static int fr_fd_cb(struct osmo_fd *bfd, unsigned int what) -{ - int rc = 0; - - if (what & OSMO_FD_READ) - rc = handle_netif_read(bfd); - if (what & OSMO_FD_WRITE) - rc = handle_netif_write(bfd); - - return rc; + return write(ofd->fd, msgb_data(msg), msgb_length(msg)); } /*! determine if given bind is for FR-GRE encapsulation. */ @@ -276,13 +264,15 @@ { struct gprs_ns2_vc_bind *bind = data; struct priv_bind *priv = bind->priv; - int rc; - /* FIXME half writes */ - rc = write(priv->fd.fd, msg->data, msg->len); - msgb_free(msg); + if (osmo_wqueue_enqueue(&priv->wqueue, msg)) { + LOGP(DLNS, LOGL_ERROR, "frame relay %s: failed to enqueue message\n", + priv->netif); + msgb_free(msg); + return -EINVAL; + } - return rc; + return 0; } static int devname2ifindex(const char *ifname) @@ -492,8 +482,6 @@ goto err_name; } - priv->fd.cb = fr_fd_cb; - priv->fd.data = bind; if (strlen(netif) > IF_NAMESIZE) { rc = -EINVAL; goto err_priv; @@ -520,12 +508,16 @@ goto err_fr; } - priv->fd.fd = rc = open_socket(priv->ifindex); + osmo_wqueue_init(&priv->wqueue, 10); + priv->wqueue.write_cb = handle_netif_write; + priv->wqueue.read_cb = handle_netif_read; + priv->wqueue.bfd.data = bind; + priv->wqueue.bfd.fd = rc = open_socket(priv->ifindex); if (rc < 0) goto err_fr; - priv->fd.when = OSMO_FD_READ; - rc = osmo_fd_register(&priv->fd); + priv->wqueue.bfd.when = OSMO_FD_READ; + rc = osmo_fd_register(&priv->wqueue.bfd); if (rc < 0) goto err_fd; @@ -545,7 +537,7 @@ return rc; err_fd: - close(priv->fd.fd); + close(priv->wqueue.bfd.fd); err_fr: osmo_fr_link_free(fr_link); err_priv: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 Gerrit-Change-Number: 21751 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 Dec 17 02:12:20 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 02:12:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: implement a write queue In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21751 ) Change subject: gprs_ns2: fr: implement a write queue ...................................................................... Patch Set 1: I couldn't test this because my dadhi configured doesn't match the ttcn3 gbproxy. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 Gerrit-Change-Number: 21751 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 17 Dec 2020 02:12:20 +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 Dec 17 02:59:23 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 17 Dec 2020 02:59:23 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fdac9ac9a0e7_22fc2aafec8545f07295a3@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: [ 232s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 232s] [COMPILING libboard/qmod/source/card_pres.c] [ 232s] [COMPILING libboard/qmod/source/wwan_led.c] [ 232s] [COMPILING libboard/qmod/source/i2c.c] [ 232s] [COMPILING libboard/qmod/source/board_qmod.c] [ 232s] [COMPILING apps/dfu/main.c] [ 232s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 233s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 233s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 233s] Memory region Used Size Region Size %age Used [ 233s] rom: 16588 B 16 KB 101.25% [ 233s] 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' [ 233s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 233s] collect2: error: ld returned 1 exit status [ 233s] % [ 233s] make[2]: *** [Makefile:234: flash] Error 1 [ 233s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 233s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 233s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 233s] dh_auto_build: error: make -j1 returned exit code 2 [ 233s] make: *** [debian/rules:16: build] Error 25 [ 233s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 233s] ### VM INTERACTION START ### [ 236s] [ 211.309455] sysrq: Power Off [ 236s] [ 211.317876] reboot: Power down [ 236s] ### VM INTERACTION END ### [ 236s] [ 236s] old-atreju5 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 17 02:58:47 UTC 2020. [ 236s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 17 03:15:41 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 17 Dec 2020 03:15:41 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fdacd6bafd97_22fc2aafec8545f073438f@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: [ 415s] [COMPILING apps/dfu/main.c] [ 415s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 415s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 416s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 416s] Memory region Used Size Region Size %age Used [ 416s] rom: 16580 B 16 KB 101.20% [ 416s] 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 [ 416s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 416s] /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' [ 416s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 416s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 416s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 416s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 416s] collect2: error: ld returned 1 exit status [ 416s] % [ 416s] make[2]: *** [Makefile:234: flash] Error 1 [ 416s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 416s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 416s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 416s] dh_auto_build: error: make -j1 returned exit code 2 [ 416s] make: *** [debian/rules:16: build] Error 25 [ 416s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 416s] ### VM INTERACTION START ### [ 420s] [ 368.657384] sysrq: Power Off [ 420s] [ 368.743601] reboot: Power down [ 420s] ### VM INTERACTION END ### [ 420s] [ 420s] lamb27 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 17 03:15:21 UTC 2020. [ 420s] -- 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 Dec 17 04:04:10 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 04:04:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... gprs_ns2: fr: setup the device to correct FR/LMI settings A hdlc can be used in different modes. Also a FR device can be used with lmi and certain settings as without it. ns2 will use FR with no lmi in the kernel. Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b --- M src/gb/gprs_ns2_fr.c 1 file changed, 110 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/52/21752/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 6aa687c..b5c096f 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -36,12 +36,14 @@ #include #include #include -#include +#include #include #include #include #include +#include +#include #include #include @@ -84,7 +86,7 @@ }; struct priv_bind { - char netif[IF_NAMESIZE]; + char netif[IFNAMSIZ]; struct osmo_fr_link *link; struct osmo_wqueue wqueue; int ifindex; @@ -434,6 +436,102 @@ } #endif /* LIBMNL */ +int set_ifupdown(const char *netif, bool up) +{ + int sock, rc; + struct ifreq req; + + sock = socket(AF_INET, SOCK_DGRAM, 0); + if (sock < 0) + return sock; + + memset(&req, 0, sizeof req); + strncpy(req.ifr_name, netif, IFNAMSIZ); + + if (up) + req.ifr_flags |= IFF_UP; + + rc = ioctl(sock, SIOCSIFFLAGS, &req); + close(sock); + return rc; +} + +int setup_device(const char *netif) +{ + int sock, rc; + char buffer[128]; + fr_proto *fr = (void*)buffer; + struct ifreq req; + + 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)); + return sock; + } + + memset(&req, 0, sizeof(struct ifreq)); + memset(&buffer, 0, sizeof(buffer)); + strncpy(req.ifr_name, netif, IFNAMSIZ); + req.ifr_settings.ifs_ifsu.sync = (void*)buffer; + req.ifr_settings.size = sizeof(buffer); + req.ifr_settings.type = IF_GET_PROTO; + + rc = ioctl(sock, SIOCWANDEV, &req); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n", + netif, strerror(errno)); + goto err; + } + + /* check if the device is good */ + if (req.ifr_settings.type != IF_PROTO_FR && fr->lmi != LMI_NONE) { + LOGP(DLNS, LOGL_INFO, "%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 up the device %s: %s\n", + netif, strerror(errno)); + goto err; + } + + memset(&req, 0, sizeof(struct ifreq)); + memset(fr, 0, sizeof(fr_proto)); + strncpy(req.ifr_name, netif, IFNAMSIZ); + req.ifr_settings.type = IF_PROTO_FR; + req.ifr_settings.size = sizeof(fr_proto); + req.ifr_settings.ifs_ifsu.fr = fr; + fr->lmi = LMI_NONE; + /* polling verification timer*/ + fr->t391 = 10; + /* link integrity verification polling timer */ + fr->t392 = 15; + /* full status polling counter*/ + fr->n391 = 6; + /* error threshold */ + fr->n392 = 3; + /* monitored events count */ + fr->n393 = 4; + + rc = ioctl(sock, SIOCWANDEV, &req); + if (rc) { + LOGP(DLNS, 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)); +err: + close(sock); + return rc; +} /*! Create a new bind for NS over FR. * \param[in] nsi NS instance in which to create the bind @@ -482,7 +580,7 @@ goto err_name; } - if (strlen(netif) > IF_NAMESIZE) { + if (strlen(netif) > IFNAMSIZ) { rc = -EINVAL; goto err_priv; } @@ -508,6 +606,14 @@ goto err_fr; } + /* set protocol frame relay and lmi */ + rc = setup_device(priv->netif); + if(rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Failed to setup the interface %s for frame relay and lmi\n", netif); + goto err_fr; + } + + osmo_wqueue_init(&priv->wqueue, 10); priv->wqueue.write_cb = handle_netif_write; priv->wqueue.read_cb = handle_netif_read; @@ -600,7 +706,7 @@ continue; _netif = gprs_ns2_fr_bind_netif(bind); - if (!strncmp(_netif, netif, IF_NAMESIZE)) + if (!strncmp(_netif, netif, IFNAMSIZ)) return bind; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 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 Dec 17 04:05:15 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 04:05:15 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... Patch Set 1: maybe need to fix build issues with debian jessie and centos. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 17 Dec 2020 04:05: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 Thu Dec 17 04:05:26 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 04:05:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... Patch Set 1: tested on debian buster/testing. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 17 Dec 2020 04:05: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 Thu Dec 17 04:29:19 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 04:29:19 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... Patch Set 1: it builds on debian jessie. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 04:29: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 Thu Dec 17 04:42:27 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 04:42:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings 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/+/21752 to look at the new patch set (#2). Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... gprs_ns2: fr: setup the device to correct FR/LMI settings A hdlc can be used in different modes. Also a FR device can be used with lmi and certain settings as without it. ns2 will use FR with no lmi in the kernel. Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b --- M src/gb/gprs_ns2_fr.c 1 file changed, 111 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/52/21752/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 Gerrit-PatchSet: 2 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 Thu Dec 17 04:47:47 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 04:47:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: implement a write queue 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/+/21751 to look at the new patch set (#2). Change subject: gprs_ns2: fr: implement a write queue ...................................................................... gprs_ns2: fr: implement a write queue Related: SYS#5228 Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 --- M src/gb/gprs_ns2_fr.c 1 file changed, 20 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/21751/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 Gerrit-Change-Number: 21751 Gerrit-PatchSet: 2 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 Thu Dec 17 04:47:47 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 04:47:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings 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/+/21752 to look at the new patch set (#3). Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... gprs_ns2: fr: setup the device to correct FR/LMI settings A hdlc can be used in different modes. Also a FR device can be used with lmi and certain settings as without it. ns2 will use FR with no lmi in the kernel. Related: SYS#5169 Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b --- M src/gb/gprs_ns2_fr.c 1 file changed, 111 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/52/21752/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 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 Thu Dec 17 07:16:42 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 17 Dec 2020 07:16:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive References: Message-ID: lynxis lazus has uploaded this change for review. ( 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/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 8 files changed, 277 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21753/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 9d5a97c..6246977 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -476,7 +476,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) @@ -1261,4 +1261,67 @@ } } +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 + */ +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 0; + + 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; + } + + return transfer_cap; +} + /*! @} */ diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 8147f66..6a9dc3c 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -482,6 +482,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 df3772a..a336d3f 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; @@ -311,3 +314,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 ed87aca..bc05ac3 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 @@ -179,6 +179,29 @@ $(top_builddir)/src/vty/libosmovty.la \ $(top_builddir)/src/gsm/libosmogsm.la +gb_gprs_ns2_test_SOURCES = gb/gprs_ns2_test.c \ + $(srcdir)/../src/gb/gprs_ns2.c \ + $(srcdir)/../src/gb/gprs_ns2_udp.c \ + $(srcdir)/../src/gb/gprs_ns2_frgre.c \ + $(srcdir)/../src/gb/gprs_ns2_fr.c \ + $(srcdir)/../src/gb/gprs_ns2_vc_fsm.c \ + $(srcdir)/../src/gb/gprs_ns2_sns.c \ + $(srcdir)/../src/gb/gprs_ns2_message.c \ + $(srcdir)/../src/gb/gprs_ns2_vty.c \ + $(srcdir)/../src/gb/gprs_ns.c \ + $(srcdir)/../src/gb/gprs_ns_frgre.c \ + $(srcdir)/../src/gb/gprs_ns_vty.c \ + $(srcdir)/../src/gb/gprs_ns_sns.c \ + $(srcdir)/../src/gb/frame_relay.c \ + $(srcdir)/../src/gb/common_vty.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 +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 @@ -318,7 +341,8 @@ lapd/lapd_test.ok gsm0408/gsm0408_test.ok \ 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_test.ok gb/gprs_ns_test.ok \ + gb/gprs_ns2_test.ok gea/gea_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 + -- 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: 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 Dec 17 11:32:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 11:32:38 +0000 Subject: Change in osmo-ci[master]: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21754 ) Change subject: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing ...................................................................... jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing this job can only run on a specific type of buildslave: A system with Linux kernel HDLC support. Change-Id: Id440c70a8f21583bce109366f44cdc22e0ca1ae8 --- M jobs/ttcn3-testsuites.yml 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/54/21754/1 diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index 2102c1e..f6d1bf4 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -4,6 +4,7 @@ concurrent: false disabled: false timer: "@midnight" + node: ttcn3 # Block *-latest for all master jobs (without suffix) blocking: "^{job-name}.*" jobs: @@ -68,6 +69,10 @@ - ttcn3-gbproxy-test: blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test.*" timer: 20 10 * * * + - ttcn3-gbproxy-test-fr: + blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test-fr.*" + timer: 30 10 * * * + node: hdlc # debian-stretch latest stable - nplab-m3ua-test-latest: @@ -195,7 +200,7 @@ OS#3268.
See TTCN3 Testsuite for more information. - node: ttcn3 + node: '{obj:node}' parameters: - string: name: BRANCH -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id440c70a8f21583bce109366f44cdc22e0ca1ae8 Gerrit-Change-Number: 21754 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 Dec 17 12:41:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 12:41:47 +0000 Subject: Change in osmo-e1-hardware[master]: firmware: Rename fw_app.bin to icE1usb-fw.bin / e1_tracer-fw.bin References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21755 ) Change subject: firmware: Rename fw_app.bin to icE1usb-fw.bin / e1_tracer-fw.bin ...................................................................... firmware: Rename fw_app.bin to icE1usb-fw.bin / e1_tracer-fw.bin This is clearly much more descriptive, and avoids mixing up firmware files for different boards Change-Id: I319edb76dd74be6904395692ab1599fb8f1f9065 --- M firmware/ice40-riscv/e1-tracer/Makefile M firmware/ice40-riscv/icE1usb/Makefile 2 files changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/55/21755/1 diff --git a/firmware/ice40-riscv/e1-tracer/Makefile b/firmware/ice40-riscv/e1-tracer/Makefile index 0c522a2..88b80d6 100644 --- a/firmware/ice40-riscv/e1-tracer/Makefile +++ b/firmware/ice40-riscv/e1-tracer/Makefile @@ -56,10 +56,10 @@ $(NULL) -all: fw_app.bin +all: e1_tracer-fw.bin -fw_app.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) +e1_tracer-fw.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app) @@ -69,10 +69,10 @@ %.bin: %.elf $(OBJCOPY) -O binary $< $@ -prog: fw_app.bin +prog: e1_tracer-fw.bin $(ICEPROG) -o 640k $< -dfuprog: fw_app.bin +dfuprog: e1_tracer-fw.bin $(DFU_UTIL) -R -a 1 -D $< diff --git a/firmware/ice40-riscv/icE1usb/Makefile b/firmware/ice40-riscv/icE1usb/Makefile index f2b1103..b830051 100644 --- a/firmware/ice40-riscv/icE1usb/Makefile +++ b/firmware/ice40-riscv/icE1usb/Makefile @@ -56,10 +56,10 @@ $(NULL) -all: fw_app.bin +all: icE1usb-fw.bin -fw_app.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) +icE1usb-fw.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app) @@ -69,10 +69,10 @@ %.bin: %.elf $(OBJCOPY) -O binary $< $@ -prog: fw_app.bin +prog: icE1usb-fw.bin $(ICEPROG) -o 640k $< -dfuprog: fw_app.bin +dfuprog: icE1usb-fw.bin $(DFU_UTIL) -R -a 1 -D $< -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21755 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: I319edb76dd74be6904395692ab1599fb8f1f9065 Gerrit-Change-Number: 21755 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 Dec 17 12:41:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 12:41:47 +0000 Subject: Change in osmo-e1-hardware[master]: firmware: Build firmware files with auto-generated version numbers References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21756 ) Change subject: firmware: Build firmware files with auto-generated version numbers ...................................................................... firmware: Build firmware files with auto-generated version numbers This resembles what we do for other firmware targets, such as simtrace2, osmo-ccid-firmware, etc. As we have multiple different firmware, hardware, gateware projects in this repository, and they each may have separate tags, we now require that there are project specific tags. So for example, tags with a prefix of icE1usb-fw for the firmware versions. symlinks for easy use by scripts etc. are generated, always pointing to the last-built versioned filename. Change-Id: Ia308587e36a79c27fdb285e369a9c921ee65995f --- M firmware/ice40-riscv/e1-tracer/Makefile M firmware/ice40-riscv/icE1usb/Makefile 2 files changed, 29 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/56/21756/1 diff --git a/firmware/ice40-riscv/e1-tracer/Makefile b/firmware/ice40-riscv/e1-tracer/Makefile index 88b80d6..8161066 100644 --- a/firmware/ice40-riscv/e1-tracer/Makefile +++ b/firmware/ice40-riscv/e1-tracer/Makefile @@ -9,6 +9,10 @@ ICEPROG = iceprog DFU_UTIL = dfu-util +TAG_PREFIX = e1_tracer-fw +GITVER = $(shell git describe --match '$(TAG_PREFIX)*') +TARGET = $(GITVER) + BOARD_DEFINE=BOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_) CFLAGS=-Wall -Wextra -Wno-unused -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -D$(BOARD_DEFINE) -I. -I../common @@ -56,10 +60,10 @@ $(NULL) -all: e1_tracer-fw.bin +all: $(GITVER).bin $(TAG_PREFIX).bin $(TAG_PREFIX).elf -e1_tracer-fw.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) +$(GITVER).elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app) @@ -69,10 +73,17 @@ %.bin: %.elf $(OBJCOPY) -O binary $< $@ -prog: e1_tracer-fw.bin +$(TAG_PREFIX).bin: $(GITVER).bin + ln -sf $< $@ + +$(TAG_PREFIX).elf: $(GITVER).elf + ln -sf $< $@ + + +prog: $(GITVER).bin $(ICEPROG) -o 640k $< -dfuprog: e1_tracer-fw.bin +dfuprog: $(GITVER).bin $(DFU_UTIL) -R -a 1 -D $< diff --git a/firmware/ice40-riscv/icE1usb/Makefile b/firmware/ice40-riscv/icE1usb/Makefile index b830051..1c92edb 100644 --- a/firmware/ice40-riscv/icE1usb/Makefile +++ b/firmware/ice40-riscv/icE1usb/Makefile @@ -9,6 +9,10 @@ ICEPROG = iceprog DFU_UTIL = dfu-util +TAG_PREFIX = icE1usb-fw +GITVER = $(shell git describe --match '$(TAG_PREFIX)*') +TARGET = $(GITVER) + BOARD_DEFINE=BOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_) CFLAGS=-Wall -Wextra -Wno-unused -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -D$(BOARD_DEFINE) -I. -I../common @@ -56,10 +60,10 @@ $(NULL) -all: icE1usb-fw.bin +all: $(GITVER).bin $(TAG_PREFIX).bin $(TAG_PREFIX).elf -icE1usb-fw.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) +$(GITVER).elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app) @@ -69,10 +73,16 @@ %.bin: %.elf $(OBJCOPY) -O binary $< $@ -prog: icE1usb-fw.bin +$(TAG_PREFIX).bin: $(GITVER).bin + ln -sf $< $@ + +$(TAG_PREFIX).elf: $(GITVER).elf + ln -sf $< $@ + +prog: $(GITVER).bin $(ICEPROG) -o 640k $< -dfuprog: icE1usb-fw.bin +dfuprog: $(GITVER).bin $(DFU_UTIL) -R -a 1 -D $< -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21756 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: Ia308587e36a79c27fdb285e369a9c921ee65995f Gerrit-Change-Number: 21756 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 Dec 17 12:41:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 12:41:48 +0000 Subject: Change in osmo-e1-hardware[master]: add contrib/jenkins.sh for build verification + manual / firmware upload References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21757 ) Change subject: add contrib/jenkins.sh for build verification + manual / firmware upload ...................................................................... add contrib/jenkins.sh for build verification + manual / firmware upload Change-Id: I70d7de4299e773b38a014e4884641712edbd45c3 --- A contrib/jenkins.sh 1 file changed, 59 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/57/21757/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh new file mode 100755 index 0000000..5bc05f7 --- /dev/null +++ b/contrib/jenkins.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +# jenkins build helper script for osmo-e1-hardware. This is how we build on jenkins.osmocom.org +# +# environment variables: +# * WITH_MANUALS: build manual PDFs if set to "1" +# * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1") + +set -e + +TOPDIR=`pwd` +publish="$1" + +# we assume that PATH includes the path to the respective toolchain + +# firmware build +FW_DIRS="firmware/ice40-riscv/e1-tracer firmware/ice40-riscv/icE1usb" +for d in $FW_DIRS; do + echo + echo "=============== $d FIRMWARE ==============" + make -C $d clean all +done + +# The argument '--publish' is used to trigger publication/upload of firmware +if [ "x$publish" = "x--publish" ]; then + + echo + echo "=============== UPLOAD FIRMWARE ==============" + + cat > "/build/known_hosts" < Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 12:47:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 12:47:39 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser/generator for RIM Routing Information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21721 ) Change subject: gprs_bssgp: add IE parser/generator for RIM Routing Information ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 12:47: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 Dec 17 12:48:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 12:48:11 +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 4: 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: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 12: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 Thu Dec 17 12:50:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 12:50:29 +0000 Subject: Change in osmo-ci[master]: update-osmo-ci-on-slaves: Add build slaves on gtplab0 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21758 ) Change subject: update-osmo-ci-on-slaves: Add build slaves on gtplab0 ...................................................................... update-osmo-ci-on-slaves: Add build slaves on gtplab0 Change-Id: I555cb26be138e2969d07ad561fe8eba8994f2429 --- M jobs/update-osmo-ci-on-slaves.yml 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/58/21758/1 diff --git a/jobs/update-osmo-ci-on-slaves.yml b/jobs/update-osmo-ci-on-slaves.yml index ca99466..3ff4fa4 100644 --- a/jobs/update-osmo-ci-on-slaves.yml +++ b/jobs/update-osmo-ci-on-slaves.yml @@ -12,6 +12,9 @@ - build2-deb9build-ansible - build2-deb10build-ansible - rpi4-deb9build-ansible + - gtp0-deb9build + - gtp0-deb10build32 + - gtp0-deb10fr properties: - build-discarder: days-to-keep: 30 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I555cb26be138e2969d07ad561fe8eba8994f2429 Gerrit-Change-Number: 21758 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 Dec 17 12:51:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 12:51:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests_SNS: improve SGSN originated BVC-RESETs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20923 ) Change subject: PCU_Tests_SNS: improve SGSN originated BVC-RESETs ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id681749d75073c1d50a4b0a2e86f0a2dd0955b45 Gerrit-Change-Number: 20923 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 12: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 Thu Dec 17 12:52:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 12:52:42 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: pespin 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+1 -- 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: Thu, 17 Dec 2020 12:52: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 Dec 17 12:53:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 12:53:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: fix crash when frame relay interface doesn't exists In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21750 ) Change subject: gprs_ns2: fr: fix crash when frame relay interface doesn't exists ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I815b6ef5c3df780ac94461a05975a2b70898b01e Gerrit-Change-Number: 21750 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 12:53: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 Dec 17 12:57:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 12:57:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: implement a write queue In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21751 ) Change subject: gprs_ns2: fr: implement a write queue ...................................................................... Patch Set 2: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21751/2/src/gb/gprs_ns2_fr.c File src/gb/gprs_ns2_fr.c: https://gerrit.osmocom.org/c/libosmocore/+/21751/2/src/gb/gprs_ns2_fr.c at 244 PS2, Line 244: return write(ofd->fd, msgb_data(msg), msgb_length(msg)); Don't you need to free msg here? https://gerrit.osmocom.org/c/libosmocore/+/21751/2/src/gb/gprs_ns2_fr.c at 515 PS2, Line 515: priv->wqueue.bfd.fd = rc = open_socket(priv->ifindex); we have osmo_ofd_setup() for this. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 Gerrit-Change-Number: 21751 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 12:57: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 Thu Dec 17 13:00:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 13:00:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... Patch Set 3: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21752/3/src/gb/gprs_ns2_fr.c File src/gb/gprs_ns2_fr.c: https://gerrit.osmocom.org/c/libosmocore/+/21752/3/src/gb/gprs_ns2_fr.c at 439 PS3, Line 439: int set_ifupdown(const char *netif, bool up) this looks quite generic, may be wroth having it somewhere else in libosmocore (socket.h or netif.h or whatever). Otherwise it should be static right? https://gerrit.osmocom.org/c/libosmocore/+/21752/3/src/gb/gprs_ns2_fr.c at 459 PS3, Line 459: int setup_device(const char *netif) static? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 13:00: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 Thu Dec 17 13:01:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:01:51 +0000 Subject: Change in osmo-ci[master]: build 'fpga-build' container when rebuilding containers References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21759 ) Change subject: build 'fpga-build' container when rebuilding containers ...................................................................... build 'fpga-build' container when rebuilding containers Change-Id: Ibd9637c231e4386115ace5c090558262c60274b1 --- M scripts/osmo-ci-docker-rebuild.sh 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/59/21759/1 diff --git a/scripts/osmo-ci-docker-rebuild.sh b/scripts/osmo-ci-docker-rebuild.sh index 58642ff..af28daf 100755 --- a/scripts/osmo-ci-docker-rebuild.sh +++ b/scripts/osmo-ci-docker-rebuild.sh @@ -5,4 +5,6 @@ docker_images_require \ "debian-stretch-jenkins" \ "debian-buster-erlang" \ - "osmo-gsm-tester" + "osmo-gsm-tester" \ + "debian-buster-build" \ + "fpga-build" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibd9637c231e4386115ace5c090558262c60274b1 Gerrit-Change-Number: 21759 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 Dec 17 13:01:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 13:01:52 +0000 Subject: Change in osmo-ci[master]: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21754 ) Change subject: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/21754/1/jobs/ttcn3-testsuites.yml File jobs/ttcn3-testsuites.yml: https://gerrit.osmocom.org/c/osmo-ci/+/21754/1/jobs/ttcn3-testsuites.yml at 186 PS1, Line 186: timer: 20 10 * * * We don't run it in centos? -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id440c70a8f21583bce109366f44cdc22e0ca1ae8 Gerrit-Change-Number: 21754 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 13:01: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 Dec 17 13:02:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:02:15 +0000 Subject: Change in osmo-ci[master]: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21754 ) Change subject: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id440c70a8f21583bce109366f44cdc22e0ca1ae8 Gerrit-Change-Number: 21754 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 13:02: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 Dec 17 13:02:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 13:02:22 +0000 Subject: Change in osmo-ci[master]: build 'fpga-build' container when rebuilding containers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21759 ) Change subject: build 'fpga-build' container when rebuilding containers ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibd9637c231e4386115ace5c090558262c60274b1 Gerrit-Change-Number: 21759 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 13:02: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 Dec 17 13:02:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:02:28 +0000 Subject: Change in osmo-ci[master]: update-osmo-ci-on-slaves: Add build slaves on gtplab0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21758 ) Change subject: update-osmo-ci-on-slaves: Add build slaves on gtplab0 ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I555cb26be138e2969d07ad561fe8eba8994f2429 Gerrit-Change-Number: 21758 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 13:02: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 Dec 17 13:02:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:02:30 +0000 Subject: Change in osmo-ci[master]: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21754 ) Change subject: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing ...................................................................... jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing this job can only run on a specific type of buildslave: A system with Linux kernel HDLC support. Change-Id: Id440c70a8f21583bce109366f44cdc22e0ca1ae8 --- M jobs/ttcn3-testsuites.yml 1 file changed, 6 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index 2102c1e..f6d1bf4 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -4,6 +4,7 @@ concurrent: false disabled: false timer: "@midnight" + node: ttcn3 # Block *-latest for all master jobs (without suffix) blocking: "^{job-name}.*" jobs: @@ -68,6 +69,10 @@ - ttcn3-gbproxy-test: blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test.*" timer: 20 10 * * * + - ttcn3-gbproxy-test-fr: + blocking: "^(ttcn3|TTCN3-.*)-gbproxy-test-fr.*" + timer: 30 10 * * * + node: hdlc # debian-stretch latest stable - nplab-m3ua-test-latest: @@ -195,7 +200,7 @@ OS#3268.
See TTCN3 Testsuite for more information. - node: ttcn3 + node: '{obj:node}' parameters: - string: name: BRANCH -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id440c70a8f21583bce109366f44cdc22e0ca1ae8 Gerrit-Change-Number: 21754 Gerrit-PatchSet: 1 Gerrit-Owner: laforge 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 Thu Dec 17 13:02:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:02:31 +0000 Subject: Change in osmo-ci[master]: update-osmo-ci-on-slaves: Add build slaves on gtplab0 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21758 ) Change subject: update-osmo-ci-on-slaves: Add build slaves on gtplab0 ...................................................................... update-osmo-ci-on-slaves: Add build slaves on gtplab0 Change-Id: I555cb26be138e2969d07ad561fe8eba8994f2429 --- M jobs/update-osmo-ci-on-slaves.yml 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/jobs/update-osmo-ci-on-slaves.yml b/jobs/update-osmo-ci-on-slaves.yml index ca99466..3ff4fa4 100644 --- a/jobs/update-osmo-ci-on-slaves.yml +++ b/jobs/update-osmo-ci-on-slaves.yml @@ -12,6 +12,9 @@ - build2-deb9build-ansible - build2-deb10build-ansible - rpi4-deb9build-ansible + - gtp0-deb9build + - gtp0-deb10build32 + - gtp0-deb10fr properties: - build-discarder: days-to-keep: 30 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I555cb26be138e2969d07ad561fe8eba8994f2429 Gerrit-Change-Number: 21758 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 Dec 17 13:04:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:04:46 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser/generator for RIM Routing Information In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21721 ) Change subject: gprs_bssgp: add IE parser/generator for RIM Routing Information ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 13:04: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 Dec 17 13:06:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:06:12 +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 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21722/2/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/21722/2/include/osmocom/gprs/gprs_bssgp.h at 59 PS2, Line 59: PRIM_BSSGP_RIM, > 3GPP TS 48.018 Section 5.3.37 + 5.3. [?] was this missed? It's not critical, but no resposne could mean "I prefer the current name" or "I missed your comment". Please comment. -- 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: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 13:06:12 +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 Dec 17 13:06:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:06:17 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add IE parser/generator for RIM Routing Information In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21721 ) Change subject: gprs_bssgp: add IE parser/generator for RIM Routing Information ...................................................................... gprs_bssgp: add IE parser/generator for RIM Routing Information The RIM Routing Information IE (see also 3GPP TS 48.018, section 11.3.70) is used to control the flow of BSSGP rim messages at the SGSN. Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Related: SYS#5103 --- M include/Makefile.am M include/osmocom/gprs/gprs_bssgp.h A include/osmocom/gprs/protocol/gsm_24_301.h M src/gb/gprs_bssgp.c M src/gb/libosmogb.map M tests/Makefile.am M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 8 files changed, 324 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/Makefile.am b/include/Makefile.am index 0cb9cd2..842b872 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -76,6 +76,7 @@ osmocom/gprs/protocol/gsm_04_60.h \ osmocom/gprs/protocol/gsm_08_16.h \ osmocom/gprs/protocol/gsm_08_18.h \ + osmocom/gprs/protocol/gsm_24_301.h \ osmocom/gsm/a5.h \ osmocom/gsm/abis_nm.h \ osmocom/gsm/apn.h \ diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index dfbd9b7..7077044 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -10,6 +10,7 @@ #include #include +#include /* gprs_bssgp_util.c */ @@ -175,6 +176,37 @@ 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/protocol/gsm_24_301.h b/include/osmocom/gprs/protocol/gsm_24_301.h new file mode 100644 index 0000000..d4bcd87 --- /dev/null +++ b/include/osmocom/gprs/protocol/gsm_24_301.h @@ -0,0 +1,11 @@ +/*! \file gsm_24_301.h */ + +#pragma once + +/*! Tracking area TS 24.301, section 9.9.3.32 */ +struct osmo_eutran_tai { + uint16_t mcc; + uint16_t mnc; + bool mnc_3_digits; + uint16_t tac; +}; diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 696c451..09f6373 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -326,6 +326,93 @@ 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.mcc = ri->eutran.tai.mcc; + raid_temp.mnc = ri->eutran.tai.mnc; + raid_temp.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; + } +} + /* 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/libosmogb.map b/src/gb/libosmogb.map index 59405b0..8f638ff 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -2,6 +2,7 @@ global: bssgp_cause_str; bssgp_create_cell_id; +bssgp_create_rim_ri; bssgp_pdu_str; bssgp_fc_in; bssgp_fc_init; @@ -13,6 +14,7 @@ bssgp_msgb_tlli_put; bssgp_msgb_ra_put; bssgp_parse_cell_id; +bssgp_parse_rim_ri; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; diff --git a/tests/Makefile.am b/tests/Makefile.am index ed87aca..cb683f7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -172,7 +172,8 @@ gb_gprs_bssgp_test_SOURCES = gb/gprs_bssgp_test.c gb_gprs_bssgp_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DLSYM) \ $(top_builddir)/src/vty/libosmovty.la \ - $(top_builddir)/src/gsm/libosmogsm.la + $(top_builddir)/src/gsm/libosmogsm.la \ + $(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) \ diff --git a/tests/gb/gprs_bssgp_test.c b/tests/gb/gprs_bssgp_test.c index 52e986e..e1c920a 100644 --- a/tests/gb/gprs_bssgp_test.c +++ b/tests/gb/gprs_bssgp_test.c @@ -289,6 +289,137 @@ 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) @@ -317,6 +448,8 @@ 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 c5b3e7d..744f1a7 100644 --- a/tests/gb/gprs_bssgp_test.ok +++ b/tests/gb/gprs_bssgp_test.ok @@ -17,5 +17,61 @@ 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/+/21721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f88a9aeeb50a612d32e9efd23040c9740bc4f11 Gerrit-Change-Number: 21721 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 Thu Dec 17 13:07:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:07:36 +0000 Subject: Change in osmo-ci[master]: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21754 ) Change subject: jobs: Add ttcn3-gbproxy-test-fr for Frame Relay testing ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/21754/1/jobs/ttcn3-testsuites.yml File jobs/ttcn3-testsuites.yml: https://gerrit.osmocom.org/c/osmo-ci/+/21754/1/jobs/ttcn3-testsuites.yml at 186 PS1, Line 186: timer: 20 10 * * * > We don't run it in centos? That is correct. This test suite requires a special build slave with patched kernel and dahdi userland, which we only have for Debian. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id440c70a8f21583bce109366f44cdc22e0ca1ae8 Gerrit-Change-Number: 21754 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 13:07:36 +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 Dec 17 13:08:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:08:25 +0000 Subject: Change in osmo-e1-hardware[master]: firmware: Build firmware files with auto-generated version numbers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21756 ) Change subject: firmware: Build firmware files with auto-generated version numbers ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21756 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: Ia308587e36a79c27fdb285e369a9c921ee65995f Gerrit-Change-Number: 21756 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 13:08: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 Dec 17 13:08:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:08:29 +0000 Subject: Change in osmo-e1-hardware[master]: firmware: Rename fw_app.bin to icE1usb-fw.bin / e1_tracer-fw.bin In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21755 ) Change subject: firmware: Rename fw_app.bin to icE1usb-fw.bin / e1_tracer-fw.bin ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21755 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: I319edb76dd74be6904395692ab1599fb8f1f9065 Gerrit-Change-Number: 21755 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 13: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 Thu Dec 17 13:08:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:08:39 +0000 Subject: Change in osmo-e1-hardware[master]: firmware: Rename fw_app.bin to icE1usb-fw.bin / e1_tracer-fw.bin In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21755 ) Change subject: firmware: Rename fw_app.bin to icE1usb-fw.bin / e1_tracer-fw.bin ...................................................................... firmware: Rename fw_app.bin to icE1usb-fw.bin / e1_tracer-fw.bin This is clearly much more descriptive, and avoids mixing up firmware files for different boards Change-Id: I319edb76dd74be6904395692ab1599fb8f1f9065 --- M firmware/ice40-riscv/e1-tracer/Makefile M firmware/ice40-riscv/icE1usb/Makefile 2 files changed, 8 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/firmware/ice40-riscv/e1-tracer/Makefile b/firmware/ice40-riscv/e1-tracer/Makefile index 0c522a2..88b80d6 100644 --- a/firmware/ice40-riscv/e1-tracer/Makefile +++ b/firmware/ice40-riscv/e1-tracer/Makefile @@ -56,10 +56,10 @@ $(NULL) -all: fw_app.bin +all: e1_tracer-fw.bin -fw_app.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) +e1_tracer-fw.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app) @@ -69,10 +69,10 @@ %.bin: %.elf $(OBJCOPY) -O binary $< $@ -prog: fw_app.bin +prog: e1_tracer-fw.bin $(ICEPROG) -o 640k $< -dfuprog: fw_app.bin +dfuprog: e1_tracer-fw.bin $(DFU_UTIL) -R -a 1 -D $< diff --git a/firmware/ice40-riscv/icE1usb/Makefile b/firmware/ice40-riscv/icE1usb/Makefile index f2b1103..b830051 100644 --- a/firmware/ice40-riscv/icE1usb/Makefile +++ b/firmware/ice40-riscv/icE1usb/Makefile @@ -56,10 +56,10 @@ $(NULL) -all: fw_app.bin +all: icE1usb-fw.bin -fw_app.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) +icE1usb-fw.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app) @@ -69,10 +69,10 @@ %.bin: %.elf $(OBJCOPY) -O binary $< $@ -prog: fw_app.bin +prog: icE1usb-fw.bin $(ICEPROG) -o 640k $< -dfuprog: fw_app.bin +dfuprog: icE1usb-fw.bin $(DFU_UTIL) -R -a 1 -D $< -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21755 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: I319edb76dd74be6904395692ab1599fb8f1f9065 Gerrit-Change-Number: 21755 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 Dec 17 13:08:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 13:08:40 +0000 Subject: Change in osmo-e1-hardware[master]: firmware: Build firmware files with auto-generated version numbers In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21756 ) Change subject: firmware: Build firmware files with auto-generated version numbers ...................................................................... firmware: Build firmware files with auto-generated version numbers This resembles what we do for other firmware targets, such as simtrace2, osmo-ccid-firmware, etc. As we have multiple different firmware, hardware, gateware projects in this repository, and they each may have separate tags, we now require that there are project specific tags. So for example, tags with a prefix of icE1usb-fw for the firmware versions. symlinks for easy use by scripts etc. are generated, always pointing to the last-built versioned filename. Change-Id: Ia308587e36a79c27fdb285e369a9c921ee65995f --- M firmware/ice40-riscv/e1-tracer/Makefile M firmware/ice40-riscv/icE1usb/Makefile 2 files changed, 29 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/firmware/ice40-riscv/e1-tracer/Makefile b/firmware/ice40-riscv/e1-tracer/Makefile index 88b80d6..8161066 100644 --- a/firmware/ice40-riscv/e1-tracer/Makefile +++ b/firmware/ice40-riscv/e1-tracer/Makefile @@ -9,6 +9,10 @@ ICEPROG = iceprog DFU_UTIL = dfu-util +TAG_PREFIX = e1_tracer-fw +GITVER = $(shell git describe --match '$(TAG_PREFIX)*') +TARGET = $(GITVER) + BOARD_DEFINE=BOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_) CFLAGS=-Wall -Wextra -Wno-unused -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -D$(BOARD_DEFINE) -I. -I../common @@ -56,10 +60,10 @@ $(NULL) -all: e1_tracer-fw.bin +all: $(GITVER).bin $(TAG_PREFIX).bin $(TAG_PREFIX).elf -e1_tracer-fw.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) +$(GITVER).elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app) @@ -69,10 +73,17 @@ %.bin: %.elf $(OBJCOPY) -O binary $< $@ -prog: e1_tracer-fw.bin +$(TAG_PREFIX).bin: $(GITVER).bin + ln -sf $< $@ + +$(TAG_PREFIX).elf: $(GITVER).elf + ln -sf $< $@ + + +prog: $(GITVER).bin $(ICEPROG) -o 640k $< -dfuprog: e1_tracer-fw.bin +dfuprog: $(GITVER).bin $(DFU_UTIL) -R -a 1 -D $< diff --git a/firmware/ice40-riscv/icE1usb/Makefile b/firmware/ice40-riscv/icE1usb/Makefile index b830051..1c92edb 100644 --- a/firmware/ice40-riscv/icE1usb/Makefile +++ b/firmware/ice40-riscv/icE1usb/Makefile @@ -9,6 +9,10 @@ ICEPROG = iceprog DFU_UTIL = dfu-util +TAG_PREFIX = icE1usb-fw +GITVER = $(shell git describe --match '$(TAG_PREFIX)*') +TARGET = $(GITVER) + BOARD_DEFINE=BOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_) CFLAGS=-Wall -Wextra -Wno-unused -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -D$(BOARD_DEFINE) -I. -I../common @@ -56,10 +60,10 @@ $(NULL) -all: icE1usb-fw.bin +all: $(GITVER).bin $(TAG_PREFIX).bin $(TAG_PREFIX).elf -icE1usb-fw.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) +$(GITVER).elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app) @@ -69,10 +73,16 @@ %.bin: %.elf $(OBJCOPY) -O binary $< $@ -prog: icE1usb-fw.bin +$(TAG_PREFIX).bin: $(GITVER).bin + ln -sf $< $@ + +$(TAG_PREFIX).elf: $(GITVER).elf + ln -sf $< $@ + +prog: $(GITVER).bin $(ICEPROG) -o 640k $< -dfuprog: icE1usb-fw.bin +dfuprog: $(GITVER).bin $(DFU_UTIL) -R -a 1 -D $< -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21756 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: Ia308587e36a79c27fdb285e369a9c921ee65995f Gerrit-Change-Number: 21756 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 Dec 17 14:37:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:37:23 +0000 Subject: Change in docker-playground[master]: fpga-build: Add packages required for rendering manuals References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21760 ) Change subject: fpga-build: Add packages required for rendering manuals ...................................................................... fpga-build: Add packages required for rendering manuals Change-Id: Ic9bec0689b3571db9cafa8a1671aa3bc68c3f4e5 --- M fpga-build/Dockerfile 1 file changed, 15 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/60/21760/1 diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index 4056143..620657a 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -6,6 +6,21 @@ ARG FPGA_TOOLCHAIN_DATE=20200914 ARG RISCV_TOOLCHAIN_VER=8.3.0-1.2 +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ + asciidoc \ + asciidoc-dblatex \ + dblatex \ + docbook5-xml \ + graphviz \ + inkscape \ + mscgen \ + wget \ + xsltproc && \ + apt-get clean + + RUN wget https://github.com/open-tool-forge/fpga-toolchain/releases/download/nightly-${FPGA_TOOLCHAIN_DATE}/fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz RUN tar -C /opt -xf fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz && \ rm fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz @@ -14,12 +29,6 @@ RUN tar -C /opt -xf /xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz && \ rm xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y --no-install-recommends \ - wget && \ - apt-get clean - RUN useradd -m osmocom USER osmocom WORKDIR /home/osmocom -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ic9bec0689b3571db9cafa8a1671aa3bc68c3f4e5 Gerrit-Change-Number: 21760 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 Dec 17 14:37:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:37:24 +0000 Subject: Change in docker-playground[master]: fpga-build: Create 'build' user like in 'debian-stretch-jenkins' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21761 ) Change subject: fpga-build: Create 'build' user like in 'debian-stretch-jenkins' ...................................................................... fpga-build: Create 'build' user like in 'debian-stretch-jenkins' Change-Id: Id99167568751b19f3454831e69eacdbadaf8aee4 --- M fpga-build/Dockerfile 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/61/21761/1 diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index 620657a..8a19dfe 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -29,8 +29,9 @@ RUN tar -C /opt -xf /xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz && \ rm xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz -RUN useradd -m osmocom -USER osmocom -WORKDIR /home/osmocom +# match the outside user +RUN useradd --uid=1000 build +RUN mkdir /build +RUN chown build:build /build ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:${PATH} -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id99167568751b19f3454831e69eacdbadaf8aee4 Gerrit-Change-Number: 21761 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 Dec 17 14:37:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:37:42 +0000 Subject: Change in docker-playground[master]: fpga-build: Add packages required for rendering manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21760 ) Change subject: fpga-build: Add packages required for rendering manuals ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ic9bec0689b3571db9cafa8a1671aa3bc68c3f4e5 Gerrit-Change-Number: 21760 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 14:37: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 Dec 17 14:37:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:37:46 +0000 Subject: Change in docker-playground[master]: fpga-build: Create 'build' user like in 'debian-stretch-jenkins' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21761 ) Change subject: fpga-build: Create 'build' user like in 'debian-stretch-jenkins' ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id99167568751b19f3454831e69eacdbadaf8aee4 Gerrit-Change-Number: 21761 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 14:37: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 Dec 17 14:37:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:37:48 +0000 Subject: Change in docker-playground[master]: fpga-build: Add packages required for rendering manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21760 ) Change subject: fpga-build: Add packages required for rendering manuals ...................................................................... fpga-build: Add packages required for rendering manuals Change-Id: Ic9bec0689b3571db9cafa8a1671aa3bc68c3f4e5 --- M fpga-build/Dockerfile 1 file changed, 15 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index 4056143..620657a 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -6,6 +6,21 @@ ARG FPGA_TOOLCHAIN_DATE=20200914 ARG RISCV_TOOLCHAIN_VER=8.3.0-1.2 +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ + asciidoc \ + asciidoc-dblatex \ + dblatex \ + docbook5-xml \ + graphviz \ + inkscape \ + mscgen \ + wget \ + xsltproc && \ + apt-get clean + + RUN wget https://github.com/open-tool-forge/fpga-toolchain/releases/download/nightly-${FPGA_TOOLCHAIN_DATE}/fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz RUN tar -C /opt -xf fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz && \ rm fpga-toolchain-linux_x86_64-nightly-${FPGA_TOOLCHAIN_DATE}.tar.xz @@ -14,12 +29,6 @@ RUN tar -C /opt -xf /xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz && \ rm xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y --no-install-recommends \ - wget && \ - apt-get clean - RUN useradd -m osmocom USER osmocom WORKDIR /home/osmocom -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ic9bec0689b3571db9cafa8a1671aa3bc68c3f4e5 Gerrit-Change-Number: 21760 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 Dec 17 14:37:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:37:48 +0000 Subject: Change in docker-playground[master]: fpga-build: Create 'build' user like in 'debian-stretch-jenkins' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21761 ) Change subject: fpga-build: Create 'build' user like in 'debian-stretch-jenkins' ...................................................................... fpga-build: Create 'build' user like in 'debian-stretch-jenkins' Change-Id: Id99167568751b19f3454831e69eacdbadaf8aee4 --- M fpga-build/Dockerfile 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index 620657a..8a19dfe 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -29,8 +29,9 @@ RUN tar -C /opt -xf /xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz && \ rm xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}-linux-x64.tar.gz -RUN useradd -m osmocom -USER osmocom -WORKDIR /home/osmocom +# match the outside user +RUN useradd --uid=1000 build +RUN mkdir /build +RUN chown build:build /build ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:${PATH} -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id99167568751b19f3454831e69eacdbadaf8aee4 Gerrit-Change-Number: 21761 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 Dec 17 14:40:36 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 17 Dec 2020 14:40:36 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives In-Reply-To: References: Message-ID: dexter 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 4: (2 comments) (gerrit strange - those comments should have been already posted...) https://gerrit.osmocom.org/c/libosmocore/+/21722/2/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/21722/2/include/osmocom/gprs/gprs_bssgp.h at 59 PS2, Line 59: PRIM_BSSGP_RIM, > 3GPP TS 48.018 Section 5.3.37 + 5.3. [?] Hmm, I thought that I have renamed it. It should be PRIM_BSSGP_RIM_PDU_TRANSFER now. I will check this back... https://gerrit.osmocom.org/c/libosmocore/+/21722/2/include/osmocom/gprs/gprs_bssgp.h at 188 PS2, Line 188: /* See also 3GPP TS 36.413, section 9.2.1.37 */ > those changes should have gone to the previous patch I suppose? Yes, I messed this up, should be moved already with the last update. -- 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: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 14:40: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 Thu Dec 17 14:42:35 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 17 Dec 2020 14:42:35 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives 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/+/21722 to look at the new patch set (#5). 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(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/21722/5 -- 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: 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 Dec 17 14:43:44 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 17 Dec 2020 14:43:44 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives In-Reply-To: References: Message-ID: dexter 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 5: (ensuring everything is sent) -- 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: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 14:43: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 Dec 17 14:51:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 14:51:49 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Fix next_zmq_port_range using bvci file name References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21762 ) Change subject: resource: Fix next_zmq_port_range using bvci file name ...................................................................... resource: Fix next_zmq_port_range using bvci file name Change-Id: I293b7de1066ea69ccb0e495a69602ed56810018d --- M src/osmo_gsm_tester/core/resource.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/62/21762/1 diff --git a/src/osmo_gsm_tester/core/resource.py b/src/osmo_gsm_tester/core/resource.py index 223a8f9..a0ec552 100644 --- a/src/osmo_gsm_tester/core/resource.py +++ b/src/osmo_gsm_tester/core/resource.py @@ -219,7 +219,7 @@ # Allocate continuous num_ports port between 2000 and 2200. returns base port. # Assumption: base port is always an odd number. num_ports = num_ports if num_ports % 2 == 0 else num_ports + 1 - base_port = self.next_persistent_value('bvci', '2000', schema.uint16, + base_port = self.next_persistent_value('zmq_port', '2000', schema.uint16, lambda x: str(int(x)+num_ports) if int(x) < 2200 - num_ports else '2000', origin) return int(base_port) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21762 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: I293b7de1066ea69ccb0e495a69602ed56810018d Gerrit-Change-Number: 21762 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 Dec 17 14:53:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:53:42 +0000 Subject: Change in osmo-e1-hardware[master]: add contrib/jenkins.sh for build verification + manual / firmware upload In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21757 ) Change subject: add contrib/jenkins.sh for build verification + manual / firmware upload ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21757 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: I70d7de4299e773b38a014e4884641712edbd45c3 Gerrit-Change-Number: 21757 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 14: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 Dec 17 14:53:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:53:43 +0000 Subject: Change in osmo-e1-hardware[master]: add contrib/jenkins.sh for build verification + manual / firmware upload In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21757 ) Change subject: add contrib/jenkins.sh for build verification + manual / firmware upload ...................................................................... add contrib/jenkins.sh for build verification + manual / firmware upload Change-Id: I70d7de4299e773b38a014e4884641712edbd45c3 --- A contrib/jenkins.sh 1 file changed, 59 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh new file mode 100755 index 0000000..5bc05f7 --- /dev/null +++ b/contrib/jenkins.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +# jenkins build helper script for osmo-e1-hardware. This is how we build on jenkins.osmocom.org +# +# environment variables: +# * WITH_MANUALS: build manual PDFs if set to "1" +# * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1") + +set -e + +TOPDIR=`pwd` +publish="$1" + +# we assume that PATH includes the path to the respective toolchain + +# firmware build +FW_DIRS="firmware/ice40-riscv/e1-tracer firmware/ice40-riscv/icE1usb" +for d in $FW_DIRS; do + echo + echo "=============== $d FIRMWARE ==============" + make -C $d clean all +done + +# The argument '--publish' is used to trigger publication/upload of firmware +if [ "x$publish" = "x--publish" ]; then + + echo + echo "=============== UPLOAD FIRMWARE ==============" + + cat > "/build/known_hosts" < Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 14:54:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:54:48 +0000 Subject: Change in osmo-ci[master]: add registry-rebuild-upload-fpga-build.yml References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21763 ) Change subject: add registry-rebuild-upload-fpga-build.yml ...................................................................... add registry-rebuild-upload-fpga-build.yml This will rune once per week and make sure that registry.osmocom.org has a fpga-build container that the buld slaves can use. Change-Id: Ie700d7c6e3c5e794edd81c3acc4b689e05d6864d --- A jobs/registry-rebuild-upload-fpga-build.yml 1 file changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/63/21763/1 diff --git a/jobs/registry-rebuild-upload-fpga-build.yml b/jobs/registry-rebuild-upload-fpga-build.yml new file mode 100644 index 0000000..9338bce --- /dev/null +++ b/jobs/registry-rebuild-upload-fpga-build.yml @@ -0,0 +1,35 @@ +--- +- project: + name: registry-rebuild-upload-fpga-build + jobs: + - registry-rebuild-upload-fpga-build + +- job: + name: registry-rebuild-upload-fpga-build + description: | + Rebuild + push fpga-build docker images in our private registry.osmocom.org + node: osmocom-master-debian9 + scm: + - git: + url: git://git.osmocom.org/docker-playground + skip-tag: true + branches: + - 'origin/master' + + builders: + - shell: | + REGISTRY="registry.osmocom.org" + cd debian-buster-build && make + cd .. + cd fpga-build && make REGISTRY_HOST=$REGISTRY + docker push $REGISTRY/$USER/fpga-build + cd .. + triggers: + - timed: "@weekly" + + publishers: + - email: + notify-every-unstable-build: true + recipients: 'jenkins-notifications at lists.osmocom.org' + +# vim: expandtab tabstop=2 shiftwidth=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie700d7c6e3c5e794edd81c3acc4b689e05d6864d Gerrit-Change-Number: 21763 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 Dec 17 14:54:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 14:54:48 +0000 Subject: Change in osmo-ci[master]: Add master + gerrit job for osmo-e1-hardware References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21764 ) Change subject: Add master + gerrit job for osmo-e1-hardware ...................................................................... Add master + gerrit job for osmo-e1-hardware Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/64/21764/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 8d3efc7..bd8b591 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -117,6 +117,10 @@ gerrit_project: 'erlang/{repos}' cmd: '{docker_run} {docker_img_erlang} /build/contrib/jenkins.sh' + - osmo-e1-hardware: + docker_img: 'registry.osmocom.org/$USER/fpga-build' + cmd: 'docker pull {docker_img} && {docker_run} {docker_img} /build/contrib/jenkins.sh' + - osmo-ggsn: a1_name: GTP a1: !!python/tuple [--enable-gtp-linux,--disable-gtp-linux] diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index a7f4f30..b09540d 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -197,6 +197,10 @@ concurrent: false cmd: 'PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' + - osmo-e1-hardware: + docker_img: 'registry.osmocom.org/$USER/fpga-build' + cmd: 'docker pull {docker_img} && {docker_run} {docker_img} /build/contrib/jenkins.sh --publish' + - osmo-fl2k - osmo-ggsn: a1_name: GTP -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef Gerrit-Change-Number: 21764 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 Dec 17 14:59:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 14:59:44 +0000 Subject: Change in osmo-ci[master]: Add master + gerrit job for osmo-e1-hardware In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21764 ) Change subject: Add master + gerrit job for osmo-e1-hardware ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef Gerrit-Change-Number: 21764 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 14:59: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 Dec 17 15:00:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 15:00:24 +0000 Subject: Change in osmo-ci[master]: add registry-rebuild-upload-fpga-build.yml In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21763 ) Change subject: add registry-rebuild-upload-fpga-build.yml ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie700d7c6e3c5e794edd81c3acc4b689e05d6864d Gerrit-Change-Number: 21763 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 15: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 Dec 17 15:05:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 15:05:06 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up 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/+/21263 to look at the new patch set (#7). Change subject: Introduce osmo-ran docker image set up ...................................................................... Introduce osmo-ran docker image set up See osmo-ran/README.md in this commit for a description. Related: SYS#4889 Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 --- M jenkins-common.sh M make/Makefile A osmo-ran/Dockerfile A osmo-ran/Makefile A osmo-ran/README.md A osmo-ran/Release.key A osmo-ran/jenkins.sh A osmo-ran/osmocom/osmo-bsc.cfg A osmo-ran/osmocom/osmo-bts-trx.cfg A osmo-ran/osmocom/osmo-mgw.cfg A osmo-ran/osmocom/osmo-pcu.cfg A osmo-ran/osmocom/osmo-trx-ipc.cfg A osmo-ran/osmocom/osmo-trx-uhd.cfg A osmo-ran/split/jenkins-split.sh A osmo-ran/split/ran-bsc_mgw/Dockerfile A osmo-ran/split/ran-bsc_mgw/Makefile A osmo-ran/split/ran-bsc_mgw/Release.key A osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg A osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg A osmo-ran/split/ran-bts_pcu/Dockerfile A osmo-ran/split/ran-bts_pcu/Makefile A osmo-ran/split/ran-bts_pcu/Release.key A osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg A osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg A osmo-ran/split/ran-trx-ipc/Dockerfile A osmo-ran/split/ran-trx-ipc/Makefile A osmo-ran/split/ran-trx-ipc/Release.key A osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg A osmo-ran/split/ran-trx-uhd/Dockerfile A osmo-ran/split/ran-trx-uhd/Makefile A osmo-ran/split/ran-trx-uhd/Release.key A osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg A systemd/Dockerfile A systemd/Makefile 34 files changed, 1,278 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/63/21263/7 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 7 Gerrit-Owner: pespin 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 Dec 17 15:18:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 15:18:28 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21263 ) Change subject: Introduce osmo-ran docker image set up ...................................................................... Patch Set 7: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 15:18: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 Dec 17 15:18:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 15:18:41 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Fix next_zmq_port_range using bvci file name In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21762 ) Change subject: resource: Fix next_zmq_port_range using bvci file name ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21762 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: I293b7de1066ea69ccb0e495a69602ed56810018d Gerrit-Change-Number: 21762 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 15:18: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 Dec 17 15:18:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 15:18:43 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Fix next_zmq_port_range using bvci file name In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21762 ) Change subject: resource: Fix next_zmq_port_range using bvci file name ...................................................................... resource: Fix next_zmq_port_range using bvci file name Change-Id: I293b7de1066ea69ccb0e495a69602ed56810018d --- M src/osmo_gsm_tester/core/resource.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/src/osmo_gsm_tester/core/resource.py b/src/osmo_gsm_tester/core/resource.py index 223a8f9..a0ec552 100644 --- a/src/osmo_gsm_tester/core/resource.py +++ b/src/osmo_gsm_tester/core/resource.py @@ -219,7 +219,7 @@ # Allocate continuous num_ports port between 2000 and 2200. returns base port. # Assumption: base port is always an odd number. num_ports = num_ports if num_ports % 2 == 0 else num_ports + 1 - base_port = self.next_persistent_value('bvci', '2000', schema.uint16, + base_port = self.next_persistent_value('zmq_port', '2000', schema.uint16, lambda x: str(int(x)+num_ports) if int(x) < 2200 - num_ports else '2000', origin) return int(base_port) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21762 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: I293b7de1066ea69ccb0e495a69602ed56810018d Gerrit-Change-Number: 21762 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 15:19:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 17 Dec 2020 15:19:50 +0000 Subject: Change in libosmocore[master]: GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21713 ) Change subject: GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2aaa8c1107c977f711c2d7530034f57e36e3a237 Gerrit-Change-Number: 21713 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 17 Dec 2020 15:19: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 Dec 17 15:22:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 15:22:10 +0000 Subject: Change in libosmocore[master]: GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21713 ) Change subject: GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit ...................................................................... GPRS Cell Options (SI13): Add REL-4 CCN_ACTIVE bit This is required in order to tell MS that osmo-pcu now supports Network Assisted Cell Change (NACC). Related: SYS#4909 Change-Id: I2aaa8c1107c977f711c2d7530034f57e36e3a237 --- M TODO-RELEASE M include/osmocom/gprs/protocol/gsm_04_60.h M src/gsm/gsm48_rest_octets.c 3 files changed, 9 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index 7699aff..33e27af 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,5 +8,6 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #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) 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/gprs/protocol/gsm_04_60.h b/include/osmocom/gprs/protocol/gsm_04_60.h index 05728f4..ed63fe0 100644 --- a/include/osmocom/gprs/protocol/gsm_04_60.h +++ b/include/osmocom/gprs/protocol/gsm_04_60.h @@ -167,7 +167,7 @@ GPRS_NMO_III = 2, /* no paging coordination */ }; -/* TS 04.60 12.24 */ +/* TS 44.060 12.24 */ struct osmo_gprs_cell_options { enum osmo_gprs_nmo nmo; /* T3168: wait for packet uplink assignment message */ @@ -187,6 +187,7 @@ uint8_t pfc_supported; uint8_t dtm_supported; uint8_t bss_paging_coordination; + bool ccn_active; } ext_info; }; diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 1f9c2b5..3a424f7 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -906,6 +906,8 @@ bitvec_set_bit(bv, 0); } else { /* extension information */ + + /* R99 extension: */ bitvec_set_bit(bv, 1); if (!gco->ext_info.egprs_supported) { /* 6bit length of extension */ @@ -927,6 +929,10 @@ bitvec_set_bit(bv, gco->ext_info.pfc_supported); bitvec_set_bit(bv, gco->ext_info.dtm_supported); bitvec_set_bit(bv, gco->ext_info.bss_paging_coordination); + + /* REL-4 extension: */ + bitvec_set_bit(bv, gco->ext_info.ccn_active); + bitvec_set_bit(bv, 0); /* NW_EXT_UTBF disabled */ } return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2aaa8c1107c977f711c2d7530034f57e36e3a237 Gerrit-Change-Number: 21713 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Thu Dec 17 15:24:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 15:24:09 +0000 Subject: Change in osmo-ci[master]: Add master + gerrit job for osmo-e1-hardware 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/+/21764 to look at the new patch set (#2). Change subject: Add master + gerrit job for osmo-e1-hardware ...................................................................... Add master + gerrit job for osmo-e1-hardware Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/64/21764/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef Gerrit-Change-Number: 21764 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 15:25:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 17 Dec 2020 15:25:44 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: Use helper structure to store several tbf pointer ... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21743 ) Change subject: gprs_rlcmac_sched: Use helper structure to store several tbf pointer params ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/21743/1/src/gprs_rlcmac_sched.cpp File src/gprs_rlcmac_sched.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/21743/1/src/gprs_rlcmac_sched.cpp at 167 PS1, Line 167: struct gprs_rlcmac_tbf *next_list[3] = { tbfs->ul_ass, I think it would also be ok without line breaks. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I55482aa5af7be5a176a7b4879a672ad37e618020 Gerrit-Change-Number: 21743 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 17 Dec 2020 15:25: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 Dec 17 15:26:42 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 17 Dec 2020 15:26:42 +0000 Subject: Change in osmo-pcu[master]: sched: Convert code handling next_list array to be size independant In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21744 ) Change subject: sched: Convert code handling next_list array to be size independant ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21744 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id209fe66f85501437a79f7ca0c8e3cf816177611 Gerrit-Change-Number: 21744 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 15:26: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 Dec 17 15:27:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 15:27:22 +0000 Subject: Change in osmo-ci[master]: build 'fpga-build' container when rebuilding containers In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21759 ) Change subject: build 'fpga-build' container when rebuilding containers ...................................................................... Abandoned different solution has been pursued (dedicated rebuild job + push of container) -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibd9637c231e4386115ace5c090558262c60274b1 Gerrit-Change-Number: 21759 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 15:27:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 15:27:26 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: Use helper structure to store several tbf pointer ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21743 ) Change subject: gprs_rlcmac_sched: Use helper structure to store several tbf pointer params ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/21743/1/src/gprs_rlcmac_sched.cpp File src/gprs_rlcmac_sched.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/21743/1/src/gprs_rlcmac_sched.cpp at 167 PS1, Line 167: struct gprs_rlcmac_tbf *next_list[3] = { tbfs->ul_ass, > I think it would also be ok without line breaks. yeah but anyway I'll be adding new ones so it's going to be more clear this way. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I55482aa5af7be5a176a7b4879a672ad37e618020 Gerrit-Change-Number: 21743 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 17 Dec 2020 15:27:26 +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 Dec 17 15:27:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 15:27:41 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: Use helper structure to store several tbf pointer ... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21743 ) Change subject: gprs_rlcmac_sched: Use helper structure to store several tbf pointer params ...................................................................... gprs_rlcmac_sched: Use helper structure to store several tbf pointer params The resulting code is cleaner since it becomes clear the relation between all those pointers, which are set in one function and used in another one, passed through the caller of the former two. Moreover, if more tbf candidates are to be added for other type of actions, having them in a struct is much easier since only one pointer is passed. Change-Id: I55482aa5af7be5a176a7b4879a672ad37e618020 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 41 insertions(+), 41 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_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 84a5970..6505425 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -34,12 +34,16 @@ #include } +struct tbf_sched_candidates { + struct gprs_rlcmac_tbf *poll; + struct gprs_rlcmac_tbf *ul_ass; + struct gprs_rlcmac_tbf *dl_ass; + struct gprs_rlcmac_ul_tbf *ul_ack; +}; + static uint32_t sched_poll(BTS *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr, - struct gprs_rlcmac_tbf **poll_tbf, - struct gprs_rlcmac_tbf **ul_ass_tbf, - struct gprs_rlcmac_tbf **dl_ass_tbf, - struct gprs_rlcmac_ul_tbf **ul_ack_tbf) + struct tbf_sched_candidates *tbf_cand) { struct gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_dl_tbf *dl_tbf; @@ -59,14 +63,14 @@ continue; /* polling for next uplink block */ if (ul_tbf->poll_scheduled() && ul_tbf->poll_fn == poll_fn) - *poll_tbf = ul_tbf; + tbf_cand->poll = ul_tbf; if (ul_tbf->ul_ack_state_is(GPRS_RLCMAC_UL_ACK_SEND_ACK)) - *ul_ack_tbf = ul_tbf; + tbf_cand->ul_ack = ul_tbf; if (ul_tbf->dl_ass_state_is(GPRS_RLCMAC_DL_ASS_SEND_ASS)) - *dl_ass_tbf = ul_tbf; + tbf_cand->dl_ass = ul_tbf; 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)) - *ul_ass_tbf = ul_tbf; + tbf_cand->ul_ass = 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? */ } @@ -78,12 +82,12 @@ continue; /* polling for next uplink block */ if (dl_tbf->poll_scheduled() && dl_tbf->poll_fn == poll_fn) - *poll_tbf = dl_tbf; + tbf_cand->poll = dl_tbf; if (dl_tbf->dl_ass_state_is(GPRS_RLCMAC_DL_ASS_SEND_ASS)) - *dl_ass_tbf = dl_tbf; + tbf_cand->dl_ass = dl_tbf; 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)) - *ul_ass_tbf = dl_tbf; + tbf_cand->ul_ass = dl_tbf; } return poll_fn; @@ -156,16 +160,16 @@ static struct msgb *sched_select_ctrl_msg( uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr, struct gprs_rlcmac_pdch *pdch, - struct gprs_rlcmac_tbf *ul_ass_tbf, - struct gprs_rlcmac_tbf *dl_ass_tbf, - struct gprs_rlcmac_ul_tbf *ul_ack_tbf) + struct tbf_sched_candidates *tbfs) { struct msgb *msg = NULL; struct gprs_rlcmac_tbf *tbf = NULL; - struct gprs_rlcmac_tbf *next_list[3] = { ul_ass_tbf, dl_ass_tbf, ul_ack_tbf }; + struct gprs_rlcmac_tbf *next_list[3] = { tbfs->ul_ass, + tbfs->dl_ass, + tbfs->ul_ack }; /* Send Packet Application Information first (ETWS primary notifications) */ - msg = sched_app_info(dl_ass_tbf); + msg = sched_app_info(tbfs->dl_ass); if (!msg) { for (size_t i = 0; i < ARRAY_SIZE(next_list); ++i) { @@ -178,18 +182,19 @@ * because they may kill the TBF when the CONTROL ACK is * received, thus preventing the others from being processed. */ - if (tbf == ul_ass_tbf && tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) - msg = ul_ass_tbf->create_packet_access_reject(); - else if (tbf == ul_ass_tbf && tbf->direction == + if (tbf == tbfs->ul_ass && tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) + msg = tbfs->ul_ass->create_packet_access_reject(); + else if (tbf == tbfs->ul_ass && tbf->direction == GPRS_RLCMAC_DL_TBF) if (tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) - msg = ul_ass_tbf->create_packet_access_reject(); + msg = tbfs->ul_ass->create_packet_access_reject(); else - msg = ul_ass_tbf->create_ul_ass(fn, ts); - else if (tbf == dl_ass_tbf && tbf->direction == GPRS_RLCMAC_UL_TBF) - msg = dl_ass_tbf->create_dl_ass(fn, ts); - else if (tbf == ul_ack_tbf) - msg = ul_ack_tbf->create_ul_ack(fn, ts); + msg = tbfs->ul_ass->create_ul_ass(fn, ts); + else if (tbf == tbfs->dl_ass && tbf->direction == GPRS_RLCMAC_UL_TBF) + 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/ms is pending to send tx_neigbhourData or tx_CellchangeContinue, send it */ if (!msg) { tbf = NULL; @@ -208,12 +213,12 @@ * MS will kill the current TBF, only one of them can be * non-NULL */ - if (dl_ass_tbf) { - tbf = dl_ass_tbf; - msg = dl_ass_tbf->create_dl_ass(fn, ts); - } else if (ul_ass_tbf) { - tbf = ul_ass_tbf; - msg = ul_ass_tbf->create_ul_ass(fn, ts); + if (tbfs->dl_ass) { + tbf = tbfs->dl_ass; + msg = tbfs->dl_ass->create_dl_ass(fn, ts); + } else if (tbfs->ul_ass) { + tbf = tbfs->ul_ass; + msg = tbfs->ul_ass->create_ul_ass(fn, ts); } } @@ -397,10 +402,8 @@ uint32_t fn, uint8_t block_nr) { struct gprs_rlcmac_pdch *pdch; - struct gprs_rlcmac_tbf *poll_tbf = NULL, *dl_ass_tbf = NULL, - *ul_ass_tbf = NULL; + struct tbf_sched_candidates tbf_cand = {0}; struct gprs_rlcmac_ul_tbf *usf_tbf; - struct gprs_rlcmac_ul_tbf *ul_ack_tbf = NULL; uint8_t usf; struct msgb *msg = NULL; uint32_t poll_fn, sba_fn; @@ -437,15 +440,13 @@ req_mcs_kind = EGPRS; /* all kinds are fine */ } - poll_fn = sched_poll(bts->bts, trx, ts, fn, block_nr, &poll_tbf, &ul_ass_tbf, - &dl_ass_tbf, &ul_ack_tbf); + poll_fn = sched_poll(bts->bts, trx, ts, fn, block_nr, &tbf_cand); /* check uplink resource for polling */ - if (poll_tbf) { + if (tbf_cand.poll) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Received RTS for PDCH: TRX=%d " "TS=%d FN=%d block_nr=%d scheduling free USF for " "polling at FN=%d of %s\n", trx, ts, fn, - block_nr, poll_fn, - tbf_name(poll_tbf)); + 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)) { @@ -471,8 +472,7 @@ } /* Prio 1: select control message */ - if ((msg = sched_select_ctrl_msg(trx, ts, fn, block_nr, pdch, ul_ass_tbf, - dl_ass_tbf, ul_ack_tbf))) { + if ((msg = sched_select_ctrl_msg(trx, ts, fn, block_nr, pdch, &tbf_cand))) { gsmtap_cat = PCU_GSMTAP_C_DL_CTRL; } /* Prio 2: select data message for downlink */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I55482aa5af7be5a176a7b4879a672ad37e618020 Gerrit-Change-Number: 21743 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus 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 Dec 17 15:27:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 15:27:42 +0000 Subject: Change in osmo-pcu[master]: sched: Convert code handling next_list array to be size independant In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21744 ) Change subject: sched: Convert code handling next_list array to be size independant ...................................................................... sched: Convert code handling next_list array to be size independant Change-Id: Id209fe66f85501437a79f7ca0c8e3cf816177611 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 5 insertions(+), 6 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_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 6505425..e6f7176 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -164,16 +164,16 @@ { struct msgb *msg = NULL; struct gprs_rlcmac_tbf *tbf = NULL; - struct gprs_rlcmac_tbf *next_list[3] = { tbfs->ul_ass, - tbfs->dl_ass, - tbfs->ul_ack }; + struct gprs_rlcmac_tbf *next_list[] = { tbfs->ul_ass, + tbfs->dl_ass, + tbfs->ul_ack }; /* Send Packet Application Information first (ETWS primary notifications) */ msg = sched_app_info(tbfs->dl_ass); if (!msg) { for (size_t i = 0; i < ARRAY_SIZE(next_list); ++i) { - tbf = next_list[(pdch->next_ctrl_prio + i) % 3]; + tbf = next_list[(pdch->next_ctrl_prio + i) % ARRAY_SIZE(next_list)]; if (!tbf) continue; @@ -201,8 +201,7 @@ continue; } - pdch->next_ctrl_prio += 1; - pdch->next_ctrl_prio %= 3; + pdch->next_ctrl_prio = (pdch->next_ctrl_prio + 1) % ARRAY_SIZE(next_list); break; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21744 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id209fe66f85501437a79f7ca0c8e3cf816177611 Gerrit-Change-Number: 21744 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 Thu Dec 17 15:31:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 15:31:44 +0000 Subject: Change in docker-playground[master]: fpga-build: Make sure PATH is also set for non-root users References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21765 ) Change subject: fpga-build: Make sure PATH is also set for non-root users ...................................................................... fpga-build: Make sure PATH is also set for non-root users Change-Id: I16bf9c8cafbad85a6ec77f17b034c73f530565b9 --- M fpga-build/Dockerfile 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/65/21765/1 diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index 8a19dfe..ec1e37f 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -34,4 +34,7 @@ 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} -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I16bf9c8cafbad85a6ec77f17b034c73f530565b9 Gerrit-Change-Number: 21765 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 Dec 17 15:32:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 15:32:18 +0000 Subject: Change in docker-playground[master]: fpga-build: Make sure PATH is also set for non-root users In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21765 ) Change subject: fpga-build: Make sure PATH is also set for non-root users ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I16bf9c8cafbad85a6ec77f17b034c73f530565b9 Gerrit-Change-Number: 21765 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 15:32: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 Dec 17 15:32:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 15:32:20 +0000 Subject: Change in docker-playground[master]: fpga-build: Make sure PATH is also set for non-root users In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21765 ) Change subject: fpga-build: Make sure PATH is also set for non-root users ...................................................................... fpga-build: Make sure PATH is also set for non-root users Change-Id: I16bf9c8cafbad85a6ec77f17b034c73f530565b9 --- M fpga-build/Dockerfile 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index 8a19dfe..ec1e37f 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -34,4 +34,7 @@ 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} -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I16bf9c8cafbad85a6ec77f17b034c73f530565b9 Gerrit-Change-Number: 21765 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 Dec 17 16:14:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:14:36 +0000 Subject: Change in docker-playground[master]: fpga-build: install missing toosls required for 'publish' and manuals References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21766 ) Change subject: fpga-build: install missing toosls required for 'publish' and manuals ...................................................................... fpga-build: install missing toosls required for 'publish' and manuals Change-Id: I7b416117e80133fcf4c07ee540d15783f4576fbd --- M fpga-build/Dockerfile 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/66/21766/1 diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index ec1e37f..a9c3ceb 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -16,6 +16,9 @@ graphviz \ inkscape \ mscgen \ + python3-nwdiag \ + rsync \ + ssh \ wget \ xsltproc && \ apt-get clean -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7b416117e80133fcf4c07ee540d15783f4576fbd Gerrit-Change-Number: 21766 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 Dec 17 16:14:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:14:56 +0000 Subject: Change in docker-playground[master]: fpga-build: install missing toosls required for 'publish' and manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21766 ) Change subject: fpga-build: install missing toosls required for 'publish' and manuals ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7b416117e80133fcf4c07ee540d15783f4576fbd Gerrit-Change-Number: 21766 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 16: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 Thu Dec 17 16:15:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:15:01 +0000 Subject: Change in docker-playground[master]: fpga-build: install missing toosls required for 'publish' and manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21766 ) Change subject: fpga-build: install missing toosls required for 'publish' and manuals ...................................................................... fpga-build: install missing toosls required for 'publish' and manuals Change-Id: I7b416117e80133fcf4c07ee540d15783f4576fbd --- M fpga-build/Dockerfile 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index ec1e37f..a9c3ceb 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -16,6 +16,9 @@ graphviz \ inkscape \ mscgen \ + python3-nwdiag \ + rsync \ + ssh \ wget \ xsltproc && \ apt-get clean -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7b416117e80133fcf4c07ee540d15783f4576fbd Gerrit-Change-Number: 21766 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 Dec 17 16:19:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:19:21 +0000 Subject: Change in osmo-e1-hardware[master]: add missing icE1usb-usermanual-docinfo.xml References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21767 ) Change subject: add missing icE1usb-usermanual-docinfo.xml ...................................................................... add missing icE1usb-usermanual-docinfo.xml This was missing in commit Ia04890cf3b321f8cb01e3c513a730031e76376b9 Change-Id: I4b20c38bf6ad87307c86e594cc23330d11b6303f --- A doc/manuals/icE1usb-usermanual-docinfo.xml 1 file changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/67/21767/1 diff --git a/doc/manuals/icE1usb-usermanual-docinfo.xml b/doc/manuals/icE1usb-usermanual-docinfo.xml new file mode 100644 index 0000000..1c7e7fd --- /dev/null +++ b/doc/manuals/icE1usb-usermanual-docinfo.xml @@ -0,0 +1,46 @@ + + + 1 + December 13, 2020 + HW + + Initial version. + + + + + + + Harald + Welte + hwelte at sysmocom.de + HW + + sysmocom + sysmocom - s.f.m.c. GmbH + Managing Director + + + + + + 2020 + 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/ + + + -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21767 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: I4b20c38bf6ad87307c86e594cc23330d11b6303f Gerrit-Change-Number: 21767 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 Dec 17 16:19:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:19:22 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins.sh 'publish' fixes References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21768 ) Change subject: contrib/jenkins.sh 'publish' fixes ...................................................................... contrib/jenkins.sh 'publish' fixes * don't install icE1usb files to e1-tracer directory * don't replicate symlinks but copy Change-Id: I6dff99dcc2ab465558ad6344ebb9cba73005cf34 --- M contrib/jenkins.sh 1 file changed, 19 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/68/21768/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 5bc05f7..1a0750f 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -5,11 +5,25 @@ # * WITH_MANUALS: build manual PDFs if set to "1" # * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1") +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 +fi + set -e TOPDIR=`pwd` publish="$1" +base="$PWD" +deps="$base/deps" +inst="$deps/install" +export deps inst + +osmo-clean-workspace.sh + +mkdir "$deps" || true + # we assume that PATH includes the path to the respective toolchain # firmware build @@ -33,13 +47,14 @@ EOF SSH_COMMAND="ssh -o 'UserKnownHostsFile=/build/known_hosts' -p 48" rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/*-*-*-*.{bin,elf} binaries at rita.osmocom.org:web-files/icE1usb/firmware/all/ - rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/icE1usb-fw.{bin,elf} binaries at rita.osmocom.org:web-files/e1-tracer/firmware/latest/ + rsync --archive --copy-links --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/icE1usb-fw.{bin,elf} binaries at rita.osmocom.org:web-files/icE1usb/firmware/latest/ rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/e1-tracer/*-*-*-*.{bin,elf} binaries at rita.osmocom.org:web-files/e1-tracer/firmware/all/ - rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/e1-tracer/e1_tracer-fw.{bin,elf} binaries at rita.osmocom.org:web-files/e1-tracer/firmware/latest/ + rsync --verbose --copy-links --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/e1-tracer/e1_tracer-fw.{bin,elf} binaries at rita.osmocom.org:web-files/e1-tracer/firmware/latest/ fi # 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 @@ -57,3 +72,5 @@ make -C $d ${GATE_VARS} done fi + +osmo-clean-workspace.sh -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21768 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: I6dff99dcc2ab465558ad6344ebb9cba73005cf34 Gerrit-Change-Number: 21768 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 Dec 17 16:19:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:19:51 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins.sh 'publish' fixes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21768 ) Change subject: contrib/jenkins.sh 'publish' fixes ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21768 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: I6dff99dcc2ab465558ad6344ebb9cba73005cf34 Gerrit-Change-Number: 21768 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 16:19: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 Dec 17 16:19:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:19:59 +0000 Subject: Change in osmo-e1-hardware[master]: add missing icE1usb-usermanual-docinfo.xml In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21767 ) Change subject: add missing icE1usb-usermanual-docinfo.xml ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21767 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: I4b20c38bf6ad87307c86e594cc23330d11b6303f Gerrit-Change-Number: 21767 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 16:19: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 Dec 17 16:20:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:20:03 +0000 Subject: Change in osmo-e1-hardware[master]: add missing icE1usb-usermanual-docinfo.xml In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21767 ) Change subject: add missing icE1usb-usermanual-docinfo.xml ...................................................................... add missing icE1usb-usermanual-docinfo.xml This was missing in commit Ia04890cf3b321f8cb01e3c513a730031e76376b9 Change-Id: I4b20c38bf6ad87307c86e594cc23330d11b6303f --- A doc/manuals/icE1usb-usermanual-docinfo.xml 1 file changed, 46 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/doc/manuals/icE1usb-usermanual-docinfo.xml b/doc/manuals/icE1usb-usermanual-docinfo.xml new file mode 100644 index 0000000..1c7e7fd --- /dev/null +++ b/doc/manuals/icE1usb-usermanual-docinfo.xml @@ -0,0 +1,46 @@ + + + 1 + December 13, 2020 + HW + + Initial version. + + + + + + + Harald + Welte + hwelte at sysmocom.de + HW + + sysmocom + sysmocom - s.f.m.c. GmbH + Managing Director + + + + + + 2020 + 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/ + + + -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21767 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: I4b20c38bf6ad87307c86e594cc23330d11b6303f Gerrit-Change-Number: 21767 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 Dec 17 16:20:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:20:04 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins.sh 'publish' fixes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21768 ) Change subject: contrib/jenkins.sh 'publish' fixes ...................................................................... contrib/jenkins.sh 'publish' fixes * don't install icE1usb files to e1-tracer directory * don't replicate symlinks but copy Change-Id: I6dff99dcc2ab465558ad6344ebb9cba73005cf34 --- M contrib/jenkins.sh 1 file changed, 19 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 5bc05f7..1a0750f 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -5,11 +5,25 @@ # * WITH_MANUALS: build manual PDFs if set to "1" # * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1") +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 +fi + set -e TOPDIR=`pwd` publish="$1" +base="$PWD" +deps="$base/deps" +inst="$deps/install" +export deps inst + +osmo-clean-workspace.sh + +mkdir "$deps" || true + # we assume that PATH includes the path to the respective toolchain # firmware build @@ -33,13 +47,14 @@ EOF SSH_COMMAND="ssh -o 'UserKnownHostsFile=/build/known_hosts' -p 48" rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/*-*-*-*.{bin,elf} binaries at rita.osmocom.org:web-files/icE1usb/firmware/all/ - rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/icE1usb-fw.{bin,elf} binaries at rita.osmocom.org:web-files/e1-tracer/firmware/latest/ + rsync --archive --copy-links --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/icE1usb/icE1usb-fw.{bin,elf} binaries at rita.osmocom.org:web-files/icE1usb/firmware/latest/ rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/e1-tracer/*-*-*-*.{bin,elf} binaries at rita.osmocom.org:web-files/e1-tracer/firmware/all/ - rsync --archive --verbose --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/e1-tracer/e1_tracer-fw.{bin,elf} binaries at rita.osmocom.org:web-files/e1-tracer/firmware/latest/ + rsync --verbose --copy-links --compress --rsh "$SSH_COMMAND" $TOPDIR/firmware/ice40-riscv/e1-tracer/e1_tracer-fw.{bin,elf} binaries at rita.osmocom.org:web-files/e1-tracer/firmware/latest/ fi # 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 @@ -57,3 +72,5 @@ make -C $d ${GATE_VARS} done fi + +osmo-clean-workspace.sh -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21768 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: I6dff99dcc2ab465558ad6344ebb9cba73005cf34 Gerrit-Change-Number: 21768 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 Dec 17 16:25:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 16:25:13 +0000 Subject: Change in osmo-bsc[master]: handover_test: implement as VTY shell In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21642 ) Change subject: handover_test: implement as VTY shell ...................................................................... Patch Set 4: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie238ebe41039d3fa44c9699937589e000883e052 Gerrit-Change-Number: 21642 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 16:25: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 Thu Dec 17 16:25:54 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 16:25:54 +0000 Subject: Change in osmo-bsc[master]: handover_test: rename test scripts from numbers to names In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21643 ) Change subject: handover_test: rename test scripts from numbers to names ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 Gerrit-Change-Number: 21643 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 16:25: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 Thu Dec 17 16:26:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 16:26:10 +0000 Subject: Change in osmo-bsc[master]: debug log, lchan_fsm: explain leaving wait_rll_rtp_establish state In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21644 ) Change subject: debug log, lchan_fsm: explain leaving wait_rll_rtp_establish state ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I18ffcf93e82ee47413e4b2f741ffbfbb18322e1d Gerrit-Change-Number: 21644 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 16:26: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 Thu Dec 17 16:27:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 16:27:08 +0000 Subject: Change in osmo-bsc[master]: handover_test: rename test scripts from numbers to names 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/+/21643 to look at the new patch set (#4). Change subject: handover_test: rename test scripts from numbers to names ...................................................................... handover_test: rename test scripts from numbers to names The meaningful names expose that some of those tests are apparently quite similar. With names like this it is far easier to see whether a specific scenario is already tested or not, and find a test when looking for a specific scenario. Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 --- M tests/handover/handover_tests.ok R tests/handover/test_amr_tch_f_to_h.ho_vty R tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty R tests/handover/test_balance_congestion.ho_vty R tests/handover/test_balance_congestion_2.ho_vty R tests/handover/test_congestion.ho_vty R tests/handover/test_disabled_ho_and_as.ho_vty R tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty R tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty R tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty R tests/handover/test_ho_to_better_cell.ho_vty R tests/handover/test_ho_to_better_cell_2.ho_vty R tests/handover/test_hysteresis.ho_vty R tests/handover/test_insufficient_measurements.ho_vty R tests/handover/test_keep_efr_codec.ho_vty R tests/handover/test_keep_fr_codec.ho_vty R tests/handover/test_keep_hr_codec.ho_vty R tests/handover/test_max_handovers.ho_vty R tests/handover/test_max_ta.ho_vty R tests/handover/test_min_rxlev_vs_congestion.ho_vty R tests/handover/test_min_rxlev_vs_hysteresis.ho_vty R tests/handover/test_neighbor_congested.ho_vty R tests/handover/test_neighbor_full.ho_vty R tests/handover/test_no_congestion.ho_vty R tests/handover/test_penalty_timer.ho_vty R tests/handover/test_rxqual.ho_vty R tests/handover/test_rxqual_vs_congestion.ho_vty R tests/handover/test_stay_in_better_cell.ho_vty R tests/handover/test_stay_in_better_cell_2.ho_vty R tests/handover/test_story.ho_vty 34 files changed, 33 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/43/21643/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 Gerrit-Change-Number: 21643 Gerrit-PatchSet: 4 Gerrit-Owner: neels 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 Dec 17 16:27:45 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 16:27:45 +0000 Subject: Change in osmo-bsc[master]: handover_tests: add expected output In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21645 ) Change subject: handover_tests: add expected output ...................................................................... Patch Set 4: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I387aa62eb2dd9896494aefa32e6d336106e0ecdc Gerrit-Change-Number: 21645 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 17 Dec 2020 16:27: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 Thu Dec 17 16:29:31 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 16:29:31 +0000 Subject: Change in osmo-bsc[master]: handover_test: implement as VTY shell In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21642 ) Change subject: handover_test: implement as VTY shell ...................................................................... Patch Set 5: Code-Review+2 this patch being of marginal interest to production use of osmo-bsc, let me upgrade the +1 to a +2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie238ebe41039d3fa44c9699937589e000883e052 Gerrit-Change-Number: 21642 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 17 Dec 2020 16:29: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 Dec 17 16:44:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:44:21 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins.sh: ugly work-around for PATH problems References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21769 ) Change subject: contrib/jenkins.sh: ugly work-around for PATH problems ...................................................................... contrib/jenkins.sh: ugly work-around for PATH problems For details see https://osmocom.org/issues/4911 Related: OS#4911 Change-Id: I04e9c29813f6695d0d53f7cdede34f83d24ea3fd --- M contrib/jenkins.sh 1 file changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/69/21769/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 1a0750f..b788540 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -5,6 +5,15 @@ # * 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/+/21769 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: I04e9c29813f6695d0d53f7cdede34f83d24ea3fd Gerrit-Change-Number: 21769 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 Dec 17 16:46:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:46:40 +0000 Subject: Change in osmo-e1-hardware[master]: 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/+/21769 ) Change subject: 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/+/21769 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: I04e9c29813f6695d0d53f7cdede34f83d24ea3fd Gerrit-Change-Number: 21769 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 16:46: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 Dec 17 16:46:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:46:42 +0000 Subject: Change in osmo-e1-hardware[master]: 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/+/21769 ) Change subject: contrib/jenkins.sh: ugly work-around for PATH problems ...................................................................... contrib/jenkins.sh: ugly work-around for PATH problems For details see https://osmocom.org/issues/4911 Related: OS#4911 Change-Id: I04e9c29813f6695d0d53f7cdede34f83d24ea3fd --- M contrib/jenkins.sh 1 file changed, 9 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 1a0750f..b788540 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -5,6 +5,15 @@ # * 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/+/21769 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: I04e9c29813f6695d0d53f7cdede34f83d24ea3fd Gerrit-Change-Number: 21769 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 Dec 17 16:50:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:50:03 +0000 Subject: Change in osmo-ci[master]: add registry-rebuild-upload-fpga-build.yml In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21763 ) Change subject: add registry-rebuild-upload-fpga-build.yml ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie700d7c6e3c5e794edd81c3acc4b689e05d6864d Gerrit-Change-Number: 21763 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 16:50: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 Dec 17 16:50:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:50:05 +0000 Subject: Change in osmo-ci[master]: add registry-rebuild-upload-fpga-build.yml In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21763 ) Change subject: add registry-rebuild-upload-fpga-build.yml ...................................................................... add registry-rebuild-upload-fpga-build.yml This will rune once per week and make sure that registry.osmocom.org has a fpga-build container that the buld slaves can use. Change-Id: Ie700d7c6e3c5e794edd81c3acc4b689e05d6864d --- A jobs/registry-rebuild-upload-fpga-build.yml 1 file changed, 35 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/jobs/registry-rebuild-upload-fpga-build.yml b/jobs/registry-rebuild-upload-fpga-build.yml new file mode 100644 index 0000000..9338bce --- /dev/null +++ b/jobs/registry-rebuild-upload-fpga-build.yml @@ -0,0 +1,35 @@ +--- +- project: + name: registry-rebuild-upload-fpga-build + jobs: + - registry-rebuild-upload-fpga-build + +- job: + name: registry-rebuild-upload-fpga-build + description: | + Rebuild + push fpga-build docker images in our private registry.osmocom.org + node: osmocom-master-debian9 + scm: + - git: + url: git://git.osmocom.org/docker-playground + skip-tag: true + branches: + - 'origin/master' + + builders: + - shell: | + REGISTRY="registry.osmocom.org" + cd debian-buster-build && make + cd .. + cd fpga-build && make REGISTRY_HOST=$REGISTRY + docker push $REGISTRY/$USER/fpga-build + cd .. + triggers: + - timed: "@weekly" + + publishers: + - email: + notify-every-unstable-build: true + recipients: 'jenkins-notifications at lists.osmocom.org' + +# vim: expandtab tabstop=2 shiftwidth=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie700d7c6e3c5e794edd81c3acc4b689e05d6864d Gerrit-Change-Number: 21763 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 Dec 17 16:53:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:53:42 +0000 Subject: Change in osmo-e1-hardware[master]: osmo-e1-hardware: Fix missing PKG_CONFIG_PATH directory References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21770 ) Change subject: osmo-e1-hardware: Fix missing PKG_CONFIG_PATH directory ...................................................................... osmo-e1-hardware: Fix missing PKG_CONFIG_PATH directory otherwise we'll get: make: Entering directory '/build/doc/manuals' Package osmo-gsm-manuals was not found in the pkg-config search path. Perhaps you should add the directory containing `osmo-gsm-manuals.pc' to the PKG_CONFIG_PATH environment variable No package 'osmo-gsm-manuals' found Change-Id: I9f3d6e74be9e0fe31a2ee7aad9869ed7568ff6dd --- M contrib/jenkins.sh 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/70/21770/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index b788540..39d7f4c 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -29,6 +29,10 @@ inst="$deps/install" export deps inst +export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH" +export LD_LIBRARY_PATH="$inst/lib" +export PATH="$inst/bin:$PATH" + osmo-clean-workspace.sh mkdir "$deps" || true -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21770 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: I9f3d6e74be9e0fe31a2ee7aad9869ed7568ff6dd Gerrit-Change-Number: 21770 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 Dec 17 16:54:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:54:48 +0000 Subject: Change in osmo-e1-hardware[master]: osmo-e1-hardware: Fix missing PKG_CONFIG_PATH directory In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21770 ) Change subject: osmo-e1-hardware: Fix missing PKG_CONFIG_PATH directory ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21770 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: I9f3d6e74be9e0fe31a2ee7aad9869ed7568ff6dd Gerrit-Change-Number: 21770 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 16: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 Dec 17 16:54:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 16:54:53 +0000 Subject: Change in osmo-e1-hardware[master]: osmo-e1-hardware: Fix missing PKG_CONFIG_PATH directory In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21770 ) Change subject: osmo-e1-hardware: Fix missing PKG_CONFIG_PATH directory ...................................................................... osmo-e1-hardware: Fix missing PKG_CONFIG_PATH directory otherwise we'll get: make: Entering directory '/build/doc/manuals' Package osmo-gsm-manuals was not found in the pkg-config search path. Perhaps you should add the directory containing `osmo-gsm-manuals.pc' to the PKG_CONFIG_PATH environment variable No package 'osmo-gsm-manuals' found Change-Id: I9f3d6e74be9e0fe31a2ee7aad9869ed7568ff6dd --- M contrib/jenkins.sh 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index b788540..39d7f4c 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -29,6 +29,10 @@ inst="$deps/install" export deps inst +export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH" +export LD_LIBRARY_PATH="$inst/lib" +export PATH="$inst/bin:$PATH" + osmo-clean-workspace.sh mkdir "$deps" || true -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21770 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: I9f3d6e74be9e0fe31a2ee7aad9869ed7568ff6dd Gerrit-Change-Number: 21770 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 Dec 17 17:00:43 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 17 Dec 2020 17:00:43 +0000 Subject: Change in libosmocore[master]: logging: revert color of LGLOBAL category back to while References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21771 ) Change subject: logging: revert color of LGLOBAL category back to while ...................................................................... logging: revert color of LGLOBAL category back to while "\033[38;5;19m" is unreadable on terminals with dark background. Change-Id: I8ed40522b07c2028de4986d1f976609510faa894 --- M src/logging.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/21771/1 diff --git a/src/logging.c b/src/logging.c index efa108e..01a00da 100644 --- a/src/logging.c +++ b/src/logging.c @@ -139,7 +139,6 @@ .description = "Library-internal global log family", .loglevel = LOGL_NOTICE, .enabled = 1, - .color = "\033[38;5;19m", }, [INT2IDX(DLLAPD)] = { /* -2 becomes 1 */ .name = "DLLAPD", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ed40522b07c2028de4986d1f976609510faa894 Gerrit-Change-Number: 21771 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 Dec 17 17:02:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: cosmetic: more comments in the code In-Reply-To: References: Message-ID: Hello tnt, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 to look at the new patch set (#4). Change subject: icE1usb fw: cosmetic: more comments in the code ...................................................................... icE1usb fw: cosmetic: more comments in the code Change-Id: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/usb_desc_app.c M firmware/ice40-riscv/icE1usb/usb_e1.c 3 files changed, 40 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/04/21704/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 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: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 Gerrit-Change-Number: 21704 Gerrit-PatchSet: 4 Gerrit-Owner: laforge 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 Thu Dec 17 17:02:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: define e1_data_ptr() using e1_data_ofs() In-Reply-To: References: Message-ID: Hello tnt, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 to look at the new patch set (#3). Change subject: icE1usb fw: define e1_data_ptr() using e1_data_ofs() ...................................................................... icE1usb fw: define e1_data_ptr() using e1_data_ofs() It's best to compute the offset only at one place and use that computation elsewhere. Change-Id: I9a6cce07ea8b6eff1527215de00621da960b0472 --- M firmware/ice40-riscv/icE1usb/e1.c 1 file changed, 5 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/06/21706/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 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: I9a6cce07ea8b6eff1527215de00621da960b0472 Gerrit-Change-Number: 21706 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Thu Dec 17 17:02:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Use register bit #define instead of magic number In-Reply-To: References: Message-ID: Hello tnt, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 to look at the new patch set (#3). Change subject: icE1usb fw: Use register bit #define instead of magic number ...................................................................... icE1usb fw: Use register bit #define instead of magic number Change-Id: Ic824ce5a6605c96989fefbf92f365bff618dccb2 --- M firmware/ice40-riscv/icE1usb/e1.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/07/21707/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 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: Ic824ce5a6605c96989fefbf92f365bff618dccb2 Gerrit-Change-Number: 21707 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Thu Dec 17 17:02:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position In-Reply-To: References: Message-ID: Hello tnt, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 to look at the new patch set (#3). Change subject: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position ...................................................................... icE1usb fw: Have e1_rx_need_data() optionally return FIFO position The position indicates where we are in terms of frame and multiframe. The related code was ported over from e1-tracer. Related: OS#4674 Change-Id: I9e59d86a2e8f4e85ca84c592438ad79966b49448 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/usb_e1.c 2 files changed, 9 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/16/21716/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 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: I9e59d86a2e8f4e85ca84c592438ad79966b49448 Gerrit-Change-Number: 21716 Gerrit-PatchSet: 3 Gerrit-Owner: laforge 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 Thu Dec 17 17:02:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Include E1 frame number in Rx USB header In-Reply-To: References: Message-ID: Hello tnt, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 to look at the new patch set (#4). Change subject: icE1usb fw: Include E1 frame number in Rx USB header ...................................................................... icE1usb fw: Include E1 frame number in Rx USB header This should enable the host to detect discontinuities, and also know when a multiframe starts. Related: OS#4674 Change-Id: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 --- M firmware/ice40-riscv/icE1usb/usb_e1.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/17/21717/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 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: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 Gerrit-Change-Number: 21717 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 17:02:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: add port number argument to e1_tick_read() In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21732 ) Change subject: icE1usb fw: add port number argument to e1_tick_read() ...................................................................... icE1usb fw: add port number argument to e1_tick_read() Change-Id: I0f4548b5623a7eaf74af3076c301e029bb3933da --- M firmware/ice40-riscv/icE1usb/misc.c M firmware/ice40-riscv/icE1usb/misc.h M firmware/ice40-riscv/icE1usb/usb_e1.c 3 files changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/32/21732/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21732 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: I0f4548b5623a7eaf74af3076c301e029bb3933da Gerrit-Change-Number: 21732 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 Thu Dec 17 17:02:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Turn green LED off completely if no E1 signal is received In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 ) Change subject: icE1usb fw: Turn green LED off completely if no E1 signal is received ...................................................................... icE1usb fw: Turn green LED off completely if no E1 signal is received We don't really have an idea of the analog signal level and hence no true LOS detection. However, we can check the Rx clock tick counter to detect if there is at least still any kind of signal at all or not. Change-Id: Ibd23cbf1d044b46d8fed48fb97622e6ef980b99f --- M doc/manuals/chapters/firmware.adoc M firmware/ice40-riscv/icE1usb/e1.c 2 files changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/33/21733/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 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: Ibd23cbf1d044b46d8fed48fb97622e6ef980b99f Gerrit-Change-Number: 21733 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 Thu Dec 17 17:02:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Expose error conditions from E1 driver In-Reply-To: References: Message-ID: Hello 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 (#3). 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 2 files changed, 34 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/15/21715/3 -- 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: 3 Gerrit-Owner: laforge 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 Thu Dec 17 17:02:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:56 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: e1_tick_read() for rx and tx References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21772 ) Change subject: icE1usb fw: e1_tick_read() for rx and tx ...................................................................... icE1usb fw: e1_tick_read() for rx and tx Change-Id: I8dd6765f27cdf5ab21ccb8290002c44eef67f96f --- M firmware/ice40-riscv/icE1usb/misc.c M firmware/ice40-riscv/icE1usb/misc.h M firmware/ice40-riscv/icE1usb/usb_e1.c 3 files changed, 12 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/72/21772/1 diff --git a/firmware/ice40-riscv/icE1usb/misc.c b/firmware/ice40-riscv/icE1usb/misc.c index 25fb7f4..c84e848 100644 --- a/firmware/ice40-riscv/icE1usb/misc.c +++ b/firmware/ice40-riscv/icE1usb/misc.c @@ -71,13 +71,21 @@ } uint16_t -e1_tick_read(uint8_t port) +e1_tick_read_tx(uint8_t port) { if (port >= 2) return 0xffff; return misc_regs->e1_tick[port].tx; } +uint16_t +e1_tick_read_rx(uint8_t port) +{ + if (port >= 2) + return 0xffff; + return misc_regs->e1_tick[port].rx; +} + void reboot(int fw) { diff --git a/firmware/ice40-riscv/icE1usb/misc.h b/firmware/ice40-riscv/icE1usb/misc.h index b405b02..c680969 100644 --- a/firmware/ice40-riscv/icE1usb/misc.h +++ b/firmware/ice40-riscv/icE1usb/misc.h @@ -27,6 +27,7 @@ void pdm_set(int chan, bool enable, unsigned value, bool normalize); void e1_led_set(bool enable, uint8_t cfg); -uint16_t e1_tick_read(uint8_t port); +uint16_t e1_tick_read_rx(uint8_t port); +uint16_t e1_tick_read_tx(uint8_t port); void reboot(int fw); diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index 529ead3..e594a99 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -42,7 +42,7 @@ unsigned int level; /* Compute real E1 tick count (with safety against bad values) */ - ticks = e1_tick_read(0); + ticks = e1_tick_read_tx(0); val = (ticks - ticks_prev) & 0xffff; ticks_prev = ticks; if ((val < 7168) | (val > 9216)) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21772 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: I8dd6765f27cdf5ab21ccb8290002c44eef67f96f Gerrit-Change-Number: 21772 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 Dec 17 17:02:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:56 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Put E1 IP core register related #defines in e1_hw.h References: Message-ID: laforge has uploaded this change for review. ( 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, 67 insertions(+), 60 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/73/21773/1 diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 4c60f63..532dcdf 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -12,6 +12,7 @@ #include "config.h" #include "console.h" #include "e1.h" +#include "e1_hw.h" #include "dma.h" #include "led.h" // FIXME @@ -19,66 +20,6 @@ #include "misc.h" // needed to get the E1 tick for "LOS" detection -// 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..28190e9 --- /dev/null +++ b/firmware/ice40-riscv/icE1usb/e1_hw.h @@ -0,0 +1,66 @@ +#pragma once +#include +/* + * e1_hw.h + * + * Copyright (C) 2019-2020 Sylvain Munaut + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +//TODO: Shouldn't this 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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 17:02:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:56 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Internal API for configuring E1 rx/tx config register References: Message-ID: laforge has uploaded this change for review. ( 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, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/74/21774/1 diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 532dcdf..4ce75bf 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -268,6 +268,19 @@ g_e1.tx.state = BOOT; } +void +e1_tx_config(uint16_t cr) +{ + g_e1.tx.cr = cr; + e1_regs->tx.csr = g_e1.tx.cr; +} + +void +e1_rx_config(uint16_t cr) +{ + g_e1.rx.cr = cr; + 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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 17:02:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:57 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: USB control request handling References: Message-ID: laforge has uploaded this change for review. ( 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 --- A firmware/ice40-riscv/icE1usb/ice1usb_proto.h M firmware/ice40-riscv/icE1usb/usb_e1.c 2 files changed, 196 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/75/21775/1 diff --git a/firmware/ice40-riscv/icE1usb/ice1usb_proto.h b/firmware/ice40-riscv/icE1usb/ice1usb_proto.h new file mode 100644 index 0000000..b636ec6 --- /dev/null +++ b/firmware/ice40-riscv/icE1usb/ice1usb_proto.h @@ -0,0 +1,70 @@ +#pragma once + +/* Header file describing the USB protocol between the icE1usb firmware and the host + * software (currently really only osmo-e1d) */ + +/*********************************************************************** + * 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 e594a99..e910852 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -15,12 +15,28 @@ #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 */ -} g_usb_e1; + struct ice1usb_tx_config tx_cfg; + struct ice1usb_rx_config rx_cfg; +} g_usb_e1 = { + /* default configuration at power-up */ + .tx_cfg = { + .mode = ICE1USB_TX_MODE_TS0_CRC4_E, + .timing = ICE1USB_TX_TIME_SRC_REMOTE, + .ext_loopback = ICE1USB_TX_EXT_LOOPBACK_OFF, + .alarm = 0, + }, + .rx_cfg = { + .mode = ICE1USB_RX_MODE_MULTIFRAME, + }, +}; /* Hack */ @@ -253,10 +269,119 @@ 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; + e1_tx_config(E1_TX_CR_ENABLE | + ((cfg->mode & 2) << 1) | + ((cfg->timing & 1) << 3) | + ((cfg->alarm & 1) << 4) | + ((cfg->ext_loopback & 2) << 5) ); + 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; + e1_rx_config(E1_RX_CR_ENABLE | (cfg->mode << 1)); + 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 -- 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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 17:02:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:57 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: move entire E1 configuration to USB References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21776 ) Change subject: icE1usb fw: move entire E1 configuration to USB ...................................................................... icE1usb fw: move entire E1 configuration to USB Maintain all of the E1 IP core configuration in usb_e1.c, rather than having compile-time defaults in e1.c, unused compile-time defaults in usb_e1.c and runtime config received via USB. Related: OS#4675 Change-Id: Ia1cc1e685aad9fe5ceb230b66f35d5cb2829c845 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/e1.h M firmware/ice40-riscv/icE1usb/fw_app.c M firmware/ice40-riscv/icE1usb/usb_e1.c 4 files changed, 26 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/76/21776/1 diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 4ce75bf..e033206 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -241,7 +241,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)); @@ -250,17 +250,10 @@ e1f_reset(&g_e1.rx.fifo, 0, 128); e1f_reset(&g_e1.tx.fifo, 128, 128); - /* Enable Rx */ - g_e1.rx.cr = E1_RX_CR_OVFL_CLR | - E1_RX_CR_MODE_MFA | - E1_RX_CR_ENABLE; + g_e1.rx.cr = E1_RX_CR_OVFL_CLR | E1_RX_CR_ENABLE | rx_cr; e1_regs->rx.csr = 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) | - E1_TX_CR_MODE_TS0_CRC_E | - E1_TX_CR_ENABLE; + g_e1.tx.cr = E1_TX_CR_UNFL_CLR | E1_TX_CR_ENABLE |tx_cr; e1_regs->tx.csr = 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/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index e910852..f94b897 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -216,6 +216,22 @@ return USB_FND_SUCCESS; } +static void _perform_tx_config(void) +{ + const struct ice1usb_tx_config *cfg = &g_usb_e1.tx_cfg; + e1_tx_config(E1_TX_CR_ENABLE | + ((cfg->mode & 2) << 1) | + ((cfg->timing & 1) << 3) | + ((cfg->alarm & 1) << 4) | + ((cfg->ext_loopback & 2) << 5) ); +} + +static void _perform_rx_config(void) +{ + const struct ice1usb_rx_config *cfg = &g_usb_e1.rx_cfg; + e1_rx_config(E1_RX_CR_ENABLE | (cfg->mode << 1)); +} + static enum usb_fnd_resp _e1_set_intf(const struct usb_intf_desc *base, const struct usb_intf_desc *sel) { @@ -229,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 */ @@ -276,11 +295,7 @@ 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; - e1_tx_config(E1_TX_CR_ENABLE | - ((cfg->mode & 2) << 1) | - ((cfg->timing & 1) << 3) | - ((cfg->alarm & 1) << 4) | - ((cfg->ext_loopback & 2) << 5) ); + _perform_tx_config(); return true; } @@ -290,7 +305,7 @@ 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; - e1_rx_config(E1_RX_CR_ENABLE | (cfg->mode << 1)); + _perform_rx_config(); return true; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21776 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: Ia1cc1e685aad9fe5ceb230b66f35d5cb2829c845 Gerrit-Change-Number: 21776 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 Dec 17 17:02:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:57 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb: Report errors via the newly-added Interrupt Endpoint References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21777 ) Change subject: icE1usb: Report errors via the newly-added Interrupt Endpoint ...................................................................... icE1usb: Report errors via the newly-added Interrupt Endpoint Instead of just reporting flags, we actually report error counts so the host software can maintain proper (rate) counter about the frequency of each type of error. Closes: OS#4674 Change-Id: If157fde9d4ca05910b09537e19f37603c6d925f0 --- 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 3 files changed, 79 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/77/21777/1 diff --git a/firmware/ice40-riscv/icE1usb/ice1usb_proto.h b/firmware/ice40-riscv/icE1usb/ice1usb_proto.h index b636ec6..5f5f31c 100644 --- a/firmware/ice40-riscv/icE1usb/ice1usb_proto.h +++ b/firmware/ice40-riscv/icE1usb/ice1usb_proto.h @@ -68,3 +68,32 @@ struct ice1usb_rx_config { uint8_t mode; /*!< enum ice1usb_rx_mode */ } __attribute__((packed)); + + +/*********************************************************************** + * Interrupt Endpoint + ***********************************************************************/ + +enum ice1usb_irq_type { + ICE1USB_IRQQ_T_ERRCNT = 1, +}; + +/* Ensue ro keep those in sync with e1.h */ +#define ICE1USB_ERR_F_ALIGN_ERR 0x01 +#define ICE1USB_ERR_F_TICK_ERR 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 f94b897..bb21998 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 */ .tx_cfg = { @@ -86,6 +87,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_IRQQ_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; @@ -212,6 +236,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/+/21777 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: If157fde9d4ca05910b09537e19f37603c6d925f0 Gerrit-Change-Number: 21777 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 Dec 17 17:02:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:02:58 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Disable reporting of 'loss of timing' for now References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21778 ) Change subject: icE1usb fw: Disable reporting of 'loss of timing' for now ...................................................................... icE1usb fw: Disable reporting of 'loss of timing' for now This works half way decent enough to make the LED status change visibly in case the physical link is disconnected. However, we will generate a storm of USB interrupt endpoint messages if we leave this on Change-Id: I9d0ddb2d404880c4a85e30de1b4bf4204d468ab7 --- M firmware/ice40-riscv/icE1usb/e1.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/78/21778/1 diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index bf6fe9e..dda3016 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -378,7 +378,9 @@ uint16_t cur_tick = e1_tick_read_rx(0); if (g_e1.rx.last_tick == cur_tick) { e1_platform_led_set(0, E1P_LED_GREEN, E1P_LED_ST_OFF); - g_e1.errors.flags |= E1_ERR_F_TICK_ERR; + /* FIXME: this is very flaky, we are probably getting some noise + * at the Rx tick counter if the cable is disconnected? */ + //g_e1.errors.flags |= E1_ERR_F_TICK_ERR; } else { e1_platform_led_set(0, E1P_LED_GREEN, E1P_LED_ST_BLINK); g_e1.errors.flags &= ~E1_ERR_F_TICK_ERR; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21778 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: I9d0ddb2d404880c4a85e30de1b4bf4204d468ab7 Gerrit-Change-Number: 21778 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 Dec 17 17:16:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 17:16:11 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_AR... References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21779 ) Change subject: gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_ARRAY() ...................................................................... gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_ARRAY() My gcc (Debian 8.3.0-6) 8.3.0 refuses to build this strncpy() use: it issues the buffer length as n and thus potentially fails to account for the terminating nul. The line after that fixes the problem, so it's not an actual bug. Anyway, we have a policy to never use strncpy(), and have osmo_strlcpy() and OSMO_STRLCPY_ARRAY() for this. This strncpy() was introduced last month during first addition of gprs_ns2_fr.c: commit 841817ec52186029ca01f0c082ed84f2dc5ffcc5 ns2: add support for frame relay Change-Id Id3b49f93d33c271f77cd9c9db03cde6b727a4d30 Change-Id: I494a6fb7ccd7938a39e8956f73ec4282da38d7fb --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/79/21779/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 8147f66..6f9cd8d 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -296,8 +296,7 @@ memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); - ifr.ifr_name[sizeof(ifr.ifr_name)-1] = 0; + OSMO_STRLCPY_ARRAY(ifr.ifr_name, ifname); rc = ioctl(sk, SIOCGIFINDEX, &ifr); close(sk); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I494a6fb7ccd7938a39e8956f73ec4282da38d7fb Gerrit-Change-Number: 21779 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 Dec 17 17:16:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:16:40 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_AR... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21779 ) Change subject: gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_ARRAY() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I494a6fb7ccd7938a39e8956f73ec4282da38d7fb Gerrit-Change-Number: 21779 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 17 Dec 2020 17:16: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 Dec 17 17:21:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 17:21:03 +0000 Subject: Change in libosmocore[master]: fix strncpy bug in gprs_ns2_fr_bind() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21780 ) Change subject: fix strncpy bug in gprs_ns2_fr_bind() ...................................................................... fix strncpy bug in gprs_ns2_fr_bind() This use of strncpy() fails to account for the terminating nul character. Use OSMO_STRLCPY_ARRAY() instead. (Interestingly my compiler doesn't complain about this one, though it failed on another similar use of strncpy().) Change-Id: Id53e940c7a39ab154966548f4173a179c5bc9151 --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/21780/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 6f9cd8d..f6a17ea 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -497,7 +497,7 @@ rc = -EINVAL; goto err_priv; } - strncpy(priv->netif, netif, sizeof(priv->netif)); + OSMO_STRLCPY_ARRAY(priv->netif, netif); if (result) *result = bind; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id53e940c7a39ab154966548f4173a179c5bc9151 Gerrit-Change-Number: 21780 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 Dec 17 17:25:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 17:25:22 +0000 Subject: Change in libosmocore[master]: fix strncpy bug in gprs_ns2_fr_bind() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21780 ) Change subject: fix strncpy bug in gprs_ns2_fr_bind() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id53e940c7a39ab154966548f4173a179c5bc9151 Gerrit-Change-Number: 21780 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 17 Dec 2020 17:25: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 Dec 17 17:25:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 17:25:44 +0000 Subject: Change in libosmocore[master]: logging: revert color of LGLOBAL category back to while In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21771 ) Change subject: logging: revert color of LGLOBAL category back to while ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ed40522b07c2028de4986d1f976609510faa894 Gerrit-Change-Number: 21771 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 17:25: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 Dec 17 17:33:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 17:33:23 +0000 Subject: Change in osmo-pcu[master]: Convert GprsMS and helpers classes to C 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/+/21748 to look at the new patch set (#2). 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,974 insertions(+), 1,919 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/21748/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: 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 Thu Dec 17 17:34:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 17:34:33 +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 2: Tested manually and running TTCN3 PCU_Tests(_NS), no regressions observed. -- 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: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 17 Dec 2020 17:34: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 Thu Dec 17 17:48:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:48:42 +0000 Subject: Change in osmo-ci[master]: Add master + gerrit job for osmo-e1-hardware 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/+/21764 to look at the new patch set (#3). Change subject: Add master + gerrit job for osmo-e1-hardware ...................................................................... Add master + gerrit job for osmo-e1-hardware Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/64/21764/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef Gerrit-Change-Number: 21764 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 17:50:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:50:18 +0000 Subject: Change in libosmocore[master]: logging: revert color of LGLOBAL category back to white 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/+/21771 ) Change subject: logging: revert color of LGLOBAL category back to white ...................................................................... logging: revert color of LGLOBAL category back to white "\033[38;5;19m" is unreadable on terminals with dark background. Change-Id: I8ed40522b07c2028de4986d1f976609510faa894 --- M src/logging.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/21771/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ed40522b07c2028de4986d1f976609510faa894 Gerrit-Change-Number: 21771 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 Thu Dec 17 17:50:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:50:22 +0000 Subject: Change in libosmocore[master]: logging: revert color of LGLOBAL category back to white In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21771 ) Change subject: logging: revert color of LGLOBAL category back to white ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ed40522b07c2028de4986d1f976609510faa894 Gerrit-Change-Number: 21771 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 17: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 Thu Dec 17 17:50:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 17:50:25 +0000 Subject: Change in libosmocore[master]: logging: revert color of LGLOBAL category back to white In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21771 ) Change subject: logging: revert color of LGLOBAL category back to white ...................................................................... logging: revert color of LGLOBAL category back to white "\033[38;5;19m" is unreadable on terminals with dark background. Change-Id: I8ed40522b07c2028de4986d1f976609510faa894 --- M src/logging.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/logging.c b/src/logging.c index efa108e..01a00da 100644 --- a/src/logging.c +++ b/src/logging.c @@ -139,7 +139,6 @@ .description = "Library-internal global log family", .loglevel = LOGL_NOTICE, .enabled = 1, - .color = "\033[38;5;19m", }, [INT2IDX(DLLAPD)] = { /* -2 becomes 1 */ .name = "DLLAPD", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ed40522b07c2028de4986d1f976609510faa894 Gerrit-Change-Number: 21771 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 Dec 17 17:52:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 17:52:04 +0000 Subject: Change in osmo-bsc[master]: handover_test: rename test scripts from numbers to names 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/+/21643 to look at the new patch set (#5). Change subject: handover_test: rename test scripts from numbers to names ...................................................................... handover_test: rename test scripts from numbers to names The meaningful names expose that some of those tests are apparently quite similar. With names like this it is far easier to see whether a specific scenario is already tested or not, and find a test when looking for a specific scenario. Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 --- M tests/handover/handover_tests.ok R tests/handover/test_amr_tch_f_to_h.ho_vty R tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty R tests/handover/test_balance_congestion.ho_vty R tests/handover/test_balance_congestion_2.ho_vty R tests/handover/test_congestion.ho_vty R tests/handover/test_disabled_ho_and_as.ho_vty R tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty R tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty R tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty R tests/handover/test_ho_to_better_cell.ho_vty R tests/handover/test_ho_to_better_cell_2.ho_vty R tests/handover/test_hysteresis.ho_vty R tests/handover/test_insufficient_measurements.ho_vty R tests/handover/test_keep_efr_codec.ho_vty R tests/handover/test_keep_fr_codec.ho_vty R tests/handover/test_keep_hr_codec.ho_vty R tests/handover/test_max_handovers.ho_vty R tests/handover/test_max_ta.ho_vty R tests/handover/test_min_rxlev_vs_congestion.ho_vty R tests/handover/test_min_rxlev_vs_hysteresis.ho_vty R tests/handover/test_neighbor_congested.ho_vty R tests/handover/test_neighbor_full.ho_vty R tests/handover/test_no_congestion.ho_vty R tests/handover/test_penalty_timer.ho_vty R tests/handover/test_rxqual.ho_vty R tests/handover/test_rxqual_vs_congestion.ho_vty R tests/handover/test_stay_in_better_cell.ho_vty R tests/handover/test_stay_in_better_cell_2.ho_vty R tests/handover/test_story.ho_vty 34 files changed, 33 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/43/21643/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 Gerrit-Change-Number: 21643 Gerrit-PatchSet: 5 Gerrit-Owner: neels 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 Dec 17 17:52:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 17:52:04 +0000 Subject: Change in osmo-bsc[master]: handover_tests: add expected output 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/+/21645 to look at the new patch set (#5). Change subject: handover_tests: add expected output ...................................................................... handover_tests: add expected output I am not sure whether we want to keep the expected log output of handover tests in the source tree. On the one hand, it is pretty nice to see how changes to the code affect logging and the internal flow of things, and follow that in the history. 'make update_exp' makes it easy to update expected outputs. On the other hand, those logs are a lot of cruft to keep. They will often change as osmo-bsc changes. We've seen similar in the osmo-msc.git msc_vlr_tests, I believe sometimes annoying some of us. The test script only uses the expected log outputs when they are actually present, so it is always an option for each developer to locally do 'make update_exp' and diff between source versions like that, without the logs having to be in version control. I will leave it up to code review whether to add these logs or not. Change-Id: I387aa62eb2dd9896494aefa32e6d336106e0ecdc --- M tests/handover/handover_tests.sh A tests/handover/test_amr_tch_f_to_h.ho_vty.err A tests/handover/test_amr_tch_f_to_h.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty.err A tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_congestion.ho_vty.err A tests/handover/test_amr_tch_f_to_h_congestion.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty.err A tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty.err A tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty.ok A tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty.err A tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty.ok A tests/handover/test_balance_congestion.ho_vty.err A tests/handover/test_balance_congestion.ho_vty.ok A tests/handover/test_balance_congestion_2.ho_vty.err A tests/handover/test_balance_congestion_2.ho_vty.ok A tests/handover/test_congestion.ho_vty.err A tests/handover/test_congestion.ho_vty.ok A tests/handover/test_disabled_ho_and_as.ho_vty.err A tests/handover/test_disabled_ho_and_as.ho_vty.ok A tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty.err A tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty.ok A tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty.err A tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty.ok A tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty.err A tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty.ok A tests/handover/test_ho_to_better_cell.ho_vty.err A tests/handover/test_ho_to_better_cell.ho_vty.ok A tests/handover/test_ho_to_better_cell_2.ho_vty.err A tests/handover/test_ho_to_better_cell_2.ho_vty.ok A tests/handover/test_hysteresis.ho_vty.err A tests/handover/test_hysteresis.ho_vty.ok A tests/handover/test_insufficient_measurements.ho_vty.err A tests/handover/test_insufficient_measurements.ho_vty.ok A tests/handover/test_keep_efr_codec.ho_vty.err A tests/handover/test_keep_efr_codec.ho_vty.ok A tests/handover/test_keep_fr_codec.ho_vty.err A tests/handover/test_keep_fr_codec.ho_vty.ok A tests/handover/test_keep_hr_codec.ho_vty.err A tests/handover/test_keep_hr_codec.ho_vty.ok A tests/handover/test_max_handovers.ho_vty.err A tests/handover/test_max_handovers.ho_vty.ok A tests/handover/test_max_ta.ho_vty.err A tests/handover/test_max_ta.ho_vty.ok A tests/handover/test_min_rxlev_vs_congestion.ho_vty.err A tests/handover/test_min_rxlev_vs_congestion.ho_vty.ok A tests/handover/test_min_rxlev_vs_hysteresis.ho_vty.err A tests/handover/test_min_rxlev_vs_hysteresis.ho_vty.ok A tests/handover/test_neighbor_congested.ho_vty.err A tests/handover/test_neighbor_congested.ho_vty.ok A tests/handover/test_neighbor_full.ho_vty.err A tests/handover/test_neighbor_full.ho_vty.ok A tests/handover/test_no_congestion.ho_vty.err A tests/handover/test_no_congestion.ho_vty.ok A tests/handover/test_penalty_timer.ho_vty.err A tests/handover/test_penalty_timer.ho_vty.ok A tests/handover/test_rxqual.ho_vty.err A tests/handover/test_rxqual.ho_vty.ok A tests/handover/test_rxqual_vs_congestion.ho_vty.err A tests/handover/test_rxqual_vs_congestion.ho_vty.ok A tests/handover/test_stay_in_better_cell.ho_vty.err A tests/handover/test_stay_in_better_cell.ho_vty.ok A tests/handover/test_stay_in_better_cell_2.ho_vty.err A tests/handover/test_stay_in_better_cell_2.ho_vty.ok A tests/handover/test_story.ho_vty.err A tests/handover/test_story.ho_vty.ok 67 files changed, 14,860 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/45/21645/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I387aa62eb2dd9896494aefa32e6d336106e0ecdc Gerrit-Change-Number: 21645 Gerrit-PatchSet: 5 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 Thu Dec 17 17:53:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 17 Dec 2020 17:53:02 +0000 Subject: Change in osmo-bsc[master]: handover_test: rename test scripts from numbers to names In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21643 ) Change subject: handover_test: rename test scripts from numbers to names ...................................................................... Patch Set 5: Code-Review+2 re-add earlier +1 after trivial tweak, and upgrade to +2 (marginal interest for production use of osmo-bsc) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 Gerrit-Change-Number: 21643 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 17 Dec 2020 17:53: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 Dec 17 17:57:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 17:57:07 +0000 Subject: Change in osmo-pcu[master]: Convert GprsMS and helpers classes to C 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/+/21748 to look at the new patch set (#3). 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,973 insertions(+), 1,920 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/21748/3 -- 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: 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 Dec 17 17:57:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 17:57:48 +0000 Subject: Change in osmo-ci[master]: Add master + gerrit job for osmo-e1-hardware In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21764 ) Change subject: Add master + gerrit job for osmo-e1-hardware ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef Gerrit-Change-Number: 21764 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 17: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 Thu Dec 17 19:03:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 19:03:00 +0000 Subject: Change in osmo-e1d[master]: vpair: fix writing config file with vpairs configured References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21781 ) Change subject: vpair: fix writing config file with vpairs configured ...................................................................... vpair: fix writing config file with vpairs configured prior to this patch, the configured vpair interfaces would not be saved to the config file on 'write file'. Change-Id: Iff6551318534a3717c374060082147f17b925a21 --- M doc/examples/osmo-e1d-vpair.cfg M src/e1d.h M src/vpair.c M src/vty.c 4 files changed, 77 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/81/21781/1 diff --git a/doc/examples/osmo-e1d-vpair.cfg b/doc/examples/osmo-e1d-vpair.cfg index 32742de..04bdb72 100644 --- a/doc/examples/osmo-e1d-vpair.cfg +++ b/doc/examples/osmo-e1d-vpair.cfg @@ -1,2 +1,2 @@ - -virtual-e1-pair 1 +e1d + virtual-e1-pair 1 diff --git a/src/e1d.h b/src/e1d.h index c35f4a8..a7ba005 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -146,3 +146,6 @@ int e1d_vpair_create(struct e1_daemon *e1d, unsigned int num_lines); + +struct e1_intf * +e1d_vpair_intf_peer(struct e1_intf *intf); diff --git a/src/vpair.c b/src/vpair.c index 12452fe..df14026 100644 --- a/src/vpair.c +++ b/src/vpair.c @@ -88,6 +88,15 @@ talloc_free(intf->drv_data); } +/* resolve the peer of a given interface */ +struct e1_intf * +e1d_vpair_intf_peer(struct e1_intf *intf) +{ + struct ve1_intf_data *intf_data = intf->drv_data; + OSMO_ASSERT(intf->drv == E1_DRIVER_VPAIR); + return intf_data->peer; +} + static int ve1_timerfd_cb(struct osmo_fd *ofd, unsigned int what) { diff --git a/src/vty.c b/src/vty.c index 0690177..1caa54f 100644 --- a/src/vty.c +++ b/src/vty.c @@ -41,6 +41,16 @@ static struct e1_daemon *vty_e1d; +enum e1d_vty_node { + E1D_NODE = _LAST_OSMOVTY_NODE + 1, +}; + +static struct cmd_node e1d_node = { + (enum node_type) E1D_NODE, + "%s(config-e1d)# ", + 1, +}; + #if 0 static void vty_dump_ts(struct vty *vty, const struct e1_ts *ts) { @@ -142,6 +152,14 @@ return CMD_SUCCESS; } +DEFUN(cfg_e1d, cfg_e1d_cmd, "e1d", + "E1 Daemon sspecific configuration\n") +{ + vty->node = E1D_NODE; + + return CMD_SUCCESS; +} + DEFUN(cfg_vpair, cfg_vpair_cmd, "virtual-e1-pair <1-255>", "Create a virtual E1 interface pair\n" "Number of E1 lines in virtual E1 interface pair\n") @@ -158,11 +176,55 @@ return CMD_SUCCESS; } +static bool intf_arr_contains(struct e1_intf **arr, unsigned int arr_cnt, struct e1_intf *intf) +{ + unsigned int i; + for (i = 0; i < arr_cnt; i++) { + if (arr[i] == intf) + return true; + } + return false; +} + +static int config_write_e1d(struct vty *vty) +{ + struct e1_intf *intf; + struct e1_intf *intf_b[256]; + unsigned int num_intf_b = 0; + + vty_out(vty, "pcu%s", VTY_NEWLINE); + + /* find all vpair interfaces */ + llist_for_each_entry(intf, &vty_e1d->interfaces, list) { + unsigned int line_count = 0; + struct e1_line *line; + + if (intf->drv != E1_DRIVER_VPAIR) + continue; + /* skip the 'mirror' interfaces */ + if (intf_arr_contains(intf_b, ARRAY_SIZE(intf_b), intf)) + continue; + + llist_for_each_entry(line, &intf->lines, list) + line_count++; + + vty_out(vty, " virtual-e1-pair %u%s", line_count, VTY_NEWLINE); + + /* memorize the peer so we don't save it twice */ + intf_b[num_intf_b++] = e1d_vpair_intf_peer(intf); + if (num_intf_b >= ARRAY_SIZE(intf_b)) + break; + } + return 0; +} + void e1d_vty_init(struct e1_daemon *e1d) { vty_e1d = e1d; install_element_ve(&show_intf_cmd); install_element_ve(&show_line_cmd); - install_element(CONFIG_NODE, &cfg_vpair_cmd); + install_node(&e1d_node, config_write_e1d); + install_element(CONFIG_NODE, &cfg_e1d_cmd); + install_element(E1D_NODE, &cfg_vpair_cmd); } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Iff6551318534a3717c374060082147f17b925a21 Gerrit-Change-Number: 21781 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 Dec 17 19:33:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 19:33:20 +0000 Subject: Change in osmo-pcu[master]: Convert GprsMS and helpers classes to C 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/+/21748 to look at the new patch set (#4). 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,974 insertions(+), 1,921 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/21748/4 -- 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: 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 Dec 17 19:42:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 19:42:26 +0000 Subject: Change in osmo-pcu[master]: Convert GprsMS and helpers classes to C 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/+/21748 to look at the new patch set (#5). 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,974 insertions(+), 1,921 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/21748/5 -- 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: 5 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 Dec 17 19:44:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 19:44:53 +0000 Subject: Change in osmo-e1d[master]: vpair: fix writing config file with vpairs configured In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21781 ) Change subject: vpair: fix writing config file with vpairs configured ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/21781/1/src/vty.c File src/vty.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21781/1/src/vty.c at 195 PS1, Line 195: vty_out(vty, "pcu%s", VTY_NEWLINE); shouldn't this be e1d? -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Iff6551318534a3717c374060082147f17b925a21 Gerrit-Change-Number: 21781 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 19:44: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 Thu Dec 17 19:47:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 19:47:07 +0000 Subject: Change in osmo-bsc[master]: handover_tests: add expected output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21645 ) Change subject: handover_tests: add expected output ...................................................................... Patch Set 5: You want for sure at least to drop coloring. Also probably worth only logging notice+errors, and make sure no output from dependency libraries is outputed. If there's already some other ways to check everything's fine I wouldn't go for storing so much text which may change over time. In the end we also have TTCN3 tests for some of these? In there you can check the output too. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I387aa62eb2dd9896494aefa32e6d336106e0ecdc Gerrit-Change-Number: 21645 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 19:47: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 Thu Dec 17 20:14:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 20:14:12 +0000 Subject: Change in osmo-e1d[master]: Add support for icE1usb interrupt endpoint error reporting References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21782 ) Change subject: Add support for icE1usb interrupt endpoint error reporting ...................................................................... Add support for icE1usb interrupt endpoint error reporting Related: OS#4674 Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Depends: osmo-e1-hardware If157fde9d4ca05910b09537e19f37603c6d925f0 --- M src/Makefile.am A src/ice1usb_proto.h M src/usb.c 3 files changed, 192 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/82/21782/1 diff --git a/src/Makefile.am b/src/Makefile.am index 6dd13ce..d9d8236 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -21,6 +21,7 @@ noinst_HEADERS = \ e1d.h \ + ice1usb_proto.h \ log.h \ $(NULL) diff --git a/src/ice1usb_proto.h b/src/ice1usb_proto.h new file mode 100644 index 0000000..5f5f31c --- /dev/null +++ b/src/ice1usb_proto.h @@ -0,0 +1,99 @@ +#pragma once + +/* Header file describing the USB protocol between the icE1usb firmware and the host + * software (currently really only osmo-e1d) */ + +/*********************************************************************** + * 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)); + + +/*********************************************************************** + * Interrupt Endpoint + ***********************************************************************/ + +enum ice1usb_irq_type { + ICE1USB_IRQQ_T_ERRCNT = 1, +}; + +/* Ensue ro keep those in sync with e1.h */ +#define ICE1USB_ERR_F_ALIGN_ERR 0x01 +#define ICE1USB_ERR_F_TICK_ERR 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/src/usb.c b/src/usb.c index 7f7f5c6..3a35a20 100644 --- a/src/usb.c +++ b/src/usb.c @@ -36,6 +36,7 @@ #include "e1d.h" #include "log.h" +#include "ice1usb_proto.h" #define USB_VID 0x1d50 @@ -57,6 +58,7 @@ uint8_t ep_in; uint8_t ep_out; uint8_t ep_fb; + uint8_t ep_int; /* Max packet size */ int pkt_size; @@ -66,6 +68,12 @@ struct e1_usb_flow *flow_out; struct e1_usb_flow *flow_fb; + /* Interrupt */ + struct { + uint8_t buf[10]; + struct ice1usb_irq_err last_errcnt; + } irq; + /* Rate regulation */ uint32_t r_acc; uint32_t r_sw; @@ -98,8 +106,6 @@ struct e1_usb_flow_entry *entries; }; - - // --------------------------------------------------------------------------- // USB data transfer // --------------------------------------------------------------------------- @@ -275,6 +281,84 @@ return 0; } +static int resubmit_irq(struct e1_line *line); + +static void rx_interrupt_errcnt(struct e1_line *line, const struct ice1usb_irq_err *errcnt) +{ + struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; + struct ice1usb_irq_err *last = &ld->irq.last_errcnt; + + if (errcnt->crc != last->crc) { + LOGPLI(line, DE1D, LOGL_ERROR, "CRC error count %d (was %d)\n", + errcnt->crc, last->crc); + } + + if (errcnt->align != last->align) { + LOGPLI(line, DE1D, LOGL_ERROR, "ALIGNMENT error count %d (was %d)\n", + errcnt->align, last->align); + } + + if (errcnt->ovfl != last->ovfl) { + LOGPLI(line, DE1D, LOGL_ERROR, "OVERFLOW error count %d (was %d)\n", + errcnt->ovfl, last->ovfl); + } + + if (errcnt->unfl != last->unfl) { + LOGPLI(line, DE1D, LOGL_ERROR, "UNDERFLOW error count %d (was %d)\n", + errcnt->unfl, last->unfl); + } + + if ((errcnt->flags & ICE1USB_ERR_F_ALIGN_ERR) != (last->flags & ICE1USB_ERR_F_ALIGN_ERR)) { + LOGPLI(line, DE1D, LOGL_ERROR, "ALIGNMENT %s\n", + errcnt->flags & ICE1USB_ERR_F_ALIGN_ERR ? "LOST" : "REGAINED"); + } + + if ((errcnt->flags & ICE1USB_ERR_F_TICK_ERR) != (last->flags & ICE1USB_ERR_F_TICK_ERR)) { + LOGPLI(line, DE1D, LOGL_ERROR, "Rx Clock %s\n", + errcnt->flags & ICE1USB_ERR_F_TICK_ERR ? "LOST" : "REGAINED"); + } + + ld->irq.last_errcnt = *errcnt; +} + +static void interrupt_ep_cb(struct libusb_transfer *xfer) +{ + struct e1_line *line = (struct e1_line *) xfer->user_data; + const struct ice1usb_irq *irq = (const struct ice1usb_irq *) xfer->buffer; + + if (!xfer->actual_length) { + LOGPLI(line, DE1D, LOGL_ERROR, "Zero-Length Interrupt transfer\n"); + goto out; + } + + switch (irq->type) { + case ICE1USB_IRQQ_T_ERRCNT: + if (xfer->actual_length < sizeof(*irq)) { + LOGPLI(line, DE1D, LOGL_ERROR, "Short ERRCNT interrupt: %u<%zu\n", + xfer->actual_length, sizeof(*irq)); + break; + } + rx_interrupt_errcnt(line, &irq->u.errors); + break; + default: + LOGPLI(line, DE1D, LOGL_INFO, "Unsupported interrupt 0x%02x\n", irq->type); + break; + } + +out: + resubmit_irq(line); +} + +static int resubmit_irq(struct e1_line *line) +{ + struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; + struct e1_usb_intf_data *id = (struct e1_usb_intf_data *) line->intf->drv_data; + struct libusb_transfer *xfr = libusb_alloc_transfer(0); + + libusb_fill_interrupt_transfer(xfr, id->devh, ld->ep_int, ld->irq.buf, sizeof(ld->irq.buf), + interrupt_ep_cb, line, 0); + return libusb_submit_transfer(xfr); +} // --------------------------------------------------------------------------- // Init / Probing @@ -316,7 +400,7 @@ continue; id = &cd->interface[i].altsetting[1]; - if ((id->bInterfaceClass != 0xff) || (id->bInterfaceSubClass != 0xe1) || (id->bNumEndpoints != 3)) + if ((id->bInterfaceClass != 0xff) || (id->bInterfaceSubClass != 0xe1) || (id->bNumEndpoints < 3)) continue; /* Get interface and set it up */ @@ -353,6 +437,8 @@ else if (line_data->pkt_size != id->endpoint[j].wMaxPacketSize) LOGP(DE1D, LOGL_ERROR, "Inconsistent max packet size %d vs %d\n", line_data->pkt_size, (int)id->endpoint[j].wMaxPacketSize); + } else if (id->endpoint[j].bmAttributes == 0x03) { + line_data->ep_int = id->endpoint[j].bEndpointAddress; } else { LOGP(DE1D, LOGL_ERROR, "Invalid EP %02x\n", id->endpoint[j].bEndpointAddress); } @@ -372,6 +458,9 @@ e1uf_start(line_data->flow_in); e1uf_start(line_data->flow_out); e1uf_start(line_data->flow_fb); + + if (line_data->ep_int) + resubmit_irq(line); } return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Gerrit-Change-Number: 21782 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 Dec 17 20:56:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 20:56:49 +0000 Subject: Change in osmo-e1d[master]: Add per-line rate counter group to count various errors References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21783 ) Change subject: Add per-line rate counter group to count various errors ...................................................................... Add per-line rate counter group to count various errors Change-Id: I766b717843d7cd8ac00d4ce18c38773ac50ec3e6 --- M src/e1d.h M src/intf_line.c M src/usb.c M src/vty.c 4 files changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/83/21783/1 diff --git a/src/e1d.h b/src/e1d.h index a7ba005..16d0fad 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -26,7 +26,15 @@ #include #include +#include +enum e1d_line_ctr { + LINE_CTR_LOS, + LINE_CTR_LOA, + LINE_CTR_CRC_ERR, + LINE_CTR_RX_OVFL, + LINE_CTR_TX_UNFL, +}; enum e1_ts_mode { E1_TS_MODE_OFF = 0, @@ -81,6 +89,7 @@ enum e1_line_mode mode; void *drv_data; + struct rate_ctr_group *ctrs; /* timeslots for channelized mode */ struct e1_ts ts[32]; diff --git a/src/intf_line.c b/src/intf_line.c index 5fd82b7..2ed9e66 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -33,6 +33,8 @@ #include #include +#include +#include #include #include "e1d.h" @@ -44,6 +46,22 @@ { 0, NULL } }; +static const struct rate_ctr_desc line_ctr_description[] = { + [LINE_CTR_LOS] = { "rx:signal_lost", "Rx Signal Lost" }, + [LINE_CTR_LOA] = { "rx:alignment_lost", "Rx Alignment Lost" }, + [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" }, +}; + +static const struct rate_ctr_group_desc line_ctrg_desc = { + .group_name_prefix = "e1d_line", + .group_description = "Counters for each line in e1d", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(line_ctr_description), + .ctr_desc = line_ctr_description, +}; + // --------------------------------------------------------------------------- // e1d structures // --------------------------------------------------------------------------- @@ -122,6 +140,9 @@ line->id = l->id + 1; } + line->ctrs = rate_ctr_group_alloc(line, &line_ctrg_desc, line->id); + OSMO_ASSERT(line->ctrs); + llist_add_tail(&line->list, &intf->lines); LOGPLI(line, DE1D, LOGL_NOTICE, "Created\n"); diff --git a/src/usb.c b/src/usb.c index 3a35a20..783f624 100644 --- a/src/usb.c +++ b/src/usb.c @@ -283,6 +283,14 @@ static int resubmit_irq(struct e1_line *line); +#define line_ctr_add(line, idx, add) rate_ctr_add(&(line)->ctrs->ctr[idx], add) + +/* compute how much advanced 'cur' is copared to 'prev', in modulo-0xffff for wraps */ +static uint32_t delta_mod_u16(uint32_t cur, uint32_t prev) +{ + return ((cur + 0xffff) - prev) % 0xffff; +} + static void rx_interrupt_errcnt(struct e1_line *line, const struct ice1usb_irq_err *errcnt) { struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; @@ -291,21 +299,25 @@ if (errcnt->crc != last->crc) { LOGPLI(line, DE1D, LOGL_ERROR, "CRC error count %d (was %d)\n", errcnt->crc, last->crc); + line_ctr_add(line, LINE_CTR_CRC_ERR, delta_mod_u16(errcnt->crc, last->crc)); } if (errcnt->align != last->align) { LOGPLI(line, DE1D, LOGL_ERROR, "ALIGNMENT error count %d (was %d)\n", errcnt->align, last->align); + line_ctr_add(line, LINE_CTR_LOA, delta_mod_u16(errcnt->align, last->align)); } if (errcnt->ovfl != last->ovfl) { LOGPLI(line, DE1D, LOGL_ERROR, "OVERFLOW error count %d (was %d)\n", errcnt->ovfl, last->ovfl); + line_ctr_add(line, LINE_CTR_RX_OVFL, delta_mod_u16(errcnt->ovfl, last->ovfl)); } if (errcnt->unfl != last->unfl) { LOGPLI(line, DE1D, LOGL_ERROR, "UNDERFLOW error count %d (was %d)\n", errcnt->unfl, last->unfl); + line_ctr_add(line, LINE_CTR_TX_UNFL, delta_mod_u16(errcnt->unfl, last->unfl)); } if ((errcnt->flags & ICE1USB_ERR_F_ALIGN_ERR) != (last->flags & ICE1USB_ERR_F_ALIGN_ERR)) { @@ -316,6 +328,8 @@ if ((errcnt->flags & ICE1USB_ERR_F_TICK_ERR) != (last->flags & ICE1USB_ERR_F_TICK_ERR)) { LOGPLI(line, DE1D, LOGL_ERROR, "Rx Clock %s\n", errcnt->flags & ICE1USB_ERR_F_TICK_ERR ? "LOST" : "REGAINED"); + if (errcnt->flags & ICE1USB_ERR_F_TICK_ERR) + line_ctr_add(line, LINE_CTR_LOS, 1); } ld->irq.last_errcnt = *errcnt; diff --git a/src/vty.c b/src/vty.c index 1caa54f..c145a9d 100644 --- a/src/vty.c +++ b/src/vty.c @@ -125,6 +125,8 @@ vty_out(vty, " SC: Mode %s, FD %d, Peer PID %d%s", get_value_string(e1_ts_mode_names, line->superchan.mode), line->superchan.fd, get_remote_pid(line->superchan.fd), VTY_NEWLINE); + + vty_out_rate_ctr_group(vty, " ", line->ctrs); } DEFUN(show_line, show_line_cmd, "show line [<0-255>]", -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I766b717843d7cd8ac00d4ce18c38773ac50ec3e6 Gerrit-Change-Number: 21783 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 Dec 17 21:24:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 21:24:36 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: un-configure E1 when altsetting 0 is selected. References: Message-ID: laforge has uploaded this change for review. ( 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, 55 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/84/21784/1 diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index bb21998..55ca4e5 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -263,46 +263,72 @@ 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 */ + 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 */ + 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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 21:51:18 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 17 Dec 2020 21:51:18 +0000 Subject: Change in libosmocore[master]: fix strncpy bug in gprs_ns2_fr_bind() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21780 ) Change subject: fix strncpy bug in gprs_ns2_fr_bind() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id53e940c7a39ab154966548f4173a179c5bc9151 Gerrit-Change-Number: 21780 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 21:51: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 Dec 17 21:51:45 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 17 Dec 2020 21:51:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_AR... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21779 ) Change subject: gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_ARRAY() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I494a6fb7ccd7938a39e8956f73ec4282da38d7fb Gerrit-Change-Number: 21779 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 17 Dec 2020 21:51: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 Dec 17 22:05:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 22:05:40 +0000 Subject: Change in osmo-pcu[master]: Convert GprsMS and helpers classes to C 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/+/21748 to look at the new patch set (#6). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/21748/6 -- 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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 17 22:09:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 17 Dec 2020 22:09:39 +0000 Subject: Change in osmo-bsc[master]: handover_test: implement as VTY shell In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21642 ) Change subject: handover_test: implement as VTY shell ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie238ebe41039d3fa44c9699937589e000883e052 Gerrit-Change-Number: 21642 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 22: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 Thu Dec 17 22:24:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 22:24:57 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: un-configure E1 when altsetting 0 is selected. 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-e1-hardware/+/21784 to look at the new patch set (#2). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/84/21784/2 -- 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: 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 Thu Dec 17 23:28:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 17 Dec 2020 23:28:08 +0000 Subject: Change in osmo-bsc[master]: handover_tests: add expected output In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21645 ) Change subject: handover_tests: add expected output ...................................................................... Patch Set 5: Code-Review-1 > You want for sure at least to drop coloring. ACK! > Also probably worth only logging notice+errors, and make sure no output from dependency libraries is outputed. Given that it's all about handover tests, I would expect DHO/DHODEC to be set to DEBUG, and other categories to ERROR. Logging OML related FSM stuff is for sure makes no sense in this context. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I387aa62eb2dd9896494aefa32e6d336106e0ecdc Gerrit-Change-Number: 21645 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 23:28: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 Dec 17 23:38:56 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 17 Dec 2020 23:38:56 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... Patch Set 7: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21692/7/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21692/7/src/gbproxy/gb_proxy_vty.c at 251 PS7, Line 251: DEFUN(show_gbproxy_cell, show_gbproxy_cell_cmd, "show gbproxy cell [stats]", This looks wrong to me: you have 4 words in the command vector, and 5 docstrings? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 7 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 17 Dec 2020 23:38: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 Thu Dec 17 23:43:29 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 17 Dec 2020 23:43:29 +0000 Subject: Change in osmo-bsc[master]: handover_tests: add expected output In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21645 ) Change subject: handover_tests: add expected output ...................................................................... Patch Set 5: Also, regarding empty *.ok files, is it possible to use 'cat /dev/null > expout' somehow? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I387aa62eb2dd9896494aefa32e6d336106e0ecdc Gerrit-Change-Number: 21645 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 17 Dec 2020 23:43: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 Thu Dec 17 23:46:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 23:46:41 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: USB control request handling 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-e1-hardware/+/21775 to look at the new patch set (#2). 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 M gateware/cores/no2e1 6 files changed, 220 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/75/21775/2 -- 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: 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 Thu Dec 17 23:46:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 17 Dec 2020 23:46:41 +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 (#4). 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, 113 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/15/21715/4 -- 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: 4 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 admin at opensuse.org Fri Dec 18 05:12:40 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 18 Dec 2020 05:12:40 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fdc3a57d62c4_22fc2aafec8545f010709d7@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: [ 105s] [COMPILING apps/dfu/main.c] [ 105s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 105s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 105s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 105s] Memory region Used Size Region Size %age Used [ 105s] rom: 16580 B 16 KB 101.20% [ 105s] 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 [ 105s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 105s] /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' [ 105s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 105s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 105s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 105s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 105s] collect2: error: ld returned 1 exit status [ 105s] % [ 105s] make[2]: *** [Makefile:234: flash] Error 1 [ 105s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 105s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 105s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 105s] dh_auto_build: error: make -j1 returned exit code 2 [ 105s] make: *** [debian/rules:16: build] Error 25 [ 105s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 105s] ### VM INTERACTION START ### [ 109s] [ 98.690189] sysrq: Power Off [ 109s] [ 98.693257] reboot: Power down [ 109s] ### VM INTERACTION END ### [ 109s] [ 109s] hci-cnode1-m0 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 18 05:12:12 UTC 2020. [ 109s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 18 05:33:35 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 18 Dec 2020 05:33:35 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fdc3f4359ab5_22fc2aafec8545f010752ae@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] [ 161s] [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] [ 153.635913] sysrq: Power Off [ 165s] [ 153.640101] reboot: Power down [ 166s] ### VM INTERACTION END ### [ 166s] [ 166s] lamb26 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 18 05:33:16 UTC 2020. [ 166s] -- 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 Dec 18 10:39:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:39:01 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... Patch Set 4: Code-Review-1 FYI: daniel and I had a phone call some days ago, from my memory we agreed that the 'sgsn' would be come a first-class object (with name, linked into a global list in the gbproxy_config) and that we won't be piggy-backing the NRI bits into the NSE. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 18 Dec 2020 10: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 Fri Dec 18 10:42:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:42:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 to look at the new patch set (#8). Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... gbproxy: Add "show gbproxy cell ..." VTY command This allows the user to inspect CELL related gb-proxy state. Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 42 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/92/21692/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Fri Dec 18 10:42:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:42:09 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21692/7/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21692/7/src/gbproxy/gb_proxy_vty.c at 251 PS7, Line 251: DEFUN(show_gbproxy_cell, show_gbproxy_cell_cmd, "show gbproxy cell [stats]", > This looks wrong to me: you have 4 words in the command vector, and 5 docstrings? nice catch. Indeed I was first thinking of adding an additional qualifier like "all" which we can then later exntend with some other qualifier like "bvci ..." or "cell-id ..." But I guess we can do the same without that "all". Will fix. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 18 Dec 2020 10:42:09 +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 Dec 18 10:42:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:42:43 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 18 Dec 2020 10:42: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 Dec 18 10:43:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:43:12 +0000 Subject: Change in osmo-ci[master]: Add master + gerrit job for osmo-e1-hardware In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21764 ) Change subject: Add master + gerrit job for osmo-e1-hardware ...................................................................... Patch Set 3: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef Gerrit-Change-Number: 21764 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 10:43: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 Dec 18 10:43:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:43:16 +0000 Subject: Change in osmo-ci[master]: Add master + gerrit job for osmo-e1-hardware In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21764 ) Change subject: Add master + gerrit job for osmo-e1-hardware ...................................................................... Add master + gerrit job for osmo-e1-hardware Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 46 insertions(+), 0 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 8d3efc7..8d3e2cd 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -117,6 +117,26 @@ gerrit_project: 'erlang/{repos}' cmd: '{docker_run} {docker_img_erlang} /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 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} /build/contrib/jenkins.sh' + - osmo-ggsn: a1_name: GTP a1: !!python/tuple [--enable-gtp-linux,--disable-gtp-linux] @@ -309,6 +329,8 @@ choosing-strategy: gerrit wipe-workspace: false skip-tag: true + submodule: + recursive: true triggers: - gerrit: diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index a7f4f30..566f1bf 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -197,6 +197,28 @@ concurrent: false cmd: 'PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./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 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' + - osmo-fl2k - osmo-ggsn: a1_name: GTP @@ -397,6 +419,8 @@ name: wipe-workspace: false skip-tag: true + submodule: + recursive: true triggers: - pollscm: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I02295e157f909bca985c1919a7828da0554ee1ef Gerrit-Change-Number: 21764 Gerrit-PatchSet: 3 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 Fri Dec 18 10:47:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:47:42 +0000 Subject: Change in osmo-pcu[master]: Convert GprsMS and helpers classes to C In-Reply-To: References: Message-ID: laforge 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+1 it's of course a masive change and hard to review (no matter how you do it). I presume you have executed all available tests against this without any regressions and did some manual testing, too? -- 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: Fri, 18 Dec 2020 10:47: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 Dec 18 10:49:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:49:28 +0000 Subject: Change in pysim[master]: Readme.md: update apt-get invocation for python3 dep. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21680 ) Change subject: Readme.md: update apt-get invocation for python3 dep. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icb09204d6bc0d89fa8b793ff6df773cdefc19c5b Gerrit-Change-Number: 21680 Gerrit-PatchSet: 1 Gerrit-Owner: roh Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 18 Dec 2020 10:49: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 Dec 18 10:49:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:49:31 +0000 Subject: Change in pysim[master]: Readme.md: update apt-get invocation for python3 dep. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21680 ) Change subject: Readme.md: update apt-get invocation for python3 dep. ...................................................................... Readme.md: update apt-get invocation for python3 dep. Change-Id: Icb09204d6bc0d89fa8b793ff6df773cdefc19c5b --- M README.md 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/README.md b/README.md index 7074ffa..105ca3f 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,8 @@ Example for Debian: - apt-get install python-pyscard python-serial python-pip - pip install pytlv + apt-get install python3-pyscard python3-serial python3-pip + pip3 install pytlv Mailing List -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icb09204d6bc0d89fa8b793ff6df773cdefc19c5b Gerrit-Change-Number: 21680 Gerrit-PatchSet: 1 Gerrit-Owner: roh 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 Dec 18 10:50:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:50:37 +0000 Subject: Change in osmo-bsc[master]: vty: add commands for MS/BS Power Control parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: vty: add commands for MS/BS Power Control parameters ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 10:50: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 Dec 18 10:52:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:52:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests_SNS: improve SGSN originated BVC-RESETs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20923 ) Change subject: PCU_Tests_SNS: improve SGSN originated BVC-RESETs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id681749d75073c1d50a4b0a2e86f0a2dd0955b45 Gerrit-Change-Number: 20923 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 10:52: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 Dec 18 10:52:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:52:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests_SNS: improve SGSN originated BVC-RESETs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20923 ) Change subject: PCU_Tests_SNS: improve SGSN originated BVC-RESETs ...................................................................... PCU_Tests_SNS: improve SGSN originated BVC-RESETs The BVC-RESETs are a little bit more complicated. The PCU will send a BVC-RESET after the NSE become available. Ensure the RESET is received and ignored so there is no race condition if both sides send a BVC-RESET at the same time. The test case TC_sns_1c1u_so_bvc_reset is still failing because the PCU can't handle BVC-RESETs properly (both PTP and signalling). Change-Id: Id681749d75073c1d50a4b0a2e86f0a2dd0955b45 --- M library/RAW_NS.ttcn M pcu/PCU_Tests_SNS.ttcn 2 files changed, 32 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/library/RAW_NS.ttcn b/library/RAW_NS.ttcn index 8540f38..7f7b6c4 100644 --- a/library/RAW_NS.ttcn +++ b/library/RAW_NS.ttcn @@ -68,16 +68,23 @@ } -function f_ns_exp(template PDU_NS exp_rx, integer idx := 0) runs on RAW_NS_CT return PDU_NS { +public altstep ax_rx_fail_on_any_ns(integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom nrf; - log("f_ns_exp() expecting ", exp_rx); - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(exp_rx)) -> value 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; } diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index aed363b..ea78761 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -297,11 +297,21 @@ f_outgoing_ns_alive(1); if (sgsn_originated_reset) { + /* Expect BVC-RESET, but ignore it to prevent a race condition of BVC RESETs */ + var template PDU_NS pdu := tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch tr_BVC_RESET(?, 0, omit)); + f_ns_exp(pdu); + /* SGSN originated BVC-RESET on an uninitialized signalling BVC */ f_tx_bvc_reset_rx_ack(0, omit, omit); + + /* Expect BVC-RESET PTP BVC, but ignore it to prevent a race condition of BVC RESETs */ + pdu := tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch tr_BVC_RESET(?, mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id)); + f_ns_exp(pdu); + /* SGSN originated BVC-RESET on an uninitialized PTP BVC */ f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, omit, mp_gb_cfg.bvc[0].cell_id); } else { - /* Expect BVC-RESET for signaling (0) and ptp BVCI */ + /* Expect BVC-RESET for signaling BVCI=0 */ as_rx_bvc_reset_tx_ack(0, omit, omit, oneshot := true); + /* Expect BVC-RESET from the PCU on PTP BVC */ as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, omit, oneshot := true); } /* Expect UNBLOCK for ptp BVCI on signaling NS-VC (idx==0) */ @@ -347,11 +357,20 @@ f_outgoing_ns_alive_no_ack(idx := 0); if (sgsn_originated_reset) { + /* Expect BVC-RESET, but ignore it to prevent a race condition of BVC RESETs */ + var template PDU_NS pdu := tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch tr_BVC_RESET(?, 0, omit)); + f_ns_exp(pdu, idx := 1); + /* SGSN originated BVC-RESET on an uninitialized sign BVC */ f_tx_bvc_reset_rx_ack(0, omit, omit, idx := 1); + + /* Expect BVC-RESET PTP BVC, but ignore it to prevent a race condition of BVC RESETs */ + pdu := tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch tr_BVC_RESET(?, mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id)); + f_ns_exp(pdu, idx := 1); f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, omit, mp_gb_cfg.bvc[0].cell_id, idx := 1); } else { - /* Expect BVC-RESET for signaling BVCI=0 and ptp BVCI */ + /* Expect BVC-RESET for signaling BVCI=0 */ as_rx_bvc_reset_tx_ack(0, omit, omit, oneshot := true, idx := 1); + /* Expect BVC-RESET from the PCU on PTP BVC */ as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, omit, oneshot := true, idx := 1); } /* Expect UNBLOCK for ptp BVCI on signaling NS-VC (idx==1) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id681749d75073c1d50a4b0a2e86f0a2dd0955b45 Gerrit-Change-Number: 20923 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 Dec 18 10:52:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:52:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: fix crash when frame relay interface doesn't exists In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21750 ) Change subject: gprs_ns2: fr: fix crash when frame relay interface doesn't exists ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I815b6ef5c3df780ac94461a05975a2b70898b01e Gerrit-Change-Number: 21750 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 10: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 Fri Dec 18 10:52:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:52:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: fix crash when frame relay interface doesn't exists In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21750 ) Change subject: gprs_ns2: fr: fix crash when frame relay interface doesn't exists ...................................................................... gprs_ns2: fr: fix crash when frame relay interface doesn't exists When a frame relay interface doesn't exist gprs_ns2_fr_bind() would detect this but still return a success. Change-Id: I815b6ef5c3df780ac94461a05975a2b70898b01e --- M src/gb/gprs_ns2_fr.c 1 file changed, 2 insertions(+), 2 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_fr.c b/src/gb/gprs_ns2_fr.c index 8147f66..fc6f166 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -514,8 +514,8 @@ fr_link->tx_cb_data = bind; priv->link = fr_link; - priv->ifindex = devname2ifindex(netif); - if (priv->ifindex < 0) { + priv->ifindex = rc = devname2ifindex(netif); + if (rc < 0) { LOGP(DLNS, LOGL_ERROR, "Can not get interface index for interface %s\n", netif); goto err_fr; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I815b6ef5c3df780ac94461a05975a2b70898b01e Gerrit-Change-Number: 21750 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 Dec 18 10:56:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 10:56:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21752/3/src/gb/gprs_ns2_fr.c File src/gb/gprs_ns2_fr.c: https://gerrit.osmocom.org/c/libosmocore/+/21752/3/src/gb/gprs_ns2_fr.c at 449 PS3, Line 449: st as we just saw some fall-out from other strncpy (instead of osmo_strlcpy), it might make sense to go for the latter straight away? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 10:56: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 Dec 18 11:11:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 11:11:57 +0000 Subject: Change in libosmocore[master]: fix strncpy bug in gprs_ns2_fr_bind() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21780 ) Change subject: fix strncpy bug in gprs_ns2_fr_bind() ...................................................................... Patch Set 1: @lynxis, this is what I referred to in your fr-ioctl related patch -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id53e940c7a39ab154966548f4173a179c5bc9151 Gerrit-Change-Number: 21780 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 18 Dec 2020 11:11: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 Fri Dec 18 11:12:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 11:12:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_AR... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21779 ) Change subject: gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_ARRAY() ...................................................................... gprs_ns2_fr.c: compiler error: replace strncpy() with OSMO_STRLCPY_ARRAY() My gcc (Debian 8.3.0-6) 8.3.0 refuses to build this strncpy() use: it issues the buffer length as n and thus potentially fails to account for the terminating nul. The line after that fixes the problem, so it's not an actual bug. Anyway, we have a policy to never use strncpy(), and have osmo_strlcpy() and OSMO_STRLCPY_ARRAY() for this. This strncpy() was introduced last month during first addition of gprs_ns2_fr.c: commit 841817ec52186029ca01f0c082ed84f2dc5ffcc5 ns2: add support for frame relay Change-Id Id3b49f93d33c271f77cd9c9db03cde6b727a4d30 Change-Id: I494a6fb7ccd7938a39e8956f73ec4282da38d7fb --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 2 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/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index fc6f166..1ff80ed 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -296,8 +296,7 @@ memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); - ifr.ifr_name[sizeof(ifr.ifr_name)-1] = 0; + OSMO_STRLCPY_ARRAY(ifr.ifr_name, ifname); rc = ioctl(sk, SIOCGIFINDEX, &ifr); close(sk); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I494a6fb7ccd7938a39e8956f73ec4282da38d7fb Gerrit-Change-Number: 21779 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Dec 18 11:12:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 11:12:16 +0000 Subject: Change in libosmocore[master]: fix strncpy bug in gprs_ns2_fr_bind() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21780 ) Change subject: fix strncpy bug in gprs_ns2_fr_bind() ...................................................................... fix strncpy bug in gprs_ns2_fr_bind() This use of strncpy() fails to account for the terminating nul character. Use OSMO_STRLCPY_ARRAY() instead. (Interestingly my compiler doesn't complain about this one, though it failed on another similar use of strncpy().) Change-Id: Id53e940c7a39ab154966548f4173a179c5bc9151 --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: fixeria: 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 1ff80ed..782e5a3 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -497,7 +497,7 @@ rc = -EINVAL; goto err_priv; } - strncpy(priv->netif, netif, sizeof(priv->netif)); + OSMO_STRLCPY_ARRAY(priv->netif, netif); if (result) *result = bind; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id53e940c7a39ab154966548f4173a179c5bc9151 Gerrit-Change-Number: 21780 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Fri Dec 18 11:45:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 11:45:10 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21263 ) Change subject: Introduce osmo-ran docker image set up ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 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 Fri Dec 18 11:45:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 18 Dec 2020 11:45:33 +0000 Subject: Change in docker-playground[master]: Introduce osmo-ran docker image set up In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21263 ) Change subject: Introduce osmo-ran docker image set up ...................................................................... Introduce osmo-ran docker image set up See osmo-ran/README.md in this commit for a description. Related: SYS#4889 Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 --- M jenkins-common.sh M make/Makefile A osmo-ran/Dockerfile A osmo-ran/Makefile A osmo-ran/README.md A osmo-ran/Release.key A osmo-ran/jenkins.sh A osmo-ran/osmocom/osmo-bsc.cfg A osmo-ran/osmocom/osmo-bts-trx.cfg A osmo-ran/osmocom/osmo-mgw.cfg A osmo-ran/osmocom/osmo-pcu.cfg A osmo-ran/osmocom/osmo-trx-ipc.cfg A osmo-ran/osmocom/osmo-trx-uhd.cfg A osmo-ran/split/jenkins-split.sh A osmo-ran/split/ran-bsc_mgw/Dockerfile A osmo-ran/split/ran-bsc_mgw/Makefile A osmo-ran/split/ran-bsc_mgw/Release.key A osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg A osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg A osmo-ran/split/ran-bts_pcu/Dockerfile A osmo-ran/split/ran-bts_pcu/Makefile A osmo-ran/split/ran-bts_pcu/Release.key A osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg A osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg A osmo-ran/split/ran-trx-ipc/Dockerfile A osmo-ran/split/ran-trx-ipc/Makefile A osmo-ran/split/ran-trx-ipc/Release.key A osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg A osmo-ran/split/ran-trx-uhd/Dockerfile A osmo-ran/split/ran-trx-uhd/Makefile A osmo-ran/split/ran-trx-uhd/Release.key A osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg A systemd/Dockerfile A systemd/Makefile 34 files changed, 1,278 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Verified diff --git a/jenkins-common.sh b/jenkins-common.sh index fdcfd40..e172a4f 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -44,6 +44,7 @@ # Dockerfile for multiple distributions, without duplicating configs for # each distribution. Dependencies listed in docker_depends() are built # automatically too. +IMAGE_DIR_PREFIX=".." docker_images_require() { local i local from_line @@ -68,13 +69,13 @@ # Pull upstream base images pull_arg="--pull" - from_line="$(grep '^FROM' ../$dir/Dockerfile)" + from_line="$(grep '^FROM' ${IMAGE_DIR_PREFIX}/${dir}/Dockerfile)" if echo "$from_line" | grep -q '$USER'; then pull_arg="" fi echo "Building image: $i (export NO_DOCKER_IMAGE_BUILD=1 to prevent this)" - make -C "../$dir" \ + make -C "${IMAGE_DIR_PREFIX}/${dir}" \ PULL="$pull_arg" \ UPSTREAM_DISTRO="$upstream_distro_arg" \ DISTRO="$distro_arg" \ @@ -108,6 +109,24 @@ docker network create --internal --subnet $SUB4 --ipv6 --subnet $SUB6 $NET_NAME } +network_bridge_create() { + NET=$1 + if docker network ls | grep -q $NET_NAME; then + echo removing stale network and containers... + network_clean + network_remove + fi + SUB4="172.18.$NET.0/24" + SUB6="fd02:db8:$NET::/64" + echo Creating network $NET_NAME + docker network create \ + --driver=bridge \ + --subnet $SUB4 \ + --ipv6 --subnet $SUB6 \ + -o "com.docker.network.bridge.host_binding_ipv4"="172.18.$NET.1" \ + $NET_NAME +} + network_remove() { echo Removing network $NET_NAME docker network remove $NET_NAME diff --git a/make/Makefile b/make/Makefile index 4f2263b..7bb0345 100644 --- a/make/Makefile +++ b/make/Makefile @@ -37,6 +37,8 @@ DISTRO?=debian-stretch OSMOCOM_REPO_MIRROR?=http://download.opensuse.org # Use if down: OSMOCOM_REPO_MIRROR=http://ftp.uni-stuttgart.de/opensuse +OSMOCOM_REPO_VERSION?=latest +# Use "nightly" to use the nightly repo RELEASE_SUPPORT := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))/.make-release-support IMAGE?=$(REGISTRY_HOST)/$(USER)/$(NAME) @@ -67,6 +69,7 @@ --build-arg UPSTREAM_DISTRO=$(UPSTREAM_DISTRO) \ --build-arg DISTRO=$(DISTRO) \ --build-arg OSMOCOM_REPO_MIRROR=$(OSMOCOM_REPO_MIRROR) \ + --build-arg OSMOCOM_REPO_VERSION=$(OSMOCOM_REPO_VERSION) \ --build-arg LIBOSMOCORE_BRANCH=$(LIBOSMOCORE_BRANCH) \ --build-arg OSMO_BB_BRANCH=$(OSMO_BB_BRANCH) \ --build-arg OSMO_BSC_BRANCH=$(OSMO_BSC_BRANCH) \ diff --git a/osmo-ran/Dockerfile b/osmo-ran/Dockerfile new file mode 100644 index 0000000..4b5195e --- /dev/null +++ b/osmo-ran/Dockerfile @@ -0,0 +1,94 @@ +ARG USER +FROM $USER/systemd +# Arguments used after FROM must be specified again +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" +ARG OSMOCOM_REPO_VERSION=latest + +MAINTAINER Pau Espin Pedrol + +ARG OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/" +ARG OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/" + +COPY Release.key /tmp/Release.key + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + gnupg && \ + apt-key add /tmp/Release.key && \ + rm /tmp/Release.key && \ + echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \ + ;; \ + centos*) \ + echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \ + dnf install -y dnf-utils wget && \ + yum config-manager --set-enabled PowerTools && \ + cd /etc/yum.repos.d/ && \ + wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \ + ;; \ + esac + +# we need to add this to invalidate the cache once the repository is updated. +# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM +ADD $OSMOCOM_REPO_DEBIAN/Release /tmp/Release +ADD $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + less \ + apt-utils \ + strace \ + tcpdump \ + telnet \ + vim \ + osmo-bsc \ + osmo-bsc-ipaccess-utils \ + osmo-bts-trx \ + osmo-mgw \ + osmo-pcu \ + osmo-trx-ipc \ + osmo-trx-uhd && \ + apt-get clean \ + ;; \ + centos*) \ + dnf install -y \ + less \ + strace \ + tcpdump \ + telnet \ + vim \ + osmo-bsc \ + osmo-bsc-ipaccess-utils \ + osmo-bts \ + osmo-mgw \ + osmo-pcu \ + osmo-trx-ipc \ + osmo-trx-uhd \ + ;; \ + esac + +RUN systemctl enable osmo-bsc osmo-bts-trx osmo-mgw osmo-pcu + +WORKDIR /tmp +RUN cp -r /etc/osmocom /etc/osmocom-default +VOLUME /data +VOLUME /etc/osmocom + +COPY osmocom/* /etc/osmocom/ + +CMD ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"] + +#osmo-bsc: VTY CTRL +EXPOSE 4242 4249 +#osmo-bts: VTY CTRL +EXPOSE 4241 4238 +#osmo-mgw: VTY CTRL +EXPOSE 4243 4267 +#osmo-pcu: VTY CTRL +EXPOSE 4240 +#osmo-trx: VTY CTRL +#EXPOSE 4237 4236 diff --git a/osmo-ran/Makefile b/osmo-ran/Makefile new file mode 100644 index 0000000..80b1069 --- /dev/null +++ b/osmo-ran/Makefile @@ -0,0 +1,2 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.200 -v bsc-vol:/data +include ../make/Makefile diff --git a/osmo-ran/README.md b/osmo-ran/README.md new file mode 100644 index 0000000..db534a1 --- /dev/null +++ b/osmo-ran/README.md @@ -0,0 +1,55 @@ +This directory provides an environment to set up and run an Osmocom RAN +(osmo-bts, osmo-pcu, osmo-bsc, osmo-mgw) managed by systemd, all run inside a +docker container. + +Easiest way to build + run the setup is to execute _jenkins.sh_ in this same +directory. + +This script will build the Dockerfile image, then set up a bridge network on +subnet `172.18.$SUBNET.0/24`, where the IP address `172.18.$SUBNET.200` is +assigned to the internal network interface inside the docker container (and +which RAN processes will be using), and `172.18.$SUBNET.1` is assigned to the +bridge network interface outside the docker container. All The VTY and CTRL +ports are available on both `172.18.$SUBNET.200` and also on `172.18.$SUBNET.1` +(through docker port mapping). + +Shared directories between docker container and the host are mounted in +_/tmp/logs/ran-$SUBNET/_ on the host, with _osmocom_ subdirectory mapping to +container's _/etc/osmocom_, and _data_ to _/data:_. + +The script has the following parameters (environment variables): +- `SUBNET`: The IPv4 subnet to configure and use (`172.18.$SUBNET.0/24`) when + running the container (defaults to `25`) +- `SGSN_IP`: The IP address where the SGSN outside the docker container listens to (Gb interface) +- `STP_IP`: The IP address where the STP outside the docker container listens to (A interface) +- `TRX_IP`: The IP address where the OsmoTRX outside the docker container listens to (TRXC/TRXD interface) +- `IMAGE_SUFFIX`: Type of base image to use: Leave unset to build on top of + Debian (default), set to `centos8` to run on top of CentOS8 distribution +- `OSMOCOM_REPO_VERSION`: Osmocom OBS repository version to use: `nightly` or `latest` (default). + +The above IP addresses will be replaced by _jenkins.sh_ from tokens of the same +name in the provided configuration files, available in _osmocom/_ directory, +which will be then placer inside docker image's `/etc/osmocom/` directory, where +the osmocom projects will read the configuration by default (see systemd +services). + +Example: +Run Osmocom RAN on a Centos8 distro with osmocom's nightly repository on subnet 26: +``` +OSMOCOM_REPO_VERSION="nightly" IMAGE_SUFFIX="centos8" SUBNET=26 ./jenkins.sh +``` + +If several independent RANs are to be set up by the user, it's up to them to +configure iptables rules to forbid access from one docker container to another. +It should be doable pretty easily by rejecting connections between +`172.18.$subnetA.0/24` and `172.18.$subnetB.0/24`. + +The docker container started by _jenkins.sh_ is running systemd and hence is +expected to run forever (until the container instance is killed through docker +or by killing the process, eg. pressing CTRL+C on the terminal). + +While the container is running, shell access to to it in order inspect the RAN +processes managed by systemd can be obtained by using: +``` +docker exec -it nonjenkins-ran-subnet$SUBNET bash +``` diff --git a/osmo-ran/Release.key b/osmo-ran/Release.key new file mode 100644 index 0000000..a737316 --- /dev/null +++ b/osmo-ran/Release.key @@ -0,0 +1,20 @@ +-----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----- diff --git a/osmo-ran/jenkins.sh b/osmo-ran/jenkins.sh new file mode 100755 index 0000000..1b5d93a --- /dev/null +++ b/osmo-ran/jenkins.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +. ../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX?centos8}" +if [ "x$IMAGE_SUFFIX" != "x" ]; then + IMAGE_SUFFIX="-${IMAGE_SUFFIX}" # append dash +fi +docker_images_require \ + "systemd" \ + "osmo-ran$IMAGE_SUFFIX" + +SUBNET=${SUBNET:-25} +IPSUFFIX=200 +NET_NAME="osmo-ran-subnet$SUBNET" +network_bridge_create $SUBNET + +VOL_RAN_DIR="$VOL_BASE_DIR/ran-$SUBNET" +mkdir $VOL_RAN_DIR +mkdir $VOL_RAN_DIR/data +mkdir $VOL_RAN_DIR/osmocom +cp osmocom/* $VOL_RAN_DIR/osmocom/ + +DOCKER_IN_IP="172.18.$SUBNET.$IPSUFFIX" +SGSN_IP="${SGSN_IP:-192.168.30.1}" +STP_IP="${STP_IP:-192.168.30.1}" +TRX_IP="${TRX_IP:-192.168.30.100}" +sed -i "s/\$DOCKER_IN_IP/${DOCKER_IN_IP}/g" $VOL_RAN_DIR/osmocom/* +sed -i "s/\$SGSN_IP/${SGSN_IP}/g" $VOL_RAN_DIR/osmocom/* +sed -i "s/\$STP_IP/${STP_IP}/g" $VOL_RAN_DIR/osmocom/* +sed -i "s/\$TRX_IP/${TRX_IP}/g" $VOL_RAN_DIR/osmocom/* + +echo Starting container with RAN +docker run --rm \ + $(docker_network_params $SUBNET 200) \ + --privileged \ + --ulimit core=-1 \ + -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ + -v $VOL_RAN_DIR/data:/data \ + -v $VOL_RAN_DIR/osmocom:/etc/osmocom \ + -p 4242:4242 -p 4249:4249 \ + -p 4241:4241 -p 4238:4238 \ + -p 4243:4243 -p 4267:4267 \ + -p 4240:4240 -p 23010:23010 \ + --name ${BUILD_TAG}-ran-subnet$SUBNET \ + $DOCKER_ARGS \ + $REPO_USER/osmo-ran$IMAGE_SUFFIX +network_remove diff --git a/osmo-ran/osmocom/osmo-bsc.cfg b/osmo-ran/osmocom/osmo-bsc.cfg new file mode 100644 index 0000000..af53647 --- /dev/null +++ b/osmo-ran/osmocom/osmo-bsc.cfg @@ -0,0 +1,123 @@ +line vty + no login + bind 0.0.0.0 +! +e1_input + e1_line 0 driver ipa +network + network country code 234 + mobile network code 70 + 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 + bts 0 + type sysmobts + band DCS1800 + cell_identity 0 + location_area_code 5 + 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 + ip.access unit_id 6969 0 + oml ip.access stream_id 255 line 0 + codec-support fr amr + gprs mode egprs + gprs routing area 0 + gprs network-control-order nc1 + gprs cell bvci 1800 + gprs nsei 1800 + gprs nsvc 0 nsvci 1800 + gprs nsvc 0 local udp port 23020 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip $SGSN_IP + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + ! to use full TRX power, set max_power_red 0 + max_power_red 4 + 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 PDCH + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + !phys_chan_config TCH/F + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + !phys_chan_config TCH/F + hopping enabled 0 +! +cs7 instance 0 + point-code 0.0.2 + asp asp0 2905 0 m3ua + local-ip $DOCKER_IN_IP + remote-ip $STP_IP + as as0 m3ua + asp asp0 + routing-key 30 0.0.2 + traffic-mode loadshare + sccp-address bsc_local + point-code 0.0.2 + routing-indicator PC + sccp-address msc_remote + point-code 0.23.1 + routing-indicator PC +! +msc 0 + no bsc-welcome-text + no bsc-msc-lost-text + no bsc-grace-text + type normal + allow-emergency allow + codec-list hr3 fr3 + !mgw remote-ip 192.168.30.1 + mgw remote-ip 127.0.0.1 + mgw remote-port 2427 + 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 + msc-addr msc_remote + bsc-addr bsc_local +bsc + mid-call-timeout 0 + no missing-msc-text diff --git a/osmo-ran/osmocom/osmo-bts-trx.cfg b/osmo-ran/osmocom/osmo-bts-trx.cfg new file mode 100644 index 0000000..20aeae0 --- /dev/null +++ b/osmo-ran/osmocom/osmo-bts-trx.cfg @@ -0,0 +1,36 @@ +! +! OsmoBTS () configuration saved from vty +!! +! +log stderr + logging color 1 + logging timestamp 0 + logging level rsl notice + logging level oml notice + logging level rll notice + logging level rr notice + logging level meas error + logging level pag error + logging level l1c error + logging level l1p error + logging level dsp error + logging level abis error +! +line vty + no login + bind 0.0.0.0 +! +phy 0 + instance 0 + osmotrx ip local $DOCKER_IN_IP + osmotrx ip remote $TRX_IP +bts 0 + band 1800 + ipa unit-id 6969 0 + oml remote-ip 127.0.0.1 + gsmtap-sapi ccch + gsmtap-sapi pdtch + trx 0 + phy 0 instance 0 +cpu-sched + policy rr 1 diff --git a/osmo-ran/osmocom/osmo-mgw.cfg b/osmo-ran/osmocom/osmo-mgw.cfg new file mode 100644 index 0000000..421816f --- /dev/null +++ b/osmo-ran/osmocom/osmo-mgw.cfg @@ -0,0 +1,22 @@ +! +! MGCP configuration example +! +line vty + no login + bind 0.0.0.0 +! +mgcp + bind ip 127.0.0.1 + rtp port-range 4002 16000 + rtp bind-ip $DOCKER_IN_IP + rtp ip-probing + rtp ip-tos 184 + bind port 2427 + sdp audio payload number 98 + sdp audio payload name GSM + number endpoints 31 + loop 0 + force-realloc 1 + rtcp-omit + rtp-patch ssrc + rtp-patch timestamp diff --git a/osmo-ran/osmocom/osmo-pcu.cfg b/osmo-ran/osmocom/osmo-pcu.cfg new file mode 100644 index 0000000..2e31cbc --- /dev/null +++ b/osmo-ran/osmocom/osmo-pcu.cfg @@ -0,0 +1,11 @@ +! +line vty + no login + bind 0.0.0.0 +! +pcu + flow-control-interval 10 + cs 2 + alloc-algorithm dynamic + alpha 0 + gamma 0 diff --git a/osmo-ran/osmocom/osmo-trx-ipc.cfg b/osmo-ran/osmocom/osmo-trx-ipc.cfg new file mode 100644 index 0000000..3241950 --- /dev/null +++ b/osmo-ran/osmocom/osmo-trx-ipc.cfg @@ -0,0 +1,33 @@ +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 1 + logging print file basename + logging level set-all notice +! +line vty +no login +bind 0.0.0.0 +! +cpu-sched + policy rr 18 +trx + bind-ip 127.0.0.1 + remote-ip 127.0.0.1 + ! 28 dB offset below is valid only for the B2xx in 1800 MHz band, see + ! https://osmocom.org/issues/4468 for more details + rssi-offset 28.000000 + tx-sps 4 + rx-sps 4 + clock-ref external + egprs disable + ext-rach disable + dev-args ipc_msock=/tmp/ipc_sock0 + multi-arfcn disable + chan 0 + tx-path TX/RX + rx-path RX2 + chan 1 + tx-path TX/RX + rx-path RX2 diff --git a/osmo-ran/osmocom/osmo-trx-uhd.cfg b/osmo-ran/osmocom/osmo-trx-uhd.cfg new file mode 100644 index 0000000..234a2ee --- /dev/null +++ b/osmo-ran/osmocom/osmo-trx-uhd.cfg @@ -0,0 +1,22 @@ +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 1 + logging print file basename + logging level set-all notice +! +line vty +no login +bind 0.0.0.0 +! +cpu-sched + policy rr 18 +trx + bind-ip 127.0.0.1 + remote-ip 127.0.0.1 + egprs disable + tx-sps 4 + rx-sps 4 + clock-ref external + chan 0 diff --git a/osmo-ran/split/jenkins-split.sh b/osmo-ran/split/jenkins-split.sh new file mode 100755 index 0000000..5cecf4a --- /dev/null +++ b/osmo-ran/split/jenkins-split.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +. ../../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX?centos8}" +if [ "x$IMAGE_SUFFIX" != "x" ]; then + IMAGE_SUFFIX="-${IMAGE_SUFFIX}" # append dash +fi + +IMAGE_DIR_PREFIX="../.." docker_images_require \ + "systemd" + +networks=() +docker_names=() + +SUBNET=${SUBNET:-25} + +NET_NAME="osmo-ran-subnet$subnet" +networks+=("$NET_NAME") +network_bridge_create $SUBNET + +#$1:image_name, $2: subnet, $3: ip suffix, $4: docker args +run_image() { + local image_name=$1 + local subnet=$2 + local ipsuffix=$3 + local docker_args=$4 + + IMAGE_DIR_PREFIX="." + docker_images_require \ + $image_name + + VOL_RAN_DIR="$VOL_BASE_DIR/$image_name-$subnet" + mkdir $VOL_RAN_DIR + mkdir $VOL_RAN_DIR/data + mkdir $VOL_RAN_DIR/osmocom + cp $IMAGE_DIR_PREFIX/${image_name}/osmocom/* $VOL_RAN_DIR/osmocom/ + + DOCKER_IN_IP="172.18.$subnet.$ipsuffix" + SGSN_IP="${SGSN_IP:-192.168.30.1}" + STP_IP="${STP_IP:-192.168.30.1}" + BSC_IP="172.18.$SUBNET.200" + MGW_IP="172.18.$SUBNET.200" + BTS_IP="172.18.$SUBNET.201" + PCU_IP="172.18.$SUBNET.201" + TRX_IP="${TRX_IP:-172.18.$SUBNET.202}" + sed -i "s/\$DOCKER_IN_IP/${DOCKER_IN_IP}/g" $VOL_RAN_DIR/osmocom/* + sed -i "s/\$SGSN_IP/${SGSN_IP}/g" $VOL_RAN_DIR/osmocom/* + sed -i "s/\$STP_IP/${STP_IP}/g" $VOL_RAN_DIR/osmocom/* + sed -i "s/\$BSC_IP/${BSC_IP}/g" $VOL_RAN_DIR/osmocom/* + sed -i "s/\$MGW_IP/${MGW_IP}/g" $VOL_RAN_DIR/osmocom/* + sed -i "s/\$BTS_IP/${BTS_IP}/g" $VOL_RAN_DIR/osmocom/* + sed -i "s/\$PCU_IP/${PCU_IP}/g" $VOL_RAN_DIR/osmocom/* + sed -i "s/\$TRX_IP/${TRX_IP}/g" $VOL_RAN_DIR/osmocom/* + + echo Starting container with RAN + docker_name="${BUILD_TAG}-ran-${image_name}-subnet$subnet" + docker run --rm \ + $(docker_network_params $subnet $ipsuffix) \ + --privileged \ + --ulimit core=-1 \ + -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ + -v $VOL_RAN_DIR/data:/data \ + -v $VOL_RAN_DIR/osmocom:/etc/osmocom \ + --name ${docker_name} -d \ + $docker_args \ + $REPO_USER/${image_name}${IMAGE_SUFFIX} + docker_names+=("$docker_name") +} + +kill_containers() { + for i in "${docker_names[@]}"; do + docker kill $i + done +} + +remove_networks() { + for i in "${networks[@]}"; do + NET_NAME="$i" + network_remove + done +} + +sighandler() { + echo "SIGINT, exiting..." + kill_containers + remove_networks + exit 0 +} + +trap 'sighandler' SIGINT + +run_image "ran-bsc_mgw" $SUBNET 200 "-p 4242:4242 -p 4249:4249 -p 4243:4243 -p 4267:4267" +run_image "ran-bts_pcu" $SUBNET 201 "-p 4241:4241 -p 4238:4238 -p 4240:4240" +run_image "ran-trx-uhd" $SUBNET 202 "-p 4237:4237 -p 4236:4236 -p 5700:5700 -p 5701:5701 -p 5702:5702 -v /dev/bus/usb:/dev/bus/usb" +#run_image "ran-trx-ipc" $SUBNET 202 "-p 4237:4237 -p 4236:4236 -p 5700:5700 -p 5701:5701 -p 5702:5702 -v /tmp/ud:/tmp/ud --ipc=host" + +while true; do sleep 1000; done diff --git a/osmo-ran/split/ran-bsc_mgw/Dockerfile b/osmo-ran/split/ran-bsc_mgw/Dockerfile new file mode 100644 index 0000000..f75316f --- /dev/null +++ b/osmo-ran/split/ran-bsc_mgw/Dockerfile @@ -0,0 +1,80 @@ +ARG USER +FROM $USER/systemd +# Arguments used after FROM must be specified again +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" +ARG OSMOCOM_REPO_VERSION=latest + +MAINTAINER Pau Espin Pedrol + +ARG OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/" +ARG OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/" + +COPY Release.key /tmp/Release.key + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + gnupg && \ + apt-key add /tmp/Release.key && \ + rm /tmp/Release.key && \ + echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \ + ;; \ + centos*) \ + echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \ + dnf install -y dnf-utils wget && \ + yum config-manager --set-enabled PowerTools && \ + cd /etc/yum.repos.d/ && \ + wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \ + ;; \ + esac + +# we need to add this to invalidate the cache once the repository is updated. +# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM +ADD $OSMOCOM_REPO_DEBIAN/Release /tmp/Release +ADD $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + less \ + apt-utils \ + strace \ + tcpdump \ + telnet \ + vim \ + osmo-bsc \ + osmo-bsc-ipaccess-utils \ + osmo-mgw && \ + apt-get clean \ + ;; \ + centos*) \ + dnf install -y \ + less \ + strace \ + tcpdump \ + telnet \ + vim \ + osmo-bsc \ + osmo-bsc-ipaccess-utils \ + osmo-mgw \ + ;; \ + esac + +RUN systemctl enable osmo-bsc osmo-mgw + +WORKDIR /tmp +RUN cp -r /etc/osmocom /etc/osmocom-default +VOLUME /data +VOLUME /etc/osmocom + +COPY osmocom/* /etc/osmocom/ + +CMD ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"] + +#osmo-bsc: VTY CTRL +EXPOSE 4242 4249 +#osmo-mgw: VTY CTRL +EXPOSE 4243 4267 diff --git a/osmo-ran/split/ran-bsc_mgw/Makefile b/osmo-ran/split/ran-bsc_mgw/Makefile new file mode 100644 index 0000000..0239a23 --- /dev/null +++ b/osmo-ran/split/ran-bsc_mgw/Makefile @@ -0,0 +1,2 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.200 -v bsc-vol:/data +include ../../../make/Makefile diff --git a/osmo-ran/split/ran-bsc_mgw/Release.key b/osmo-ran/split/ran-bsc_mgw/Release.key new file mode 100644 index 0000000..a737316 --- /dev/null +++ b/osmo-ran/split/ran-bsc_mgw/Release.key @@ -0,0 +1,20 @@ +-----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----- diff --git a/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg b/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg new file mode 100644 index 0000000..af53647 --- /dev/null +++ b/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg @@ -0,0 +1,123 @@ +line vty + no login + bind 0.0.0.0 +! +e1_input + e1_line 0 driver ipa +network + network country code 234 + mobile network code 70 + 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 + bts 0 + type sysmobts + band DCS1800 + cell_identity 0 + location_area_code 5 + 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 + ip.access unit_id 6969 0 + oml ip.access stream_id 255 line 0 + codec-support fr amr + gprs mode egprs + gprs routing area 0 + gprs network-control-order nc1 + gprs cell bvci 1800 + gprs nsei 1800 + gprs nsvc 0 nsvci 1800 + gprs nsvc 0 local udp port 23020 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip $SGSN_IP + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + ! to use full TRX power, set max_power_red 0 + max_power_red 4 + 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 PDCH + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + !phys_chan_config TCH/F + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + !phys_chan_config TCH/F + hopping enabled 0 +! +cs7 instance 0 + point-code 0.0.2 + asp asp0 2905 0 m3ua + local-ip $DOCKER_IN_IP + remote-ip $STP_IP + as as0 m3ua + asp asp0 + routing-key 30 0.0.2 + traffic-mode loadshare + sccp-address bsc_local + point-code 0.0.2 + routing-indicator PC + sccp-address msc_remote + point-code 0.23.1 + routing-indicator PC +! +msc 0 + no bsc-welcome-text + no bsc-msc-lost-text + no bsc-grace-text + type normal + allow-emergency allow + codec-list hr3 fr3 + !mgw remote-ip 192.168.30.1 + mgw remote-ip 127.0.0.1 + mgw remote-port 2427 + 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 + msc-addr msc_remote + bsc-addr bsc_local +bsc + mid-call-timeout 0 + no missing-msc-text diff --git a/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg b/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg new file mode 100644 index 0000000..421816f --- /dev/null +++ b/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg @@ -0,0 +1,22 @@ +! +! MGCP configuration example +! +line vty + no login + bind 0.0.0.0 +! +mgcp + bind ip 127.0.0.1 + rtp port-range 4002 16000 + rtp bind-ip $DOCKER_IN_IP + rtp ip-probing + rtp ip-tos 184 + bind port 2427 + sdp audio payload number 98 + sdp audio payload name GSM + number endpoints 31 + loop 0 + force-realloc 1 + rtcp-omit + rtp-patch ssrc + rtp-patch timestamp diff --git a/osmo-ran/split/ran-bts_pcu/Dockerfile b/osmo-ran/split/ran-bts_pcu/Dockerfile new file mode 100644 index 0000000..68f710e --- /dev/null +++ b/osmo-ran/split/ran-bts_pcu/Dockerfile @@ -0,0 +1,78 @@ +ARG USER +FROM $USER/systemd +# Arguments used after FROM must be specified again +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" +ARG OSMOCOM_REPO_VERSION=latest + +MAINTAINER Pau Espin Pedrol + +ARG OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/" +ARG OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/" + +COPY Release.key /tmp/Release.key + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + gnupg && \ + apt-key add /tmp/Release.key && \ + rm /tmp/Release.key && \ + echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \ + ;; \ + centos*) \ + echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \ + dnf install -y dnf-utils wget && \ + yum config-manager --set-enabled PowerTools && \ + cd /etc/yum.repos.d/ && \ + wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \ + ;; \ + esac + +# we need to add this to invalidate the cache once the repository is updated. +# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM +ADD $OSMOCOM_REPO_DEBIAN/Release /tmp/Release +ADD $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + less \ + apt-utils \ + strace \ + tcpdump \ + telnet \ + vim \ + osmo-bts-trx \ + osmo-pcu && \ + apt-get clean \ + ;; \ + centos*) \ + dnf install -y \ + less \ + strace \ + tcpdump \ + telnet \ + vim \ + osmo-bts \ + osmo-pcu \ + ;; \ + esac + +RUN systemctl enable osmo-bts-trx osmo-pcu + +WORKDIR /tmp +RUN cp -r /etc/osmocom /etc/osmocom-default +VOLUME /data +VOLUME /etc/osmocom + +COPY osmocom/* /etc/osmocom/ + +CMD ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"] + +#osmo-bts: VTY CTRL +EXPOSE 4241 4238 +#osmo-pcu: VTY CTRL +EXPOSE 4240 diff --git a/osmo-ran/split/ran-bts_pcu/Makefile b/osmo-ran/split/ran-bts_pcu/Makefile new file mode 100644 index 0000000..3d539d1 --- /dev/null +++ b/osmo-ran/split/ran-bts_pcu/Makefile @@ -0,0 +1,2 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.201 -v bsc-vol:/data +include ../../../make/Makefile diff --git a/osmo-ran/split/ran-bts_pcu/Release.key b/osmo-ran/split/ran-bts_pcu/Release.key new file mode 100644 index 0000000..a737316 --- /dev/null +++ b/osmo-ran/split/ran-bts_pcu/Release.key @@ -0,0 +1,20 @@ +-----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----- diff --git a/osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg b/osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg new file mode 100644 index 0000000..df20e5e --- /dev/null +++ b/osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg @@ -0,0 +1,36 @@ +! +! OsmoBTS () configuration saved from vty +!! +! +log stderr + logging color 1 + logging timestamp 0 + logging level rsl notice + logging level oml notice + logging level rll notice + logging level rr notice + logging level meas error + logging level pag error + logging level l1c error + logging level l1p error + logging level dsp error + logging level abis error +! +line vty + no login + bind 0.0.0.0 +! +phy 0 + instance 0 + osmotrx ip local $DOCKER_IN_IP + osmotrx ip remote $TRX_IP +bts 0 + band 1800 + ipa unit-id 6969 0 + oml remote-ip $BSC_IP + gsmtap-sapi ccch + gsmtap-sapi pdtch + trx 0 + phy 0 instance 0 +cpu-sched + policy rr 1 diff --git a/osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg b/osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg new file mode 100644 index 0000000..2e31cbc --- /dev/null +++ b/osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg @@ -0,0 +1,11 @@ +! +line vty + no login + bind 0.0.0.0 +! +pcu + flow-control-interval 10 + cs 2 + alloc-algorithm dynamic + alpha 0 + gamma 0 diff --git a/osmo-ran/split/ran-trx-ipc/Dockerfile b/osmo-ran/split/ran-trx-ipc/Dockerfile new file mode 100644 index 0000000..c5ce057 --- /dev/null +++ b/osmo-ran/split/ran-trx-ipc/Dockerfile @@ -0,0 +1,76 @@ +ARG USER +FROM $USER/systemd +# Arguments used after FROM must be specified again +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" +ARG OSMOCOM_REPO_VERSION=latest + +MAINTAINER Pau Espin Pedrol + +ARG OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/" +ARG OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/" + +COPY Release.key /tmp/Release.key + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + gnupg && \ + apt-key add /tmp/Release.key && \ + rm /tmp/Release.key && \ + echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \ + ;; \ + centos*) \ + echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \ + dnf install -y dnf-utils wget && \ + yum config-manager --set-enabled PowerTools && \ + cd /etc/yum.repos.d/ && \ + wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \ + ;; \ + esac + +# we need to add this to invalidate the cache once the repository is updated. +# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM +ADD $OSMOCOM_REPO_DEBIAN/Release /tmp/Release +ADD $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + less \ + apt-utils \ + strace \ + tcpdump \ + telnet \ + vim \ + osmo-trx-ipc && \ + apt-get clean \ + ;; \ + centos*) \ + dnf install -y \ + less \ + strace \ + tcpdump \ + telnet \ + vim \ + osmo-trx-ipc \ + ;; \ + esac + +RUN systemctl enable osmo-trx-ipc + +WORKDIR /tmp +RUN cp -r /etc/osmocom /etc/osmocom-default +VOLUME /data +VOLUME /etc/osmocom +VOLUME /tmp/ud + +COPY osmocom/* /etc/osmocom/ + +CMD ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"] + +#osmo-trx-ipc: VTY CTRL +EXPOSE 4237 4236 +EXPOSE 5700 5701 5702 diff --git a/osmo-ran/split/ran-trx-ipc/Makefile b/osmo-ran/split/ran-trx-ipc/Makefile new file mode 100644 index 0000000..1d99f06 --- /dev/null +++ b/osmo-ran/split/ran-trx-ipc/Makefile @@ -0,0 +1,2 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.202 -v bsc-vol:/data +include ../../../make/Makefile diff --git a/osmo-ran/split/ran-trx-ipc/Release.key b/osmo-ran/split/ran-trx-ipc/Release.key new file mode 100644 index 0000000..a737316 --- /dev/null +++ b/osmo-ran/split/ran-trx-ipc/Release.key @@ -0,0 +1,20 @@ +-----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----- diff --git a/osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg b/osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg new file mode 100644 index 0000000..38a758c --- /dev/null +++ b/osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg @@ -0,0 +1,29 @@ +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 1 + logging print file basename + logging level set-all notice +! +line vty + no login +! +cpu-sched + policy rr 18 +trx + bind-ip $DOCKER_IN_IP + remote-ip $BTS_IP + ! 28 dB offset below is valid only for the B2xx in 1800 MHz band, see + ! https://osmocom.org/issues/4468 for more details + rssi-offset 28.000000 + tx-sps 4 + rx-sps 4 + clock-ref external + egprs disable + ext-rach disable + dev-args ipc_msock=/tmp/ud/ipc_sock0 + multi-arfcn disable + chan 0 + tx-path TX/RX + rx-path RX2 diff --git a/osmo-ran/split/ran-trx-uhd/Dockerfile b/osmo-ran/split/ran-trx-uhd/Dockerfile new file mode 100644 index 0000000..5fe0cc3 --- /dev/null +++ b/osmo-ran/split/ran-trx-uhd/Dockerfile @@ -0,0 +1,79 @@ +ARG USER +FROM $USER/systemd +# Arguments used after FROM must be specified again +ARG DISTRO +ARG OSMOCOM_REPO_MIRROR="http://download.opensuse.org" +ARG OSMOCOM_REPO_VERSION=latest + +MAINTAINER Pau Espin Pedrol + +ARG OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/" +ARG OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/" + +COPY Release.key /tmp/Release.key + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + gnupg && \ + apt-key add /tmp/Release.key && \ + rm /tmp/Release.key && \ + echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \ + ;; \ + centos*) \ + echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \ + dnf install -y dnf-utils wget && \ + yum config-manager --set-enabled PowerTools && \ + cd /etc/yum.repos.d/ && \ + wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \ + ;; \ + esac + +# we need to add this to invalidate the cache once the repository is updated. +# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM +ADD $OSMOCOM_REPO_DEBIAN/Release /tmp/Release +ADD $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml + +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + less \ + apt-utils \ + strace \ + tcpdump \ + telnet \ + vim \ + uhd-host \ + osmo-trx-uhd && \ + apt-get clean \ + ;; \ + centos*) \ + dnf install -y \ + less \ + strace \ + tcpdump \ + telnet \ + vim \ + osmo-trx-uhd \ + ;; \ + esac + +RUN /usr/lib/uhd/utils/uhd_images_downloader.py + +RUN systemctl enable osmo-trx-uhd + +WORKDIR /tmp +RUN cp -r /etc/osmocom /etc/osmocom-default +VOLUME /data +VOLUME /etc/osmocom +VOLUME /dev/bus/usb + +COPY osmocom/* /etc/osmocom/ + +CMD ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"] + +#osmo-trx-ipc: VTY CTRL +EXPOSE 4237 4236 +EXPOSE 5700 5701 5702 diff --git a/osmo-ran/split/ran-trx-uhd/Makefile b/osmo-ran/split/ran-trx-uhd/Makefile new file mode 100644 index 0000000..1d99f06 --- /dev/null +++ b/osmo-ran/split/ran-trx-uhd/Makefile @@ -0,0 +1,2 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.202 -v bsc-vol:/data +include ../../../make/Makefile diff --git a/osmo-ran/split/ran-trx-uhd/Release.key b/osmo-ran/split/ran-trx-uhd/Release.key new file mode 100644 index 0000000..a737316 --- /dev/null +++ b/osmo-ran/split/ran-trx-uhd/Release.key @@ -0,0 +1,20 @@ +-----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----- diff --git a/osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg b/osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg new file mode 100644 index 0000000..02c92d3 --- /dev/null +++ b/osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg @@ -0,0 +1,27 @@ +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 1 + logging print file basename + logging level set-all notice +! +line vty + no login +! +cpu-sched + policy rr 18 +trx + bind-ip $DOCKER_IN_IP + remote-ip $BTS_IP + ! 28 dB offset below is valid only for the B2xx in 1800 MHz band, see + ! https://osmocom.org/issues/4468 for more details + rssi-offset 28.000000 + tx-sps 4 + rx-sps 4 + dev-args type=b200 + clock-ref internal + egprs enable + ext-rach disable + multi-arfcn enable + chan 0 diff --git a/systemd/Dockerfile b/systemd/Dockerfile new file mode 100644 index 0000000..8f1763d --- /dev/null +++ b/systemd/Dockerfile @@ -0,0 +1,41 @@ +ARG REGISTRY=docker.io +ARG UPSTREAM_DISTRO=centos:centos8 +FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG DISTRO + +MAINTAINER Pau Espin Pedrol + +# set up systemd +# container=docker: systemd likes to know it is running inside a container +ENV container docker +RUN case "$DISTRO" in \ + debian*) \ + apt-get update && \ + apt-get install -y --no-install-recommends systemd; \ + (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do test "$i" = "systemd-tmpfiles-setup.service" || rm -f $i; done); \ + rm -f /lib/systemd/system/multi-user.target.wants/*; \ + rm -f /etc/systemd/system/*.wants/*; \ + rm -f /lib/systemd/system/local-fs.target.wants/*; \ + rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ + rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ + rm -f /lib/systemd/system/basic.target.wants/*; \ + rm -f /lib/systemd/system/anaconda.target.wants/*; \ + ;; \ + centos*) \ + yum -y install systemd; yum clean all; \ + (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do test "$i" = "systemd-tmpfiles-setup.service" || rm -f $i; done); \ + rm -f /lib/systemd/system/multi-user.target.wants/*; \ + rm -f /etc/systemd/system/*.wants/*; \ + rm -f /lib/systemd/system/local-fs.target.wants/*; \ + rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ + rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ + rm -f /lib/systemd/system/basic.target.wants/*; \ + rm -f /lib/systemd/system/anaconda.target.wants/*; \ + ;; \ + esac +VOLUME [ "/sys/fs/cgroup" ] + +#RUN systemctl enable osmo-bsc osmo-bts-trx osmo-mgw osmo-pcu + +CMD ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"] diff --git a/systemd/Makefile b/systemd/Makefile new file mode 100644 index 0000000..80b1069 --- /dev/null +++ b/systemd/Makefile @@ -0,0 +1,2 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.200 -v bsc-vol:/data +include ../make/Makefile -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 Gerrit-Change-Number: 21263 Gerrit-PatchSet: 8 Gerrit-Owner: pespin 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 Dec 18 11:57:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 11:57:10 +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: > Patch Set 6: Code-Review+1 > > it's of course a masive change and hard to review (no matter how you do it). > > I presume you have executed all available tests against this without any regressions and did some manual testing, too? Yes, I wrote exactly that a few comments above :) -- 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: Fri, 18 Dec 2020 11:57: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 Fri Dec 18 12:11:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 12:11:25 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 18 Dec 2020 12:11: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 Dec 18 15:19:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 15:19:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: cosmetic: bsc: Fix tab<->space indent References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21785 ) Change subject: cosmetic: bsc: Fix tab<->space indent ...................................................................... cosmetic: bsc: Fix tab<->space indent Change-Id: I8b8670fb820d258a5a56f3fdb007f7e59bfd374f --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/85/21785/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2695ce2..175b820 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2331,7 +2331,7 @@ private function f_tc_si2quater_n_earfcns(integer n) runs on test_CT { var template SystemInformationConfig sic := SystemInformationConfig_default; - sic.si2quater := f_tr_si2quater_earfcns(n); + sic.si2quater := f_tr_si2quater_earfcns(n); var template CellSelIndValue cells := f_tr_rr_chan_rel_earfcns(n); f_test_si2quater(n, sic, cells); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8b8670fb820d258a5a56f3fdb007f7e59bfd374f Gerrit-Change-Number: 21785 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 Dec 18 16:13:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 16:13:04 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration 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/+/21685 to look at the new patch set (#2). Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... power_control: add VTY commands for per-BTS configuration Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Related: SYS#4918 --- M include/osmocom/bsc/vty.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/Makefile.am A tests/power_ctrl.vty 5 files changed, 670 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/21685/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 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 Fri Dec 18 16:13:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 16:13:05 +0000 Subject: Change in osmo-bsc[master]: power_control: add new structures and default parameters References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21786 ) Change subject: power_control: add new structures and default parameters ...................................................................... power_control: add new structures and default parameters Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Related: SYS#4918 --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts.c M src/osmo-bsc/gsm_data.c 4 files changed, 142 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/21786/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index d2f1307..fc5ec40 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -470,6 +470,10 @@ /* osmocom specific FACCH/SACCH repetition mode flags set by VTY to * enable/disable certain ACCH repeation features individually */ struct abis_rsl_osmo_rep_acch_cap repeated_acch_policy; + + /* MS/BS Power Control parameters */ + struct gsm_power_ctrl_params *ms_power_ctrl; + struct gsm_power_ctrl_params *bs_power_ctrl; }; #define GSM_BTS_SI2Q(bts, i) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i]) diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 3472f39..f9d5736 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1269,4 +1269,74 @@ int bsc_sccp_inst_next_conn_id(struct osmo_sccp_instance *sccp); +/* 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; + }; +}; + +enum gsm_power_ctrl_dir { + GSM_PWR_CTRL_DIR_UL, /* MS Power Control */ + GSM_PWR_CTRL_DIR_DL, /* BS Power Control */ +}; + +enum gsm_power_ctrl_mode { + /* Do not send MS/BS Power Control IEs */ + GSM_PWR_CTRL_MODE_NONE = 0, + /* Send MS/BS Power IE only (with target level) */ + GSM_PWR_CTRL_MODE_STATIC, + /* Send MS/BS Power [Parameters] IEs (dynamic mode) */ + GSM_PWR_CTRL_MODE_DYN_BTS, +}; + +/* MS/BS Power Control Parameters */ +struct gsm_power_ctrl_params { + /* Power Control direction: Uplink or Downlink */ + enum gsm_power_ctrl_dir dir; + /* Power Control mode to be used by the BTS */ + enum gsm_power_ctrl_mode mode; + + /* Power change step size (dynamic mode only) */ + 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; +}; + +extern const struct gsm_power_ctrl_params power_ctrl_params_def; + #endif /* _GSM_DATA_H */ diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 0c7fde9..68eb101 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -349,6 +349,16 @@ bts->repeated_acch_policy.rxqual = 4; + /* MS Power Control parameters (defaults) */ + bts->ms_power_ctrl = talloc(bts, struct gsm_power_ctrl_params); + *bts->ms_power_ctrl = power_ctrl_params_def; + bts->ms_power_ctrl->dir = GSM_PWR_CTRL_DIR_UL; + + /* BS Power Control parameters (defaults) */ + bts->bs_power_ctrl = talloc(bts, struct gsm_power_ctrl_params); + *bts->bs_power_ctrl = power_ctrl_params_def; + bts->bs_power_ctrl->dir = GSM_PWR_CTRL_DIR_DL; + return bts; } diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 28f7c27..0b5650f 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -966,3 +966,61 @@ return GSM48_RR_CAUSE_ABNORMAL_UNSPEC; } } + +/* Default MS/BS Power Control parameters (see 3GPP TS 45.008, table A.1) */ +const struct gsm_power_ctrl_params power_ctrl_params_def = { + /* Static Power Control is the safe default */ + .mode = GSM_PWR_CTRL_MODE_STATIC, + + /* Power increasing/reducing step size */ + .inc_step_size_db = 4, /* 2, 4, or 6 dB */ + .red_step_size_db = 2, /* 2 or 4 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) */ + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ + .lower_cmp_p = 10, /* P1 as in 3GPP TS 45.008, A.3.2.1 (case a) */ + .lower_cmp_n = 12, /* N1 as in 3GPP TS 45.008, A.3.2.1 (case a) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_RXLEV_XX_P */ + .upper_cmp_p = 19, /* P2 as in 3GPP TS 45.008, A.3.2.1 (case b) */ + .upper_cmp_n = 20, /* N2 as in 3GPP TS 45.008, A.3.2.1 (case b) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, + + /* RxQual measurement parameters */ + .rxqual_meas = { + /* Thresholds for RxQual (see 3GPP TS 45.008, A.3.2.1) */ + .lower_thresh = 0, /* L_RXQUAL_XX_P (BER < 0.2%) */ + .upper_thresh = 3, /* U_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ + .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_RXLEV_XX_P */ + .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, +}; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Gerrit-Change-Number: 21786 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 Dec 18 16:13:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 16:13:06 +0000 Subject: Change in osmo-bsc[master]: power_control: send RSL_IE_{MS, BS}_POWER_PARAM on CHANnel ACTIVation References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: send RSL_IE_{MS,BS}_POWER_PARAM on CHANnel ACTIVation ...................................................................... power_control: send RSL_IE_{MS,BS}_POWER_PARAM on CHANnel ACTIVation Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Related: SYS#4918 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c 2 files changed, 65 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/21787/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index fc5ec40..97e2ff8 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -184,6 +184,9 @@ void (*e1line_bind_ops)(struct e1inp_line *line); + /* (Optional) encoding function for MS/BS Power Control paramaters */ + int (*enc_power_params)(struct msgb *msg, const struct gsm_power_ctrl_params *cp); + void (*config_write_bts)(struct vty *vty, struct gsm_bts *bts); void (*config_write_trx)(struct vty *vty, struct gsm_bts_trx *trx); void (*config_write_ts)(struct vty *vty, struct gsm_bts_trx_ts *ts); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index f8ea5a5..917726a 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -486,6 +486,59 @@ } } +static void add_power_control_params(struct msgb *msg, + const struct gsm_bts *bts, + enum gsm_power_ctrl_dir dir) +{ + const struct gsm_power_ctrl_params *cp; + uint8_t tag, msg_len, *ie_len; + int rc; + + if (dir == GSM_PWR_CTRL_DIR_UL) { + tag = RSL_IE_MS_POWER_PARAM; + cp = bts->ms_power_ctrl; + } else { + tag = RSL_IE_BS_POWER_PARAM; + cp = bts->bs_power_ctrl; + } + + /* These parameters are only valid for dynamic mode */ + if (cp->mode != GSM_PWR_CTRL_MODE_DYN_BTS) + return; + + switch (bts->type) { + case GSM_BTS_TYPE_NANOBTS: + case GSM_BTS_TYPE_OSMOBTS: + /* For both ip.access nanoBTS and osmoBTS we send MS/BS Power Control + * parameters once - right after the RSL connection is established. + * However, we may still need to send an empty IE here in order to + * indicate that dynamic power control is to be performed by BTS. */ + msgb_tlv_put(msg, tag, 0, NULL); + return; + default: + /* Since IE {MS,BS}_POWER_PARAM content is operator dependent, it's not + * known if non-osmocom BTS models will support an empty IE, so let's + * better skip sending it unless we know for sure what each expects. */ + if (bts->model->enc_power_params == NULL) + return; + + /* Put tag first, length will be updated later */ + ie_len = msgb_tl_put(msg, tag); + msg_len = msgb_length(msg); + + rc = bts->model->enc_power_params(msg, cp); + if (rc != 0) { + LOGP(DRSL, LOGL_ERROR, "Failed to encode MS/BS Power Control " + "parameters, omitting this IE (tag 0x%02x)\n", tag); + msgb_get(msg, msg_len - 2); + return; + } + + /* Update length part of the containing IE */ + *ie_len = msgb_length(msg) - msg_len; + } +} + /* Chapter 8.4.1 */ int rsl_tx_chan_activ(struct gsm_lchan *lchan, uint8_t act_type, uint8_t ho_ref) { @@ -570,15 +623,16 @@ break; } - msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power); - msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power); + if (bts->bs_power_ctrl->mode != GSM_PWR_CTRL_MODE_NONE) + 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); - /* indicate MS power control to be performed by BTS: */ - if (bts->type == GSM_BTS_TYPE_OSMOBTS) - msgb_tl_put(msg, RSL_IE_MS_POWER_PARAM); - /* else: Since IE MS_POWER_PARAM content is operator dependent, it's not - known if non-osmocom BTS models will support an empty IE, so let's - better skip sending it unless we know for sure what each expects. */ + + /* BS/MS Power Control Parameters (if supported by BTS model) */ + add_power_control_params(msg, bts, GSM_PWR_CTRL_DIR_DL); + add_power_control_params(msg, bts, GSM_PWR_CTRL_DIR_UL); mr_config_for_bts(lchan, msg); rep_acch_cap_for_bts(lchan, msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 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 Dec 18 16:13:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 16:13:06 +0000 Subject: Change in osmo-bsc[master]: power_control: send ip.access specific meas processing defaults References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21788 ) Change subject: power_control: send ip.access specific meas processing defaults ...................................................................... power_control: send ip.access specific meas processing defaults Thanks to this message, there is no need to include MS/BS Power Control parameters in every RSL CHANnel ACTIvation message. Instead, we send them only once, and then send empty IEs. Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Related: SYS#4918 --- M include/osmocom/bsc/abis_rsl.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/osmo_bsc_main.c 3 files changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/21788/1 diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index 964e282..81a0224 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -101,6 +101,8 @@ /* required for Nokia BTS power control */ int rsl_bs_power_control(struct gsm_bts_trx *trx, uint8_t channel, uint8_t reduction); +/* ip.access specific "Measurement Pre-processing Defaults" */ +int rsl_tx_ipacc_meas_preproc_def(struct gsm_bts_trx *trx); int rsl_release_sapis_from(struct gsm_lchan *lchan, int start, enum rsl_rel_mode release_mode); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 917726a..27d0dad 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -2642,3 +2642,30 @@ return abis_rsl_sendmsg(msg); } + +/* ip.access specific "Measurement Pre-processing Defaults" */ +int rsl_tx_ipacc_meas_preproc_def(struct gsm_bts_trx *trx) +{ + struct msgb *msg = rsl_msgb_alloc(); + struct abis_rsl_common_hdr *ch; + + ch = (struct abis_rsl_common_hdr *) msgb_put(msg, sizeof(*ch)); + ch->msg_discr = ABIS_RSL_MDISC_TRX; + ch->msg_type = RSL_MT_IPAC_MEAS_PREPROC_DFT; + + /* BS/MS Power IEs (to be re-defined in channel specific messages) */ + if (trx->bts->ms_power_ctrl->mode != GSM_PWR_CTRL_MODE_NONE) + msgb_tv_put(msg, RSL_IE_MS_POWER, 0); /* maximum */ + if (trx->bts->bs_power_ctrl->mode != GSM_PWR_CTRL_MODE_NONE) + msgb_tv_put(msg, RSL_IE_BS_POWER, 0); /* no attenuation */ + + /* BS/MS Power Parameters IEs (if supported by BTS model) */ + add_power_control_params(msg, trx->bts, GSM_PWR_CTRL_DIR_UL); + add_power_control_params(msg, trx->bts, GSM_PWR_CTRL_DIR_DL); + + /* TODO: "Pre-processing Parameters" IE can be sent in subsequent messages */ + + msg->dst = trx->rsl_link; + + return abis_rsl_sendmsg(msg); +} diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index df5235e..7be594a 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -340,6 +340,12 @@ rsl_nokia_si_end(trx); } + /* ip.access specific "Measurement Pre-processing Defaults" */ + if (is_ipaccess_bts(trx->bts) && + (trx->bts->ms_power_ctrl->mode != GSM_PWR_CTRL_MODE_NONE || + trx->bts->bs_power_ctrl->mode != GSM_PWR_CTRL_MODE_NONE)) + rsl_tx_ipacc_meas_preproc_def(trx); + for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { struct gsm_bts_trx_ts *ts = &trx->ts[i]; generate_ma_for_ts(ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Gerrit-Change-Number: 21788 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 Dec 18 16:22:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 16:22:37 +0000 Subject: Change in libosmocore[master]: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restr... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21789 ) Change subject: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" ...................................................................... Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" This reverts commit c9eab828ea4a9f508a013cf5cc1e0384a0e62e4c. The initial code was correct, which has also been used in osmo-bsc until recently, where it moved to use this function from libosmocore and errors started to show up in TTCN3 tests. See 3GPP TS 44.018 Section 10.5.2.34 / Table 10.5.2.34.1: "SI 3 Rest Octets information element": """ ::= ... <3G Early Classmark Sending Restriction> ... <3G Early Classmark Sending Restriction>::= L | H; """ Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Related: OS#3075 Related: SYS#4021 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/89/21789/1 diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 3a424f7..90f2b03 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -611,9 +611,9 @@ /* 3G Early Classmark Sending Restriction. If H, then controlled by * early_cm_ctrl above */ if (si3->early_cm_restrict_3g) - bitvec_set_bit(&bv, H); - else bitvec_set_bit(&bv, L); + else + bitvec_set_bit(&bv, H); if (si3->si2quater_indicator) { bitvec_set_bit(&bv, H); /* indicator struct present */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Gerrit-Change-Number: 21789 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 Dec 18 16:23:48 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 16:23:48 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and osmoBTS In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21683 ) Change subject: power_control: add encoder for ip.access nanoBTS and osmoBTS ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 18 Dec 2020 16:23: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 Fri Dec 18 16:34:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 16:34:48 +0000 Subject: Change in osmo-bsc[master]: power_control: add new structures and default parameters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21786 ) Change subject: power_control: add new structures and default parameters ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Gerrit-Change-Number: 21786 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 16:34: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 Dec 18 16:37:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 16:37:54 +0000 Subject: Change in osmo-bsc[master]: power_control: send RSL_IE_{MS, BS}_POWER_PARAM on CHANnel ACTIVation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: send RSL_IE_{MS,BS}_POWER_PARAM on CHANnel ACTIVation ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21787/1/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21787/1/src/osmo-bsc/abis_rsl.c at 516 PS1, Line 516: msgb_tlv_put(msg, tag, 0, NULL); If we have a cb pointer for it, why not move this into a function and set it during bts_init() of NANOBTS and OSMOBTS? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 16:37: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 Fri Dec 18 16:39:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 16:39:21 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and osmoBTS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21683 ) Change subject: power_control: add encoder for ip.access nanoBTS and osmoBTS ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21683/2/src/osmo-bsc/bts_ipaccess_nanobts.c File src/osmo-bsc/bts_ipaccess_nanobts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21683/2/src/osmo-bsc/bts_ipaccess_nanobts.c at 71 PS2, Line 71: .enc_power_params = &enc_power_params, IIUC this code is still not called due to the switch from previous commit? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 16:39: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 Dec 18 16:40:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 16:40:43 +0000 Subject: Change in osmo-bsc[master]: power_control: send ip.access specific meas processing defaults In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21788 ) Change subject: power_control: send ip.access specific meas processing defaults ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Gerrit-Change-Number: 21788 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 16:40: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 Dec 18 16:42:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 16:42:33 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 16: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 Fri Dec 18 16:43:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 16:43:07 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and osmoBTS In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21683 ) Change subject: power_control: add encoder for ip.access nanoBTS and osmoBTS ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21683/2/src/osmo-bsc/bts_ipaccess_nanobts.c File src/osmo-bsc/bts_ipaccess_nanobts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21683/2/src/osmo-bsc/bts_ipaccess_nanobts.c at 71 PS2, Line 71: .enc_power_params = &enc_power_params, > IIUC this code is still not called due to the switch from previous commit? Correct, see https://gerrit.osmocom.org/c/osmo-bsc/+/21788. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 16:43: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 Fri Dec 18 16:43:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 16:43:42 +0000 Subject: Change in libosmocore[master]: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restr... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21789 ) Change subject: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" ...................................................................... Patch Set 1: I confirm latest TTCN3 BSC_Tests regressions in TC_si2quater_*_earfcns are fixed with this revert applied. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Gerrit-Change-Number: 21789 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 18 Dec 2020 16:43: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 Fri Dec 18 16:46:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 16:46:37 +0000 Subject: Change in libosmocore[master]: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restr... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21789 ) Change subject: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" ...................................................................... Patch Set 1: btw, description of the L/H values: 3G Early Classmark Sending Restriction (1 bit field): * L: Neither UTRAN, CDMA2000 nor GERAN IU MODE CLASSMARK CHANGE message shall be sent with the Early classmark sending * H: The sending of UTRAN,CDMA2000 and GERAN IU MODECLASSMARK CHANGE messages are controlled by the Early Classmark Sending Control parameter -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Gerrit-Change-Number: 21789 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 18 Dec 2020 16:46: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 Fri Dec 18 16:55:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 16:55:58 +0000 Subject: Change in osmo-bsc[master]: power_control: send RSL_IE_{MS, BS}_POWER_PARAM on CHANnel ACTIVation In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: send RSL_IE_{MS,BS}_POWER_PARAM on CHANnel ACTIVation ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21787/1/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21787/1/src/osmo-bsc/abis_rsl.c at 516 PS1, Line 516: msgb_tlv_put(msg, tag, 0, NULL); > If we have a cb pointer for it, why not move this into a function and set it during bts_init() of NA [?] Not sure if I understand what you mean. Do you suggest to move appending RSL IEs to bts->model->enc_power_params()? I think it's better to keep these encoding functions abstracted from dealing with RSL IEs. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 16:55: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 Fri Dec 18 17:00:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 17:00:46 +0000 Subject: Change in osmo-bsc[master]: power_control: send RSL_IE_{MS, BS}_POWER_PARAM on CHANnel ACTIVation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: send RSL_IE_{MS,BS}_POWER_PARAM on CHANnel ACTIVation ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21787/1/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21787/1/src/osmo-bsc/abis_rsl.c at 516 PS1, Line 516: msgb_tlv_put(msg, tag, 0, NULL); > Not sure if I understand what you mean. [?] TThe 2 switch cases above (nanobts, osmobts), are afaiu the same as the default one when calling a enc_power_rams as a NOOP, am I correct? So if we have an abstracted way to set the IE contents (enc_power_params func pointer), why do we want to have this switch case for osmobts and nanobts? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 17:00:46 +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 Dec 18 17:44:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 17:44:04 +0000 Subject: Change in osmo-bsc[master]: power_control: send RSL_IE_{MS, BS}_POWER_PARAM on CHANnel ACTIVation In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: send RSL_IE_{MS,BS}_POWER_PARAM on CHANnel ACTIVation ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21787/1/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21787/1/src/osmo-bsc/abis_rsl.c at 516 PS1, Line 516: msgb_tlv_put(msg, tag, 0, NULL); > TThe 2 switch cases above (nanobts, osmobts), are afaiu the same as the default one when calling a enc_power_rams as a NOOP, am I correct? Yes, if bts->model->enc_power_params() would append no vendor-specific IEs, then we get an empty TLV (L=0) like in the two cases above. If bts->model->enc_power_params is NULL, then MS/BS Power Parameters IE is not included at all. > So if we have an abstracted way to set the IE contents (enc_power_params func pointer), why do we want to have this switch case for osmobts and nanobts? Because ip.access models allow us to send all parameters only once, in "Measurement Pre-processing Defaults" message, and then avoid repeating them again and again in CHANnel ACTIVation messages. So we use this possibility here. For other BTS models you still need to send those parameters in every CHANnel ACTIVation message. And I intentionally kept this decision logic (whether to send an empty IE) separate from bts->model->enc_power_params(), because this function does not (and is not supposed to) know in which cases we should skip parameters and in which we should add them. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 17:44:04 +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 Dec 18 17:51:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 17:51:09 +0000 Subject: Change in osmo-bsc[master]: power_control: send RSL_IE_{MS, BS}_POWER_PARAM on CHANnel ACTIVation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: send RSL_IE_{MS,BS}_POWER_PARAM on CHANnel ACTIVation ...................................................................... Patch Set 1: So I find the way you chose to structure abstraction a bit weird tbh. That being said, I'm not going to block this, but I think it'd be less confusing if for instance, you added a function pointer for "initial" setup and one for "channel_act" setup of the IE, and implement that in each bts type. Or for instance put the initial IE setup in the the ipacc_tx_..._def you are adding in the last commit, and use the function pointer you add in this commit as the "channel activ" one. It's all even more confusing because you spread all this through different commits. Just sharing my opinion in case you want to give it another thought. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 17:51: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 Fri Dec 18 18:10:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 18 Dec 2020 18:10:49 +0000 Subject: Change in osmo-bsc[master]: power_control: send RSL_IE_{MS, BS}_POWER_PARAM on CHANnel ACTIVation In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: send RSL_IE_{MS,BS}_POWER_PARAM on CHANnel ACTIVation ...................................................................... Patch Set 1: > Or for instance put the initial IE setup in the the ipacc_tx_..._def you are adding in the last commit, and use the function pointer you add in this commit as the "channel activ" one. I actually found a problem in rsl_tx_ipacc_meas_preproc_def(): it would always send empty MS/BS Parameters :/ Thanks for directing my attention towards this part of the code. > It's all even more confusing because you spread all this through different commits. Just sharing my opinion in case you want to give it another thought. I agree that the current order is confusing, so I'll rework the patch set and reorder changes in a more readable way. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 18 Dec 2020 18:10:49 +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 Dec 18 18:54:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 18 Dec 2020 18:54:32 +0000 Subject: Change in osmo-pcu[master]: tbf: Fix wrong verb used in log message References: Message-ID: pespin has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/90/21790/1 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: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Dec 19 00:06:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:06:13 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and OsmoBTS 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/+/21683 to look at the new patch set (#3). Change subject: power_control: add encoder for ip.access nanoBTS and OsmoBTS ...................................................................... power_control: add encoder for ip.access nanoBTS and OsmoBTS Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Related: SYS#4918 --- M src/osmo-bsc/bts_ipaccess_nanobts.c 1 file changed, 146 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/21683/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria 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 Sat Dec 19 00:06:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:06:14 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: turn rsl_msgb_alloc() a macro and move it to header References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21791 ) Change subject: abis_rsl: turn rsl_msgb_alloc() a macro and move it to header ...................................................................... abis_rsl: turn rsl_msgb_alloc() a macro and move it to header Also, take a chance to make talloc chunk names more informative. Change-Id: Id25c4bf1e06f697328d10777d6449c83006e8466 --- M include/osmocom/bsc/abis_rsl.h M src/osmo-bsc/abis_rsl.c 2 files changed, 7 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/91/21791/1 diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index 964e282..58eca29 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -35,6 +35,13 @@ #define GSM48_LEN2PLEN(a) (((a) << 2) | 1) +#define RSL_ALLOC_SIZE 1024 +#define RSL_ALLOC_HEADROOM 128 + +#define rsl_msgb_alloc(args...) \ + msgb_alloc_headroom(RSL_ALLOC_SIZE, RSL_ALLOC_HEADROOM, \ + __FILE__ ":" OSMO_STRINGIFY_VAL(__LINE__)) + const char *ip_to_a(uint32_t ip); int rsl_bcch_info(const struct gsm_bts_trx *trx, enum osmo_sysinfo_type si_type, const uint8_t *data, int len); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index f8ea5a5..a803a03 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -55,8 +55,6 @@ #include #include #include -#define RSL_ALLOC_SIZE 1024 -#define RSL_ALLOC_HEADROOM 128 static void send_lchan_signal(int sig_no, struct gsm_lchan *lchan, struct gsm_meas_rep *resp) @@ -146,12 +144,6 @@ return lchan; } -static struct msgb *rsl_msgb_alloc(void) -{ - return msgb_alloc_headroom(RSL_ALLOC_SIZE, RSL_ALLOC_HEADROOM, - "RSL"); -} - static void pad_macblock(uint8_t *out, const uint8_t *in, int len) { memcpy(out, in, len); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id25c4bf1e06f697328d10777d6449c83006e8466 Gerrit-Change-Number: 21791 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 Dec 19 00:06:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:06:14 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoding/init API to 'struct gsm_bts_model' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21792 ) Change subject: power_control: add encoding/init API to 'struct gsm_bts_model' ...................................................................... power_control: add encoding/init API to 'struct gsm_bts_model' This change introduces two optional function pointers: - power_ctrl_enc_rsl_params() - this function will be called by the A-bis/RSL code in order to encode MS/BS Power control parameters for CHANnel ACTIVation and MS/BS POWER CONTROL messages. - power_ctrl_send_def_params() - this function will be called for each transceiver on A-bis/RSL link establishment in order to send default MS/BS Power control parameters. Change-Id: Iba3ad5d8d549a6676050272f85b21c9b4c219d21 Related: SYS#4918 --- M include/osmocom/bsc/bts.h 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/92/21792/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index fc5ec40..180bd64 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -184,6 +184,11 @@ void (*e1line_bind_ops)(struct e1inp_line *line); + /* (Optional) function for encoding MS/BS Power Control paramaters */ + int (*power_ctrl_enc_rsl_params)(struct msgb *msg, const struct gsm_power_ctrl_params *cp); + /* (Optional) function for sending default MS/BS Power Control paramaters */ + int (*power_ctrl_send_def_params)(const struct gsm_bts_trx *trx); + void (*config_write_bts)(struct vty *vty, struct gsm_bts *bts); void (*config_write_trx)(struct vty *vty, struct gsm_bts_trx *trx); void (*config_write_ts)(struct vty *vty, struct gsm_bts_trx_ts *ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba3ad5d8d549a6676050272f85b21c9b4c219d21 Gerrit-Change-Number: 21792 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 Dec 19 00:06:15 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:06:15 +0000 Subject: Change in osmo-bsc[master]: power_control: send default parameters from bootstrap_rsl() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21793 ) Change subject: power_control: send default parameters from bootstrap_rsl() ...................................................................... power_control: send default parameters from bootstrap_rsl() Change-Id: Ic99e61cc3eb5aa054964abbd777fff66588c4a9a Related: SYS#4918 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/93/21793/1 diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index df5235e..4ab0430 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -310,6 +310,7 @@ static void bootstrap_rsl(struct gsm_bts_trx *trx) { unsigned int i; + int rc; LOG_TRX(trx, DRSL, LOGL_NOTICE, "bootstrapping RSL " "on ARFCN %u using MCC-MNC %s LAC=%u CID=%u BSIC=%u\n", @@ -340,6 +341,15 @@ rsl_nokia_si_end(trx); } + if (trx->bts->model->power_ctrl_send_def_params != NULL) { + rc = trx->bts->model->power_ctrl_send_def_params(trx); + if (rc) { + LOG_TRX(trx, DRSL, LOGL_ERROR, "Failed to send default " + "MS/BS Power control parameters (rc=%d)\n", rc); + /* TODO: should we drop RSL connection here? */ + } + } + for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { struct gsm_bts_trx_ts *ts = &trx->ts[i]; generate_ma_for_ts(ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic99e61cc3eb5aa054964abbd777fff66588c4a9a Gerrit-Change-Number: 21793 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 Dec 19 00:06:16 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:06:16 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY command for re-sending default parameters References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21794 ) Change subject: power_control: add VTY command for re-sending default parameters ...................................................................... power_control: add VTY command for re-sending default parameters Change-Id: I35e9147d5536f9901ac63f605d87ae112c024401 Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 37 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/94/21794/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 49f5e51..056c0fd 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -5646,7 +5646,8 @@ return CMD_SUCCESS; } -DEFUN(bts_resend, bts_resend_cmd, +DEFUN(bts_resend_sysinfo, + bts_resend_sysinfo_cmd, "bts <0-255> resend-system-information", "BTS Specific Commands\n" BTS_NR_STR "Re-generate + re-send BCCH SYSTEM INFORMATION\n") @@ -5679,6 +5680,39 @@ return CMD_SUCCESS; } +DEFUN(bts_resend_power_ctrl_params, + bts_resend_power_ctrl_params_cmd, + "bts <0-255> resend-power-control-defaults", + "BTS Specific Commands\n" BTS_NR_STR + "Re-generate + re-send default MS/BS Power control parameters\n") +{ + const struct gsm_bts_trx *trx; + const struct gsm_bts *bts; + int bts_nr = atoi(argv[0]); + + bts = gsm_bts_num(gsmnet_from_vty(vty), bts_nr); + if (!bts) { + vty_out(vty, "%% No such BTS (%d)%s", bts_nr, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bts->model->power_ctrl_send_def_params == NULL) { + vty_out(vty, "%% Sending default MS/BS Power control parameters " + "for BTS%d is not implemented%s", bts_nr, VTY_NEWLINE); + return CMD_WARNING; + } + + llist_for_each_entry(trx, &bts->trx_list, list) { + if (bts->model->power_ctrl_send_def_params(trx) != 0) { + vty_out(vty, "%% Failed to send default MS/BS Power control parameters " + "to BTS%d/TRX%d%s", bts_nr, trx->nr, VTY_NEWLINE); + return CMD_WARNING; + } + } + + return CMD_SUCCESS; +} + DEFUN(smscb_cmd, smscb_cmd_cmd, "bts <0-255> smscb-command (normal|schedule|default) <1-4> HEXSTRING", @@ -7675,7 +7709,8 @@ install_element(ENABLE_NODE, &drop_bts_cmd); install_element(ENABLE_NODE, &restart_bts_cmd); - install_element(ENABLE_NODE, &bts_resend_cmd); + install_element(ENABLE_NODE, &bts_resend_sysinfo_cmd); + install_element(ENABLE_NODE, &bts_resend_power_ctrl_params_cmd); install_element(ENABLE_NODE, &pdch_act_cmd); install_element(ENABLE_NODE, &lchan_act_cmd); install_element(ENABLE_NODE, &lchan_act_all_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35e9147d5536f9901ac63f605d87ae112c024401 Gerrit-Change-Number: 21794 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 Dec 19 00:07:28 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:07:28 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and OsmoBTS 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/+/21683 to look at the new patch set (#4). Change subject: power_control: add encoder for ip.access nanoBTS and OsmoBTS ...................................................................... power_control: add encoder for ip.access nanoBTS and OsmoBTS Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Related: SYS#4918 --- M src/osmo-bsc/bts_ipaccess_nanobts.c 1 file changed, 146 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/21683/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria 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 Sat Dec 19 00:07:28 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:07:28 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY command for re-sending default parameters In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/21794 ) Change subject: power_control: add VTY command for re-sending default parameters ...................................................................... power_control: add VTY command for re-sending default parameters Change-Id: I35e9147d5536f9901ac63f605d87ae112c024401 Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 37 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/94/21794/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35e9147d5536f9901ac63f605d87ae112c024401 Gerrit-Change-Number: 21794 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 Sat Dec 19 00:07:28 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:07:28 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration 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/+/21685 to look at the new patch set (#4). Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... power_control: add VTY commands for per-BTS configuration Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Related: SYS#4918 --- M include/osmocom/bsc/vty.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/Makefile.am A tests/power_ctrl.vty 5 files changed, 670 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/21685/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 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 Sat Dec 19 00:07:38 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:07:38 +0000 Subject: Change in osmo-bsc[master]: power_control: send default parameters from bootstrap_rsl() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21788 ) Change subject: power_control: send default parameters from bootstrap_rsl() ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Gerrit-Change-Number: 21788 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 00:07: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 Sat Dec 19 00:08:42 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:08:42 +0000 Subject: Change in osmo-bsc[master]: power_control: send default parameters from bootstrap_rsl() In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21793 ) Change subject: power_control: send default parameters from bootstrap_rsl() ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic99e61cc3eb5aa054964abbd777fff66588c4a9a Gerrit-Change-Number: 21793 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 Dec 19 00:10:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 00:10:02 +0000 Subject: Change in osmo-bsc[master]: power_control: make use of MS/BS parameters in RSL messages In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: make use of MS/BS parameters in RSL messages ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 00:10:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Dec 19 01:48:48 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 19 Dec 2020 01:48:48 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fdd5c08d6d54_22fc2aafec8545f01374395@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: [ 167s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 167s] [COMPILING libboard/qmod/source/card_pres.c] [ 167s] [COMPILING libboard/qmod/source/wwan_led.c] [ 167s] [COMPILING libboard/qmod/source/i2c.c] [ 168s] [COMPILING libboard/qmod/source/board_qmod.c] [ 168s] [COMPILING apps/dfu/main.c] [ 168s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 168s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 168s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 168s] Memory region Used Size Region Size %age Used [ 168s] rom: 16588 B 16 KB 101.25% [ 168s] 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' [ 168s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 168s] collect2: error: ld returned 1 exit status [ 168s] % [ 168s] make[2]: *** [Makefile:234: flash] Error 1 [ 168s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 168s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 168s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 168s] dh_auto_build: error: make -j1 returned exit code 2 [ 168s] make: *** [debian/rules:16: build] Error 25 [ 168s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 168s] ### VM INTERACTION START ### [ 171s] [ 160.690790] sysrq: Power Off [ 171s] [ 160.697132] reboot: Power down [ 172s] ### VM INTERACTION END ### [ 172s] [ 172s] lamb55 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Dec 19 01:48:29 UTC 2020. [ 172s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 19 01:49:05 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 19 Dec 2020 01:49:05 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fdd5c23ec68e_22fc2aafec8545f01374553@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] [ 175s] [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: 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] [ 165.791248] sysrq: Power Off [ 178s] [ 165.796577] reboot: Power down [ 178s] ### VM INTERACTION END ### [ 178s] [ 178s] lamb13 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Dec 19 01:48:50 UTC 2020. [ 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 Sat Dec 19 02:22:55 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 02:22:55 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and OsmoBTS 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/+/21683 to look at the new patch set (#5). Change subject: power_control: add encoder for ip.access nanoBTS and OsmoBTS ...................................................................... power_control: add encoder for ip.access nanoBTS and OsmoBTS Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Related: SYS#4918 --- M src/osmo-bsc/bts_ipaccess_nanobts.c 1 file changed, 155 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/21683/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria 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 Sat Dec 19 10:21:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 10:21:05 +0000 Subject: Change in osmo-ci[master]: Add master-no2firmware build job References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21795 ) Change subject: Add master-no2firmware build job ...................................................................... Add master-no2firmware build job This is the DFU bootloader we use in icE1usb and e1-tracer. Change-Id: Iaedb4e8f487c11b0247c27cba403fe2dfcd6b708 --- M jobs/master-builds.yml 1 file changed, 23 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/95/21795/1 diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 566f1bf..cdd3773 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -218,6 +218,29 @@ -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 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 - osmo-fl2k - osmo-ggsn: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Iaedb4e8f487c11b0247c27cba403fe2dfcd6b708 Gerrit-Change-Number: 21795 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 Dec 19 10:22:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 10:22:04 +0000 Subject: Change in osmo-ci[master]: Add master-no2firmware build job In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21795 ) Change subject: Add master-no2firmware build job ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Iaedb4e8f487c11b0247c27cba403fe2dfcd6b708 Gerrit-Change-Number: 21795 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 10:22: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 Dec 19 10:22:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 10:22:06 +0000 Subject: Change in osmo-ci[master]: Add master-no2firmware build job In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21795 ) Change subject: Add master-no2firmware build job ...................................................................... Add master-no2firmware build job This is the DFU bootloader we use in icE1usb and e1-tracer. Change-Id: Iaedb4e8f487c11b0247c27cba403fe2dfcd6b708 --- M jobs/master-builds.yml 1 file changed, 23 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 566f1bf..cdd3773 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -218,6 +218,29 @@ -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 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 - osmo-fl2k - osmo-ggsn: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Iaedb4e8f487c11b0247c27cba403fe2dfcd6b708 Gerrit-Change-Number: 21795 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 Sat Dec 19 11:08:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:08:33 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f.c: sa4..sa8 bits should be all-1 by default References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21796 ) Change subject: osmo_e1f.c: sa4..sa8 bits should be all-1 by default ...................................................................... osmo_e1f.c: sa4..sa8 bits should be all-1 by default >From ITU-T G.704 Table 5A Note 4: > Bits S a4 to S a8 (where these are not used) should be set to 1 on > links crossing an international border. Change-Id: Id55599a7152a90f85076de810db2a03ac6f3aac1 --- M software/obsolete/osmo_e1f.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/96/21796/1 diff --git a/software/obsolete/osmo_e1f.c b/software/obsolete/osmo_e1f.c index 5ea6d54..6a8725c 100644 --- a/software/obsolete/osmo_e1f.c +++ b/software/obsolete/osmo_e1f.c @@ -59,7 +59,7 @@ e1i->crc4_enabled = crc4_enabled; e1i->notify_cb = cb; - e1i->tx.sa4_sa8 = 0x00; + e1i->tx.sa4_sa8 = 0x1f; e1i->priv = priv; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21796 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: Id55599a7152a90f85076de810db2a03ac6f3aac1 Gerrit-Change-Number: 21796 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 Dec 19 11:08:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:08:35 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Fix use of uninitized variable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21797 ) Change subject: osmo_e1f: Fix use of uninitized variable ...................................................................... osmo_e1f: Fix use of uninitized variable Change-Id: I42024856a58f0bd4fcc1c767688de5334994a8a8 --- M software/obsolete/osmo_e1f.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/97/21797/1 diff --git a/software/obsolete/osmo_e1f.c b/software/obsolete/osmo_e1f.c index 6a8725c..cbcd0db 100644 --- a/software/obsolete/osmo_e1f.c +++ b/software/obsolete/osmo_e1f.c @@ -206,7 +206,7 @@ /* pull a single to-be-transmitted byte for TS0 */ static uint8_t e1_pull_ts0(struct osmo_e1f_instance *e1i) { - uint8_t ret; + uint8_t ret = 0; /* according to Table 5B/G.704 - CRC-4 multiframe structure */ if ((e1i->tx.frame_nr % 2) == 0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21797 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: I42024856a58f0bd4fcc1c767688de5334994a8a8 Gerrit-Change-Number: 21797 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 Dec 19 11:08:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:08:35 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f.c: Fix CRC4 insertion References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21798 ) Change subject: osmo_e1f.c: Fix CRC4 insertion ...................................................................... osmo_e1f.c: Fix CRC4 insertion When encoding the CRC bit for Frame number 0 and 8 in the multiframe, we must first move the CRC4 into those of the last SMF. Change-Id: I088741fc4528f33b3b989ada0e21957456deedb6 --- M software/obsolete/osmo_e1f.c 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/98/21798/1 diff --git a/software/obsolete/osmo_e1f.c b/software/obsolete/osmo_e1f.c index cbcd0db..a4cadb2 100644 --- a/software/obsolete/osmo_e1f.c +++ b/software/obsolete/osmo_e1f.c @@ -208,6 +208,12 @@ { 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 */ @@ -236,12 +242,6 @@ ret |= 0x20; } - /* 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; - } - /* increment frame number modulo 16 */ e1i->tx.frame_nr = (e1i->tx.frame_nr + 1) % 16; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21798 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: I088741fc4528f33b3b989ada0e21957456deedb6 Gerrit-Change-Number: 21798 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 Dec 19 11:21:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:21:01 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f.c: sa4..sa8 bits should be all-1 by default In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21796 ) Change subject: osmo_e1f.c: sa4..sa8 bits should be all-1 by default ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21796 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: Id55599a7152a90f85076de810db2a03ac6f3aac1 Gerrit-Change-Number: 21796 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 11: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 Sat Dec 19 11:21:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:21:06 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Fix use of uninitized variable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21797 ) Change subject: osmo_e1f: Fix use of uninitized variable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21797 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: I42024856a58f0bd4fcc1c767688de5334994a8a8 Gerrit-Change-Number: 21797 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 11:21: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 Dec 19 11:21:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:21:17 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f.c: Fix CRC4 insertion In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21798 ) Change subject: osmo_e1f.c: Fix CRC4 insertion ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21798 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: I088741fc4528f33b3b989ada0e21957456deedb6 Gerrit-Change-Number: 21798 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 11: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 Sat Dec 19 11:21:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:21:19 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f.c: sa4..sa8 bits should be all-1 by default In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21796 ) Change subject: osmo_e1f.c: sa4..sa8 bits should be all-1 by default ...................................................................... osmo_e1f.c: sa4..sa8 bits should be all-1 by default From ITU-T G.704 Table 5A Note 4: > Bits S a4 to S a8 (where these are not used) should be set to 1 on > links crossing an international border. Change-Id: Id55599a7152a90f85076de810db2a03ac6f3aac1 --- M software/obsolete/osmo_e1f.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/software/obsolete/osmo_e1f.c b/software/obsolete/osmo_e1f.c index 5ea6d54..6a8725c 100644 --- a/software/obsolete/osmo_e1f.c +++ b/software/obsolete/osmo_e1f.c @@ -59,7 +59,7 @@ e1i->crc4_enabled = crc4_enabled; e1i->notify_cb = cb; - e1i->tx.sa4_sa8 = 0x00; + e1i->tx.sa4_sa8 = 0x1f; e1i->priv = priv; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21796 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: Id55599a7152a90f85076de810db2a03ac6f3aac1 Gerrit-Change-Number: 21796 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 Dec 19 11:21:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:21:20 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Fix use of uninitized variable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21797 ) Change subject: osmo_e1f: Fix use of uninitized variable ...................................................................... osmo_e1f: Fix use of uninitized variable Change-Id: I42024856a58f0bd4fcc1c767688de5334994a8a8 --- M software/obsolete/osmo_e1f.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/software/obsolete/osmo_e1f.c b/software/obsolete/osmo_e1f.c index 6a8725c..cbcd0db 100644 --- a/software/obsolete/osmo_e1f.c +++ b/software/obsolete/osmo_e1f.c @@ -206,7 +206,7 @@ /* pull a single to-be-transmitted byte for TS0 */ static uint8_t e1_pull_ts0(struct osmo_e1f_instance *e1i) { - uint8_t ret; + uint8_t ret = 0; /* according to Table 5B/G.704 - CRC-4 multiframe structure */ if ((e1i->tx.frame_nr % 2) == 0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21797 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: I42024856a58f0bd4fcc1c767688de5334994a8a8 Gerrit-Change-Number: 21797 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 Dec 19 11:21:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:21:20 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f.c: Fix CRC4 insertion In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21798 ) Change subject: osmo_e1f.c: Fix CRC4 insertion ...................................................................... osmo_e1f.c: Fix CRC4 insertion When encoding the CRC bit for Frame number 0 and 8 in the multiframe, we must first move the CRC4 into those of the last SMF. Change-Id: I088741fc4528f33b3b989ada0e21957456deedb6 --- M software/obsolete/osmo_e1f.c 1 file changed, 6 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/software/obsolete/osmo_e1f.c b/software/obsolete/osmo_e1f.c index cbcd0db..a4cadb2 100644 --- a/software/obsolete/osmo_e1f.c +++ b/software/obsolete/osmo_e1f.c @@ -208,6 +208,12 @@ { 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 */ @@ -236,12 +242,6 @@ ret |= 0x20; } - /* 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; - } - /* increment frame number modulo 16 */ e1i->tx.frame_nr = (e1i->tx.frame_nr + 1) % 16; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21798 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: I088741fc4528f33b3b989ada0e21957456deedb6 Gerrit-Change-Number: 21798 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 Dec 19 11:34:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:34:50 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Fix inverted logic of E bits References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21799 ) Change subject: osmo_e1f: Fix inverted logic of E bits ...................................................................... osmo_e1f: Fix inverted logic of E bits A value of '1' means _no_ CRC4 error observed. We got that right in the receive side, but not in the transmit side so far Change-Id: I5ef9ef3b9781da2f53f54253d31cdbf81957ea67 --- M software/obsolete/osmo_e1f.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/99/21799/1 diff --git a/software/obsolete/osmo_e1f.c b/software/obsolete/osmo_e1f.c index a4cadb2..2c3fcfb 100644 --- a/software/obsolete/osmo_e1f.c +++ b/software/obsolete/osmo_e1f.c @@ -233,7 +233,7 @@ case 13: case 15: ret = 0x40; - if (e1i->tx.crc4_error) + if (!e1i->tx.crc4_error) ret |= 0x80; break; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21799 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: I5ef9ef3b9781da2f53f54253d31cdbf81957ea67 Gerrit-Change-Number: 21799 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 Dec 19 11:35:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:35:21 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Fix inverted logic of E bits In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21799 ) Change subject: osmo_e1f: Fix inverted logic of E bits ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21799 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: I5ef9ef3b9781da2f53f54253d31cdbf81957ea67 Gerrit-Change-Number: 21799 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sat, 19 Dec 2020 11: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 Dec 19 11:38:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:38:53 +0000 Subject: Change in osmo-e1d[master]: support for control endpoint requests to icE1usb to switch Rx/Tx mode References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21800 ) Change subject: support for control endpoint requests to icE1usb to switch Rx/Tx mode ...................................................................... support for control endpoint requests to icE1usb to switch Rx/Tx mode Change-Id: I62f3175a216eb5db0847f4b16c91bc23697a7623 --- M src/usb.c 1 file changed, 108 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/00/21800/1 diff --git a/src/usb.c b/src/usb.c index 783f624..5a8e5bd 100644 --- a/src/usb.c +++ b/src/usb.c @@ -77,6 +77,9 @@ /* Rate regulation */ uint32_t r_acc; uint32_t r_sw; + + /* list of in-progress CTRL operations */ + struct llist_head ctrl_inprogress; }; struct e1_usb_intf_data { @@ -375,6 +378,110 @@ } // --------------------------------------------------------------------------- +// Control transfers +// --------------------------------------------------------------------------- + +struct e1_usb_ctrl_xfer { + struct e1_line *line; + struct llist_head list; + /* 8 bytes control setup packet, remainder for data */ + uint8_t buffer[8 + 8]; +}; + + +static void +ctrl_xfer_compl_cb(struct libusb_transfer *xfr) +{ + struct e1_usb_ctrl_xfer *ucx = xfr->user_data; + + switch (xfr->status) { + case LIBUSB_TRANSFER_COMPLETED: + LOGPLI(ucx->line, DE1D, LOGL_INFO, "CTRL transfer completed successfully\n"); + break; + default: + LOGPLI(ucx->line, DE1D, LOGL_ERROR, "CTRL transfer completed unsuccessfully %d\n", + xfr->status); + break; + } + llist_del(&ucx->list); + talloc_free(ucx); + libusb_free_transfer(xfr); +} + +/* generic helper for async transmission of control endpoint requests */ +static int +_e1_usb_line_send_ctrl(struct e1_line *line, uint8_t bmReqType, uint8_t bReq, uint16_t wValue, + const uint8_t *data, size_t data_len) +{ + struct e1_usb_ctrl_xfer *ucx = talloc_zero(line, struct e1_usb_ctrl_xfer); + struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; + struct e1_usb_intf_data *id = (struct e1_usb_intf_data *) line->intf->drv_data; + struct libusb_transfer *xfr; + int rc; + + if (!ucx) + return -ENOMEM; + + OSMO_ASSERT(sizeof(ucx->buffer) >= 8+data_len); + ucx->line = line; + libusb_fill_control_setup(ucx->buffer, bmReqType, bReq, wValue, ld->if_num, data_len); + if (data && data_len) + memcpy(ucx->buffer+8, data, data_len); + + xfr = libusb_alloc_transfer(0); + if (!xfr) { + rc = -ENOMEM; + goto free_ucx; + } + + libusb_fill_control_transfer(xfr, id->devh, ucx->buffer, ctrl_xfer_compl_cb, ucx, 3000); + rc = libusb_submit_transfer(xfr); + if (rc != 0) + goto free_xfr; + + llist_add_tail(&ucx->list, &ld->ctrl_inprogress); + + return 0; + +free_xfr: + libusb_free_transfer(xfr); +free_ucx: + talloc_free(ucx); + + return rc; +} + +int +e1_usb_ctrl_set_tx_cfg(struct e1_line *line, enum ice1usb_tx_mode mode, enum ice1usb_tx_timing timing, + enum ice1usb_tx_ext_loopback ext_loop, uint8_t alarm) +{ + const uint16_t bmReqType = LIBUSB_RECIPIENT_INTERFACE | LIBUSB_REQUEST_TYPE_VENDOR | + LIBUSB_ENDPOINT_OUT; + struct ice1usb_tx_config tx_cfg = { + .mode = mode, + .timing = timing, + .ext_loopback = ext_loop, + .alarm = alarm, + }; + + return _e1_usb_line_send_ctrl(line, bmReqType, ICE1USB_INTF_SET_TX_CFG, 0, (uint8_t *)&tx_cfg, + sizeof(tx_cfg)); +} + +int +e1_usb_ctrl_set_rx_cfg(struct e1_line *line, enum ice1usb_rx_mode mode) +{ + const uint16_t bmReqType = LIBUSB_RECIPIENT_INTERFACE | LIBUSB_REQUEST_TYPE_VENDOR | + LIBUSB_ENDPOINT_OUT; + struct ice1usb_rx_config rx_cfg = { + .mode = mode, + }; + + return _e1_usb_line_send_ctrl(line, bmReqType, ICE1USB_INTF_SET_RX_CFG, 0, (uint8_t *)&rx_cfg, + sizeof(rx_cfg)); +} + +// --------------------------------------------------------------------------- // Init / Probing // --------------------------------------------------------------------------- @@ -433,6 +540,7 @@ /* Setup driver data and find endpoints */ line_data = talloc_zero(e1d->ctx, struct e1_usb_line_data); + INIT_LLIST_HEAD(&line_data->ctrl_inprogress); line_data->if_num = id->bInterfaceNumber; line_data->r_acc = 0; line_data->r_sw = 8192; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I62f3175a216eb5db0847f4b16c91bc23697a7623 Gerrit-Change-Number: 21800 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 Dec 19 11:38:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:38:53 +0000 Subject: Change in osmo-e1d[master]: e1_line.c: Split multiplex + demultiplex into separate mux_demux.c References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21801 ) Change subject: e1_line.c: Split multiplex + demultiplex into separate mux_demux.c ...................................................................... e1_line.c: Split multiplex + demultiplex into separate mux_demux.c The remaining intf_line.c really only manages the data structures. This is useful for building other programs than osmo-e1d, such as an upcoming E1 test utility called osmo-e1gen which will also use the USB interface and icE1usb hardware, but not any of the mux/demux/ctl code. Change-Id: I1ceaea85a15e2fae1d2e041173be9d758c6d0b78 --- M src/Makefile.am M src/intf_line.c A src/mux_demux.c 3 files changed, 378 insertions(+), 334 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/01/21801/1 diff --git a/src/Makefile.am b/src/Makefile.am index d9d8236..09cf0e4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,6 +35,7 @@ ctl.c \ intf_line.c \ log.c \ + mux_demux.c \ osmo-e1d.c \ usb.c \ vpair.c \ diff --git a/src/intf_line.c b/src/intf_line.c index 2ed9e66..3aebf9c 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -166,338 +166,4 @@ } -// --------------------------------------------------------------------------- -// data transfer -// --------------------------------------------------------------------------- -static int -_e1_rx_hdlcfs(struct e1_ts *ts, const uint8_t *buf, int len) -{ - int rv, cl, oi; - - oi = 0; - - while (oi < len) { - rv = osmo_isdnhdlc_decode(&ts->hdlc.rx, - &buf[oi], len-oi, &cl, - ts->hdlc.rx_buf, sizeof(ts->hdlc.rx_buf) - ); - - if (rv > 0) { - int bytes_to_write = rv; - LOGPTS(ts, DXFR, LOGL_DEBUG, "RX Message: %d [ %s]\n", - rv, osmo_hexdump(ts->hdlc.rx_buf, rv)); - rv = write(ts->fd, ts->hdlc.rx_buf, bytes_to_write); - if (rv < 0) - return rv; - } else if (rv < 0 && ts->id == 4) { - LOGPTS(ts, DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", - rv,oi,cl, osmo_hexdump(buf, len)); - } - - oi += cl; - } - - return len; -} - -static int -_e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) -{ - int rv, oo, cl; - - oo = 0; - - while (oo < len) { - /* Pending message ? */ - if (!ts->hdlc.tx_len) { - rv = recv(ts->fd, ts->hdlc.tx_buf, sizeof(ts->hdlc.tx_buf), MSG_TRUNC); - if (rv > 0) { - if (rv > sizeof(ts->hdlc.tx_buf)) { - LOGPTS(ts, DXFR, LOGL_ERROR, "Truncated message: Client tried to " - "send %d bytes but our buffer is limited to %lu\n", - rv, sizeof(ts->hdlc.tx_buf)); - rv = sizeof(ts->hdlc.tx_buf); - } - LOGPTS(ts, DXFR, LOGL_DEBUG, "TX Message: %d [ %s]\n", - rv, osmo_hexdump(ts->hdlc.tx_buf, rv)); - ts->hdlc.tx_len = rv; - ts->hdlc.tx_ofs = 0; - } else if (rv < 0 && errno != EAGAIN) - return rv; - } - - /* */ - rv = osmo_isdnhdlc_encode(&ts->hdlc.tx, - &ts->hdlc.tx_buf[ts->hdlc.tx_ofs], ts->hdlc.tx_len - ts->hdlc.tx_ofs, &cl, - &buf[oo], len - oo - ); - - if (rv < 0) - LOGPTS(ts, DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); - - if (ts->hdlc.tx_ofs < ts->hdlc.tx_len) { - LOGPTS(ts, DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", - ts->hdlc.tx_ofs, ts->hdlc.tx_len, cl, osmo_hexdump(&buf[ts->hdlc.tx_ofs], rv)); - } - - if (rv > 0) - oo += rv; - - ts->hdlc.tx_ofs += cl; - if (ts->hdlc.tx_ofs >= ts->hdlc.tx_len) { - ts->hdlc.tx_len = 0; - ts->hdlc.tx_ofs = 0; - } - } - - return len; -} - -/* read from a timeslot-FD (direction application -> hardware) */ -static int -_e1_ts_read(struct e1_ts *ts, uint8_t *buf, size_t len) -{ - int l; - - switch (ts->mode) { - case E1_TS_MODE_RAW: - l = read(ts->fd, buf, len); - /* FIXME: handle underflow */ - break; - case E1_TS_MODE_HDLCFCS: - l = _e1_tx_hdlcfs(ts, buf, len); - break; - default: - OSMO_ASSERT(0); - break; - } - - if (l < 0 && errno != EAGAIN) { - LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during read: %s\n", - strerror(errno)); - e1_ts_stop(ts); - } else if (l < len) { - LOGPTS(ts, DE1D, LOGL_NOTICE, "TS read underflow: We had %zu bytes to read, " - "but socket returned only %d\n", len, l); - } - - return l; -} - -static void -_e1_line_mux_out_channelized(struct e1_line *line, uint8_t *buf, int fts) -{ - OSMO_ASSERT(line->mode == E1_LINE_MODE_CHANNELIZED); - - /* Scan timeslots */ - for (int tsn=1; tsn<32; tsn++) - { - struct e1_ts *ts = &line->ts[tsn]; - uint8_t buf_ts[fts]; - int l; - - if (ts->mode == E1_TS_MODE_OFF) - continue; - - l = _e1_ts_read(ts, buf_ts, sizeof(buf_ts)); - if (l <= 0) - continue; - - for (int i=0; isuperchan; - uint8_t sc_buf[31*fts]; - int l; - - OSMO_ASSERT(line->mode == E1_LINE_MODE_SUPERCHANNEL); - - if (ts->mode == E1_TS_MODE_OFF) - return; - - /* first pull all we need out of the source */ - l = _e1_ts_read(ts, sc_buf, sizeof(sc_buf)); - if (l <= 0) - return; - - /* then form E1 frames from it, sprinkling in some gaps for TS0 */ - for (int i = 0; i < fts; i++) - memcpy(buf + i*32 + 1, sc_buf + i*31, 31); -} - -/*! 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) -{ - int tsz; - - /* Prepare */ - tsz = 32 * fts; - memset(buf, 0xff, tsz); - - switch (line->mode) { - case E1_LINE_MODE_CHANNELIZED: - _e1_line_mux_out_channelized(line, buf, fts); - break; - case E1_LINE_MODE_SUPERCHANNEL: - _e1_line_mux_out_superchan(line, buf, fts); - break; - default: - OSMO_ASSERT(0); - } - - return tsz; -} - -/* append data to the per-timeslot buffer; flush to socket every time buffer is full */ -static int -_e1_rx_raw(struct e1_ts *ts, const uint8_t *buf, unsigned int len) -{ - unsigned int appended = 0; - int rv; - - OSMO_ASSERT(ts->mode == E1_TS_MODE_RAW); - - /* we don't keep a larger set of buffers but simply assume that whenever - * we received one full chunk/buffer size, we are able to push the data - * into the underlying unix domain socket. Kernel socket buffering should - * be far sufficient in terms of buffering capacity of voice data (which - * is typically consumed reasonably low latency and hence buffer size) */ - - while (appended < len) { - unsigned int ts_buf_tailroom = ts->raw.rx_buf_size - ts->raw.rx_buf_used; - unsigned int chunk_len; - - /* determine size of chunk we can write at this point */ - chunk_len = len - appended; - if (chunk_len > ts_buf_tailroom) - chunk_len = ts_buf_tailroom; - - /* actually copy the chunk */ - memcpy(ts->raw.rx_buf + ts->raw.rx_buf_used, buf + appended, chunk_len); - ts->raw.rx_buf_used += chunk_len; - appended += chunk_len; - - /* if ts_buf is full: flush + rewind */ - if (ts->raw.rx_buf_used >= ts->raw.rx_buf_size) { - rv = write(ts->fd, ts->raw.rx_buf, ts->raw.rx_buf_size); - if (rv < 0) - return rv; - /* FIXME: count overflows */ - ts->raw.rx_buf_used = 0; - } - } - - return appended; -} - -/* write data to a timeslot (hardware -> application direction) */ -static int -_e1_ts_write(struct e1_ts *ts, const uint8_t *buf, size_t len) -{ - int rv; - - switch (ts->mode) { - case E1_TS_MODE_RAW: - rv = _e1_rx_raw(ts, buf, len); - break; - case E1_TS_MODE_HDLCFCS: - rv = _e1_rx_hdlcfs(ts, buf, len); - break; - default: - OSMO_ASSERT(0); - break; - } - - if (rv < 0 && errno != EAGAIN) { - LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during write: %s\n", - strerror(errno)); - e1_ts_stop(ts); - } else if (rv < len) { - LOGPTS(ts, DE1D, LOGL_NOTICE, "TS write overflow: We had %zu bytes to send, " - "but write returned only %d\n", len, rv); - } - - return rv; -} - -static int -_e1_line_demux_in_superchan(struct e1_line *line, const uint8_t *buf, int ftr) -{ - struct e1_ts *ts = &line->superchan; - uint8_t sc_buf[ftr*31]; - - OSMO_ASSERT(line->mode == E1_LINE_MODE_SUPERCHANNEL); - - if (ts->mode == E1_TS_MODE_OFF) - return 0; - - /* first gather input data from multiple frames*/ - for (int i = 0; i < ftr; i++) - memcpy(sc_buf + (i*31), buf + (i*32) + 1, 31); - - /* then dispatch to appropriate action */ - _e1_ts_write(ts, sc_buf, ftr*31); - - return 0; -} - -static int -_e1_line_demux_in_channelized(struct e1_line *line, const uint8_t *buf, int ftr) -{ - OSMO_ASSERT(line->mode == E1_LINE_MODE_CHANNELIZED); - - for (int tsn=1; tsn<32; tsn++) - { - struct e1_ts *ts = &line->ts[tsn]; - uint8_t buf_ts[ftr]; - - if (ts->mode == E1_TS_MODE_OFF) - continue; - - for (int i=0; imode) { - case E1_LINE_MODE_CHANNELIZED: - return _e1_line_demux_in_channelized(line, buf, ftr); - case E1_LINE_MODE_SUPERCHANNEL: - return _e1_line_demux_in_superchan(line, buf, ftr); - default: - OSMO_ASSERT(0); - } -} diff --git a/src/mux_demux.c b/src/mux_demux.c new file mode 100644 index 0000000..ed7bf3b --- /dev/null +++ b/src/mux_demux.c @@ -0,0 +1,377 @@ +/* + * mux_demux.c + * + * (C) 2019 by Sylvain Munaut + * + * 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 +#include + +#include + +#include +#include +#include +#include +#include + +#include "e1d.h" +#include "log.h" + +// --------------------------------------------------------------------------- +// data transfer +// --------------------------------------------------------------------------- + +static int +_e1_rx_hdlcfs(struct e1_ts *ts, const uint8_t *buf, int len) +{ + int rv, cl, oi; + + oi = 0; + + while (oi < len) { + rv = osmo_isdnhdlc_decode(&ts->hdlc.rx, + &buf[oi], len-oi, &cl, + ts->hdlc.rx_buf, sizeof(ts->hdlc.rx_buf) + ); + + if (rv > 0) { + int bytes_to_write = rv; + LOGPTS(ts, DXFR, LOGL_DEBUG, "RX Message: %d [ %s]\n", + rv, osmo_hexdump(ts->hdlc.rx_buf, rv)); + rv = write(ts->fd, ts->hdlc.rx_buf, bytes_to_write); + if (rv < 0) + return rv; + } else if (rv < 0 && ts->id == 4) { + LOGPTS(ts, DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", + rv,oi,cl, osmo_hexdump(buf, len)); + } + + oi += cl; + } + + return len; +} + +static int +_e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) +{ + int rv, oo, cl; + + oo = 0; + + while (oo < len) { + /* Pending message ? */ + if (!ts->hdlc.tx_len) { + rv = recv(ts->fd, ts->hdlc.tx_buf, sizeof(ts->hdlc.tx_buf), MSG_TRUNC); + if (rv > 0) { + if (rv > sizeof(ts->hdlc.tx_buf)) { + LOGPTS(ts, DXFR, LOGL_ERROR, "Truncated message: Client tried to " + "send %d bytes but our buffer is limited to %lu\n", + rv, sizeof(ts->hdlc.tx_buf)); + rv = sizeof(ts->hdlc.tx_buf); + } + LOGPTS(ts, DXFR, LOGL_DEBUG, "TX Message: %d [ %s]\n", + rv, osmo_hexdump(ts->hdlc.tx_buf, rv)); + ts->hdlc.tx_len = rv; + ts->hdlc.tx_ofs = 0; + } else if (rv < 0 && errno != EAGAIN) + return rv; + } + + /* */ + rv = osmo_isdnhdlc_encode(&ts->hdlc.tx, + &ts->hdlc.tx_buf[ts->hdlc.tx_ofs], ts->hdlc.tx_len - ts->hdlc.tx_ofs, &cl, + &buf[oo], len - oo + ); + + if (rv < 0) + LOGPTS(ts, DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); + + if (ts->hdlc.tx_ofs < ts->hdlc.tx_len) { + LOGPTS(ts, DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", + ts->hdlc.tx_ofs, ts->hdlc.tx_len, cl, osmo_hexdump(&buf[ts->hdlc.tx_ofs], rv)); + } + + if (rv > 0) + oo += rv; + + ts->hdlc.tx_ofs += cl; + if (ts->hdlc.tx_ofs >= ts->hdlc.tx_len) { + ts->hdlc.tx_len = 0; + ts->hdlc.tx_ofs = 0; + } + } + + return len; +} + +/* read from a timeslot-FD (direction application -> hardware) */ +static int +_e1_ts_read(struct e1_ts *ts, uint8_t *buf, size_t len) +{ + int l; + + switch (ts->mode) { + case E1_TS_MODE_RAW: + l = read(ts->fd, buf, len); + /* FIXME: handle underflow */ + break; + case E1_TS_MODE_HDLCFCS: + l = _e1_tx_hdlcfs(ts, buf, len); + break; + default: + OSMO_ASSERT(0); + break; + } + + if (l < 0 && errno != EAGAIN) { + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during read: %s\n", + strerror(errno)); + e1_ts_stop(ts); + } else if (l < len) { + LOGPTS(ts, DE1D, LOGL_NOTICE, "TS read underflow: We had %zu bytes to read, " + "but socket returned only %d\n", len, l); + } + + return l; +} + +static void +_e1_line_mux_out_channelized(struct e1_line *line, uint8_t *buf, int fts) +{ + OSMO_ASSERT(line->mode == E1_LINE_MODE_CHANNELIZED); + + /* Scan timeslots */ + for (int tsn=1; tsn<32; tsn++) + { + struct e1_ts *ts = &line->ts[tsn]; + uint8_t buf_ts[fts]; + int l; + + if (ts->mode == E1_TS_MODE_OFF) + continue; + + l = _e1_ts_read(ts, buf_ts, sizeof(buf_ts)); + if (l <= 0) + continue; + + for (int i=0; isuperchan; + uint8_t sc_buf[31*fts]; + int l; + + OSMO_ASSERT(line->mode == E1_LINE_MODE_SUPERCHANNEL); + + if (ts->mode == E1_TS_MODE_OFF) + return; + + /* first pull all we need out of the source */ + l = _e1_ts_read(ts, sc_buf, sizeof(sc_buf)); + if (l <= 0) + return; + + /* then form E1 frames from it, sprinkling in some gaps for TS0 */ + for (int i = 0; i < fts; i++) + memcpy(buf + i*32 + 1, sc_buf + i*31, 31); +} + +/*! 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) +{ + int tsz; + + /* Prepare */ + tsz = 32 * fts; + memset(buf, 0xff, tsz); + + switch (line->mode) { + case E1_LINE_MODE_CHANNELIZED: + _e1_line_mux_out_channelized(line, buf, fts); + break; + case E1_LINE_MODE_SUPERCHANNEL: + _e1_line_mux_out_superchan(line, buf, fts); + break; + default: + OSMO_ASSERT(0); + } + + return tsz; +} + +/* append data to the per-timeslot buffer; flush to socket every time buffer is full */ +static int +_e1_rx_raw(struct e1_ts *ts, const uint8_t *buf, unsigned int len) +{ + unsigned int appended = 0; + int rv; + + OSMO_ASSERT(ts->mode == E1_TS_MODE_RAW); + + /* we don't keep a larger set of buffers but simply assume that whenever + * we received one full chunk/buffer size, we are able to push the data + * into the underlying unix domain socket. Kernel socket buffering should + * be far sufficient in terms of buffering capacity of voice data (which + * is typically consumed reasonably low latency and hence buffer size) */ + + while (appended < len) { + unsigned int ts_buf_tailroom = ts->raw.rx_buf_size - ts->raw.rx_buf_used; + unsigned int chunk_len; + + /* determine size of chunk we can write at this point */ + chunk_len = len - appended; + if (chunk_len > ts_buf_tailroom) + chunk_len = ts_buf_tailroom; + + /* actually copy the chunk */ + memcpy(ts->raw.rx_buf + ts->raw.rx_buf_used, buf + appended, chunk_len); + ts->raw.rx_buf_used += chunk_len; + appended += chunk_len; + + /* if ts_buf is full: flush + rewind */ + if (ts->raw.rx_buf_used >= ts->raw.rx_buf_size) { + rv = write(ts->fd, ts->raw.rx_buf, ts->raw.rx_buf_size); + if (rv < 0) + return rv; + /* FIXME: count overflows */ + ts->raw.rx_buf_used = 0; + } + } + + return appended; +} + +/* write data to a timeslot (hardware -> application direction) */ +static int +_e1_ts_write(struct e1_ts *ts, const uint8_t *buf, size_t len) +{ + int rv; + + switch (ts->mode) { + case E1_TS_MODE_RAW: + rv = _e1_rx_raw(ts, buf, len); + break; + case E1_TS_MODE_HDLCFCS: + rv = _e1_rx_hdlcfs(ts, buf, len); + break; + default: + OSMO_ASSERT(0); + break; + } + + if (rv < 0 && errno != EAGAIN) { + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during write: %s\n", + strerror(errno)); + e1_ts_stop(ts); + } else if (rv < len) { + LOGPTS(ts, DE1D, LOGL_NOTICE, "TS write overflow: We had %zu bytes to send, " + "but write returned only %d\n", len, rv); + } + + return rv; +} + +static int +_e1_line_demux_in_superchan(struct e1_line *line, const uint8_t *buf, int ftr) +{ + struct e1_ts *ts = &line->superchan; + uint8_t sc_buf[ftr*31]; + + OSMO_ASSERT(line->mode == E1_LINE_MODE_SUPERCHANNEL); + + if (ts->mode == E1_TS_MODE_OFF) + return 0; + + /* first gather input data from multiple frames*/ + for (int i = 0; i < ftr; i++) + memcpy(sc_buf + (i*31), buf + (i*32) + 1, 31); + + /* then dispatch to appropriate action */ + _e1_ts_write(ts, sc_buf, ftr*31); + + return 0; +} + +static int +_e1_line_demux_in_channelized(struct e1_line *line, const uint8_t *buf, int ftr) +{ + OSMO_ASSERT(line->mode == E1_LINE_MODE_CHANNELIZED); + + for (int tsn=1; tsn<32; tsn++) + { + struct e1_ts *ts = &line->ts[tsn]; + uint8_t buf_ts[ftr]; + + if (ts->mode == E1_TS_MODE_OFF) + continue; + + for (int i=0; imode) { + case E1_LINE_MODE_CHANNELIZED: + return _e1_line_demux_in_channelized(line, buf, ftr); + case E1_LINE_MODE_SUPERCHANNEL: + return _e1_line_demux_in_superchan(line, buf, ftr); + default: + OSMO_ASSERT(0); + } +} -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21801 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I1ceaea85a15e2fae1d2e041173be9d758c6d0b78 Gerrit-Change-Number: 21801 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 Dec 19 11:38:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:38:53 +0000 Subject: Change in osmo-e1d[master]: move usb.c function declarations to newly-created usb.h References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21802 ) Change subject: move usb.c function declarations to newly-created usb.h ...................................................................... move usb.c function declarations to newly-created usb.h Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 --- M src/Makefile.am M src/osmo-e1d.c A src/usb.h 3 files changed, 19 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/02/21802/1 diff --git a/src/Makefile.am b/src/Makefile.am index 09cf0e4..fd61f5a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -23,6 +23,7 @@ e1d.h \ ice1usb_proto.h \ log.h \ + usb.h \ $(NULL) diff --git a/src/osmo-e1d.c b/src/osmo-e1d.c index 10d7a5e..3ac9642 100644 --- a/src/osmo-e1d.c +++ b/src/osmo-e1d.c @@ -43,6 +43,7 @@ #include #include "e1d.h" +#include "usb.h" #include "log.h" #ifndef OSMO_VTY_PORT_E1D @@ -50,8 +51,6 @@ #endif extern struct osmo_e1dp_server_handler e1d_ctl_handlers[]; -extern int e1_usb_probe(struct e1_daemon *e1d); - static const char *g_config_file = "osmo-e1d.cfg"; static void *g_e1d_ctx = NULL; diff --git a/src/usb.h b/src/usb.h new file mode 100644 index 0000000..42b8681 --- /dev/null +++ b/src/usb.h @@ -0,0 +1,17 @@ +#pragma once + +#include "ice1usb_proto.h" + +struct e1d_line; +struct e1_daemon; +struct libusb_device; + +int e1_usb_ctrl_set_tx_cfg(struct e1_line *line, enum ice1usb_tx_mode mode, + enum ice1usb_tx_timing timing, enum ice1usb_tx_ext_loopback ext_loop, + uint8_t alarm); + +int e1_usb_ctrl_set_rx_cfg(struct e1_line *line, enum ice1usb_rx_mode mode); + +int _e1_usb_open_device(struct e1_daemon *e1d, struct libusb_device *dev); + +int e1_usb_probe(struct e1_daemon *e1d); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 Gerrit-Change-Number: 21802 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 Dec 19 11:38:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:38:54 +0000 Subject: Change in osmo-e1d[master]: Move e1d_find_intf + e1_intf_find_line to intf_line.c References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21803 ) Change subject: Move e1d_find_intf + e1_intf_find_line to intf_line.c ...................................................................... Move e1d_find_intf + e1_intf_find_line to intf_line.c Those are generic helper functions not really related to the ctl interface. Change-Id: Ibbda172aa425ca1e4702bacc7e595cd73a52929d --- M src/ctl.c M src/e1d.h M src/intf_line.c 3 files changed, 31 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/03/21803/1 diff --git a/src/ctl.c b/src/ctl.c index 8a0e339..1775423 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -42,30 +42,6 @@ #include "log.h" -struct e1_intf * -e1d_find_intf(struct e1_daemon *e1d, uint8_t id) -{ - struct e1_intf *intf; - - llist_for_each_entry(intf, &e1d->interfaces, list) - if (intf->id == id) - return intf; - - return NULL; -} - -struct e1_line * -e1_intf_find_line(struct e1_intf *intf, uint8_t id) -{ - struct e1_line *line; - - llist_for_each_entry(line, &intf->lines, list) - if (line->id == id) - return line; - - return NULL; -} - static struct e1_ts * _e1d_get_ts(struct e1_line *line, uint8_t ts) { diff --git a/src/e1d.h b/src/e1d.h index 16d0fad..a12b5de 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -122,6 +122,13 @@ struct llist_head interfaces; }; + +struct e1_line * +e1_intf_find_line(struct e1_intf *intf, uint8_t id); + +struct e1_line * +e1_intf_find_line(struct e1_intf *intf, uint8_t id); + struct e1_intf * e1_intf_new(struct e1_daemon *e1d, void *drv_data); diff --git a/src/intf_line.c b/src/intf_line.c index 3aebf9c..ccd7645 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -67,6 +67,30 @@ // --------------------------------------------------------------------------- struct e1_intf * +e1d_find_intf(struct e1_daemon *e1d, uint8_t id) +{ + struct e1_intf *intf; + + llist_for_each_entry(intf, &e1d->interfaces, list) + if (intf->id == id) + return intf; + + return NULL; +} + +struct e1_line * +e1_intf_find_line(struct e1_intf *intf, uint8_t id) +{ + struct e1_line *line; + + llist_for_each_entry(line, &intf->lines, list) + if (line->id == id) + return line; + + return NULL; +} + +struct e1_intf * e1_intf_new(struct e1_daemon *e1d, void *drv_data) { struct e1_intf *intf; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ibbda172aa425ca1e4702bacc7e595cd73a52929d Gerrit-Change-Number: 21803 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 Dec 19 11:38:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:38:54 +0000 Subject: Change in osmo-e1d[master]: vty: export vty_e1d + move e1d_vty_node to header file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21804 ) Change subject: vty: export vty_e1d + move e1d_vty_node to header file ...................................................................... vty: export vty_e1d + move e1d_vty_node to header file This will be required by osmo-e1gen Change-Id: I5be0278bc07aadd154fc54a74b08fc7e3b5d6483 --- M src/e1d.h M src/vty.c 2 files changed, 7 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/04/21804/1 diff --git a/src/e1d.h b/src/e1d.h index a12b5de..b4bb754 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -27,6 +27,12 @@ #include #include #include +#include + +enum e1d_vty_node { + E1D_NODE = _LAST_OSMOVTY_NODE + 1, + LINE_NODE +}; enum e1d_line_ctr { LINE_CTR_LOS, diff --git a/src/vty.c b/src/vty.c index c145a9d..10bf67d 100644 --- a/src/vty.c +++ b/src/vty.c @@ -39,11 +39,7 @@ #include #include "e1d.h" -static struct e1_daemon *vty_e1d; - -enum e1d_vty_node { - E1D_NODE = _LAST_OSMOVTY_NODE + 1, -}; +struct e1_daemon *vty_e1d; static struct cmd_node e1d_node = { (enum node_type) E1D_NODE, -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5be0278bc07aadd154fc54a74b08fc7e3b5d6483 Gerrit-Change-Number: 21804 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 Dec 19 11:38:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:38:54 +0000 Subject: Change in osmo-e1d[master]: Add new "osmo-e1gen" program. References: Message-ID: laforge has uploaded this change for review. ( 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,427 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/05/21805/1 diff --git a/src/Makefile.am b/src/Makefile.am index fd61f5a..cf18d60 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -32,6 +32,10 @@ osmo-e1d-pipe \ $(NULL) +noinst_PROGRAMS = \ + osmo-e1gen \ + $(NULL) + osmo_e1d_SOURCES = \ ctl.c \ intf_line.c \ @@ -51,3 +55,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 b4bb754..eca780a 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -101,6 +101,8 @@ struct e1_ts ts[32]; /* superchannel */ struct e1_ts superchan; + + 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..2c3fcfb --- /dev/null +++ b/src/e1gen/osmo_e1f.c @@ -0,0 +1,699 @@ +/* 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; + + /* 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..c9d4778 --- /dev/null +++ b/src/e1gen/osmo_e1f.h @@ -0,0 +1,122 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +struct osmo_e1f_tx_state { + bool remote_alarm; + bool crc4_error; + /* 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..91e2ff9 --- /dev/null +++ b/src/osmo-e1gen.c @@ -0,0 +1,424 @@ +/* + * 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) +{ + 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" + +DEFUN(line_tx_alarm, line_tx_alarm_cmd, + "tx report-alarm (0|1)", + TX_STR "Report Alarm (A-Bits)\n" "Off\n" "On\n") +{ + 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\n" "On\n") +{ + 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\n" "On\n") +{ + 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_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_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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Dec 19 11:39:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:39:10 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Fix inverted logic of E bits In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21799 ) Change subject: osmo_e1f: Fix inverted logic of E bits ...................................................................... osmo_e1f: Fix inverted logic of E bits A value of '1' means _no_ CRC4 error observed. We got that right in the receive side, but not in the transmit side so far Change-Id: I5ef9ef3b9781da2f53f54253d31cdbf81957ea67 --- M software/obsolete/osmo_e1f.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/software/obsolete/osmo_e1f.c b/software/obsolete/osmo_e1f.c index a4cadb2..2c3fcfb 100644 --- a/software/obsolete/osmo_e1f.c +++ b/software/obsolete/osmo_e1f.c @@ -233,7 +233,7 @@ case 13: case 15: ret = 0x40; - if (e1i->tx.crc4_error) + if (!e1i->tx.crc4_error) ret |= 0x80; break; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21799 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: I5ef9ef3b9781da2f53f54253d31cdbf81957ea67 Gerrit-Change-Number: 21799 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 Dec 19 11:42:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:42:28 +0000 Subject: Change in osmo-e1d[master]: vpair: fix writing config file with vpairs configured 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/+/21781 to look at the new patch set (#2). Change subject: vpair: fix writing config file with vpairs configured ...................................................................... vpair: fix writing config file with vpairs configured prior to this patch, the configured vpair interfaces would not be saved to the config file on 'write file'. Change-Id: Iff6551318534a3717c374060082147f17b925a21 --- M doc/examples/osmo-e1d-vpair.cfg M src/e1d.h M src/vpair.c M src/vty.c 4 files changed, 77 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/81/21781/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Iff6551318534a3717c374060082147f17b925a21 Gerrit-Change-Number: 21781 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Dec 19 11:42:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 11:42:28 +0000 Subject: Change in osmo-e1d[master]: Add new "osmo-e1gen" 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/osmo-e1d/+/21805 to look at the new patch set (#2). 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,429 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/05/21805/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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Dec 19 13:18:24 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 19 Dec 2020 13:18:24 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcap in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fddfdc6b4098_22fc2aafec8545f014700f@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild13: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 Sat Dec 19 15:37:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 15:37:37 +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 2: the big questions here is if we should simply include those features into normal osmo-e1d or not. If we keep it as a separate binary, we should probably find a way to unify the two 'main' files, which are really a lot of copy+paste. -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 15:37: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 Sat Dec 19 16:37:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 16:37:01 +0000 Subject: Change in libosmocore[master]: gsm_08_58: fix wrong field order in 'struct ipac_preproc_pc_thresh' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21806 ) Change subject: gsm_08_58: fix wrong field order in 'struct ipac_preproc_pc_thresh' ...................................................................... gsm_08_58: fix wrong field order in 'struct ipac_preproc_pc_thresh' Thanks to the CLI of nanoBTS, I noticed that upper and lower RxQual thresholds are sent in wrong order. Only the little-endian variant needs to be fixed, the big-endian one looks good. Change-Id: If6ab2377bae6742f871589b529a349498775552f Related: SYS#4918 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/21806/1 diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index 0f7af92..046d358 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -787,8 +787,8 @@ #if OSMO_IS_LITTLE_ENDIAN uint8_t l_rxlev:6, reserved_l_rxlev:2; uint8_t u_rxlev:6, reserved_u_rxlev:2; - uint8_t l_rxqual:3, reserved_l_rxqual:1, - u_rxqual:3, reserved_u_rxqual:1; + uint8_t u_rxqual:3, reserved_u_rxqual:1, + l_rxqual:3, reserved_l_rxqual:1; #elif OSMO_IS_BIG_ENDIAN uint8_t reserved_l_rxlev:2, l_rxlev:6; uint8_t reserved_u_rxlev:2, u_rxlev:6; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If6ab2377bae6742f871589b529a349498775552f Gerrit-Change-Number: 21806 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 Dec 19 16:43:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:43:35 +0000 Subject: Change in osmo-e1d[master]: Add per-line rate counter group to count various errors 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/+/21783 to look at the new patch set (#3). Change subject: Add per-line rate counter group to count various errors ...................................................................... Add per-line rate counter group to count various errors Change-Id: I766b717843d7cd8ac00d4ce18c38773ac50ec3e6 --- M src/e1d.h M src/intf_line.c M src/usb.c M src/vty.c 4 files changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/83/21783/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I766b717843d7cd8ac00d4ce18c38773ac50ec3e6 Gerrit-Change-Number: 21783 Gerrit-PatchSet: 3 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 Sat Dec 19 16:43:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:43:35 +0000 Subject: Change in osmo-e1d[master]: Add new "osmo-e1gen" program. 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/+/21805 to look at the new patch set (#3). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/05/21805/3 -- 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: 3 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 Sat Dec 19 16:43:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:43:36 +0000 Subject: Change in osmo-e1d[master]: usb: Increase number of transfers from 2 to 4 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21807 ) Change subject: usb: Increase number of transfers from 2 to 4 ...................................................................... usb: Increase number of transfers from 2 to 4 Experimentally this has shown a much lower probability of USB related overruns/underruns, at least on my system. Change-Id: I5c73b29462a4870d3c86fd7f46e1574daae6f93f --- M src/usb.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/07/21807/1 diff --git a/src/usb.c b/src/usb.c index 7f7f5c6..be4de44 100644 --- a/src/usb.c +++ b/src/usb.c @@ -365,8 +365,8 @@ line = e1_line_new(intf, line_data); - line_data->flow_in = e1uf_create(line, e1_usb_xfer_in, line_data->ep_in, 2, line_data->pkt_size, 4); - line_data->flow_out = e1uf_create(line, e1_usb_xfer_out, line_data->ep_out, 2, line_data->pkt_size, 4); + line_data->flow_in = e1uf_create(line, e1_usb_xfer_in, line_data->ep_in, 4, line_data->pkt_size, 4); + line_data->flow_out = e1uf_create(line, e1_usb_xfer_out, line_data->ep_out, 4, line_data->pkt_size, 4); line_data->flow_fb = e1uf_create(line, e1_usb_xfer_fb, line_data->ep_fb, 2, 8, 1); e1uf_start(line_data->flow_in); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5c73b29462a4870d3c86fd7f46e1574daae6f93f Gerrit-Change-Number: 21807 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 Dec 19 16:43:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:43:36 +0000 Subject: Change in osmo-e1d[master]: Evaluate received E and A bits in TS0 References: Message-ID: laforge has uploaded this change for review. ( 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, 71 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/08/21808/1 diff --git a/src/e1d.h b/src/e1d.h index 9848df4..3b43d13 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -42,6 +42,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 { @@ -103,6 +105,13 @@ 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; + bool rx_crc4_err; + bool rx_alarm; + } ts0; }; enum e1_driver { @@ -160,7 +169,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, uint8_t frame_base); void e1_ts_stop(struct e1_ts *ts); diff --git a/src/intf_line.c b/src/intf_line.c index ccd7645..9863dc0 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 = { diff --git a/src/mux_demux.c b/src/mux_demux.c index ed7bf3b..896b4a5 100644 --- a/src/mux_demux.c +++ b/src/mux_demux.c @@ -348,13 +348,61 @@ return 0; } +static void _e1_line_set_rx_alarm(struct e1_line *line, bool rx_alarm) +{ + if (rx_alarm) + line_ctr_add(line, LINE_CTR_RX_REMOTE_A, 1); + + if (rx_alarm != line->ts0.rx_alarm) { + LOGPLI(line, DE1D, LOGL_NOTICE, "Remote ALARM condition %s\n", + rx_alarm ? "STARTED" : "CEASED"); + line->ts0.rx_alarm = rx_alarm; + } +} + +static void _e1_line_set_rx_crc4_err(struct e1_line *line, uint8_t e_bits) +{ + bool crc4_err = e_bits != 3; + + if (crc4_err != line->ts0.rx_crc4_err) { + line_ctr_add(line, LINE_CTR_RX_REMOTE_E, 1); + LOGPLI(line, DE1D, LOGL_NOTICE, "Remote CRC4 Error report %s\n", + crc4_err ? "STARTED" : "CEASED"); + line->ts0.rx_crc4_err = crc4_err; + } +} + +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; + + /* A bit is present in each odd frame */ + if (frame_nr % 2) + _e1_line_set_rx_alarm(line, frame[0] & 0x20); + + /* 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; + _e1_line_set_rx_crc4_err(line, line->ts0.e_bits); + } + } +} + /*! 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 frae number (in multiframe) of first frame in 'buf' * \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, uint8_t frame_base) { int ftr; @@ -366,6 +414,8 @@ ftr = size / 32; OSMO_ASSERT(size % 32 == 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 f8903cf..3ca9801 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]); } 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 97e3115..f90c3e2 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.rx_alarm ? " [REMOTE-ALARM]" : "", + line->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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Dec 19 16:44:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:44:43 +0000 Subject: Change in libosmocore[master]: gsm_08_58: fix wrong field order in 'struct ipac_preproc_pc_thresh' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21806 ) Change subject: gsm_08_58: fix wrong field order in 'struct ipac_preproc_pc_thresh' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If6ab2377bae6742f871589b529a349498775552f Gerrit-Change-Number: 21806 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 16:44: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 Dec 19 16:44:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:44:46 +0000 Subject: Change in libosmocore[master]: gsm_08_58: fix wrong field order in 'struct ipac_preproc_pc_thresh' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21806 ) Change subject: gsm_08_58: fix wrong field order in 'struct ipac_preproc_pc_thresh' ...................................................................... gsm_08_58: fix wrong field order in 'struct ipac_preproc_pc_thresh' Thanks to the CLI of nanoBTS, I noticed that upper and lower RxQual thresholds are sent in wrong order. Only the little-endian variant needs to be fixed, the big-endian one looks good. Change-Id: If6ab2377bae6742f871589b529a349498775552f Related: SYS#4918 --- M include/osmocom/gsm/protocol/gsm_08_58.h 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index 0f7af92..046d358 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -787,8 +787,8 @@ #if OSMO_IS_LITTLE_ENDIAN uint8_t l_rxlev:6, reserved_l_rxlev:2; uint8_t u_rxlev:6, reserved_u_rxlev:2; - uint8_t l_rxqual:3, reserved_l_rxqual:1, - u_rxqual:3, reserved_u_rxqual:1; + uint8_t u_rxqual:3, reserved_u_rxqual:1, + l_rxqual:3, reserved_l_rxqual:1; #elif OSMO_IS_BIG_ENDIAN uint8_t reserved_l_rxlev:2, l_rxlev:6; uint8_t reserved_u_rxlev:2, u_rxlev:6; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If6ab2377bae6742f871589b529a349498775552f Gerrit-Change-Number: 21806 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 Dec 19 16:45:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:45:58 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: turn rsl_msgb_alloc() a macro and move it to header In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21791 ) Change subject: abis_rsl: turn rsl_msgb_alloc() a macro and move it to header ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id25c4bf1e06f697328d10777d6449c83006e8466 Gerrit-Change-Number: 21791 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 16:45: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 Sat Dec 19 16:47:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:47:30 +0000 Subject: Change in osmo-bsc[master]: power_control: add new structures and default parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21786 ) Change subject: power_control: add new structures and default parameters ...................................................................... Patch Set 2: Code-Review+1 why are they dynamically allocated? What's the advantage over making them a static member of the bts? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Gerrit-Change-Number: 21786 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 16:47: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 Sat Dec 19 16:48:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:48:03 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoding/init API to 'struct gsm_bts_model' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21792 ) Change subject: power_control: add encoding/init API to 'struct gsm_bts_model' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba3ad5d8d549a6676050272f85b21c9b4c219d21 Gerrit-Change-Number: 21792 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 16:48: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 Sat Dec 19 16:49:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:49:16 +0000 Subject: Change in osmo-bsc[master]: power_control: send default parameters from bootstrap_rsl() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21788 ) Change subject: power_control: send default parameters from bootstrap_rsl() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21788/2/src/osmo-bsc/osmo_bsc_main.c File src/osmo-bsc/osmo_bsc_main.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21788/2/src/osmo-bsc/osmo_bsc_main.c at 344 PS2, Line 344: if (trx->bts->model->power_ctrl_send_def_params != NULL) { I think a more generic per-model callback function for "do whatever you want to do when a RSL link comes up" makes more sense than this very special-case call-back. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Gerrit-Change-Number: 21788 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 16:49: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 Sat Dec 19 16:49:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:49:50 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and OsmoBTS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21683 ) Change subject: power_control: add encoder for ip.access nanoBTS and OsmoBTS ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 16:49: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 Sat Dec 19 16:52:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:52:00 +0000 Subject: Change in osmo-bsc[master]: power_control: make use of MS/BS parameters in RSL messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: make use of MS/BS parameters in RSL messages ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 16:52: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 Dec 19 16:52:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 16:52:31 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 16:52: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 Sat Dec 19 16:59:18 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 16:59:18 +0000 Subject: Change in osmo-bsc[master]: power_control: add new structures and default parameters In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21786 ) Change subject: power_control: add new structures and default parameters ...................................................................... Patch Set 2: > Patch Set 2: Code-Review+1 > > why are they dynamically allocated? What's the advantage over making them a static member of the bts? It was my initial plan to have these structures statically allocated as a part of 'struct gsm_bts', but in the VTY code we need to be able to go back from 'cfg-power-control' nodes to 'config-net-bts'. I could add a back-pointer, but talloc allows us to get pointer to the parent chunk without adding anything. But wait, maybe containerof() would do the trick? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Gerrit-Change-Number: 21786 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 16:59: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 Sat Dec 19 17:07:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 17:07:08 +0000 Subject: Change in osmo-bsc[master]: power_control: send default parameters from bootstrap_rsl() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21788 ) Change subject: power_control: send default parameters from bootstrap_rsl() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21788/2/src/osmo-bsc/osmo_bsc_main.c File src/osmo-bsc/osmo_bsc_main.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21788/2/src/osmo-bsc/osmo_bsc_main.c at 344 PS2, Line 344: if (trx->bts->model->power_ctrl_send_def_params != NULL) { > I think a more generic per-model callback function for "do whatever you want to do when a RSL link c [?] I was thinking about that, but after looking at the code I realized that it's not that easy. 'RSL link comes up' is too high level: BTS models by Nokia want something to be sent before System Information, and something after. How do we generalize this? Moreover, I need to be able to trigger re-sending of the default parameters from the VTY, so I find the current approach more flexible. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Gerrit-Change-Number: 21788 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 17:07: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 Sat Dec 19 17:09:21 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 17:09:21 +0000 Subject: Change in osmo-e1d[master]: vpair: fix writing config file with vpairs configured In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21781 ) Change subject: vpair: fix writing config file with vpairs configured ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/21781/2/src/vty.c File src/vty.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21781/2/src/vty.c at 156 PS2, Line 156: "E1 Daemon sspecific configuration\n") Typo https://gerrit.osmocom.org/c/osmo-e1d/+/21781/2/src/vty.c at 192 PS2, Line 192: struct e1_intf *intf_b[256]; 2k on the stack isn't great. Another approach to avoid duplicate would be to compare the pointers and only print if intf->id < intf_peer->id for instance. No memory needed. Also brings it to O(n) rather than O(n * log(n)) not that it matters for 256 max intf ? -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Iff6551318534a3717c374060082147f17b925a21 Gerrit-Change-Number: 21781 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 17:09: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 Sat Dec 19 17:24:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 17:24:01 +0000 Subject: Change in osmo-e1d[master]: vpair: fix writing config file with vpairs configured In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21781 ) Change subject: vpair: fix writing config file with vpairs configured ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/21781/1/src/vty.c File src/vty.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21781/1/src/vty.c at 195 PS1, Line 195: vty_out(vty, "pcu%s", VTY_NEWLINE); > shouldn't this be e1d? Ack https://gerrit.osmocom.org/c/osmo-e1d/+/21781/2/src/vty.c File src/vty.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21781/2/src/vty.c at 192 PS2, Line 192: struct e1_intf *intf_b[256]; > 2k on the stack isn't great. [?] I wouldn't really have worried about that kind of stack usage outside of a embedded device. But sure, it's not elegant, no doubt. Will change it. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Iff6551318534a3717c374060082147f17b925a21 Gerrit-Change-Number: 21781 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 17:24:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt 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 Dec 19 17:27:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 19 Dec 2020 17:27:51 +0000 Subject: Change in osmo-e1d[master]: vpair: fix writing config file with vpairs configured 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/+/21781 to look at the new patch set (#3). Change subject: vpair: fix writing config file with vpairs configured ...................................................................... vpair: fix writing config file with vpairs configured prior to this patch, the configured vpair interfaces would not be saved to the config file on 'write file'. Change-Id: Iff6551318534a3717c374060082147f17b925a21 --- M doc/examples/osmo-e1d-vpair.cfg M src/e1d.h M src/vpair.c M src/vty.c 4 files changed, 61 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/81/21781/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Iff6551318534a3717c374060082147f17b925a21 Gerrit-Change-Number: 21781 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Dec 19 17:29:13 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 17:29:13 +0000 Subject: Change in osmo-e1d[master]: vpair: fix writing config file with vpairs configured In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21781 ) Change subject: vpair: fix writing config file with vpairs configured ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Iff6551318534a3717c374060082147f17b925a21 Gerrit-Change-Number: 21781 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 19 Dec 2020 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 Sat Dec 19 17:37:55 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 17:37:55 +0000 Subject: Change in osmo-e1d[master]: usb: Increase number of transfers from 2 to 4 In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21807 ) Change subject: usb: Increase number of transfers from 2 to 4 ...................................................................... Patch Set 2: Code-Review+1 Something that will need to be checked is the latency impact, see if it's visible / audible. 2 more xfer of 4 packets on both in/out would add 16 ms of latency. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5c73b29462a4870d3c86fd7f46e1574daae6f93f Gerrit-Change-Number: 21807 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 17: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 Sat Dec 19 20:17:44 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 20:17:44 +0000 Subject: Change in osmo-e1d[master]: Add support for icE1usb interrupt endpoint error reporting In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21782 ) Change subject: Add support for icE1usb interrupt endpoint error reporting ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/21782/4/src/usb.c File src/usb.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21782/4/src/usb.c at 283 PS4, Line 283: Cosmetic but maybe just add a new section like there is "USB flow" to split the interrupt stuff. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Gerrit-Change-Number: 21782 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 20:17: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 Sat Dec 19 20:26:13 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 20:26:13 +0000 Subject: Change in osmo-e1d[master]: Add per-line rate counter group to count various errors In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21783 ) Change subject: Add per-line rate counter group to count various errors ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/21783/4/src/usb.c File src/usb.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21783/4/src/usb.c at 329 PS4, Line 329: if (errcnt->flags & ICE1USB_ERR_F_TICK_ERR) I'm not entirely sure why you treat "Alignement" and "LOS" differently. Alignement gets both a counter and a flag while LOS only gets a Flag ? I mean they're both "status", I'm not really sure a device side counter for alignement makes sense. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I766b717843d7cd8ac00d4ce18c38773ac50ec3e6 Gerrit-Change-Number: 21783 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 20:26: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 Sat Dec 19 20:29:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 20:29:06 +0000 Subject: Change in libosmocore[master]: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restr... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21789 ) Change subject: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" ...................................................................... Patch Set 1: Code-Review-2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21789/1/src/gsm/gsm48_rest_octets.c File src/gsm/gsm48_rest_octets.c: https://gerrit.osmocom.org/c/libosmocore/+/21789/1/src/gsm/gsm48_rest_octets.c at 613 PS1, Line 613: early_cm_restrict_3g I think we need to agree on what do we expect from 'early_cm_restrict_3g = true' and 'early_cm_restrict_3g = false' first. IMHO, the field name itself is confusing, because it reads/sounds like 'to restrict'. In reality, 3GPP TS 44.018 defines this bit as "3G Early Classmark Sending Restriction", and H does not mean 'restrict'. Your patch makes the encoding function behave asymmetrically from osmo_gsm48_rest_octets_si3_encode(): if (bitvec_get_bit_high(&bv) == H) si3->early_cm_restrict_3g = 1; else si3->early_cm_restrict_3g = 0; which by the way means that we don't have sufficient unit test coverage :/ I think the fix that I merged back then is correct, and we should rather fix osmo-bsc: src/osmo-bsc/system_information.c:968: si_info.early_cm_restrict_3g = !bts->early_classmark_allowed_3g; i.e. there is need to inverse the value/meaning of 'early_classmark_allowed_3g'. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Gerrit-Change-Number: 21789 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 19 Dec 2020 20:29:06 +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 Dec 19 20:45:04 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 20:45:04 +0000 Subject: Change in osmo-e1d[master]: support for control endpoint requests to icE1usb to switch Rx/Tx mode In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21800 ) Change subject: support for control endpoint requests to icE1usb to switch Rx/Tx mode ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I62f3175a216eb5db0847f4b16c91bc23697a7623 Gerrit-Change-Number: 21800 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 20: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 Sat Dec 19 21:16:26 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 21:16:26 +0000 Subject: Change in osmo-e1d[master]: e1_line.c: Split multiplex + demultiplex into separate mux_demux.c In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21801 ) Change subject: e1_line.c: Split multiplex + demultiplex into separate mux_demux.c ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21801 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I1ceaea85a15e2fae1d2e041173be9d758c6d0b78 Gerrit-Change-Number: 21801 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 21:16: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 Dec 19 21:18:04 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 21:18:04 +0000 Subject: Change in osmo-e1d[master]: move usb.c function declarations to newly-created usb.h In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21802 ) Change subject: move usb.c function declarations to newly-created usb.h ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/21802/4/src/usb.h File src/usb.h: https://gerrit.osmocom.org/c/osmo-e1d/+/21802/4/src/usb.h at 15 PS4, Line 15: int _e1_usb_open_device(struct e1_daemon *e1d, struct libusb_device *dev); Not sure when that one became a public API but it should have been renamed -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 Gerrit-Change-Number: 21802 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 21:18: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 Dec 19 21:20:11 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 21:20:11 +0000 Subject: Change in osmo-e1d[master]: Move e1d_find_intf + e1_intf_find_line to intf_line.c In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21803 ) Change subject: Move e1d_find_intf + e1_intf_find_line to intf_line.c ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ibbda172aa425ca1e4702bacc7e595cd73a52929d Gerrit-Change-Number: 21803 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 21:20: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 Dec 19 21:21:05 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 21:21:05 +0000 Subject: Change in osmo-e1d[master]: vty: export vty_e1d + move e1d_vty_node to header file In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21804 ) Change subject: vty: export vty_e1d + move e1d_vty_node to header file ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5be0278bc07aadd154fc54a74b08fc7e3b5d6483 Gerrit-Change-Number: 21804 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 21:21: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 Dec 19 21:40:49 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 19 Dec 2020 21:40:49 +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 2: (3 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/intf_line.c File src/intf_line.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/intf_line.c at 55 PS2, Line 55: [LINE_CTR_RX_REMOTE_E] ={ "rx:remote_crc_errors", "Rx Frames reporting remote CRC Error"}, Maybe try a bit of consistency in the capitalization. I don't care which but pick one style ? https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/mux_demux.c File src/mux_demux.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/mux_demux.c at 370 PS2, Line 370: crc4_err ? "STARTED" : "CEASED"); Is CRC error really a "condition" ? (i.e. something that starts and cease). They are really per frame, just like our local CRC checks. And even random data would end up passing CRC 25% of the time, so if you wanted to report repeated CRC errors as a status, it would IMHO need some minimal software denounce. https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/vpair.c File src/vpair.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/vpair.c at 135 PS2, Line 135: rc = e1_line_demux_in(peer, buf, rc, 0); Why 0 ? AFAICT frames_expired doesn't especially keep alignement to multiframe boundaries. -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 19 Dec 2020 21:40: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 Sat Dec 19 21:55:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 21:55:39 +0000 Subject: Change in osmo-bsc[master]: power_control: add new structures and default parameters 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/+/21786 to look at the new patch set (#3). Change subject: power_control: add new structures and default parameters ...................................................................... power_control: add new structures and default parameters Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Related: SYS#4918 --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts.c M src/osmo-bsc/gsm_data.c 4 files changed, 140 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/21786/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Gerrit-Change-Number: 21786 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 Sat Dec 19 21:55:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 21:55:39 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and OsmoBTS 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/+/21683 to look at the new patch set (#6). Change subject: power_control: add encoder for ip.access nanoBTS and OsmoBTS ...................................................................... power_control: add encoder for ip.access nanoBTS and OsmoBTS Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Related: SYS#4918 --- M src/osmo-bsc/bts_ipaccess_nanobts.c 1 file changed, 155 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/21683/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria 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 Sat Dec 19 21:55:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 21:55:39 +0000 Subject: Change in osmo-bsc[master]: power_control: make use of MS/BS parameters in RSL 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-bsc/+/21787 to look at the new patch set (#5). Change subject: power_control: make use of MS/BS parameters in RSL messages ...................................................................... power_control: make use of MS/BS parameters in RSL messages Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Related: SYS#4918 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 52 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/21787/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria 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 Sat Dec 19 21:55:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 19 Dec 2020 21:55:39 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration 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/+/21685 to look at the new patch set (#6). Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... power_control: add VTY commands for per-BTS configuration Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Related: SYS#4918 --- M include/osmocom/bsc/vty.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/Makefile.am A tests/power_ctrl.vty 5 files changed, 677 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/21685/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 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 admin at opensuse.org Sun Dec 20 01:31:55 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:31:55 +0000 Subject: Build failure of network:osmocom:nightly/libsmpp34 in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fdea9978a034_22fc2aafec8545f016921d9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libsmpp34/Debian_Unstable/x86_64 Package network:osmocom:nightly/libsmpp34 failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libsmpp34 Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud107:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:44:35 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:44:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5fdeac9748b39_22fc2aafec8545f016964a3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_9.0/i586 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_9.0/i586 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 wildcard2:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:44:35 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:44:35 +0000 Subject: Build failure of network:osmocom:nightly/libsmpp34 in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5fdeac97a6450_22fc2aafec8545f0169655e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libsmpp34/Debian_9.0/i586 Package network:osmocom:nightly/libsmpp34 failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libsmpp34 Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was cloud132:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:44:35 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:44:35 +0000 Subject: Build failure of network:osmocom:nightly/libasn1c in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5fdeac98284bb_22fc2aafec8545f01696620@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libasn1c/Debian_9.0/i586 Package network:osmocom:nightly/libasn1c failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libasn1c Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was lamb18:7) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:44:35 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:44:35 +0000 Subject: Build failure of network:osmocom:nightly/libgtpnl in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fdeac9889212_22fc2aafec8545f0169676a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libgtpnl/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/libgtpnl failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly libgtpnl Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-9:31) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:44:35 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:44:35 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5fdeac9957c45_22fc2aafec8545f016968b5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_10/aarch64 Package network:osmocom:nightly/libosmocore failed to build in Debian_10/aarch64 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 obs-arm-1:18) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:44:35 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:44:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Debian_10/i586 In-Reply-To: References: Message-ID: <5fdeac9a154e3_22fc2aafec8545f016969ea@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Debian_10/i586 Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Debian_10/i586 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 old-atreju5:8) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:45:09 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:45:09 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5fdeacb5c830c_22fc2aafec8545f016971f7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_9.0/i586 Package network:osmocom:nightly/libusrp failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was cloud113:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:46:00 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:46:00 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fdeacf1805af_22fc2aafec8545f016974c1@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud129:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:51:11 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:51:11 +0000 Subject: Build failure of network:osmocom:nightly/osmocom-nightly in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fdeae1ac0d2f_22fc2aafec8545f01698270@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmocom-nightly/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/osmocom-nightly failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmocom-nightly Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb28:10) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:51:28 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:51:28 +0000 Subject: Build failure of network:osmocom:latest/osmocom-latest in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fdeae3d9bfc7_22fc2aafec8545f0169847d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmocom-latest/Debian_Unstable/x86_64 Package network:osmocom:latest/osmocom-latest failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmocom-latest Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud121:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:53:28 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:53:28 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fdeaeb35b2f2_22fc2aafec8545f016988dc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was hci-cnode2-m1:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:54:19 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:54:19 +0000 Subject: Build failure of network:osmocom:latest/libosmo-dsp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fdeaed38e0d_22fc2aafec8545f016993a4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-dsp/Debian_Unstable/x86_64 Package network:osmocom:latest/libosmo-dsp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-dsp Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud113:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:54:36 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:54:36 +0000 Subject: Build failure of network:osmocom:nightly/osmocom-nightly in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fdeaeed59563_22fc2aafec8545f016994de@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmocom-nightly/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmocom-nightly failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmocom-nightly Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb06:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 01:54:53 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 01:54:53 +0000 Subject: Build failure of network:osmocom:nightly/libasn1c in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5fdeaf0df0b3b_22fc2aafec8545f016996b0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libasn1c/Debian_10/x86_64 Package network:osmocom:nightly/libasn1c failed to build in Debian_10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libasn1c Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb56:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 02:08:48 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 02:08:48 +0000 Subject: Build failure of network:osmocom:nightly/libgtpnl in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fdeb23b45320_22fc2aafec8545f01703494@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libgtpnl/Debian_8.0/i586 Package network:osmocom:nightly/libgtpnl failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libgtpnl Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb02:12) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 02:41:39 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 02:41:39 +0000 Subject: Build failure of network:osmocom:latest/open5gs in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5fdeb9f826a71_22fc2aafec8545f0171249d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/open5gs/Debian_Unstable/x86_64 Package network:osmocom:latest/open5gs failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest open5gs Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was goat01:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 02:41:39 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 02:41:39 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-abis in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5fdeb9f79aa9e_22fc2aafec8545f017123c1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-abis/Debian_10/aarch64 Package network:osmocom:nightly/libosmo-abis failed to build in Debian_10/aarch64 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 obs-arm-7:20) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 02:41:56 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 02:41:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5fdeba13b8a79_22fc2aafec8545f017128e0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_10/x86_64 Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_10/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 hci-cnode1-m0:12) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 02:41:56 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 02:41:56 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5fdeba132e975_22fc2aafec8545f017127bc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/x86_64 Package network:osmocom:nightly/open5gs failed to build in Debian_10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb54:5) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 02:41:56 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 02:41:56 +0000 Subject: Build failure of network:osmocom:nightly/neocon in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fdeba153f25a_22fc2aafec8545f017129cb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/neocon/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/neocon failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly neocon Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb62:11) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 02:42:13 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 02:42:13 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5fdeba1c5e575_22fc2aafec8545f017137e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_19.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_19.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was old-atreju3:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 02:47:05 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 02:47:05 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcap in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5fdebb40e4ccf_22fc2aafec8545f017151cc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcap/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/osmo-pcap failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcap Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-7:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 03:17:04 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 03:17:04 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fdec24695825_22fc2aafec8545f017205f0@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] [ 175s] [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.548643] sysrq: Power Off [ 178s] [ 166.553054] reboot: Power down [ 178s] ### VM INTERACTION END ### [ 178s] [ 178s] lamb59 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Dec 20 03:16:17 UTC 2020. [ 178s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 03:18:30 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 03:18:30 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fdec2a1d1887_22fc2aafec8545f01720797@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] [ 193s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 193s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 193s] Memory region Used Size Region Size %age Used [ 193s] rom: 16580 B 16 KB 101.20% [ 193s] 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 [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 193s] /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' [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 193s] collect2: error: ld returned 1 exit status [ 193s] % [ 193s] make[2]: *** [Makefile:234: flash] Error 1 [ 193s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 193s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 193s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 193s] dh_auto_build: error: make -j1 returned exit code 2 [ 193s] make: *** [debian/rules:16: build] Error 25 [ 193s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 194s] ### VM INTERACTION START ### [ 197s] [ 184.614406] sysrq: Power Off [ 197s] [ 184.619445] reboot: Power down [ 197s] ### VM INTERACTION END ### [ 197s] [ 197s] lamb58 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Dec 20 03:18:10 UTC 2020. [ 197s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 03:40:10 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 03:40:10 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5fdec7b1a5b4d_22fc2aafec8545f017228e5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/Debian_9.0/aarch64 Package network:osmocom:nightly/osmo-remsim failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-8:19) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 20 03:49:02 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 03:49:02 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_19.04/x86_64 In-Reply-To: References: Message-ID: <5fdec9d39edb4_22fc2aafec8545f017241d0@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb57: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 Sun Dec 20 10:26:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:26:13 +0000 Subject: Change in osmo-e1d[master]: vpair: fix writing config file with vpairs configured In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21781 ) Change subject: vpair: fix writing config file with vpairs configured ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Iff6551318534a3717c374060082147f17b925a21 Gerrit-Change-Number: 21781 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 10:26: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 Sun Dec 20 10:26:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:26:16 +0000 Subject: Change in osmo-e1d[master]: usb: Increase number of transfers from 2 to 4 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21807 ) Change subject: usb: Increase number of transfers from 2 to 4 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5c73b29462a4870d3c86fd7f46e1574daae6f93f Gerrit-Change-Number: 21807 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 10: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 Sun Dec 20 10:26:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:26:35 +0000 Subject: Change in osmo-e1d[master]: vpair: fix writing config file with vpairs configured In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21781 ) Change subject: vpair: fix writing config file with vpairs configured ...................................................................... vpair: fix writing config file with vpairs configured prior to this patch, the configured vpair interfaces would not be saved to the config file on 'write file'. Change-Id: Iff6551318534a3717c374060082147f17b925a21 --- M doc/examples/osmo-e1d-vpair.cfg M src/e1d.h M src/vpair.c M src/vty.c 4 files changed, 61 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/doc/examples/osmo-e1d-vpair.cfg b/doc/examples/osmo-e1d-vpair.cfg index 32742de..04bdb72 100644 --- a/doc/examples/osmo-e1d-vpair.cfg +++ b/doc/examples/osmo-e1d-vpair.cfg @@ -1,2 +1,2 @@ - -virtual-e1-pair 1 +e1d + virtual-e1-pair 1 diff --git a/src/e1d.h b/src/e1d.h index c35f4a8..a7ba005 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -146,3 +146,6 @@ int e1d_vpair_create(struct e1_daemon *e1d, unsigned int num_lines); + +struct e1_intf * +e1d_vpair_intf_peer(struct e1_intf *intf); diff --git a/src/vpair.c b/src/vpair.c index 12452fe..df14026 100644 --- a/src/vpair.c +++ b/src/vpair.c @@ -88,6 +88,15 @@ talloc_free(intf->drv_data); } +/* resolve the peer of a given interface */ +struct e1_intf * +e1d_vpair_intf_peer(struct e1_intf *intf) +{ + struct ve1_intf_data *intf_data = intf->drv_data; + OSMO_ASSERT(intf->drv == E1_DRIVER_VPAIR); + return intf_data->peer; +} + static int ve1_timerfd_cb(struct osmo_fd *ofd, unsigned int what) { diff --git a/src/vty.c b/src/vty.c index 0690177..d4d26ef 100644 --- a/src/vty.c +++ b/src/vty.c @@ -41,6 +41,16 @@ static struct e1_daemon *vty_e1d; +enum e1d_vty_node { + E1D_NODE = _LAST_OSMOVTY_NODE + 1, +}; + +static struct cmd_node e1d_node = { + (enum node_type) E1D_NODE, + "%s(config-e1d)# ", + 1, +}; + #if 0 static void vty_dump_ts(struct vty *vty, const struct e1_ts *ts) { @@ -142,6 +152,14 @@ return CMD_SUCCESS; } +DEFUN(cfg_e1d, cfg_e1d_cmd, "e1d", + "E1 Daemon specific configuration\n") +{ + vty->node = E1D_NODE; + + return CMD_SUCCESS; +} + DEFUN(cfg_vpair, cfg_vpair_cmd, "virtual-e1-pair <1-255>", "Create a virtual E1 interface pair\n" "Number of E1 lines in virtual E1 interface pair\n") @@ -158,11 +176,39 @@ return CMD_SUCCESS; } +static int config_write_e1d(struct vty *vty) +{ + struct e1_intf *intf; + + vty_out(vty, "e1d%s", VTY_NEWLINE); + + /* find all vpair interfaces */ + llist_for_each_entry(intf, &vty_e1d->interfaces, list) { + struct e1_intf *peer = e1d_vpair_intf_peer(intf); + unsigned int line_count = 0; + struct e1_line *line; + + if (intf->drv != E1_DRIVER_VPAIR) + continue; + /* skip the 'mirror' interfaces */ + if (intf->id > peer->id) + continue; + + llist_for_each_entry(line, &intf->lines, list) + line_count++; + + vty_out(vty, " virtual-e1-pair %u%s", line_count, VTY_NEWLINE); + } + return 0; +} + void e1d_vty_init(struct e1_daemon *e1d) { vty_e1d = e1d; install_element_ve(&show_intf_cmd); install_element_ve(&show_line_cmd); - install_element(CONFIG_NODE, &cfg_vpair_cmd); + install_node(&e1d_node, config_write_e1d); + install_element(CONFIG_NODE, &cfg_e1d_cmd); + install_element(E1D_NODE, &cfg_vpair_cmd); } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Iff6551318534a3717c374060082147f17b925a21 Gerrit-Change-Number: 21781 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 20 10:26:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:26:35 +0000 Subject: Change in osmo-e1d[master]: usb: Increase number of transfers from 2 to 4 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21807 ) Change subject: usb: Increase number of transfers from 2 to 4 ...................................................................... usb: Increase number of transfers from 2 to 4 Experimentally this has shown a much lower probability of USB related overruns/underruns, at least on my system. Change-Id: I5c73b29462a4870d3c86fd7f46e1574daae6f93f --- M src/usb.c 1 file changed, 2 insertions(+), 2 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/usb.c b/src/usb.c index 7f7f5c6..be4de44 100644 --- a/src/usb.c +++ b/src/usb.c @@ -365,8 +365,8 @@ line = e1_line_new(intf, line_data); - line_data->flow_in = e1uf_create(line, e1_usb_xfer_in, line_data->ep_in, 2, line_data->pkt_size, 4); - line_data->flow_out = e1uf_create(line, e1_usb_xfer_out, line_data->ep_out, 2, line_data->pkt_size, 4); + line_data->flow_in = e1uf_create(line, e1_usb_xfer_in, line_data->ep_in, 4, line_data->pkt_size, 4); + line_data->flow_out = e1uf_create(line, e1_usb_xfer_out, line_data->ep_out, 4, line_data->pkt_size, 4); line_data->flow_fb = e1uf_create(line, e1_usb_xfer_fb, line_data->ep_fb, 2, 8, 1); e1uf_start(line_data->flow_in); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5c73b29462a4870d3c86fd7f46e1574daae6f93f Gerrit-Change-Number: 21807 Gerrit-PatchSet: 2 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 Sun Dec 20 10:30:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:30:16 +0000 Subject: Change in osmo-e1d[master]: Add support for icE1usb interrupt endpoint error reporting In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21782 ) Change subject: Add support for icE1usb interrupt endpoint error reporting ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/21782/4/src/usb.c File src/usb.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21782/4/src/usb.c at 283 PS4, Line 283: > Cosmetic but maybe just add a new section like there is "USB flow" to split the interrupt stuff. Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Gerrit-Change-Number: 21782 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 10:30:16 +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 Sun Dec 20 10:33:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:33:00 +0000 Subject: Change in osmo-e1d[master]: Add per-line rate counter group to count various errors In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21783 ) Change subject: Add per-line rate counter group to count various errors ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/21783/4/src/usb.c File src/usb.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21783/4/src/usb.c at 329 PS4, Line 329: if (errcnt->flags & ICE1USB_ERR_F_TICK_ERR) > I'm not entirely sure why you treat "Alignement" and "LOS" differently. [?] I would have expected that alignment errors is something that can happen more often and ist more short-lived (basically alignment can be re-established quite quickly). Also, it's something you can actually count, as in 'how many frames with alignment errors did we see'. LOS on the other hand is something that I would expect to persist for a longer amount of time. Somebody disconnects a cable (intentionalyl or not). It's unlikely this would only happen for one or a hand ful of frames, but more like seconds, minutes, hours. We can of course change it, and I'm not saying I have a very firm opionion, just explaining my reasoning. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I766b717843d7cd8ac00d4ce18c38773ac50ec3e6 Gerrit-Change-Number: 21783 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 10:33:00 +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 Sun Dec 20 10:34:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:34:21 +0000 Subject: Change in osmo-e1d[master]: move usb.c function declarations to newly-created usb.h In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21802 ) Change subject: move usb.c function declarations to newly-created usb.h ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/21802/4/src/usb.h File src/usb.h: https://gerrit.osmocom.org/c/osmo-e1d/+/21802/4/src/usb.h at 15 PS4, Line 15: int _e1_usb_open_device(struct e1_daemon *e1d, struct libusb_device *dev); > Not sure when that one became a public API but it should have been renamed I don't recall making any related changes and merely listed all the non-static symbols here. I don't see any users. So I guess we can simply mark it static and not have it here. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 Gerrit-Change-Number: 21802 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 10:34:21 +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 Sun Dec 20 10:36:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:36:43 +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 2: (3 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/intf_line.c File src/intf_line.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/intf_line.c at 55 PS2, Line 55: [LINE_CTR_RX_REMOTE_E] ={ "rx:remote_crc_errors", "Rx Frames reporting remote CRC Error"}, > Maybe try a bit of consistency in the capitalization. [?] Ack https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/mux_demux.c File src/mux_demux.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/mux_demux.c at 370 PS2, Line 370: crc4_err ? "STARTED" : "CEASED"); > Is CRC error really a "condition" ? (i.e. something that starts and cease). [?] Ack https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/vpair.c File src/vpair.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/vpair.c at 135 PS2, Line 135: rc = e1_line_demux_in(peer, buf, rc, 0); > Why 0 ? [?] basically we don't use TS0 at all in the vpair, as far as I can tell. So it doens't matter what we pass here, as TS0 will never contain valid data. I could also hve chosen any other random number. -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 10:36:43 +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 Sun Dec 20 10:42:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:42:56 +0000 Subject: Change in osmo-e1d[master]: e1_line.c: Split multiplex + demultiplex into separate mux_demux.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21801 ) Change subject: e1_line.c: Split multiplex + demultiplex into separate mux_demux.c ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21801 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I1ceaea85a15e2fae1d2e041173be9d758c6d0b78 Gerrit-Change-Number: 21801 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 10:42: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 Dec 20 10:43:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:43:18 +0000 Subject: Change in osmo-e1d[master]: Move e1d_find_intf + e1_intf_find_line to intf_line.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21803 ) Change subject: Move e1d_find_intf + e1_intf_find_line to intf_line.c ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ibbda172aa425ca1e4702bacc7e595cd73a52929d Gerrit-Change-Number: 21803 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 10: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 Sun Dec 20 10:43:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:43:23 +0000 Subject: Change in osmo-e1d[master]: vty: export vty_e1d + move e1d_vty_node to header file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21804 ) Change subject: vty: export vty_e1d + move e1d_vty_node to header file ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5be0278bc07aadd154fc54a74b08fc7e3b5d6483 Gerrit-Change-Number: 21804 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 10:43: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 Sun Dec 20 10:44:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 10:44:21 +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 2: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/mux_demux.c File src/mux_demux.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/mux_demux.c at 370 PS2, Line 370: crc4_err ? "STARTED" : "CEASED"); > Ack FYI Cisco has a counter for "number of seconds in which at least one CRC4 error occurred", which is probably a good idea, see https://www.cisco.com/c/en/us/support/docs/wan/t1-e1-t3-e3/9160-show-ce1.html -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 10:44:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 20 11:07:46 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 11:07:46 +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 2: (2 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/usb.c File src/usb.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/usb.c at 121 PS2, Line 121: return e1_line_demux_in(flow->line, buf + 4, size - 4, buf[3]); That byte should contain more than the frame number inside the multiframe, the MSB will be used to count multiframes, so some masking would be needed since that function seems to expect only the frame inside the multi-frame. Also a usb packet can contain several multiframes, it can contain frames from up to 3 multiframes: End of the previous one, full multiframe, beginning of the next one. (since with adaptive flow rate we can get larger packets) So maybe the demux_in should actually take that into account. https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/vpair.c File src/vpair.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/vpair.c at 135 PS2, Line 135: rc = e1_line_demux_in(peer, buf, rc, 0); > basically we don't use TS0 at all in the vpair, as far as I can tell. [?] But all the TS0 processing will still happen and set flags and counters and all that stuff. Maybe there needs to be a flag or special value so that all TS0 processing is disabled in muxer/demuxer then ? -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 11:07:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 20 11:32:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 11:32:08 +0000 Subject: Change in osmo-e1d[master]: Add support for icE1usb interrupt endpoint error reporting 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/+/21782 to look at the new patch set (#5). Change subject: Add support for icE1usb interrupt endpoint error reporting ...................................................................... Add support for icE1usb interrupt endpoint error reporting Related: OS#4674 Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Depends: osmo-e1-hardware If157fde9d4ca05910b09537e19f37603c6d925f0 --- M src/Makefile.am A src/ice1usb_proto.h M src/usb.c 3 files changed, 196 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/82/21782/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Gerrit-Change-Number: 21782 Gerrit-PatchSet: 5 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 Sun Dec 20 11:32:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 11:32:08 +0000 Subject: Change in osmo-e1d[master]: move usb.c function declarations to newly-created usb.h 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/+/21802 to look at the new patch set (#5). Change subject: move usb.c function declarations to newly-created usb.h ...................................................................... move usb.c function declarations to newly-created usb.h Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 --- M src/Makefile.am M src/osmo-e1d.c A src/usb.h 3 files changed, 17 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/02/21802/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 Gerrit-Change-Number: 21802 Gerrit-PatchSet: 5 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 Sun Dec 20 11:32:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 11:32:08 +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 (#3). 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/3 -- 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: 3 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 Sun Dec 20 11:32:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 11:32:08 +0000 Subject: Change in osmo-e1d[master]: Add new "osmo-e1gen" program. 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/+/21805 to look at the new patch set (#5). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/05/21805/5 -- 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: 5 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 Sun Dec 20 11:32:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 11:32:10 +0000 Subject: Change in osmo-e1d[master]: usb.c: Mark _e1_usb_open_device() as static References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21809 ) Change subject: usb.c: Mark _e1_usb_open_device() as static ...................................................................... usb.c: Mark _e1_usb_open_device() as static Change-Id: Ic4ac2b77f12479daa52392cc31ca1e7d9ed96567 --- M src/usb.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/09/21809/1 diff --git a/src/usb.c b/src/usb.c index c40a7af..326a2b2 100644 --- a/src/usb.c +++ b/src/usb.c @@ -487,7 +487,7 @@ // Init / Probing // --------------------------------------------------------------------------- -int +static int _e1_usb_open_device(struct e1_daemon *e1d, struct libusb_device *dev) { struct e1_intf *intf; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic4ac2b77f12479daa52392cc31ca1e7d9ed96567 Gerrit-Change-Number: 21809 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 Dec 20 11:32:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 11:32:21 +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 3: (2 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/intf_line.c File src/intf_line.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/intf_line.c at 55 PS2, Line 55: [LINE_CTR_RX_REMOTE_E] ={ "rx:remote_crc_errors", "Rx Frames reporting remote CRC Error"}, > Ack FYI. that was probably my German brain. Frames , CRC and Error are nouns and hence capitalized - reporting and remote as verb/adverb/adjective lowercase. https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/vpair.c File src/vpair.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/vpair.c at 135 PS2, Line 135: rc = e1_line_demux_in(peer, buf, rc, 0); > But all the TS0 processing will still happen and set flags and counters and all that stuff. [?] 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: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 11:32:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 20 12:00:05 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 12:00:05 +0000 Subject: Change in osmo-e1d[master]: Add support for icE1usb interrupt endpoint error reporting In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21782 ) Change subject: Add support for icE1usb interrupt endpoint error reporting ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Gerrit-Change-Number: 21782 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 12:00: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 Sun Dec 20 13:25:54 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 13:25:54 +0000 Subject: Change in osmo-e1d[master]: usb.c: Mark _e1_usb_open_device() as static In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21809 ) Change subject: usb.c: Mark _e1_usb_open_device() as static ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic4ac2b77f12479daa52392cc31ca1e7d9ed96567 Gerrit-Change-Number: 21809 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 13:25: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 Dec 20 15:43:55 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 20 Dec 2020 15:43:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21724 ) Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21724/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21724/2/src/gb/gprs_ns2.c at 827 PS2, Line 827: LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " : "TLV Parse\n", tlv); > no need for a line break, but not critical. Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 15:43: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 Sun Dec 20 15:44:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:44:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21724 ) Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 15:44: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 Dec 20 15:44:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:44:05 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21724 ) Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... Removed Code-Review-1 by pespin -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 20 15:44:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:44:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't pass the return code of reject_status_msg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21725 ) Change subject: gprs_ns2: don't pass the return code of reject_status_msg ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I105363957e59c41a68835b7a9830c048dba73e93 Gerrit-Change-Number: 21725 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 20 Dec 2020 15:44: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 Sun Dec 20 15:44:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:44:15 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve handling of TLV errors on new nsvcs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21724 ) Change subject: gprs_ns2: improve handling of TLV errors on new nsvcs ...................................................................... gprs_ns2: improve handling of TLV errors on new nsvcs The specification says the PDU should be ignored if the PDU type is unknown. Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b --- M src/gb/gprs_ns2.c 1 file changed, 20 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 9d5a97c..49606d8 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -793,19 +793,17 @@ uint16_t nsvci; uint16_t nsei; - int rc; + int rc, tlv; if (msg->len < sizeof(struct gprs_ns_hdr)) return GPRS_NS2_CS_ERROR; - rc = ns2_tlv_parse(&tp, nsh->data, + /* parse the tlv early to allow reject status msg to + * work with valid tp. + * Ignore the return code until the pdu type is parsed because + * an unknown pdu type should be ignored */ + tlv = ns2_tlv_parse(&tp, nsh->data, msgb_l2len(msg) - sizeof(*nsh), 0, 0); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " - "TLV Parse\n", rc); - /* TODO: send invalid message back */ - return GPRS_NS2_CS_REJECTED; - } switch (nsh->pdu_type) { case NS_PDUT_STATUS: @@ -849,6 +847,20 @@ return GPRS_NS2_CS_REJECTED; } + if (tlv < 0) { + /* TODO: correct behaviour would checking what's wrong. + * If it's an essential TLV for the PDU return NS_CAUSE_INVAL_ESSENT_IE. + * Otherwise ignore the non-essential TLV. */ + LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " + "TLV Parse\n", tlv); + 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 rc; + } + return GPRS_NS2_CS_REJECTED; + } + 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)) { LOGP(DLNS, LOGL_ERROR, "NS RESET Missing mandatory IE\n"); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2992d06b37ed122b7ff315d4852e86acc936800b Gerrit-Change-Number: 21724 Gerrit-PatchSet: 3 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 Sun Dec 20 15:44:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:44:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't pass the return code of reject_status_msg In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21725 ) Change subject: gprs_ns2: don't pass the return code of reject_status_msg ...................................................................... gprs_ns2: don't pass the return code of reject_status_msg When reject_stats_msg() fails the code can't do anything about it. Stick to the original failure code and log it Change-Id: I105363957e59c41a68835b7a9830c048dba73e93 --- M src/gb/gprs_ns2.c 1 file changed, 5 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 49606d8..5603fce 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -832,18 +832,13 @@ } rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); - if (rc < 0) { + if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return rc; - } return GPRS_NS2_CS_REJECTED; default: rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); - - if (rc < 0) { + if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return rc; - } return GPRS_NS2_CS_REJECTED; } @@ -854,10 +849,8 @@ LOGP(DLNS, LOGL_ERROR, "Rx NS RESET Error %d during " "TLV Parse\n", tlv); rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PROTO_ERR_UNSPEC); - if (rc < 0) { + if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return rc; - } return GPRS_NS2_CS_REJECTED; } @@ -865,6 +858,8 @@ !TLVP_PRES_LEN(&tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(&tp, NS_IE_NSEI, 2)) { LOGP(DLNS, LOGL_ERROR, "NS RESET Missing mandatory IE\n"); 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; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I105363957e59c41a68835b7a9830c048dba73e93 Gerrit-Change-Number: 21725 Gerrit-PatchSet: 3 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 Sun Dec 20 15:45:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:45:42 +0000 Subject: Change in osmo-bsc[master]: power_control: add new structures and default parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21786 ) Change subject: power_control: add new structures and default parameters ...................................................................... Patch Set 3: > It was my initial plan to have these structures statically allocated as a part of 'struct gsm_bts', but in the VTY code we need to be able to go back from 'cfg-power-control' nodes to 'config-net-bts'. I could add a back-pointer, but talloc allows us to get pointer to the parent chunk without adding anything. But wait, maybe containerof() would do the trick? yes, containerof() works, but of course you'd need to do a different containerof() for whether you're in the BTS vs MS node. It's not a strong requirement. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Gerrit-Change-Number: 21786 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 15:45: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 Sun Dec 20 15:45:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:45:48 +0000 Subject: Change in osmo-bsc[master]: power_control: add new structures and default parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21786 ) Change subject: power_control: add new structures and default parameters ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Gerrit-Change-Number: 21786 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 15:45: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 Dec 20 15:48:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:48:05 +0000 Subject: Change in osmo-bsc[master]: power_control: send default parameters from bootstrap_rsl() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21788 ) Change subject: power_control: send default parameters from bootstrap_rsl() ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21788/2/src/osmo-bsc/osmo_bsc_main.c File src/osmo-bsc/osmo_bsc_main.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21788/2/src/osmo-bsc/osmo_bsc_main.c at 344 PS2, Line 344: if (trx->bts->model->power_ctrl_send_def_params != NULL) { > I was thinking about that, but after looking at the code I realized that it's not that easy. [?] before/after SI: you could simply send the SI from inside that "rsl link comes up" function of each BTS model. trigger re-sending: The question is whether that entire operation is not way too specific. If we proceed like that we will at some point have dozens of 'trigger re-sending' VTY commands. I think we already have one for SI, now for power parameters, ... It could be one "resend everything we initialize at RSL start-up". Once again, not a strong requirement, just some thoughts. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Gerrit-Change-Number: 21788 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 15:48:05 +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 Sun Dec 20 15:48:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:48:20 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and OsmoBTS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21683 ) Change subject: power_control: add encoder for ip.access nanoBTS and OsmoBTS ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 15:48: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 Sun Dec 20 15:48:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 15:48:28 +0000 Subject: Change in osmo-bsc[master]: power_control: make use of MS/BS parameters in RSL messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: make use of MS/BS parameters in RSL messages ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 15:48: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 Dec 20 16:03:05 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 16:03:05 +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 3: (2 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/intf_line.c File src/intf_line.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/2/src/intf_line.c at 55 PS2, Line 55: [LINE_CTR_RX_REMOTE_E] ={ "rx:remote_crc_errors", "Rx Frames reporting remote CRC Error"}, > FYI. that was probably my German brain. [?] Except you capitalized "Remote" on the next line :D 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 here as well since you can get input data starting at any point for any length of time. -- 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: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 16:03:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 20 16:04:05 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 16:04:05 +0000 Subject: Change in osmo-e1d[master]: move usb.c function declarations to newly-created usb.h In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21802 ) Change subject: move usb.c function declarations to newly-created usb.h ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 Gerrit-Change-Number: 21802 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 16:04: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 Sun Dec 20 16:17:06 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 20 Dec 2020 16:17:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: implement a write queue 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/+/21751 to look at the new patch set (#3). Change subject: gprs_ns2: fr: implement a write queue ...................................................................... gprs_ns2: fr: implement a write queue Related: SYS#5228 Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 --- M src/gb/gprs_ns2_fr.c 1 file changed, 19 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/21751/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 Gerrit-Change-Number: 21751 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 Sun Dec 20 16:17:06 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 20 Dec 2020 16:17:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings 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/+/21752 to look at the new patch set (#4). Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... gprs_ns2: fr: setup the device to correct FR/LMI settings A hdlc can be used in different modes. Also a FR device can be used with lmi and certain settings as without it. ns2 will use FR with no lmi in the kernel. Related: SYS#5169 Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b --- M src/gb/gprs_ns2_fr.c 1 file changed, 110 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/52/21752/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 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 Sun Dec 20 16:17:42 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 20 Dec 2020 16:17:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: implement a write queue In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21751 ) Change subject: gprs_ns2: fr: implement a write queue ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21751/2/src/gb/gprs_ns2_fr.c File src/gb/gprs_ns2_fr.c: https://gerrit.osmocom.org/c/libosmocore/+/21751/2/src/gb/gprs_ns2_fr.c at 244 PS2, Line 244: return write(ofd->fd, msgb_data(msg), msgb_length(msg)); > Don't you need to free msg here? no. the write queue is handling it. https://gerrit.osmocom.org/c/libosmocore/+/21751/2/src/gb/gprs_ns2_fr.c at 515 PS2, Line 515: priv->wqueue.bfd.fd = rc = open_socket(priv->ifindex); > we have osmo_ofd_setup() for this. Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 Gerrit-Change-Number: 21751 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 16:17: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 Sun Dec 20 16:17:45 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 20 Dec 2020 16:17:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... Patch Set 4: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/21752/3/src/gb/gprs_ns2_fr.c File src/gb/gprs_ns2_fr.c: https://gerrit.osmocom.org/c/libosmocore/+/21752/3/src/gb/gprs_ns2_fr.c at 439 PS3, Line 439: int set_ifupdown(const char *netif, bool up) > this looks quite generic, may be wroth having it somewhere else in libosmocore (socket.h or netif. [?] can be static. let's keep it here until someone else want to use it. https://gerrit.osmocom.org/c/libosmocore/+/21752/3/src/gb/gprs_ns2_fr.c at 449 PS3, Line 449: st > as we just saw some fall-out from other strncpy (instead of osmo_strlcpy), it might make sense to go [?] Ack https://gerrit.osmocom.org/c/libosmocore/+/21752/3/src/gb/gprs_ns2_fr.c at 459 PS3, Line 459: int setup_device(const char *netif) > static? Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 16:17:45 +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 Sun Dec 20 16:19:19 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 16:19:19 +0000 Subject: Change in osmo-e1d[master]: Add new "osmo-e1gen" program. In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21805 ) Change subject: Add new "osmo-e1gen" program. ...................................................................... Patch Set 5: Code-Review+1 -- 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: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 16:19: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 Sun Dec 20 16:34:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 16:34:04 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 16:34: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 Dec 20 16:34:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 16:34:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: implement a write queue In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21751 ) Change subject: gprs_ns2: fr: implement a write queue ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 Gerrit-Change-Number: 21751 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 16:34: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 Sun Dec 20 16:48:16 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 20 Dec 2020 16:48:16 +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, 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 (#3). 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/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 8 files changed, 277 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21753/3 -- 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: 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 Dec 20 17:17:51 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:17:51 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: cosmetic: more comments in the code In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 ) Change subject: icE1usb fw: cosmetic: more comments in the code ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 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: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 Gerrit-Change-Number: 21704 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17:17: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 Dec 20 17:18:26 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:18:26 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: define e1_data_ptr() using e1_data_ofs() In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 ) Change subject: icE1usb fw: define e1_data_ptr() using e1_data_ofs() ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 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: I9a6cce07ea8b6eff1527215de00621da960b0472 Gerrit-Change-Number: 21706 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17:18: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 Sun Dec 20 17:18:49 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:18:49 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Use register bit #define instead of magic number In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 ) Change subject: icE1usb fw: Use register bit #define instead of magic number ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 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: Ic824ce5a6605c96989fefbf92f365bff618dccb2 Gerrit-Change-Number: 21707 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17:18: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 Dec 20 17:20:06 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:20:06 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 ) Change subject: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 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: I9e59d86a2e8f4e85ca84c592438ad79966b49448 Gerrit-Change-Number: 21716 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17:20: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 Dec 20 17:20:51 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:20:51 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Include E1 frame number in Rx USB header In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 ) Change subject: icE1usb fw: Include E1 frame number in Rx USB header ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 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: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 Gerrit-Change-Number: 21717 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17:20: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 Dec 20 17:22:45 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:22:45 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Use green per-port LED to indicate alignment status In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21731 ) Change subject: icE1usb fw: Use green per-port LED to indicate alignment status ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21731 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: I42d53544858dbbbae5206d9a62b08672966c9ebf Gerrit-Change-Number: 21731 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17:22: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 Dec 20 17:23:26 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:23:26 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: add port number argument to e1_tick_read() In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21732 ) Change subject: icE1usb fw: add port number argument to e1_tick_read() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21732 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: I0f4548b5623a7eaf74af3076c301e029bb3933da Gerrit-Change-Number: 21732 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17: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 Sun Dec 20 17:24:26 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:24:26 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: add port number argument to e1_tick_read() In-Reply-To: References: Message-ID: tnt has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21732 ) Change subject: icE1usb fw: add port number argument to e1_tick_read() ...................................................................... Removed Code-Review+1 by tnt -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21732 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: I0f4548b5623a7eaf74af3076c301e029bb3933da Gerrit-Change-Number: 21732 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 20 17:25:40 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:25:40 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Turn green LED off completely if no E1 signal is received In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 ) Change subject: icE1usb fw: Turn green LED off completely if no E1 signal is received ...................................................................... Patch Set 3: I have no idea yet if/how detection would work and it might turn out to not be based on that counter, so until the hw actually supports that, I wouldn't merge any related patch.. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 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: Ibd23cbf1d044b46d8fed48fb97622e6ef980b99f Gerrit-Change-Number: 21733 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17:25:40 +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 Dec 20 17:30:30 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:30:30 +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: tnt has posted comments on 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 ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773/2/firmware/ice40-riscv/icE1usb/e1_hw.h File firmware/ice40-riscv/icE1usb/e1_hw.h: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773/2/firmware/ice40-riscv/icE1usb/e1_hw.h at 1 PS2, Line 1: #pragma once Keep with the style of the other header. /* * ... */ #pragma once #include https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773/2/firmware/ice40-riscv/icE1usb/e1_hw.h at 10 PS2, Line 10: //TODO: Shouldn't this go into the no2e1 git repo? Yeah, it should, that's the plan. Probably along with some "independent" parts of of the e1 driver too. But for now it can live here until I have a better view of the split. -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17: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 Sun Dec 20 17:43:08 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:43:08 +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 2: Both of these should be masked to only allow changing the bits that are supposed to be configured "from the outside". -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17:43: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 Sun Dec 20 17:56:45 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 17:56:45 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: USB control request handling In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775 ) Change subject: icE1usb fw: USB control request handling ...................................................................... Patch Set 3: Code-Review-2 (4 comments) Also this should _definitely_ not update the no2e1 submodule pointer (especially to a commit that's not in the public tree) https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/e1.c File firmware/ice40-riscv/icE1usb/e1.c: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/e1.c at 256 PS3, Line 256: g_e1.tx.cr = E1_TX_CR_UNFL_CLR | E1_TX_CR_ENABLE |tx_cr; space missing. Also while you're at it, you can fix the E1_*_CLR ... those shouldn't have been in the 'cr' variable to begin with but only set when loading the csr. (i.e. write them once at init but don't store them since we don't want to clear it every time we rewrite cr). https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/e1.c at 267 PS3, Line 267: printf("tx_cfg(0x%04x)\n", cr); Left over debug ? https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/ice1usb_proto.h File firmware/ice40-riscv/icE1usb/ice1usb_proto.h: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/ice1usb_proto.h at 1 PS3, Line 1: #pragma once Again, try to stick with the file header and comment style. https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/usb_e1.c File firmware/ice40-riscv/icE1usb/usb_e1.c: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/usb_e1.c at 223 PS3, Line 223: e1_tx_config(E1_TX_CR_ENABLE | Yeah, see previous commit comment, I think tx_config shouldn't touch the enable bit for instance. -- 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: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 17:56: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 Sun Dec 20 18:00:20 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 20 Dec 2020 18:00:20 +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, 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 (#4). 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/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 8 files changed, 277 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21753/4 -- 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: 4 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 Dec 20 18:04:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 18:04:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: laforge 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 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21753/4/tests/Makefile.am File tests/Makefile.am: https://gerrit.osmocom.org/c/libosmocore/+/21753/4/tests/Makefile.am at 196 PS4, Line 196: $(top_srcdir)/src/gb/gprs_ns.o \ please consider using an approach like https://git.osmocom.org/libosmocore/commit/?h=laforge/gb-test&id=0ac0fc6ccc333f6b26023947ed40b562fdb5fbb8 shows -- 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: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 20 Dec 2020 18:04: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 Sun Dec 20 18:09:18 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 20 Dec 2020 18:09:18 +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, 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 (#5). 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 9 files changed, 270 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21753/5 -- 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: 5 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 Dec 20 18:21:39 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 18:21:39 +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 5: (3 comments) https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/e1.c File firmware/ice40-riscv/icE1usb/e1.c: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/e1.c at 356 PS5, Line 356: /* get cumulative error bit mask since last call of this function */ Huh, it's not "since the last call" AFAICT this is never reset. Counters just wrap. https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/e1.c at 380 PS5, Line 380: if (g_e1.rx.last_tick == cur_tick) { Again, as in previous patches, I'd remove any kind of support for LOS until there is actual hw to detect that. https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/ice1usb_proto.h File firmware/ice40-riscv/icE1usb/ice1usb_proto.h: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/ice1usb_proto.h at 83 PS5, Line 83: #define ICE1USB_ERR_F_TICK_ERR 0x02 I would call that LOS and not TICK_ERR. However LOS ends up being implemented ... (I mean, even on a "real" card, there is no "signal level" to detect, the idle state line is 0, so either you detect pulses or your don't, you can't measure any kind of analog voltage change if it's plugged or not). -- 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: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 18:21:39 +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 Dec 20 18:22:38 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 18:22:38 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Disable reporting of 'loss of timing' for now In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21778 ) Change subject: icE1usb fw: Disable reporting of 'loss of timing' for now ...................................................................... Patch Set 3: Code-Review-1 See previous comments, should be removed all together. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21778 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: I9d0ddb2d404880c4a85e30de1b4bf4204d468ab7 Gerrit-Change-Number: 21778 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 18:22: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 Dec 20 18:24:30 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sun, 20 Dec 2020 18:24:30 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: un-configure E1 when altsetting 0 is selected. In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21784 ) Change subject: icE1usb fw: un-configure E1 when altsetting 0 is selected. ...................................................................... Patch Set 4: Code-Review+1 -- 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: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 18:24:30 +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 Dec 20 21:11:46 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 20 Dec 2020 21:11:46 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fdfbe16537fe_22fc2aafec8545f02045510@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: [ 130s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 130s] [COMPILING libboard/qmod/source/card_pres.c] [ 130s] [COMPILING libboard/qmod/source/wwan_led.c] [ 130s] [COMPILING libboard/qmod/source/i2c.c] [ 130s] [COMPILING libboard/qmod/source/board_qmod.c] [ 131s] [COMPILING apps/dfu/main.c] [ 131s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 131s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 131s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 131s] Memory region Used Size Region Size %age Used [ 131s] rom: 16588 B 16 KB 101.25% [ 131s] 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' [ 131s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 131s] collect2: error: ld returned 1 exit status [ 131s] % [ 131s] make[2]: *** [Makefile:234: flash] Error 1 [ 131s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 131s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 131s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 131s] dh_auto_build: error: make -j1 returned exit code 2 [ 131s] make: *** [debian/rules:16: build] Error 25 [ 131s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 131s] ### VM INTERACTION START ### [ 134s] [ 123.676004] sysrq: Power Off [ 134s] [ 123.679392] reboot: Power down [ 134s] ### VM INTERACTION END ### [ 134s] [ 134s] old-atreju4 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Dec 20 21:11:32 UTC 2020. [ 134s] -- 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 Dec 20 21:16:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 21:16:50 +0000 Subject: Change in osmo-bsc[master]: osmobsc-usermanual: Add Chapter with AoIP message flow examples 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/+/21272 to look at the new patch set (#2). Change subject: osmobsc-usermanual: Add Chapter with AoIP message flow examples ...................................................................... osmobsc-usermanual: Add Chapter with AoIP message flow examples Change-Id: I001d5f85c95098269b5f129b0c53c3544b96ffb0 --- A doc/manuals/chapters/aoip-flows.adoc A doc/manuals/message-sequences/a_interface_bringup.msc A doc/manuals/message-sequences/mo_call-bsc-msc-mgw-aoip.msc M doc/manuals/osmobsc-usermanual.adoc 4 files changed, 215 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/72/21272/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I001d5f85c95098269b5f129b0c53c3544b96ffb0 Gerrit-Change-Number: 21272 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Sun Dec 20 21:16:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 21:16:56 +0000 Subject: Change in osmo-bsc[master]: osmobsc-usermanual: Add Chapter with AoIP message flow examples In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21272 ) Change subject: osmobsc-usermanual: Add Chapter with AoIP message flow examples ...................................................................... Patch Set 1: (6 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21272/1/doc/manuals/chapters/aoip-flows.adoc File doc/manuals/chapters/aoip-flows.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/21272/1/doc/manuals/chapters/aoip-flows.adoc at 17 PS1, Line 17: Depending on the MSc implementation, there may be either > ", in between the BSC and the MSC there may be either" Done https://gerrit.osmocom.org/c/osmo-bsc/+/21272/1/doc/manuals/chapters/aoip-flows.adoc at 19 PS1, Line 19: * a dedicated STP (or multiple replicated STPs) in front of the STP > "in front of the MSC" (or remove since it's explained above if you change as I propose) Done https://gerrit.osmocom.org/c/osmo-bsc/+/21272/1/doc/manuals/chapters/aoip-flows.adoc at 85 PS1, Line 85: of either RAN nor CN. Either side does not need to know the > s/nor/or/ Done https://gerrit.osmocom.org/c/osmo-bsc/+/21272/1/doc/manuals/chapters/aoip-flows.adoc at 86 PS1, Line 86: internal structure of the other side. > , since the RTP endpoint parameters are negotiated/informed over the the A interface Done https://gerrit.osmocom.org/c/osmo-bsc/+/21272/1/doc/manuals/message-sequences/a_interface_bringup.msc File doc/manuals/message-sequences/a_interface_bringup.msc: https://gerrit.osmocom.org/c/osmo-bsc/+/21272/1/doc/manuals/message-sequences/a_interface_bringup.msc at 3 PS1, Line 3: #bsc[label="BSC"], mgwr[label="MGW(RAN)"], stp[label="STP"], _msc[label="MSC"], mgwc[label="MGW(CN)"]; > this can be removed? Done https://gerrit.osmocom.org/c/osmo-bsc/+/21272/1/doc/manuals/message-sequences/mo_call-bsc-msc-mgw-aoip.msc File doc/manuals/message-sequences/mo_call-bsc-msc-mgw-aoip.msc: https://gerrit.osmocom.org/c/osmo-bsc/+/21272/1/doc/manuals/message-sequences/mo_call-bsc-msc-mgw-aoip.msc at 30 PS1, Line 30: #bsc -> mgcp [label="MGCP MDCX rtpbridge/2 at mgw (optional)"]; > is this commented? Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I001d5f85c95098269b5f129b0c53c3544b96ffb0 Gerrit-Change-Number: 21272 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 21:16: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 Sun Dec 20 21:33:52 2020 From: gerrit-no-reply at lists.osmocom.org (mschramm) Date: Sun, 20 Dec 2020 21:33:52 +0000 Subject: Change in osmo-e1-hardware[master]: e1-tracer: update BOM attributes to 1st v2 prod run parts References: Message-ID: mschramm has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21810 ) Change subject: e1-tracer: update BOM attributes to 1st v2 prod run parts ...................................................................... e1-tracer: update BOM attributes to 1st v2 prod run parts * L2, L3 now 0805 * R6, R7 now 0402 * IC4 now ASEMB-12.000MHZ-LC-T Change-Id: I4f1a82476ca84552efd71a47231e8b6ac02a3358 --- M hardware/e1-tracer/e1-tracer.brd M hardware/e1-tracer/e1-tracer.sch M hardware/e1-tracer/e1-tracer_eBOM.csv M hardware/e1-tracer/e1-tracer_eBOM.gnumeric 4 files changed, 315 insertions(+), 256 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/10/21810/1 diff --git a/hardware/e1-tracer/e1-tracer.brd b/hardware/e1-tracer/e1-tracer.brd index ec60b04..affb0bc 100644 --- a/hardware/e1-tracer/e1-tracer.brd +++ b/hardware/e1-tracer/e1-tracer.brd @@ -2124,7 +2124,7 @@ - + @@ -2137,7 +2137,7 @@ - + @@ -2150,7 +2150,7 @@ - + @@ -2163,7 +2163,7 @@ - + @@ -2176,7 +2176,7 @@ - + @@ -2189,7 +2189,7 @@ - + @@ -2202,7 +2202,7 @@ - + @@ -2215,7 +2215,7 @@ - + @@ -2228,7 +2228,7 @@ - + @@ -2241,7 +2241,7 @@ - + @@ -2254,22 +2254,22 @@ - + - - - - - - - - - - + + + + + + + + + + @@ -2279,7 +2279,7 @@ - + @@ -2305,7 +2305,7 @@ - + @@ -2318,7 +2318,7 @@ - + @@ -2331,7 +2331,7 @@ - + @@ -2342,7 +2342,7 @@ - + @@ -2355,7 +2355,7 @@ - + @@ -2368,7 +2368,7 @@ - + @@ -2381,7 +2381,7 @@ - + @@ -2394,7 +2394,7 @@ - + @@ -2407,7 +2407,7 @@ - + @@ -2420,7 +2420,7 @@ - + @@ -2433,7 +2433,7 @@ - + @@ -2446,7 +2446,7 @@ - + @@ -2459,7 +2459,7 @@ - + @@ -2472,7 +2472,7 @@ - + @@ -2485,7 +2485,7 @@ - + @@ -2498,7 +2498,7 @@ - + @@ -2537,7 +2537,7 @@ - + @@ -2550,7 +2550,7 @@ - + @@ -2563,7 +2563,7 @@ - + @@ -2576,7 +2576,7 @@ - + @@ -2589,7 +2589,7 @@ - + @@ -2602,7 +2602,7 @@ - + @@ -2671,7 +2671,7 @@ - + @@ -2683,7 +2683,7 @@ - + @@ -2695,7 +2695,7 @@ - + @@ -2721,8 +2721,8 @@ - - + + @@ -2734,8 +2734,8 @@ - - + + @@ -2747,8 +2747,8 @@ - - + + @@ -2806,7 +2806,7 @@ - + @@ -2819,7 +2819,7 @@ - + @@ -2832,7 +2832,7 @@ - + @@ -2845,7 +2845,7 @@ - + @@ -2858,7 +2858,7 @@ - + @@ -2871,7 +2871,7 @@ - + @@ -2884,7 +2884,7 @@ - + @@ -2897,7 +2897,7 @@ - + @@ -2910,7 +2910,7 @@ - + @@ -2923,7 +2923,7 @@ - + @@ -2936,7 +2936,7 @@ - + @@ -2949,7 +2949,7 @@ - + @@ -2962,7 +2962,7 @@ - + @@ -2975,7 +2975,7 @@ - + @@ -2988,7 +2988,7 @@ - + @@ -3001,7 +3001,7 @@ - + @@ -3027,7 +3027,7 @@ - + @@ -3040,7 +3040,7 @@ - + @@ -3053,7 +3053,7 @@ - + @@ -3066,7 +3066,7 @@ - + @@ -3084,7 +3084,7 @@ - + @@ -3092,7 +3092,7 @@ - + @@ -3105,7 +3105,7 @@ - + @@ -3118,7 +3118,7 @@ - + @@ -3179,7 +3179,7 @@ - + @@ -3187,30 +3187,30 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + @@ -3218,7 +3218,7 @@ - + @@ -3229,7 +3229,7 @@ - + @@ -3242,7 +3242,7 @@ - + @@ -3255,7 +3255,7 @@ - + @@ -3268,7 +3268,7 @@ - + @@ -3281,7 +3281,7 @@ - + @@ -3294,7 +3294,7 @@ - + @@ -3307,7 +3307,7 @@ - + diff --git a/hardware/e1-tracer/e1-tracer.sch b/hardware/e1-tracer/e1-tracer.sch index 57e3c17..75802e2 100644 --- a/hardware/e1-tracer/e1-tracer.sch +++ b/hardware/e1-tracer/e1-tracer.sch @@ -8417,7 +8417,7 @@ - + @@ -8461,10 +8461,10 @@ - + - + @@ -8475,7 +8475,7 @@ - + @@ -8486,7 +8486,7 @@ - + @@ -8497,7 +8497,7 @@ - + @@ -8508,7 +8508,7 @@ - + @@ -8519,7 +8519,7 @@ - + @@ -8530,7 +8530,7 @@ - + @@ -8541,7 +8541,7 @@ - + @@ -8549,10 +8549,10 @@ - + - + @@ -8574,7 +8574,7 @@ - + @@ -8607,7 +8607,7 @@ - + @@ -8618,7 +8618,7 @@ - + @@ -8657,7 +8657,7 @@ - + @@ -8681,7 +8681,7 @@ - + @@ -8692,7 +8692,7 @@ - + @@ -8770,7 +8770,7 @@ - + @@ -8826,7 +8826,7 @@ - + @@ -8895,10 +8895,10 @@ - + - + @@ -8909,7 +8909,7 @@ - + @@ -8920,7 +8920,7 @@ - + @@ -8931,7 +8931,7 @@ - + @@ -8942,7 +8942,7 @@ - + @@ -8953,7 +8953,7 @@ - + @@ -8964,7 +8964,7 @@ - + @@ -8975,7 +8975,7 @@ - + @@ -8986,7 +8986,7 @@ - + @@ -9070,7 +9070,7 @@ - + @@ -9081,7 +9081,7 @@ - + @@ -9099,16 +9099,16 @@ - - + + - + - + - + - + @@ -9117,7 +9117,7 @@ - + @@ -9141,7 +9141,7 @@ - + @@ -9178,7 +9178,7 @@ - + @@ -9214,7 +9214,7 @@ - + @@ -9225,7 +9225,7 @@ - + @@ -9236,7 +9236,7 @@ - + @@ -9247,7 +9247,7 @@ - + @@ -9258,7 +9258,7 @@ - + @@ -9269,7 +9269,7 @@ - + @@ -9281,7 +9281,7 @@ - + @@ -9292,7 +9292,7 @@ - + @@ -9325,7 +9325,7 @@ - + @@ -9336,7 +9336,7 @@ - + @@ -9347,7 +9347,7 @@ - + @@ -9358,7 +9358,7 @@ - + @@ -9369,7 +9369,7 @@ - + @@ -9380,7 +9380,7 @@ - + @@ -9391,7 +9391,7 @@ - + @@ -9402,7 +9402,7 @@ - + @@ -9413,7 +9413,7 @@ - + @@ -9424,7 +9424,7 @@ - + @@ -9435,7 +9435,7 @@ - + @@ -9446,7 +9446,7 @@ - + @@ -9457,7 +9457,7 @@ - + @@ -9468,7 +9468,7 @@ - + @@ -9479,7 +9479,7 @@ - + @@ -9490,7 +9490,7 @@ - + @@ -9512,7 +9512,7 @@ - + @@ -9523,7 +9523,7 @@ - + @@ -9534,7 +9534,7 @@ - + @@ -9545,7 +9545,7 @@ - + @@ -9556,7 +9556,7 @@ - + @@ -9567,7 +9567,7 @@ - + @@ -9578,7 +9578,7 @@ - + @@ -9589,7 +9589,7 @@ - + @@ -9636,31 +9636,31 @@ - + - - - - + + + + - + - + - - - - + + + + - + - + @@ -9669,7 +9669,7 @@ - + @@ -9680,7 +9680,7 @@ - + @@ -9691,7 +9691,7 @@ - + @@ -9702,7 +9702,7 @@ - + @@ -9713,7 +9713,7 @@ - + @@ -9724,7 +9724,7 @@ - + @@ -9735,7 +9735,7 @@ - + @@ -9746,7 +9746,7 @@ - + @@ -10100,15 +10100,15 @@ - - - - - - - - - + + + + + + + + + @@ -10380,28 +10380,28 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + diff --git a/hardware/e1-tracer/e1-tracer_eBOM.csv b/hardware/e1-tracer/e1-tracer_eBOM.csv index 0efca53..3d4a9af 100644 --- a/hardware/e1-tracer/e1-tracer_eBOM.csv +++ b/hardware/e1-tracer/e1-tracer_eBOM.csv @@ -1,4 +1,4 @@ -,e1-tracer.sch,"2020-08-15 16:57:55",,"EAGLE Version 7.7.0 Copyright (c) 1988-2016 CadSoft",,,,,, +,e1-tracer.sch,"2020-12-20 21:02:07",,"EAGLE Version 7.7.0 Copyright (c) 1988-2016 CadSoft",,,,,, Qty,Name,Value,Package,Class,Supplier,"Part Number",URL,Description,Populated,Beistellung 19,"C1, C2, C3, C4, C5, C6, C7, C11, C16, C17, C18, C19, C20, C21, C22, C23, C24, C29, C30",100n,_0603,CAPACITOR,DIGIKEY,1276-1005-1-ND,http://www.digikey.de/product-detail/de/foo/1276-1005-1-ND,"CAP CER 0.1UF 16V 10% X7R 0603",TRUE, 4,"C8, C9, C10, C12",1u,_0603,CAPACITOR,DIGIKEY,1276-1182-1-ND,https://www.digikey.de/product-detail/de/samsung-electro-mechanics/CL10A105KP8NNNC/1276-1182-1-ND/3889268,"CAP CER 1UF 10V X5R 0603",TRUE, @@ -16,17 +16,17 @@ 1,U1,ICE40UP5K-SG48I,QFN48,IC,DIGIKEY,220-2212-1-ND,https://www.digikey.de/product-detail/de/lattice-semiconductor-corporation/ICE40UP5K-SG48I/220-2212-1-ND/,"IC FPGA 39 I/O 48QFN",TRUE, 2,"U2, U3",IP4234CZ6,TSOP-6,IC,DIGIKEY,1727-4717-1-ND,https://www.digikey.de/product-detail/de/nexperia-usa-inc/IP4234CZ6125/1727-4717-1-ND/2531156,"TVS DIODE 5.5V 6TSOP",TRUE, 2,"U4, U5",IDT82V2081,TQFP44,IC,DIGIKEY,800-2347-ND,https://www.digikey.de/product-detail/de/renesas-electronics-america-inc/82V2081PPG/800-2347-ND,"IC TELECOM INTERFACE 44TQFP",TRUE, -1,IC4,ASEM1-12.000MHZ-LC-T,TSX-3225,"IC / XTAL / XO",DIGIKEY,535-9757-1-ND,https://www.digikey.de/product-detail/de/abracon-llc/ASEM1-12-000MHZ-LC-T/535-9757-1-ND,"MEMS OSC XO 12.0000MHZ CMOS SMD",TRUE, +1,IC4,ASEMB-12.000MHZ-LC-T,TSX-3225,"IC / XTAL / XO",DIGIKEY,535-11744-1-ND,https://www.digikey.de/product-detail/de/abracon-llc/ASEMB-12-000MHZ-LC-T/535-11744-1-ND,"MEMS OSC XO 12.0000MHZ CMOS SMD",TRUE, 1,U6,"2.048 Mhz",HC73,"IC / XTAL / XO",DIGIKEY,631-1182-ND,https://www.digikey.de/product-detail/de/renesas-electronics-america-inc/XLH736002-048000I/631-1182-ND,"XTAL OSC XO 2.0480MHZ HCMOS SMD",TRUE, 1,U7,"1.544 MHz",HC73,"IC / XTAL / XO","UNKNOWN SOURCE","UNKNOWN SOURCE PART NUMBER","UNKNOWN LINK","NO DESCRIPTION",FALSE, 1,J1,PASSTHROUGH,557560-1,CONNECTOR\JUMPER,DIGIKEY,A31449-ND,https://www.digikey.de/product-detail/de/te-connectivity-amp-connectors/5557560-1/A31449-ND,"CONN MOD JACK 8P8C R/A UNSHLD",TRUE, 1,JP1,,1X08_LOCK,CONNECTOR\JUMPER,"UNKNOWN SOURCE","UNKNOWN SOURCE PART NUMBER","UNKNOWN LINK","NO DESCRIPTION",TRUE, 1,L1,744231091,WE-CNSW_0805,INDUCTOR,DIGIKEY,732-3198-1-ND,https://www.digikey.de/product-detail/de/wurth-electronics-inc/744231091/732-3198-1-ND,"CMC 370MA 2LN 90 OHM SMD",TRUE, -2,"L2, L3",47nH,SM-1206,INDUCTOR,DIGIKEY,CE201210-47NJCT-ND,https://www.digikey.de/product-detail/de/bourns-inc/CE201210-47NJ/CE201210-47NJCT-ND/3438045,"FIXED IND 47NH 300MA 700MOHM SMD",TRUE, +2,"L2, L3",47nH,0805,INDUCTOR,DIGIKEY,CE201210-47NJCT-ND,https://www.digikey.de/product-detail/de/bourns-inc/CE201210-47NJ/CE201210-47NJCT-ND/3438045,"FIXED IND 47NH 300MA 700MOHM SMD",TRUE, 2,"M1, M2",MENTOR_12701001,1270.1001,"LIGHT GUIDE","UNKNOWN SOURCE","UNKNOWN SOURCE PART NUMBER","UNKNOWN LINK","NO DESCRIPTION",TRUE, 1,R1,100R,_0603,RESISTOR,DIGIKEY,RMCF0603JT100RCT-ND,https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT100R/RMCF0603JT100RCT-ND,"RES 100 OHM 5%% 1/10W 0603",TRUE, 7,"R2, R3, R4, R5, R44, R45, R46",DNP,_0603,RESISTOR,DIGIKEY,P0.0GCT-ND,https://www.digikey.de/product-detail/de/panasonic-electronic-components/ERJ-3GEY0R00V/P0-0GCT-ND/134711,"RES SMD 0 OHM JUMPER 1/10W 0603",FALSE, -2,"R6, R7",33,_0402,RESISTOR,DIGIKEY,RMCF0603JT33R0CT-ND,https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT33R0/RMCF0603JT33R0CT-ND,"RES 33 OHM 5%% 1/10W 0603",TRUE, +2,"R6, R7",33,_0402,RESISTOR,DIGIKEY,311-33.0LRCT-ND,https://www.digikey.de/product-detail/de/yageo/RC0402FR-0733RL/311-33-0LRCT-ND/729540,"RES SMD 33 OHM 1%% 1/16W 0402",TRUE, 23,"R8, R10, R13, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R36, R37",10k,_0603,RESISTOR,DIGIKEY,RMCF0603JT10K0CT-ND,https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT10K0/RMCF0603JT10K0CT-ND,"RES 10K OHM 5%% 1/10W 0603",TRUE, 1,R9,1k5,_0603,RESISTOR,DIGIKEY,RMCF0603JT1K50CT-ND,https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT1K50/RMCF0603JT1K50CT-ND,"RES 1.5K OHM 5%% 1/10W 0603",TRUE, 2,"R11, R12",100k,_0603,RESISTOR,DIGIKEY,311-100KGRCT-ND,https://www.digikey.de/product-detail/de/yageo/RC0603JR-07100KL/311-100KGRCT-ND/729645,"RES SMD 100K OHM 5%% 1/10W 0603",TRUE, diff --git a/hardware/e1-tracer/e1-tracer_eBOM.gnumeric b/hardware/e1-tracer/e1-tracer_eBOM.gnumeric index 68717f6..2fbc684 100644 --- a/hardware/e1-tracer/e1-tracer_eBOM.gnumeric +++ b/hardware/e1-tracer/e1-tracer_eBOM.gnumeric @@ -25,7 +25,7 @@ - 2020-08-15T17:01:27Z + 2020-12-20T21:17:34Z 2020-08-15T16:57:56Z @@ -33,12 +33,12 @@ e1-tracer.sch - + e1-tracer.sch 10 - 42 + 41 1 @@ -145,7 +145,17 @@ Sans - + + + + + + + @@ -165,11 +175,16 @@ Sans - + + + + - + + + + + + + + + + - @@ -311,7 +341,7 @@ - - @@ -412,7 +442,17 @@ - + + + + + + + @@ -422,11 +462,16 @@ Sans - + + + + - + + + + + + + @@ -447,6 +502,11 @@ Sans + + + - + @@ -494,12 +554,12 @@ - - + + e1-tracer.sch - 2020-08-15 16:57:55 + 2020-12-20 21:02:07 EAGLE Version 7.7.0 Copyright (c) 1988-2016 CadSoft Qty Name @@ -690,12 +750,12 @@ 1 IC4 - ASEM1-12.000MHZ-LC-T + ASEMB-12.000MHZ-LC-T TSX-3225 IC / XTAL / XO DIGIKEY - 535-9757-1-ND - https://www.digikey.de/product-detail/de/abracon-llc/ASEM1-12-000MHZ-LC-T/535-9757-1-ND + 535-11744-1-ND + https://www.digikey.de/product-detail/de/abracon-llc/ASEMB-12-000MHZ-LC-T/535-11744-1-ND MEMS OSC XO 12.0000MHZ CMOS SMD TRUE @@ -757,7 +817,7 @@ 2 L2, L3 47nH - SM-1206 + 0805 INDUCTOR DIGIKEY CE201210-47NJCT-ND @@ -804,11 +864,10 @@ _0402 RESISTOR DIGIKEY - RMCF0603JT33R0CT-ND - https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT33R0/RMCF0603JT33R0CT-ND - RES 33 OHM 5%% 1/10W 0603 + 311-33.0LRCT-ND + https://www.digikey.de/product-detail/de/yageo/RC0402FR-0733RL/311-33-0LRCT-ND/729540 + RES SMD 33 OHM 1%% 1/16W 0402 TRUE - 23 R8, R10, R13, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R36, R37 10k @@ -953,7 +1012,7 @@ TRUE - + -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21810 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: I4f1a82476ca84552efd71a47231e8b6ac02a3358 Gerrit-Change-Number: 21810 Gerrit-PatchSet: 1 Gerrit-Owner: mschramm Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 20 21:36:33 2020 From: gerrit-no-reply at lists.osmocom.org (mschramm) Date: Sun, 20 Dec 2020 21:36:33 +0000 Subject: Change in osmo-e1-hardware[master]: e1-tracer: update BOM attributes to 1st v2 prod run parts 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-e1-hardware/+/21810 to look at the new patch set (#2). Change subject: e1-tracer: update BOM attributes to 1st v2 prod run parts ...................................................................... e1-tracer: update BOM attributes to 1st v2 prod run parts * L2, L3 now 0805 * R6, R7 now 0402 * IC4 now ASEMB-12.000MHZ-LC-T * RoHS state enabled again in scraper, not yet used in BOM Change-Id: I4f1a82476ca84552efd71a47231e8b6ac02a3358 --- M hardware/e1-tracer/e1-tracer.brd M hardware/e1-tracer/e1-tracer.sch M hardware/e1-tracer/e1-tracer_eBOM.csv M hardware/e1-tracer/e1-tracer_eBOM.gnumeric 4 files changed, 315 insertions(+), 256 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/10/21810/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21810 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: I4f1a82476ca84552efd71a47231e8b6ac02a3358 Gerrit-Change-Number: 21810 Gerrit-PatchSet: 2 Gerrit-Owner: mschramm Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 20 21:59:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 21:59:15 +0000 Subject: Change in osmo-bsc[master]: Set all NM OML objects to Locked by default In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/20399 ) Change subject: Set all NM OML objects to Locked by default ...................................................................... Patch Set 6: this patch causese Ericsson OM2000 (and probably all other non-TS12.21 BTSs like Nokia) to break: <0019> e1_config.c:133 (bts=0,trx=0) discarding RSL message received in locked administrative state -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/20399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I68ae0bc51a565f903b47cf72f3e3dd6f1a2d2651 Gerrit-Change-Number: 20399 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 20 Dec 2020 21:59: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 Sun Dec 20 22:21:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 22:21:48 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21811 ) Change subject: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up ...................................................................... abis_om2000: Force TRX NM state to UNLOCKED once TRX is up In I68ae0bc51a565f903b47cf72f3e3dd6f1a2d2651 we started to initialize all (TS 12.21) NM MO state to LOCKED by default, which means BTSs not using TS 12.21 are stumbling across a general check in bts_isdn_sign_link() and will fail to process and uplink RSL messages. Change-Id: I4450cc47ede4005bf4bbd4af8d5a22c78377d4cd Related: OSE4914 --- M src/osmo-bsc/abis_om2000.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/21811/1 diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index a3f689a..a1b8e53 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -2212,6 +2212,11 @@ static void om2k_trx_s_done_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { + struct om2k_trx_fsm_priv *otfp = fi->priv; + + /* 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); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4450cc47ede4005bf4bbd4af8d5a22c78377d4cd Gerrit-Change-Number: 21811 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 Dec 20 22:24:46 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 20 Dec 2020 22:24:46 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY command to set static / maximum BS Power References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21812 ) Change subject: power_control: add VTY command to set static / maximum BS Power ...................................................................... power_control: add VTY command to set static / maximum BS Power Change-Id: I11ca856aba46aaf84d94cbbdf4c39a01ee8289b9 Related: SYS#4918 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/lchan_fsm.c M tests/power_ctrl.vty 5 files changed, 94 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/21812/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index f9d5736..233c3b6 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1328,6 +1328,10 @@ /* Power Control mode to be used by the BTS */ enum gsm_power_ctrl_mode mode; + /* BS Power reduction value / maximum (in dB) */ + uint8_t bs_power_val_db; /* for static mode */ + uint8_t bs_power_max_db; /* for dynamic mode */ + /* Power change step size (dynamic mode only) */ uint8_t inc_step_size_db; /* increasing direction */ uint8_t red_step_size_db; /* reducing direction */ diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index c12fd12..fe46d45 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -950,10 +950,14 @@ case GSM_PWR_CTRL_MODE_STATIC: cfg_out("%s%s", node_name, VTY_NEWLINE); cfg_out(" mode static%s", VTY_NEWLINE); + if (cp->dir == GSM_PWR_CTRL_DIR_DL && cp->bs_power_val_db != 0) + cfg_out(" bs-power static %u%s", cp->bs_power_val_db, VTY_NEWLINE); break; case GSM_PWR_CTRL_MODE_DYN_BTS: cfg_out("%s%s", node_name, VTY_NEWLINE); cfg_out(" mode dyn-bts%s", VTY_NEWLINE); + if (cp->dir == GSM_PWR_CTRL_DIR_DL) + cfg_out(" bs-power dyn-max %u%s", cp->bs_power_max_db, VTY_NEWLINE); cfg_out(" step-size inc %u red %u%s", cp->inc_step_size_db, cp->red_step_size_db, @@ -4895,6 +4899,40 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_power_ctrl_bs_power, + cfg_power_ctrl_bs_power_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "bs-power (static|dyn-max) <0-30>", + "BS Power IE value to be send to the BTS\n" + "Fixed BS Power reduction value (for static mode)\n" + "Maximum BS Power reduction value (for dynamic mode)\n" + "BS Power reduction value (in dB, even numbers only)\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + bool dynamic = !strcmp(argv[0], "dyn-max"); + int value = atoi(argv[1]); + + if (params->dir != GSM_PWR_CTRL_DIR_DL) { + vty_out(vty, "%% This command is only valid for " + "'bs-power-control' node%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (value % 2 != 0) { + vty_out(vty, "%% Incorrect BS Power reduction value, " + "an even number is expected%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (dynamic) /* maximum value */ + params->bs_power_max_db = value; + else /* static (fixed) value */ + params->bs_power_val_db = value; + + return CMD_SUCCESS; +} + DEFUN_USRATTR(cfg_power_ctrl_step_size, cfg_power_ctrl_step_size_cmd, X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | @@ -7673,6 +7711,7 @@ install_element(BTS_NODE, &cfg_bts_no_power_ctrl_cmd); install_node(&power_ctrl_node, dummy_config_write); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_mode_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_bs_power_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_step_size_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_cmd); diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 0b5650f..4c87fd8 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -972,6 +972,10 @@ /* Static Power Control is the safe default */ .mode = GSM_PWR_CTRL_MODE_STATIC, + /* BS Power reduction value / maximum (in dB) */ + .bs_power_val_db = 0, /* no attenuation in static mode */ + .bs_power_max_db = 12, /* up to 12 dB in dynamic mode */ + /* Power increasing/reducing step size */ .inc_step_size_db = 4, /* 2, 4, or 6 dB */ .red_step_size_db = 2, /* 2 or 4 dB */ diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 1903645..5a42527 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -379,6 +379,9 @@ */ 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) @@ -408,6 +411,12 @@ .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) diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index abd2768..7884c01 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -23,6 +23,7 @@ OsmoBSC(config-power-ctrl)# list with-flags ... . lv mode (static|dyn-bts) [reset] + . lv 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> @@ -33,12 +34,30 @@ . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> +OsmoBSC(config-power-ctrl)# bs-power ? + static Fixed BS Power reduction value (for static mode) + dyn-max Maximum BS Power reduction value (for dynamic mode) +OsmoBSC(config-power-ctrl)# bs-power static ? + <0-30> BS Power reduction value (in dB, even numbers only) +OsmoBSC(config-power-ctrl)# bs-power static 3 +% Incorrect BS Power reduction value, an even number is expected +OsmoBSC(config-power-ctrl)# bs-power static 6 +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control + mode static + bs-power static 6 + ms-power-control + mode static +... !bs-power + OsmoBSC(config-power-ctrl)# ### Check default BS Power Parameters OsmoBSC(config-power-ctrl)# mode dyn-bts OsmoBSC(config-power-ctrl)# show running-config ... bs-power-control mode dyn-bts + bs-power dyn-max 12 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -50,11 +69,23 @@ mode static ... +OsmoBSC(config-power-ctrl)# bs-power dyn-max 30 +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control + mode dyn-bts + bs-power dyn-max 30 +... !bs-power + ms-power-control + mode static +... !bs-power + OsmoBSC(config-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control OsmoBSC(config-power-ctrl)# list with-flags ... . lv mode (static|dyn-bts) [reset] + . lv 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> @@ -71,6 +102,7 @@ ... bs-power-control mode dyn-bts + bs-power dyn-max 30 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -89,6 +121,11 @@ no rxqual-avg ... +OsmoBSC(config-power-ctrl)# bs-power static 30 +% This command is only valid for 'bs-power-control' node +OsmoBSC(config-power-ctrl)# bs-power dyn-max 30 +% This command is only valid for 'bs-power-control' node + OsmoBSC(config-power-ctrl)# step-size inc 5 red 4 % Power change step size must be an even number OsmoBSC(config-power-ctrl)# step-size inc 2 red 3 @@ -98,6 +135,7 @@ ... bs-power-control mode dyn-bts + bs-power dyn-max 30 step-size inc 4 red 2 ... ms-power-control -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I11ca856aba46aaf84d94cbbdf4c39a01ee8289b9 Gerrit-Change-Number: 21812 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 Dec 20 23:18:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:18:27 +0000 Subject: Change in osmo-bsc[master]: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21813 ) Change subject: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT ...................................................................... OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT This is how the DP MO FSM is doing, so let's permit it. Change-Id: I9df44f840a2818ebc877453c74bde127dce9b3e9 --- M src/osmo-bsc/abis_om2000.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/21813/1 diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index a1b8e53..c74c0eb 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -1922,7 +1922,8 @@ .out_state_mask = S(OM2K_ST_DONE) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_CFG_ACCEPT) | - S(OM2K_ST_WAIT_OPINFO_ACCEPT), + S(OM2K_ST_WAIT_OPINFO_ACCEPT) | + S(OM2K_ST_WAIT_ENABLE_ACCEPT), .action = om2k_mo_st_wait_start_res, }, [OM2K_ST_WAIT_CFG_ACCEPT] = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9df44f840a2818ebc877453c74bde127dce9b3e9 Gerrit-Change-Number: 21813 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 Dec 20 23:18:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:18:28 +0000 Subject: Change in osmo-bsc[master]: OM2K: Skip the entire CON MO if there are no connection groups References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21814 ) Change subject: OM2K: Skip the entire CON MO if there are no connection groups ...................................................................... OM2K: Skip the entire CON MO if there are no connection groups If the user doesn't specify any CON connection groups in the config file, then the CON is not used. The current code runs into an error condition, as abis_om2k_tx_con_conf_req() never sends the CON CONF REQ if the groups list is empty, but we still wait in the FSM for the arrival of a CFG REQ ACCEPT. The CON FSM eventually times out in T10 and we proceed with the IS, ignoring the error. With this patch, we simply skip the entire CON MO in case there is no related configuration. Change-Id: Ia4d5bd96734686381f04aa3b380b17a161a31174 --- M src/osmo-bsc/abis_om2000.c 1 file changed, 10 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/14/21814/1 diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index c74c0eb..a1eed5b 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -2389,10 +2389,14 @@ OSMO_ASSERT(event == OM2K_BTS_EVT_TF_DONE); - 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); + 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); + } 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); + } } static void om2k_bts_s_wait_con(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2486,7 +2490,8 @@ [OM2K_BTS_S_WAIT_TF] = { .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_CON) | + S(OM2K_BTS_S_WAIT_IS), .name = "WAIT-TF", .action = om2k_bts_s_wait_tf, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia4d5bd96734686381f04aa3b380b17a161a31174 Gerrit-Change-Number: 21814 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 Dec 20 23:19:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:19:30 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: cosmetic: more comments in the code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 ) Change subject: icE1usb fw: cosmetic: more comments in the code ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 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: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 Gerrit-Change-Number: 21704 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 23: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 Sun Dec 20 23:19:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:19:36 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: define e1_data_ptr() using e1_data_ofs() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 ) Change subject: icE1usb fw: define e1_data_ptr() using e1_data_ofs() ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 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: I9a6cce07ea8b6eff1527215de00621da960b0472 Gerrit-Change-Number: 21706 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 23:19: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 Dec 20 23:19:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:19:46 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Use register bit #define instead of magic number In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 ) Change subject: icE1usb fw: Use register bit #define instead of magic number ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 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: Ic824ce5a6605c96989fefbf92f365bff618dccb2 Gerrit-Change-Number: 21707 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 23: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 Sun Dec 20 23:19:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:19:54 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 ) Change subject: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 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: I9e59d86a2e8f4e85ca84c592438ad79966b49448 Gerrit-Change-Number: 21716 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 23: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 Sun Dec 20 23:20:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:20:02 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Include E1 frame number in Rx USB header In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 ) Change subject: icE1usb fw: Include E1 frame number in Rx USB header ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 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: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 Gerrit-Change-Number: 21717 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 23: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 Sun Dec 20 23:20:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:20:09 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Use green per-port LED to indicate alignment status In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21731 ) Change subject: icE1usb fw: Use green per-port LED to indicate alignment status ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21731 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: I42d53544858dbbbae5206d9a62b08672966c9ebf Gerrit-Change-Number: 21731 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 23:20: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 Dec 20 23:20:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:20:21 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: cosmetic: more comments in the code In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 ) Change subject: icE1usb fw: cosmetic: more comments in the code ...................................................................... icE1usb fw: cosmetic: more comments in the code Change-Id: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/usb_desc_app.c M firmware/ice40-riscv/icE1usb/usb_e1.c 3 files changed, 40 insertions(+), 28 deletions(-) Approvals: laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 17be75d..e5108ce 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -30,37 +30,45 @@ struct e1_chan tx; } __attribute__((packed,aligned(4))); -#define E1_RX_CR_ENABLE (1 << 0) -#define E1_RX_CR_MODE_TRSP (0 << 1) -#define E1_RX_CR_MODE_BYTE (1 << 1) -#define E1_RX_CR_MODE_BFA (2 << 1) -#define E1_RX_CR_MODE_MFA (3 << 1) -#define E1_RX_CR_OVFL_CLR (1 << 12) -#define E1_RX_SR_ENABLED (1 << 0) -#define E1_RX_SR_ALIGNED (1 << 1) +/* 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) +#define E1_RX_SR_OVFL (1 << 12) /* Indicate Rx overflow */ -#define E1_TX_CR_ENABLE (1 << 0) -#define E1_TX_CR_MODE_TRSP (0 << 1) -#define E1_TX_CR_MODE_TS0 (1 << 1) -#define E1_TX_CR_MODE_TS0_CRC (2 << 1) -#define E1_TX_CR_MODE_TS0_CRC_E (3 << 1) -#define E1_TX_CR_TICK_LOCAL (0 << 3) -#define E1_TX_CR_TICK_REMOTE (1 << 3) -#define E1_TX_CR_ALARM (1 << 4) -#define E1_TX_CR_LOOPBACK (1 << 5) -#define E1_TX_CR_UNFL_CLR (1 << 12) -#define E1_TX_SR_ENABLED (1 << 0) +/* 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) +#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) @@ -265,10 +273,10 @@ // ---------- enum e1_pipe_state { - IDLE = 0, - BOOT = 1, - RUN = 2, - RECOVER = 3, + IDLE = 0, /* not yet initialized */ + BOOT = 1, /* after e1_init(), regiters are programmed */ + RUN = 2, /* normal operation */ + RECOVER = 3, /* after underflow, overflow or alignment error */ }; static struct { diff --git a/firmware/ice40-riscv/icE1usb/usb_desc_app.c b/firmware/ice40-riscv/icE1usb/usb_desc_app.c index d6c274a..9fe3968 100644 --- a/firmware/ice40-riscv/icE1usb/usb_desc_app.c +++ b/firmware/ice40-riscv/icE1usb/usb_desc_app.c @@ -19,6 +19,10 @@ /* E1 */ struct { + /* Two altsettings are required, as isochronous + * interfaces must have a setting where they don't + * transceive any data. wMaxPacketSize is 0 for + * all endpoints in the 'off' altsetting */ struct { struct usb_intf_desc intf; struct usb_ep_desc ep_data_in; diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index dafceb5..f724665 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -16,9 +16,9 @@ #include "misc.h" struct { - bool running; - int out_bdi; - int in_bdi; + 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 */ } g_usb_e1; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21704 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: I445bb2f92b6dcfe29ac20109ea2e63efb31051a1 Gerrit-Change-Number: 21704 Gerrit-PatchSet: 6 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 Sun Dec 20 23:20:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:20:21 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: define e1_data_ptr() using e1_data_ofs() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 ) Change subject: icE1usb fw: define e1_data_ptr() using e1_data_ofs() ...................................................................... icE1usb fw: define e1_data_ptr() using e1_data_ofs() It's best to compute the offset only at one place and use that computation elsewhere. Change-Id: I9a6cce07ea8b6eff1527215de00621da960b0472 --- M firmware/ice40-riscv/icE1usb/e1.c 1 file changed, 5 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index e5108ce..776edba 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -80,19 +80,17 @@ static volatile struct e1_core * const e1_regs = (void *)(E1_CORE_BASE); static volatile uint8_t * const e1_data = (void *)(E1_DATA_BASE); - -volatile uint8_t * -e1_data_ptr(int mf, int frame, int ts) -{ - return &e1_data[(mf << 9) | (frame << 5) | ts]; -} - unsigned int e1_data_ofs(int mf, int frame, int ts) { return (mf << 9) | (frame << 5) | ts; } +volatile uint8_t * +e1_data_ptr(int mf, int frame, int ts) +{ + return &e1_data[e1_data_ofs(mf, frame, ts)]; +} // FIFOs // ----- -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21706 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: I9a6cce07ea8b6eff1527215de00621da960b0472 Gerrit-Change-Number: 21706 Gerrit-PatchSet: 5 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 Sun Dec 20 23:20:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:20:21 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Use register bit #define instead of magic number In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 ) Change subject: icE1usb fw: Use register bit #define instead of magic number ...................................................................... icE1usb fw: Use register bit #define instead of magic number Change-Id: Ic824ce5a6605c96989fefbf92f365bff618dccb2 --- M firmware/ice40-riscv/icE1usb/e1.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 776edba..5d4d3ee 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -406,7 +406,7 @@ return; /* HACK: LED link status */ - if (e1_regs->rx.csr & 2) + if (e1_regs->rx.csr & E1_RX_SR_ALIGNED) led_color(0, 48, 0); else led_color(48, 0, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21707 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: Ic824ce5a6605c96989fefbf92f365bff618dccb2 Gerrit-Change-Number: 21707 Gerrit-PatchSet: 5 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 Sun Dec 20 23:20:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:20:22 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 ) Change subject: icE1usb fw: Have e1_rx_need_data() optionally return FIFO position ...................................................................... icE1usb fw: Have e1_rx_need_data() optionally return FIFO position The position indicates where we are in terms of frame and multiframe. The related code was ported over from e1-tracer. Related: OS#4674 Change-Id: I9e59d86a2e8f4e85ca84c592438ad79966b49448 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/usb_e1.c 2 files changed, 9 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 5d4d3ee..0f1d89d 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -328,7 +328,7 @@ #include "dma.h" unsigned int -e1_rx_need_data(unsigned int usb_addr, unsigned int max_frames) +e1_rx_need_data(unsigned int usb_addr, unsigned int max_frames, unsigned int *pos) { unsigned int ofs; int tot_frames = 0; @@ -340,6 +340,12 @@ if (!n_frames) break; + /* Give pos */ + if (pos) { + *pos = ofs & g_e1.rx.fifo.mask; + pos = NULL; + } + /* Copy from FIFO to USB */ dma_exec(e1f_ofs_to_dma(ofs), usb_addr, n_frames * (32 / 4), false, NULL, NULL); diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index f724665..6bcb1b4 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -23,7 +23,7 @@ /* Hack */ -unsigned int e1_rx_need_data(unsigned int usb_addr, unsigned int max_len); +unsigned int e1_rx_need_data(unsigned int usb_addr, unsigned int max_len, unsigned int *pos); unsigned int e1_tx_feed_data(unsigned int usb_addr, unsigned int len); unsigned int e1_tx_level(void); unsigned int e1_rx_level(void); @@ -93,7 +93,7 @@ else if (!n) break; - n = e1_rx_need_data((ptr >> 2) + 1, n); + n = e1_rx_need_data((ptr >> 2) + 1, n, NULL); /* Write header */ hdr = 0x616b00b5; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21716 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: I9e59d86a2e8f4e85ca84c592438ad79966b49448 Gerrit-Change-Number: 21716 Gerrit-PatchSet: 5 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 Sun Dec 20 23:20:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:20:22 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Include E1 frame number in Rx USB header In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 ) Change subject: icE1usb fw: Include E1 frame number in Rx USB header ...................................................................... icE1usb fw: Include E1 frame number in Rx USB header This should enable the host to detect discontinuities, and also know when a multiframe starts. Related: OS#4674 Change-Id: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 --- M firmware/ice40-riscv/icE1usb/usb_e1.c 1 file changed, 5 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index 6bcb1b4..e37edc3 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -14,6 +14,7 @@ #include "console.h" #include "misc.h" +#include "e1.h" struct { bool running; /* are we running (transceiving USB data)? */ @@ -76,6 +77,7 @@ { uint32_t ptr = usb_ep_regs[2].in.bd[bdi].ptr; uint32_t hdr; + unsigned int pos; /* Error check */ if ((usb_ep_regs[2].in.bd[bdi].csr & USB_BD_STATE_MSK) == USB_BD_STATE_DONE_ERR) @@ -93,10 +95,10 @@ else if (!n) break; - n = e1_rx_need_data((ptr >> 2) + 1, n, NULL); + n = e1_rx_need_data((ptr >> 2) + 1, n, &pos); - /* Write header */ - hdr = 0x616b00b5; + /* Write header: currently version and pos (mfr/fr number) */ + hdr = (0 << 28) | (pos & 0xff); usb_data_write(ptr, &hdr, 4); /* Resubmit */ -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21717 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: Ie0688647c56ebfc2e08de44f8ec569e1c2cd6a28 Gerrit-Change-Number: 21717 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 Sun Dec 20 23:20:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:20:22 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Use green per-port LED to indicate alignment status In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21731 ) Change subject: icE1usb fw: Use green per-port LED to indicate alignment status ...................................................................... icE1usb fw: Use green per-port LED to indicate alignment status Whenever Rx is aligned, the green LED is permanently on. Whenever Rx is not aligned, the green LED is blinking. What's missing is to check for E1 clock ticks and turn the LED off completely if there are no clock ticks. Change-Id: I42d53544858dbbbae5206d9a62b08672966c9ebf --- M doc/manuals/chapters/firmware.adoc M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/e1.h M firmware/ice40-riscv/icE1usb/misc.c 4 files changed, 51 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/firmware.adoc b/doc/manuals/chapters/firmware.adoc index d0542bd..254e235 100644 --- a/doc/manuals/chapters/firmware.adoc +++ b/doc/manuals/chapters/firmware.adoc @@ -128,9 +128,17 @@ === Use of the E1 Interface LEDs -Each E1 interface has two LEDs integrated into the RJ45 connector. +Each E1 interface has two LEDs integrated into the RJ45 connector. They +are (starting to get) used by the firmware to indicate status +information to the user. -FIXME: describe how they are used. +[options="header"] +|=== +|Color | Pattern | Meaning +|Green | Blinking (slow) | E1 Receiver attempting to align +|Green | On | E1 Receiver fully aligned +|=== + === Use of the Multi-Color RGB LED diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 0f1d89d..ad12fe2 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -412,10 +412,14 @@ return; /* HACK: LED link status */ - if (e1_regs->rx.csr & E1_RX_SR_ALIGNED) + 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); - else + } 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); + } /* Recover any done TX BD */ while ( (bd = e1_regs->tx.bd) & E1_BD_VALID ) { diff --git a/firmware/ice40-riscv/icE1usb/e1.h b/firmware/ice40-riscv/icE1usb/e1.h index e68514f..c438cb9 100644 --- a/firmware/ice40-riscv/icE1usb/e1.h +++ b/firmware/ice40-riscv/icE1usb/e1.h @@ -13,3 +13,19 @@ volatile uint8_t *e1_data_ptr(int mf, int frame, int ts); unsigned int e1_data_ofs(int mf, int frame, int ts); + +enum e1_platform_led { + E1P_LED_GREEN = 0, + E1P_LED_YELLOW = 1, +}; + +enum e1_platform_led_state { + E1P_LED_ST_OFF = 0, + E1P_LED_ST_ON = 1, + E1P_LED_ST_BLINK = 2, + E1P_LED_ST_BLINK_FAST = 3 +}; + +/* external function provided by the platform; used by E1 driver to control LEDs */ +extern void e1_platform_led_set(uint8_t port, enum e1_platform_led led, + enum e1_platform_led_state state); diff --git a/firmware/ice40-riscv/icE1usb/misc.c b/firmware/ice40-riscv/icE1usb/misc.c index dca126a..3117be9 100644 --- a/firmware/ice40-riscv/icE1usb/misc.c +++ b/firmware/ice40-riscv/icE1usb/misc.c @@ -10,6 +10,7 @@ #include "config.h" #include "misc.h" +#include "e1.h" struct misc { @@ -51,6 +52,24 @@ misc_regs->e1_led = (enable ? 0x100 : 0x000) | cfg; } +void +e1_platform_led_set(uint8_t port, enum e1_platform_led led, + enum e1_platform_led_state state) +{ + uint32_t tmp; + unsigned int shift; + + if (port >= 2) + return; + + shift = 4*port + 2*led; + + tmp = misc_regs->e1_led; + tmp &= ~(3 << shift); + tmp |= 0x100 | ((state & 3) << shift); + misc_regs->e1_led = tmp; +} + uint16_t e1_tick_read(void) { -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21731 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: I42d53544858dbbbae5206d9a62b08672966c9ebf Gerrit-Change-Number: 21731 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 Sun Dec 20 23:21:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 20 Dec 2020 23:21:39 +0000 Subject: Change in osmo-e1d[master]: Add support for icE1usb interrupt endpoint error reporting In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21782 ) Change subject: Add support for icE1usb interrupt endpoint error reporting ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Gerrit-Change-Number: 21782 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 20 Dec 2020 23:21:39 +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 Dec 21 01:35:42 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 21 Dec 2020 01:35:42 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fdffbf6575b8_22fc2aafec8545f0206147@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] [ 117s] [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] [ 111.424093] sysrq: Power Off [ 120s] [ 111.433501] reboot: Power down [ 121s] ### VM INTERACTION END ### [ 121s] [ 121s] sheep84 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Dec 21 01:35:40 UTC 2020. [ 121s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Dec 21 01:38:51 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 21 Dec 2020 01:38:51 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fdffcc7d48cb_22fc2aafec8545f02061550@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: [ 153s] [COMPILING apps/dfu/main.c] [ 154s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 154s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 154s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 154s] Memory region Used Size Region Size %age Used [ 154s] rom: 16580 B 16 KB 101.20% [ 154s] 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 [ 154s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 154s] /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: warning: changing start of section .stack by 4 bytes [ 154s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 154s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 154s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 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.092380] sysrq: Power Off [ 157s] [ 144.096737] reboot: Power down [ 157s] ### VM INTERACTION END ### [ 157s] [ 157s] cloud132 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Dec 21 01:38:34 UTC 2020. [ 157s] -- 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 Dec 21 09:36:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:36:06 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21811 ) Change subject: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4450cc47ede4005bf4bbd4af8d5a22c78377d4cd Gerrit-Change-Number: 21811 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09: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 Mon Dec 21 09:39:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:39:21 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: turn rsl_msgb_alloc() a macro and move it to header In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21791 ) Change subject: abis_rsl: turn rsl_msgb_alloc() a macro and move it to header ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id25c4bf1e06f697328d10777d6449c83006e8466 Gerrit-Change-Number: 21791 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09:39: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 Dec 21 09:41:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:41:08 +0000 Subject: Change in osmo-bsc[master]: power_control: add new structures and default parameters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21786 ) Change subject: power_control: add new structures and default parameters ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Gerrit-Change-Number: 21786 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09:41: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 Dec 21 09:45:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:45:16 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoding/init API to 'struct gsm_bts_model' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21792 ) Change subject: power_control: add encoding/init API to 'struct gsm_bts_model' ...................................................................... Patch Set 2: Code-Review+2 (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21792/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/21792/2//COMMIT_MSG at 11 PS2, Line 11: - power_ctrl_enc_rsl_params() - this function will be called by the I think you can see straightaway what differentiate both functions is when in the timeline the info is to be encoded, so I'd rather change these function pointers to be named something like: power_ctrl_enc_chan_act power_ctrl_enc_rsl_up https://gerrit.osmocom.org/c/osmo-bsc/+/21792/2/include/osmocom/bsc/bts.h File include/osmocom/bsc/bts.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21792/2/include/osmocom/bsc/bts.h at 187 PS2, Line 187: /* (Optional) function for encoding MS/BS Power Control paramaters */ I'd say in general try to add new fields structs in the same commit where you start using them (same with previous commit). -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba3ad5d8d549a6676050272f85b21c9b4c219d21 Gerrit-Change-Number: 21792 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09:45: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 Mon Dec 21 09:47:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:47:15 +0000 Subject: Change in osmo-bsc[master]: power_control: send default parameters from bootstrap_rsl() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21788 ) Change subject: power_control: send default parameters from bootstrap_rsl() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Gerrit-Change-Number: 21788 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09:47: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 Dec 21 09:48:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:48:11 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and OsmoBTS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21683 ) Change subject: power_control: add encoder for ip.access nanoBTS and OsmoBTS ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09: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 Dec 21 09:50:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:50:52 +0000 Subject: Change in osmo-bsc[master]: power_control: make use of MS/BS parameters in RSL messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: make use of MS/BS parameters in RSL messages ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09: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 Mon Dec 21 09:51:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:51:32 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09: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 Mon Dec 21 09:51:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:51:54 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY command for re-sending default parameters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21794 ) Change subject: power_control: add VTY command for re-sending default parameters ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35e9147d5536f9901ac63f605d87ae112c024401 Gerrit-Change-Number: 21794 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09:51: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 Dec 21 09:52:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:52:32 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY command to set static / maximum BS Power In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21812 ) Change subject: power_control: add VTY command to set static / maximum BS Power ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I11ca856aba46aaf84d94cbbdf4c39a01ee8289b9 Gerrit-Change-Number: 21812 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09:52: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 Dec 21 09:54:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:54:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09:54: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 Dec 21 09:55:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:55:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: implement a write queue In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21751 ) Change subject: gprs_ns2: fr: implement a write queue ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 Gerrit-Change-Number: 21751 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09:55: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 Dec 21 09:58:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 09:58:34 +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 5: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21753/5/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21753/5/src/gb/gprs_ns2.c at 1315 PS5, Line 1315: active_binds = talloc_zero_array(nse, struct gprs_ns2_vc_bind*, active_nsvcs); missing talloc_free -- 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: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 09:58:34 +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 Dec 21 10:00:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 10:00:26 +0000 Subject: Change in osmo-bsc[master]: osmobsc-usermanual: Add Chapter with AoIP message flow examples In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21272 ) Change subject: osmobsc-usermanual: Add Chapter with AoIP message flow examples ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I001d5f85c95098269b5f129b0c53c3544b96ffb0 Gerrit-Change-Number: 21272 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 10: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 Dec 21 10:01:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 10:01:18 +0000 Subject: Change in osmo-bsc[master]: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21813 ) Change subject: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9df44f840a2818ebc877453c74bde127dce9b3e9 Gerrit-Change-Number: 21813 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 21 Dec 2020 10:01: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 Dec 21 10:01:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 10:01:46 +0000 Subject: Change in osmo-bsc[master]: OM2K: Skip the entire CON MO if there are no connection groups In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21814 ) Change subject: OM2K: Skip the entire CON MO if there are no connection groups ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia4d5bd96734686381f04aa3b380b17a161a31174 Gerrit-Change-Number: 21814 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 21 Dec 2020 10:01: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 Dec 21 10:06:31 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 21 Dec 2020 10:06:31 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21811 ) Change subject: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4450cc47ede4005bf4bbd4af8d5a22c78377d4cd Gerrit-Change-Number: 21811 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 21 Dec 2020 10:06: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 Dec 21 10:08:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 10:08:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: cosmetic: bsc: Fix tab<->space indent In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21785 ) Change subject: cosmetic: bsc: Fix tab<->space indent ...................................................................... Patch Set 1: Code-Review+2 fast tracking this commit. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8b8670fb820d258a5a56f3fdb007f7e59bfd374f Gerrit-Change-Number: 21785 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 10:08: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 Dec 21 10:08:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 10:08:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: cosmetic: bsc: Fix tab<->space indent In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21785 ) Change subject: cosmetic: bsc: Fix tab<->space indent ...................................................................... cosmetic: bsc: Fix tab<->space indent Change-Id: I8b8670fb820d258a5a56f3fdb007f7e59bfd374f --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2695ce2..175b820 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2331,7 +2331,7 @@ private function f_tc_si2quater_n_earfcns(integer n) runs on test_CT { var template SystemInformationConfig sic := SystemInformationConfig_default; - sic.si2quater := f_tr_si2quater_earfcns(n); + sic.si2quater := f_tr_si2quater_earfcns(n); var template CellSelIndValue cells := f_tr_rr_chan_rel_earfcns(n); f_test_si2quater(n, sic, cells); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8b8670fb820d258a5a56f3fdb007f7e59bfd374f Gerrit-Change-Number: 21785 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 Mon Dec 21 10:09:01 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 21 Dec 2020 10:09:01 +0000 Subject: Change in osmo-bsc[master]: OM2K: Skip the entire CON MO if there are no connection groups In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21814 ) Change subject: OM2K: Skip the entire CON MO if there are no connection groups ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia4d5bd96734686381f04aa3b380b17a161a31174 Gerrit-Change-Number: 21814 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 21 Dec 2020 10: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 Mon Dec 21 10:11:53 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 21 Dec 2020 10:11:53 +0000 Subject: Change in osmo-bsc[master]: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21813 ) Change subject: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9df44f840a2818ebc877453c74bde127dce9b3e9 Gerrit-Change-Number: 21813 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 21 Dec 2020 10:11: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 Dec 21 10:16:22 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 10:16:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: implement a write queue In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21751 ) Change subject: gprs_ns2: fr: implement a write queue ...................................................................... gprs_ns2: fr: implement a write queue Related: SYS#5228 Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 --- M src/gb/gprs_ns2_fr.c 1 file changed, 19 insertions(+), 29 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/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 782e5a3..5b54b48 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #ifdef ENABLE_LIBMNL @@ -83,9 +84,9 @@ }; struct priv_bind { - struct osmo_fd fd; char netif[IF_NAMESIZE]; struct osmo_fr_link *link; + struct osmo_wqueue wqueue; int ifindex; bool if_running; }; @@ -142,7 +143,7 @@ OSMO_ASSERT(llist_empty(&bind->nsvc)); osmo_fr_link_free(priv->link); - osmo_fd_close(&priv->fd); + osmo_fd_close(&priv->wqueue.bfd); talloc_free(priv); } @@ -238,22 +239,9 @@ return rc; } -static int handle_netif_write(struct osmo_fd *bfd) +static int handle_netif_write(struct osmo_fd *ofd, struct msgb *msg) { - /* FIXME */ - return -EIO; -} - -static int fr_fd_cb(struct osmo_fd *bfd, unsigned int what) -{ - int rc = 0; - - if (what & OSMO_FD_READ) - rc = handle_netif_read(bfd); - if (what & OSMO_FD_WRITE) - rc = handle_netif_write(bfd); - - return rc; + return write(ofd->fd, msgb_data(msg), msgb_length(msg)); } /*! determine if given bind is for FR-GRE encapsulation. */ @@ -276,13 +264,15 @@ { struct gprs_ns2_vc_bind *bind = data; struct priv_bind *priv = bind->priv; - int rc; - /* FIXME half writes */ - rc = write(priv->fd.fd, msg->data, msg->len); - msgb_free(msg); + if (osmo_wqueue_enqueue(&priv->wqueue, msg)) { + LOGP(DLNS, LOGL_ERROR, "frame relay %s: failed to enqueue message\n", + priv->netif); + msgb_free(msg); + return -EINVAL; + } - return rc; + return 0; } static int devname2ifindex(const char *ifname) @@ -491,8 +481,6 @@ goto err_name; } - priv->fd.cb = fr_fd_cb; - priv->fd.data = bind; if (strlen(netif) > IF_NAMESIZE) { rc = -EINVAL; goto err_priv; @@ -519,12 +507,14 @@ goto err_fr; } - priv->fd.fd = rc = open_socket(priv->ifindex); + rc = open_socket(priv->ifindex); if (rc < 0) goto err_fr; - - priv->fd.when = OSMO_FD_READ; - rc = osmo_fd_register(&priv->fd); + 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); if (rc < 0) goto err_fd; @@ -544,7 +534,7 @@ return rc; err_fd: - close(priv->fd.fd); + close(priv->wqueue.bfd.fd); err_fr: osmo_fr_link_free(fr_link); err_priv: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id6eba04d5fb744f791b333c168729bbbd28cabd9 Gerrit-Change-Number: 21751 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 Dec 21 10:16:25 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 10:16:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: setup the device to correct FR/LMI settings In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21752 ) Change subject: gprs_ns2: fr: setup the device to correct FR/LMI settings ...................................................................... gprs_ns2: fr: setup the device to correct FR/LMI settings A hdlc can be used in different modes. Also a FR device can be used with lmi and certain settings as without it. ns2 will use FR with no lmi in the kernel. Related: SYS#5169 Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b --- M src/gb/gprs_ns2_fr.c 1 file changed, 110 insertions(+), 4 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/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 5b54b48..6019302 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -36,12 +36,14 @@ #include #include #include -#include +#include #include #include #include #include +#include +#include #include #include @@ -84,7 +86,7 @@ }; struct priv_bind { - char netif[IF_NAMESIZE]; + char netif[IFNAMSIZ]; struct osmo_fr_link *link; struct osmo_wqueue wqueue; int ifindex; @@ -433,6 +435,103 @@ } #endif /* LIBMNL */ +static int set_ifupdown(const char *netif, bool up) +{ + int sock, rc; + struct ifreq req; + + sock = socket(AF_INET, SOCK_DGRAM, 0); + if (sock < 0) + return sock; + + memset(&req, 0, sizeof req); + strncpy(req.ifr_name, netif, IFNAMSIZ); + + if (up) + req.ifr_flags |= IFF_UP; + + rc = ioctl(sock, SIOCSIFFLAGS, &req); + close(sock); + return rc; +} + +static int setup_device(const char *netif) +{ + int sock, rc; + char buffer[128]; + fr_proto *fr = (void*)buffer; + struct ifreq req; + + 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)); + return sock; + } + + memset(&req, 0, sizeof(struct ifreq)); + memset(&buffer, 0, sizeof(buffer)); + osmo_strlcpy(req.ifr_name, netif, IFNAMSIZ); + req.ifr_settings.ifs_ifsu.sync = (void*)buffer; + req.ifr_settings.size = sizeof(buffer); + req.ifr_settings.type = IF_GET_PROTO; + + rc = ioctl(sock, SIOCWANDEV, &req); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n", + netif, strerror(errno)); + goto err; + } + + /* check if the device is good */ + if (req.ifr_settings.type != IF_PROTO_FR && fr->lmi != LMI_NONE) { + LOGP(DLNS, LOGL_INFO, "%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 up the device %s: %s\n", + netif, strerror(errno)); + goto err; + } + + memset(&req, 0, sizeof(struct ifreq)); + memset(fr, 0, sizeof(fr_proto)); + osmo_strlcpy(req.ifr_name, netif, IFNAMSIZ); + req.ifr_settings.type = IF_PROTO_FR; + req.ifr_settings.size = sizeof(fr_proto); + req.ifr_settings.ifs_ifsu.fr = fr; + fr->lmi = LMI_NONE; + /* even those settings aren't used, they must be in the range */ + /* polling verification timer*/ + fr->t391 = 10; + /* link integrity verification polling timer */ + fr->t392 = 15; + /* full status polling counter*/ + fr->n391 = 6; + /* error threshold */ + fr->n392 = 3; + /* monitored events count */ + fr->n393 = 4; + + rc = ioctl(sock, SIOCWANDEV, &req); + if (rc) { + LOGP(DLNS, 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)); +err: + close(sock); + return rc; +} /*! Create a new bind for NS over FR. * \param[in] nsi NS instance in which to create the bind @@ -481,7 +580,7 @@ goto err_name; } - if (strlen(netif) > IF_NAMESIZE) { + if (strlen(netif) > IFNAMSIZ) { rc = -EINVAL; goto err_priv; } @@ -507,6 +606,13 @@ goto err_fr; } + /* set protocol frame relay and lmi */ + rc = setup_device(priv->netif); + if(rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Failed to setup the interface %s for frame relay and lmi\n", netif); + goto err_fr; + } + rc = open_socket(priv->ifindex); if (rc < 0) goto err_fr; @@ -597,7 +703,7 @@ continue; _netif = gprs_ns2_fr_bind_netif(bind); - if (!strncmp(_netif, netif, IF_NAMESIZE)) + if (!strncmp(_netif, netif, IFNAMSIZ)) return bind; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I04786d2b864860b08c2e1afdb199470f4b80cc3b Gerrit-Change-Number: 21752 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 Mon Dec 21 11:25:43 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 11:25:43 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: WIP: gprs_ns2: add new vty2 ...................................................................... Patch Set 15: (9 comments) After talking with Daniel about this change. We come to the conclusion to remove the sns group feature and use all UDP binds for IP-SNS at the beginning. If ip-SNS needs to limit the udp binds. The limit should be written into the NSE https://gerrit.osmocom.org/c/libosmocore/+/21487/4/include/osmocom/gprs/gprs_ns2.h File include/osmocom/gprs/gprs_ns2.h: https://gerrit.osmocom.org/c/libosmocore/+/21487/4/include/osmocom/gprs/gprs_ns2.h at a39 PS4, Line 39: NS2_DIALECT_SNS, > good idea. Done https://gerrit.osmocom.org/c/libosmocore/+/21487/15/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/15/src/gb/gprs_ns2_sns.c at 1555 PS15, Line 1555: "somegroup" > ? bind group related. removed. https://gerrit.osmocom.org/c/libosmocore/+/21487/1/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/1/src/gb/gprs_ns2_vty2.c at 136 PS1, Line 136: vty_out(vty, "Interface %s already used.\n", VTY_NEWLINE); > Just also noticed: "Interface %s already used.\n", VTY_NEWLINE [?] Ack https://gerrit.osmocom.org/c/libosmocore/+/21487/1/src/gb/gprs_ns2_vty2.c at 1020 PS1, Line 1020: install_lib_element(L_FR_NODE, &cfg_no_fr_link_cmd); > I'll change it to [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21487/4/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/4/src/gb/gprs_ns2_vty2.c at 488 PS4, Line 488: > You could have #defines and simply use them twice Done https://gerrit.osmocom.org/c/libosmocore/+/21487/15/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/15/src/gb/gprs_ns2_vty2.c at 467 PS15, Line 467: argv[0], argv[1], VTY_NEWLINE); > no newline? Ack https://gerrit.osmocom.org/c/libosmocore/+/21487/15/src/gb/gprs_ns2_vty2.c at 497 PS15, Line 497: vty_out(vty, "no listen can be only used with UDP bind%s", > no newline? Ack https://gerrit.osmocom.org/c/libosmocore/+/21487/15/src/gb/gprs_ns2_vty2.c at 618 PS15, Line 618: vty_out(vty, "fr can be only used with frame relay bind%s", > no newline? you have mcuh longer lines below Ack https://gerrit.osmocom.org/c/libosmocore/+/21487/15/src/gb/gprs_ns2_vty2.c at 860 PS15, Line 860: > isn't this a bit redundant? If we can delete just by nsvci above, what purpose has the delete-by-net [?] this can be removed. my idea was to use the same line to configure a nsvc also can be used to remove it again. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 15 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 21 Dec 2020 11:25:43 +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 Mon Dec 21 11:27:00 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 11:27:00 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: add new vty2 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/+/21487 to look at the new patch set (#16). Change subject: WIP: gprs_ns2: add new vty2 ...................................................................... WIP: gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,667 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/16 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 16 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 21 11:35:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 11:35:30 +0000 Subject: Change in libosmocore[master]: fsm: Add osmo_fsm_inst_broadcast_children() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21815 ) Change subject: fsm: Add osmo_fsm_inst_broadcast_children() ...................................................................... fsm: Add osmo_fsm_inst_broadcast_children() This is a helper function to broadcast an event to all of the siblings of a specified FSM instance. Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 --- M include/osmocom/core/fsm.h M src/fsm.c 2 files changed, 31 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/21815/1 diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index 7b262c7..77ebe7c 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -326,4 +326,15 @@ void *data, const char *file, int line); +/*! dispatch an event to all children of an osmocom finite state machine instance + * + * This is a macro that calls _osmo_fsm_inst_broadcast_children() with the given + * parameters as well as the caller's source file and line number for logging + * purposes. See there for documentation. + */ +#define osmo_fsm_inst_broadcast_children(fi, cause, data) \ + _osmo_fsm_inst_broadcast_children(fi, cause, data, __FILE__, __LINE__) +void _osmo_fsm_inst_broadcast_children(struct osmo_fsm_inst *fi, uint32_t event, + void *data, const char *file, int line); + /*! @} */ diff --git a/src/fsm.c b/src/fsm.c index 1e8909e..f1dbb41 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -1016,6 +1016,26 @@ } } +/*! Broadcast an event to all the FSMs children. + * + * Iterate over all children and send them the specified event. + * + * \param[in] fi FSM instance of the parent + * \param[in] event Event to send to children of FSM instance + * \param[in] data Data to pass along with the event + * \param[in] file Calling source file (from osmo_fsm_inst_dispatch macro) + * \param[in] line Calling source line (from osmo_fsm_inst_dispatch macro) + */ +void _osmo_fsm_inst_broadcast_children(struct osmo_fsm_inst *fi, + uint32_t event, void *data, + const char *file, int line) +{ + 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); + } +} + const struct value_string osmo_fsm_term_cause_names[] = { OSMO_VALUE_STRING(OSMO_FSM_TERM_PARENT), OSMO_VALUE_STRING(OSMO_FSM_TERM_REQUEST), -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 Gerrit-Change-Number: 21815 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 Dec 21 11:41:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 11:41:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Avoid stringop-truncation warning References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21816 ) Change subject: gprs_ns2_fr: Avoid stringop-truncation warning ...................................................................... gprs_ns2_fr: Avoid stringop-truncation warning gprs_ns2_fr.c:448:2: error: ?strncpy? specified bound 16 equals destination size [-Werror=stringop-truncation] 448 | strncpy(req.ifr_name, netif, IFNAMSIZ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Change-Id: Ied9fd1bea091075fad266258da39e674d10d4dcb --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/21816/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 6019302..1485961 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -445,7 +445,7 @@ return sock; memset(&req, 0, sizeof req); - strncpy(req.ifr_name, netif, IFNAMSIZ); + OSMO_STRLCPY_ARRAY(req.ifr_name, netif); if (up) req.ifr_flags |= IFF_UP; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ied9fd1bea091075fad266258da39e674d10d4dcb Gerrit-Change-Number: 21816 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 Dec 21 11:41:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 11:41:36 +0000 Subject: Change in libosmocore[master]: grs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21817 ) Change subject: grs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible ...................................................................... grs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible Change-Id: I8ce461ecc36a81a4221336e82a36a69f49f89a0a --- M src/gb/gprs_ns2_fr.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/21817/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 1485961..1a6b92f 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -471,7 +471,7 @@ memset(&req, 0, sizeof(struct ifreq)); memset(&buffer, 0, sizeof(buffer)); - osmo_strlcpy(req.ifr_name, netif, IFNAMSIZ); + OSMO_STRLCPY_ARRAY(req.ifr_name, netif); req.ifr_settings.ifs_ifsu.sync = (void*)buffer; req.ifr_settings.size = sizeof(buffer); req.ifr_settings.type = IF_GET_PROTO; @@ -499,7 +499,7 @@ memset(&req, 0, sizeof(struct ifreq)); memset(fr, 0, sizeof(fr_proto)); - osmo_strlcpy(req.ifr_name, netif, IFNAMSIZ); + OSMO_STRLCPY_ARRAY(req.ifr_name, netif); req.ifr_settings.type = IF_PROTO_FR; req.ifr_settings.size = sizeof(fr_proto); req.ifr_settings.ifs_ifsu.fr = fr; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ce461ecc36a81a4221336e82a36a69f49f89a0a Gerrit-Change-Number: 21817 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 Dec 21 11:41:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 11:41:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/21817 ) Change subject: gprs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible ...................................................................... gprs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible Change-Id: I8ce461ecc36a81a4221336e82a36a69f49f89a0a --- M src/gb/gprs_ns2_fr.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/21817/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ce461ecc36a81a4221336e82a36a69f49f89a0a Gerrit-Change-Number: 21817 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 21 11:42:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 11:42:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Avoid stringop-truncation warning In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21816 ) Change subject: gprs_ns2_fr: Avoid stringop-truncation warning ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ied9fd1bea091075fad266258da39e674d10d4dcb Gerrit-Change-Number: 21816 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 21 Dec 2020 11:42: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 Dec 21 11:42:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 11:42:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21817 ) Change subject: gprs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ce461ecc36a81a4221336e82a36a69f49f89a0a Gerrit-Change-Number: 21817 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 21 Dec 2020 11:42: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 Dec 21 12:05:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 12:05:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Avoid stringop-truncation warning In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21816 ) Change subject: gprs_ns2_fr: Avoid stringop-truncation warning ...................................................................... gprs_ns2_fr: Avoid stringop-truncation warning gprs_ns2_fr.c:448:2: error: ?strncpy? specified bound 16 equals destination size [-Werror=stringop-truncation] 448 | strncpy(req.ifr_name, netif, IFNAMSIZ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Change-Id: Ied9fd1bea091075fad266258da39e674d10d4dcb --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: 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 6019302..1485961 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -445,7 +445,7 @@ return sock; memset(&req, 0, sizeof req); - strncpy(req.ifr_name, netif, IFNAMSIZ); + OSMO_STRLCPY_ARRAY(req.ifr_name, netif); if (up) req.ifr_flags |= IFF_UP; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ied9fd1bea091075fad266258da39e674d10d4dcb Gerrit-Change-Number: 21816 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 Mon Dec 21 12:05:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 12:05:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21817 ) Change subject: gprs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible ...................................................................... gprs_ns2_fr: Use OSMO_STRLCPY_ARRAY() where possible Change-Id: I8ce461ecc36a81a4221336e82a36a69f49f89a0a --- M src/gb/gprs_ns2_fr.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: 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 1485961..1a6b92f 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -471,7 +471,7 @@ memset(&req, 0, sizeof(struct ifreq)); memset(&buffer, 0, sizeof(buffer)); - osmo_strlcpy(req.ifr_name, netif, IFNAMSIZ); + OSMO_STRLCPY_ARRAY(req.ifr_name, netif); req.ifr_settings.ifs_ifsu.sync = (void*)buffer; req.ifr_settings.size = sizeof(buffer); req.ifr_settings.type = IF_GET_PROTO; @@ -499,7 +499,7 @@ memset(&req, 0, sizeof(struct ifreq)); memset(fr, 0, sizeof(fr_proto)); - osmo_strlcpy(req.ifr_name, netif, IFNAMSIZ); + OSMO_STRLCPY_ARRAY(req.ifr_name, netif); req.ifr_settings.type = IF_PROTO_FR; req.ifr_settings.size = sizeof(fr_proto); req.ifr_settings.ifs_ifsu.fr = fr; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ce461ecc36a81a4221336e82a36a69f49f89a0a Gerrit-Change-Number: 21817 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 Mon Dec 21 12:06:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 12:06:24 +0000 Subject: Change in libosmocore[master]: rest_octets: Fix decoding of SI3 3G Early Classmark Sending Restriction References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21818 ) Change subject: rest_octets: Fix decoding of SI3 3G Early Classmark Sending Restriction ...................................................................... rest_octets: Fix decoding of SI3 3G Early Classmark Sending Restriction Restriction is applied if the value is L, so fix it. Fixes: f85b33f68fcf9b34e723e4571078d7eeb0de5d59 Change-Id: Idd170bc0f12e8b215a624e0632a106bde076179b --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/18/21818/1 diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 90f2b03..b2b37b3 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -1063,9 +1063,9 @@ /* 3G Early Classmark Sending Restriction. If H, then controlled by * early_cm_ctrl above */ if (bitvec_get_bit_high(&bv) == H) - si3->early_cm_restrict_3g = 1; - else si3->early_cm_restrict_3g = 0; + else + si3->early_cm_restrict_3g = 1; if (bitvec_get_bit_high(&bv) == H) si3->si2quater_indicator = 1; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idd170bc0f12e8b215a624e0632a106bde076179b Gerrit-Change-Number: 21818 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 Dec 21 12:07:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 12:07:51 +0000 Subject: Change in libosmocore[master]: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restr... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21789 ) Change subject: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" ...................................................................... Patch Set 2: The initial patch being reverted aimed at fixing a bug appearing swapping the value, but the issue was actually in the decode function, not the encode one, so both were wrong. I submitted a fix for both in this revert patch and next patch. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Gerrit-Change-Number: 21789 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 21 Dec 2020 12:07: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 Mon Dec 21 12:12:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 12:12:50 +0000 Subject: Change in libosmocore[master]: fsm: Add osmo_fsm_inst_broadcast_children() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21815 ) Change subject: fsm: Add osmo_fsm_inst_broadcast_children() ...................................................................... Patch Set 2: Code-Review+1 I didn't even know FSMS could have more than one child! -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 Gerrit-Change-Number: 21815 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 12: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 Mon Dec 21 12:29:33 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 12:29:33 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: add new vty2 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/+/21487 to look at the new patch set (#17). Change subject: WIP: gprs_ns2: add new vty2 ...................................................................... WIP: gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,673 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/17 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 21 12:30:30 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 12:30:30 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use ns2 vty2 References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 ) Change subject: gbproxy: use ns2 vty2 ...................................................................... gbproxy: use ns2 vty2 Depends: I163279cf57e84198dc8c53e1c109f5a9474670e9 (libosmocore) Change-Id: I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b --- M src/gbproxy/gb_proxy_main.c 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/19/21819/1 diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index e85e951..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,8 +301,6 @@ exit(2); } - gprs_ns2_vty_create(); - /* 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: 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 Dec 21 12:35:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 12:35:50 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use ns2 vty2 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 ) Change subject: gbproxy: use ns2 vty2 ...................................................................... Patch Set 1: 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: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 21 Dec 2020 12:35: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 Mon Dec 21 12:37:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 12:37:01 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoding/init API to 'struct gsm_bts_model' In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21792 ) Change subject: power_control: add encoding/init API to 'struct gsm_bts_model' ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21792/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/21792/2//COMMIT_MSG at 13 PS2, Line 13: for CHANnel ACTIVation and MS/BS POWER CONTROL messages power_ctrl_enc_rsl_params(): as you can see, it's also used for encoding MS/BS Power Control messages, so power_ctrl_enc_chan_act() would not be correct https://gerrit.osmocom.org/c/osmo-bsc/+/21792/2//COMMIT_MSG at 15 PS2, Line 15: power_ctrl_send_def_params I want to be able to re-send default parameters from the VTY, so power_ctrl_enc_rsl_up() also does not match up. We can of course generalize this somehow later, given that this is not a library. For now I would merge it as it is. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba3ad5d8d549a6676050272f85b21c9b4c219d21 Gerrit-Change-Number: 21792 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 12:37:01 +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 Dec 21 13:34:33 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 13:34:33 +0000 Subject: Change in osmo-bsc[master]: power_control: send default parameters from bootstrap_rsl() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21788 ) Change subject: power_control: send default parameters from bootstrap_rsl() ...................................................................... Patch Set 3: Code-Review+2 (1 comment) 1+1=2 https://gerrit.osmocom.org/c/osmo-bsc/+/21788/2/src/osmo-bsc/osmo_bsc_main.c File src/osmo-bsc/osmo_bsc_main.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21788/2/src/osmo-bsc/osmo_bsc_main.c at 344 PS2, Line 344: if (trx->bts->model->power_ctrl_send_def_params != NULL) { > before/after SI: you could simply send the SI from inside that "rsl link comes up" function of each BTS model. ACK, this seems to be the way to go. > trigger re-sending: The question is whether that entire operation is not way too specific. If we proceed like that we will at some point have dozens of 'trigger re-sending' VTY commands. Well, so far it's just two commands and I don't think there will be many more. > Once again, not a strong requirement, just some thoughts. I already spent more time on that, so let's get it merged as is for now. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Gerrit-Change-Number: 21788 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 13:34:33 +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 Mon Dec 21 13:34:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 13:34:58 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: turn rsl_msgb_alloc() a macro and move it to header In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21791 ) Change subject: abis_rsl: turn rsl_msgb_alloc() a macro and move it to header ...................................................................... abis_rsl: turn rsl_msgb_alloc() a macro and move it to header Also, take a chance to make talloc chunk names more informative. Change-Id: Id25c4bf1e06f697328d10777d6449c83006e8466 --- M include/osmocom/bsc/abis_rsl.h M src/osmo-bsc/abis_rsl.c 2 files changed, 7 insertions(+), 8 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/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index 964e282..58eca29 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -35,6 +35,13 @@ #define GSM48_LEN2PLEN(a) (((a) << 2) | 1) +#define RSL_ALLOC_SIZE 1024 +#define RSL_ALLOC_HEADROOM 128 + +#define rsl_msgb_alloc(args...) \ + msgb_alloc_headroom(RSL_ALLOC_SIZE, RSL_ALLOC_HEADROOM, \ + __FILE__ ":" OSMO_STRINGIFY_VAL(__LINE__)) + const char *ip_to_a(uint32_t ip); int rsl_bcch_info(const struct gsm_bts_trx *trx, enum osmo_sysinfo_type si_type, const uint8_t *data, int len); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index f8ea5a5..a803a03 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -55,8 +55,6 @@ #include #include #include -#define RSL_ALLOC_SIZE 1024 -#define RSL_ALLOC_HEADROOM 128 static void send_lchan_signal(int sig_no, struct gsm_lchan *lchan, struct gsm_meas_rep *resp) @@ -146,12 +144,6 @@ return lchan; } -static struct msgb *rsl_msgb_alloc(void) -{ - return msgb_alloc_headroom(RSL_ALLOC_SIZE, RSL_ALLOC_HEADROOM, - "RSL"); -} - static void pad_macblock(uint8_t *out, const uint8_t *in, int len) { memcpy(out, in, len); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id25c4bf1e06f697328d10777d6449c83006e8466 Gerrit-Change-Number: 21791 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria 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 Dec 21 13:34:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 13:34:58 +0000 Subject: Change in osmo-bsc[master]: power_control: add new structures and default parameters In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21786 ) Change subject: power_control: add new structures and default parameters ...................................................................... power_control: add new structures and default parameters Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Related: SYS#4918 --- M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts.c M src/osmo-bsc/gsm_data.c 4 files changed, 140 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/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index d2f1307..7c988a8 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -470,6 +470,10 @@ /* osmocom specific FACCH/SACCH repetition mode flags set by VTY to * enable/disable certain ACCH repeation features individually */ struct abis_rsl_osmo_rep_acch_cap repeated_acch_policy; + + /* MS/BS Power Control parameters */ + struct gsm_power_ctrl_params ms_power_ctrl; + struct gsm_power_ctrl_params bs_power_ctrl; }; #define GSM_BTS_SI2Q(bts, i) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i]) diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 3472f39..f9d5736 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1269,4 +1269,74 @@ int bsc_sccp_inst_next_conn_id(struct osmo_sccp_instance *sccp); +/* 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; + }; +}; + +enum gsm_power_ctrl_dir { + GSM_PWR_CTRL_DIR_UL, /* MS Power Control */ + GSM_PWR_CTRL_DIR_DL, /* BS Power Control */ +}; + +enum gsm_power_ctrl_mode { + /* Do not send MS/BS Power Control IEs */ + GSM_PWR_CTRL_MODE_NONE = 0, + /* Send MS/BS Power IE only (with target level) */ + GSM_PWR_CTRL_MODE_STATIC, + /* Send MS/BS Power [Parameters] IEs (dynamic mode) */ + GSM_PWR_CTRL_MODE_DYN_BTS, +}; + +/* MS/BS Power Control Parameters */ +struct gsm_power_ctrl_params { + /* Power Control direction: Uplink or Downlink */ + enum gsm_power_ctrl_dir dir; + /* Power Control mode to be used by the BTS */ + enum gsm_power_ctrl_mode mode; + + /* Power change step size (dynamic mode only) */ + 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; +}; + +extern const struct gsm_power_ctrl_params power_ctrl_params_def; + #endif /* _GSM_DATA_H */ diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 0c7fde9..d5a848d 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -349,6 +349,14 @@ bts->repeated_acch_policy.rxqual = 4; + /* MS Power Control parameters (defaults) */ + bts->ms_power_ctrl = power_ctrl_params_def; + bts->ms_power_ctrl.dir = GSM_PWR_CTRL_DIR_UL; + + /* BS Power Control parameters (defaults) */ + bts->bs_power_ctrl = power_ctrl_params_def; + bts->bs_power_ctrl.dir = GSM_PWR_CTRL_DIR_DL; + return bts; } diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 28f7c27..0b5650f 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -966,3 +966,61 @@ return GSM48_RR_CAUSE_ABNORMAL_UNSPEC; } } + +/* Default MS/BS Power Control parameters (see 3GPP TS 45.008, table A.1) */ +const struct gsm_power_ctrl_params power_ctrl_params_def = { + /* Static Power Control is the safe default */ + .mode = GSM_PWR_CTRL_MODE_STATIC, + + /* Power increasing/reducing step size */ + .inc_step_size_db = 4, /* 2, 4, or 6 dB */ + .red_step_size_db = 2, /* 2 or 4 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) */ + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ + .lower_cmp_p = 10, /* P1 as in 3GPP TS 45.008, A.3.2.1 (case a) */ + .lower_cmp_n = 12, /* N1 as in 3GPP TS 45.008, A.3.2.1 (case a) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_RXLEV_XX_P */ + .upper_cmp_p = 19, /* P2 as in 3GPP TS 45.008, A.3.2.1 (case b) */ + .upper_cmp_n = 20, /* N2 as in 3GPP TS 45.008, A.3.2.1 (case b) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, + + /* RxQual measurement parameters */ + .rxqual_meas = { + /* Thresholds for RxQual (see 3GPP TS 45.008, A.3.2.1) */ + .lower_thresh = 0, /* L_RXQUAL_XX_P (BER < 0.2%) */ + .upper_thresh = 3, /* U_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ + .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_RXLEV_XX_P */ + .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, +}; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fb8ccb997490b40a061d09c241359aaabc37c4a Gerrit-Change-Number: 21786 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 Mon Dec 21 13:35:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 13:35:00 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoding/init API to 'struct gsm_bts_model' In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21792 ) Change subject: power_control: add encoding/init API to 'struct gsm_bts_model' ...................................................................... power_control: add encoding/init API to 'struct gsm_bts_model' This change introduces two optional function pointers: - power_ctrl_enc_rsl_params() - this function will be called by the A-bis/RSL code in order to encode MS/BS Power control parameters for CHANnel ACTIVation and MS/BS POWER CONTROL messages. - power_ctrl_send_def_params() - this function will be called for each transceiver on A-bis/RSL link establishment in order to send default MS/BS Power control parameters. Change-Id: Iba3ad5d8d549a6676050272f85b21c9b4c219d21 Related: SYS#4918 --- M include/osmocom/bsc/bts.h 1 file changed, 5 insertions(+), 0 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/bsc/bts.h b/include/osmocom/bsc/bts.h index 7c988a8..7d070af 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -184,6 +184,11 @@ void (*e1line_bind_ops)(struct e1inp_line *line); + /* (Optional) function for encoding MS/BS Power Control paramaters */ + int (*power_ctrl_enc_rsl_params)(struct msgb *msg, const struct gsm_power_ctrl_params *cp); + /* (Optional) function for sending default MS/BS Power Control paramaters */ + int (*power_ctrl_send_def_params)(const struct gsm_bts_trx *trx); + void (*config_write_bts)(struct vty *vty, struct gsm_bts *bts); void (*config_write_trx)(struct vty *vty, struct gsm_bts_trx *trx); void (*config_write_ts)(struct vty *vty, struct gsm_bts_trx_ts *ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iba3ad5d8d549a6676050272f85b21c9b4c219d21 Gerrit-Change-Number: 21792 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 Mon Dec 21 13:35:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 13:35:01 +0000 Subject: Change in osmo-bsc[master]: power_control: send default parameters from bootstrap_rsl() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21788 ) Change subject: power_control: send default parameters from bootstrap_rsl() ...................................................................... power_control: send default parameters from bootstrap_rsl() Thanks to this message, there is no need to include MS/BS Power Control parameters in every RSL CHANnel ACTIvation message. Instead, we send them only once, and then send empty IEs. Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Related: SYS#4918 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 10 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index df5235e..4ab0430 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -310,6 +310,7 @@ static void bootstrap_rsl(struct gsm_bts_trx *trx) { unsigned int i; + int rc; LOG_TRX(trx, DRSL, LOGL_NOTICE, "bootstrapping RSL " "on ARFCN %u using MCC-MNC %s LAC=%u CID=%u BSIC=%u\n", @@ -340,6 +341,15 @@ rsl_nokia_si_end(trx); } + if (trx->bts->model->power_ctrl_send_def_params != NULL) { + rc = trx->bts->model->power_ctrl_send_def_params(trx); + if (rc) { + LOG_TRX(trx, DRSL, LOGL_ERROR, "Failed to send default " + "MS/BS Power control parameters (rc=%d)\n", rc); + /* TODO: should we drop RSL connection here? */ + } + } + for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { struct gsm_bts_trx_ts *ts = &trx->ts[i]; generate_ma_for_ts(ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I46ae4e6003a1839ee57f8e941a54bf479f7e532d Gerrit-Change-Number: 21788 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 Mon Dec 21 13:35:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 13:35:01 +0000 Subject: Change in osmo-bsc[master]: power_control: add encoder for ip.access nanoBTS and OsmoBTS In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21683 ) Change subject: power_control: add encoder for ip.access nanoBTS and OsmoBTS ...................................................................... power_control: add encoder for ip.access nanoBTS and OsmoBTS Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Related: SYS#4918 --- M src/osmo-bsc/bts_ipaccess_nanobts.c 1 file changed, 155 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/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index c84d750..27d8d64 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -1,6 +1,7 @@ /* ip.access nanoBTS specific code */ /* (C) 2009-2018 by Harald Welte + * (C) 2020 by sysmocom s.f.m.c. GmbH * * All Rights Reserved * @@ -52,6 +53,9 @@ static int bts_model_nanobts_start(struct gsm_network *net); static void bts_model_nanobts_e1line_bind_ops(struct e1inp_line *line); +static int power_ctrl_send_def_params(const struct gsm_bts_trx *trx); +static int power_ctrl_enc_rsl_params(struct msgb *msg, const struct gsm_power_ctrl_params *cp); + static char *get_oml_status(const struct gsm_bts *bts) { if (bts->oml_link) @@ -67,6 +71,11 @@ .oml_rcvmsg = &abis_nm_rcvmsg, .oml_status = &get_oml_status, .e1line_bind_ops = bts_model_nanobts_e1line_bind_ops, + + /* MS/BS Power control specific API */ + .power_ctrl_send_def_params = &power_ctrl_send_def_params, + .power_ctrl_enc_rsl_params = &power_ctrl_enc_rsl_params, + /* Some nanoBTS firmwares (if not all) don't support SI2ter and cause * problems on some MS if it is enabled, see OS#3063. Disable it by * default, can still be enabled through VTY cmd with same name. @@ -801,3 +810,149 @@ { e1inp_line_bind_ops(line, &ipaccess_e1inp_line_ops); } + +static void enc_meas_proc_params(struct msgb *msg, uint8_t ptype, + const struct gsm_power_ctrl_meas_params *mp) +{ + struct ipac_preproc_ave_cfg *ave_cfg; + uint8_t *ie_len; + + /* No averaging => no Measurement Averaging parameters */ + if (mp->algo == GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE) + return; + + /* (TLV) Measurement Averaging parameters for RxLev/RxQual */ + ie_len = msgb_tl_put(msg, RSL_IPAC_EIE_MEAS_AVG_CFG); + + ave_cfg = (struct ipac_preproc_ave_cfg *) msgb_put(msg, sizeof(*ave_cfg)); + ave_cfg->param_id = ptype & 0x03; + + /* H_REQAVE and H_REQT */ + ave_cfg->h_reqave = mp->h_reqave & 0x03; + ave_cfg->h_reqt = mp->h_reqt & 0x03; + + /* Averaging method and parameters */ + ave_cfg->ave_method = (mp->algo - 1) & 0x07; + switch (mp->algo) { + case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: + msgb_v_put(msg, mp->ewma.alpha); + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_WEIGHTED: + case GSM_PWR_CTRL_MEAS_AVG_ALGO_MOD_MEDIAN: + /* FIXME: unknown format */ + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED: + case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: + /* No parameters here */ + break; + } + + /* Update length part of the containing IE */ + *ie_len = msg->tail - (ie_len + 1); +} + +static void enc_power_params(struct msgb *msg, const struct gsm_power_ctrl_params *cp) +{ + struct ipac_preproc_pc_comp *thresh_comp; + struct ipac_preproc_pc_thresh *thresh; + + /* These parameters are valid for dynamic mode only */ + OSMO_ASSERT(cp->mode == GSM_PWR_CTRL_MODE_DYN_BTS); + + /* (TLV) Measurement Averaging Configure */ + enc_meas_proc_params(msg, IPAC_RXQUAL_AVE, &cp->rxqual_meas); + enc_meas_proc_params(msg, IPAC_RXLEV_AVE, &cp->rxlev_meas); + + /* (TV) Thresholds: {L,U}_RXLEV_XX_P and {L,U}_RXQUAL_XX_P */ + if (cp->dir == GSM_PWR_CTRL_DIR_UL) + msgb_v_put(msg, RSL_IPAC_EIE_MS_PWR_CTL); + else + msgb_v_put(msg, RSL_IPAC_EIE_BS_PWR_CTL); + + thresh = (struct ipac_preproc_pc_thresh *) msgb_put(msg, sizeof(*thresh)); + + /* {L,U}_RXLEV_XX_P (see 3GPP TS 45.008, A.3.2.1, a & b) */ + thresh->l_rxlev = cp->rxlev_meas.lower_thresh & 0x3f; + thresh->u_rxlev = cp->rxlev_meas.upper_thresh & 0x3f; + + /* {L,U}_RXQUAL_XX_P (see 3GPP TS 45.008, A.3.2.1, c & d) */ + thresh->l_rxqual = cp->rxqual_meas.lower_thresh & 0x07; + thresh->u_rxqual = cp->rxqual_meas.upper_thresh & 0x07; + + /* (TV) PC Threshold Comparators */ + msgb_v_put(msg, RSL_IPAC_EIE_PC_THRESH_COMP); + + thresh_comp = (struct ipac_preproc_pc_comp *) msgb_put(msg, sizeof(*thresh_comp)); + + /* RxLev: P1, N1, P2, N2 (see 3GPP TS 45.008, A.3.2.1, a & b) */ + thresh_comp->p1 = cp->rxlev_meas.lower_cmp_p & 0x1f; + thresh_comp->n1 = cp->rxlev_meas.lower_cmp_n & 0x1f; + thresh_comp->p2 = cp->rxlev_meas.upper_cmp_p & 0x1f; + thresh_comp->n2 = cp->rxlev_meas.upper_cmp_n & 0x1f; + + /* RxQual: P3, N3, P4, N4 (see 3GPP TS 45.008, A.3.2.1, c & d) */ + thresh_comp->p3 = cp->rxqual_meas.lower_cmp_p & 0x1f; + thresh_comp->n3 = cp->rxqual_meas.lower_cmp_n & 0x1f; + thresh_comp->p4 = cp->rxqual_meas.upper_cmp_p & 0x1f; + thresh_comp->n4 = cp->rxqual_meas.upper_cmp_n & 0x1f; + + /* FIXME: TIMER_PWR_CON_INTERVAL (P_Con_INTERVAL) */ + thresh_comp->pc_interval = 0; /* 0 .. 30 seconds */ + + /* Change step limitations: POWER_{INC,RED}_STEP_SIZE */ + thresh_comp->inc_step_size = cp->inc_step_size_db & 0x0f; + thresh_comp->red_step_size = cp->red_step_size_db & 0x0f; +} + +static void add_power_params_ie(struct msgb *msg, enum abis_rsl_ie iei, + const struct gsm_power_ctrl_params *cp) +{ + uint8_t *ie_len = msgb_tl_put(msg, iei); + uint8_t msg_len = msgb_length(msg); + + enc_power_params(msg, cp); + + *ie_len = msgb_length(msg) - msg_len; +} + +static int power_ctrl_send_def_params(const struct gsm_bts_trx *trx) +{ + const struct gsm_power_ctrl_params *ms_power_ctrl = &trx->bts->ms_power_ctrl; + const struct gsm_power_ctrl_params *bs_power_ctrl = &trx->bts->bs_power_ctrl; + struct abis_rsl_common_hdr *ch; + struct msgb *msg; + + /* Sending this message does not make sense if neither MS Power control + * nor BS Power control is to be performed by the BTS itself ('dyn-bts'). */ + if (ms_power_ctrl->mode != GSM_PWR_CTRL_MODE_DYN_BTS && + bs_power_ctrl->mode != GSM_PWR_CTRL_MODE_DYN_BTS) + return 0; + + msg = rsl_msgb_alloc(); + if (msg == NULL) + return -ENOMEM; + + ch = (struct abis_rsl_common_hdr *) msgb_put(msg, sizeof(*ch)); + ch->msg_discr = ABIS_RSL_MDISC_TRX; + ch->msg_type = RSL_MT_IPAC_MEAS_PREPROC_DFT; + + /* BS/MS Power IEs (to be re-defined in channel specific messages) */ + msgb_tv_put(msg, RSL_IE_MS_POWER, 0); /* dummy value */ + msgb_tv_put(msg, RSL_IE_BS_POWER, 0); /* dummy value */ + + /* MS/BS Power Parameters IEs */ + if (ms_power_ctrl->mode == GSM_PWR_CTRL_MODE_DYN_BTS) + add_power_params_ie(msg, RSL_IE_MS_POWER_PARAM, ms_power_ctrl); + if (bs_power_ctrl->mode == GSM_PWR_CTRL_MODE_DYN_BTS) + add_power_params_ie(msg, RSL_IE_BS_POWER_PARAM, bs_power_ctrl); + + msg->dst = trx->rsl_link; + + return abis_rsl_sendmsg(msg); +} + +static int power_ctrl_enc_rsl_params(struct msgb *msg, const struct gsm_power_ctrl_params *cp) +{ + /* We send everything in "Measurement Pre-processing Defaults" */ + return 0; +} -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3798a6a02132bafe8f1fef6e93bbb42036d76ac9 Gerrit-Change-Number: 21683 Gerrit-PatchSet: 6 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 Mon Dec 21 13:35:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 13:35:02 +0000 Subject: Change in osmo-bsc[master]: power_control: make use of MS/BS parameters in RSL messages In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21787 ) Change subject: power_control: make use of MS/BS parameters in RSL messages ...................................................................... power_control: make use of MS/BS parameters in RSL messages Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Related: SYS#4918 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 52 insertions(+), 17 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/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index a803a03..2142219 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -185,6 +185,42 @@ return ""; } +static void add_power_control_params(struct msgb *msg, enum abis_rsl_ie iei, + const struct gsm_lchan *lchan) +{ + const struct gsm_bts *bts = lchan->ts->trx->bts; + const struct gsm_power_ctrl_params *cp; + + /* Since {MS,BS}_POWER_PARAM IE content is operator dependent, it's not + * known how different BTS models will interpret an empty IE, so let's + * better skip sending it unless we know for sure what each expects. */ + if (bts->model->power_ctrl_enc_rsl_params == NULL) + return; + + if (iei == RSL_IE_MS_POWER_PARAM) + cp = &bts->ms_power_ctrl; + else + cp = &bts->bs_power_ctrl; + + /* These parameters are only valid for dynamic mode */ + if (cp->mode != GSM_PWR_CTRL_MODE_DYN_BTS) + return; + + /* Put tag first, length will be updated later */ + uint8_t *ie_len = msgb_tl_put(msg, iei); + uint8_t msg_len = msgb_length(msg); + + if (bts->model->power_ctrl_enc_rsl_params(msg, cp) != 0) { + LOGP(DRSL, LOGL_ERROR, "Failed to encode MS/BS Power Control " + "parameters, omitting this IE (tag 0x%02x)\n", iei); + msgb_get(msg, msg_len - 2); + return; + } + + /* Update length part of the containing IE */ + *ie_len = msgb_length(msg) - msg_len; +} + /* Send a BCCH_INFO message as per Chapter 8.5.1 */ int rsl_bcch_info(const struct gsm_bts_trx *trx, enum osmo_sysinfo_type si_type, const uint8_t *data, int len) { @@ -281,6 +317,9 @@ msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power); + /* BS Power Control Parameters (if supported by BTS model) */ + add_power_control_params(msg, RSL_IE_BS_POWER_PARAM, lchan); + msg->dst = lchan->ts->trx->rsl_link; return abis_rsl_sendmsg(msg); @@ -288,8 +327,6 @@ int rsl_chan_ms_power_ctrl(struct gsm_lchan *lchan) { - struct gsm_bts_trx *trx = lchan->ts->trx; - struct gsm_bts *bts = trx->bts; struct abis_rsl_dchan_hdr *dh; struct msgb *msg; uint8_t chan_nr = gsm_lchan2chan_nr(lchan); @@ -304,14 +341,11 @@ dh->chan_nr = chan_nr; msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power); - /* indicate MS power control to be performed by BTS: */ - if (bts->type == GSM_BTS_TYPE_OSMOBTS) - msgb_tl_put(msg, RSL_IE_MS_POWER_PARAM); - /* else: Since IE MS_POWER_PARAM content is operator dependent, it's not - known if non-osmocom BTS models will support an empty IE, so let's - better skip sending it unless we know for sure what each expects. */ - msg->dst = trx->rsl_link; + /* MS Power Control Parameters (if supported by BTS model) */ + add_power_control_params(msg, RSL_IE_MS_POWER_PARAM, lchan); + + msg->dst = lchan->ts->trx->rsl_link; return abis_rsl_sendmsg(msg); } @@ -562,15 +596,16 @@ break; } - msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power); - msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power); + if (bts->bs_power_ctrl.mode != GSM_PWR_CTRL_MODE_NONE) + 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); - /* indicate MS power control to be performed by BTS: */ - if (bts->type == GSM_BTS_TYPE_OSMOBTS) - msgb_tl_put(msg, RSL_IE_MS_POWER_PARAM); - /* else: Since IE MS_POWER_PARAM content is operator dependent, it's not - known if non-osmocom BTS models will support an empty IE, so let's - better skip sending it unless we know for sure what each expects. */ + + /* BS/MS Power Control Parameters (if supported by BTS model) */ + 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); rep_acch_cap_for_bts(lchan, msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I586b1c9e16390757b015c2871a36abc3975e0fc4 Gerrit-Change-Number: 21787 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 gerrit-no-reply at lists.osmocom.org Mon Dec 21 14:33:45 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 14:33:45 +0000 Subject: Change in libosmocore[master]: fsm: Add osmo_fsm_inst_broadcast_children() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21815 ) Change subject: fsm: Add osmo_fsm_inst_broadcast_children() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 Gerrit-Change-Number: 21815 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 14:33: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 Dec 21 14:45:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 14:45:54 +0000 Subject: Change in libosmocore[master]: fsm: Add osmo_fsm_inst_broadcast_children() In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21815 to look at the new patch set (#3). Change subject: fsm: Add osmo_fsm_inst_broadcast_children() ...................................................................... fsm: Add osmo_fsm_inst_broadcast_children() This is a helper function to broadcast an event to all of the siblings of a specified FSM instance. Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 --- M include/osmocom/core/fsm.h M src/fsm.c 2 files changed, 31 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/21815/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 Gerrit-Change-Number: 21815 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder 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 Mon Dec 21 14:45:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 14:45:55 +0000 Subject: Change in libosmocore[master]: vty: Fix left shifting out of range on signed variable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21820 ) Change subject: vty: Fix left shifting out of range on signed variable ...................................................................... vty: Fix left shifting out of range on signed variable Fixes following ASan runtime errors while running vty tests: command.c:730:27: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' Somehow we didn't catch this one in Ie11ff18d6fd9f6e1e91a51b6156fb6b0b7d3a9a8 Change-Id: I601caf7daa947f3cf391316f1011007ef9188c90 --- M src/vty/command.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/20/21820/1 diff --git a/src/vty/command.c b/src/vty/command.c index b38be34..4825109 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -727,7 +727,7 @@ char flag; /* Skip attribute if *not* set */ - if (~cmd->usrattr & (1 << i)) + if (~cmd->usrattr & ((unsigned)1 << i)) continue; xml_att_desc = xml_escape(desc[i]); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I601caf7daa947f3cf391316f1011007ef9188c90 Gerrit-Change-Number: 21820 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 Dec 21 14:47:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 14:47:06 +0000 Subject: Change in libosmocore[master]: fsm: Add osmo_fsm_inst_broadcast_children() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21815 ) Change subject: fsm: Add osmo_fsm_inst_broadcast_children() ...................................................................... Patch Set 3: > I didn't even know FSMS could have more than one child! This feature is definitely already use for years. WE just didn't have a broadcast helper. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 Gerrit-Change-Number: 21815 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 14:47:06 +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 Dec 21 14:47:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 14:47:08 +0000 Subject: Change in libosmocore[master]: fsm: Add osmo_fsm_inst_broadcast_children() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21815 ) Change subject: fsm: Add osmo_fsm_inst_broadcast_children() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 Gerrit-Change-Number: 21815 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 14:47: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 Dec 21 14:47:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 14:47:13 +0000 Subject: Change in libosmocore[master]: fsm: Add osmo_fsm_inst_broadcast_children() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21815 ) Change subject: fsm: Add osmo_fsm_inst_broadcast_children() ...................................................................... fsm: Add osmo_fsm_inst_broadcast_children() This is a helper function to broadcast an event to all of the siblings of a specified FSM instance. Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 --- M include/osmocom/core/fsm.h M src/fsm.c 2 files changed, 31 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index 7b262c7..77ebe7c 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -326,4 +326,15 @@ void *data, const char *file, int line); +/*! dispatch an event to all children of an osmocom finite state machine instance + * + * This is a macro that calls _osmo_fsm_inst_broadcast_children() with the given + * parameters as well as the caller's source file and line number for logging + * purposes. See there for documentation. + */ +#define osmo_fsm_inst_broadcast_children(fi, cause, data) \ + _osmo_fsm_inst_broadcast_children(fi, cause, data, __FILE__, __LINE__) +void _osmo_fsm_inst_broadcast_children(struct osmo_fsm_inst *fi, uint32_t event, + void *data, const char *file, int line); + /*! @} */ diff --git a/src/fsm.c b/src/fsm.c index 1e8909e..f1dbb41 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -1016,6 +1016,26 @@ } } +/*! Broadcast an event to all the FSMs children. + * + * Iterate over all children and send them the specified event. + * + * \param[in] fi FSM instance of the parent + * \param[in] event Event to send to children of FSM instance + * \param[in] data Data to pass along with the event + * \param[in] file Calling source file (from osmo_fsm_inst_dispatch macro) + * \param[in] line Calling source line (from osmo_fsm_inst_dispatch macro) + */ +void _osmo_fsm_inst_broadcast_children(struct osmo_fsm_inst *fi, + uint32_t event, void *data, + const char *file, int line) +{ + 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); + } +} + const struct value_string osmo_fsm_term_cause_names[] = { OSMO_VALUE_STRING(OSMO_FSM_TERM_PARENT), OSMO_VALUE_STRING(OSMO_FSM_TERM_REQUEST), -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2ce398741a8672d7b7c4058d056f46e2fe7353c1 Gerrit-Change-Number: 21815 Gerrit-PatchSet: 3 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 Dec 21 14:57:30 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 14:57:30 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: add new vty2 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/+/21487 to look at the new patch set (#18). Change subject: WIP: gprs_ns2: add new vty2 ...................................................................... WIP: gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,673 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/18 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 18 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 21 14:57:31 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 14:57:31 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: correct log message when no nsvcs available References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21821 ) Change subject: gprs_ns2: sns: correct log message when no nsvcs available ...................................................................... gprs_ns2: sns: correct log message when no nsvcs available The log message should only shown if a reselection will be triggered. Change-Id: I96b280a927aba6ac09ce88aedfcf469243c4dffe --- M src/gb/gprs_ns2_sns.c 1 file changed, 6 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/21821/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 9b5021a..2a1266c 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -250,7 +250,6 @@ gss->sns_nsvc = tmp; } } else { - LOGPFSML(fi, LOGL_ERROR, "NSE %d: no remaining NSVC, resetting SNS FSM\n", nse->nsei); gss->sns_nsvc = NULL; osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_NO_NSVC, NULL); } @@ -1337,8 +1336,12 @@ /* reset when receiving GPRS_SNS_EV_NO_NSVC */ switch (event) { case GPRS_SNS_EV_NO_NSVC: - if (!gss->reselection_running) - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + /* ignore reselection running */ + if (gss->reselection_running) + break; + + LOGPFSML(fi, LOGL_ERROR, "NSE %d: no remaining NSVC, resetting SNS FSM\n", nse->nsei); + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); break; case GPRS_SNS_EV_SELECT_ENDPOINT: /* tear down previous state -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I96b280a927aba6ac09ce88aedfcf469243c4dffe Gerrit-Change-Number: 21821 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 Dec 21 14:57:32 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 14:57:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send doublicated packets on retries References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21822 ) Change subject: gprs_ns2: sns: don't send doublicated packets on retries ...................................................................... gprs_ns2: sns: don't send doublicated packets on retries When all retries exhausted it should change the state and not send out a packet Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e --- M src/gb/gprs_ns2_sns.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/21822/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 2a1266c..88eab6d 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1315,14 +1315,14 @@ case 1: if (gss->N >= nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES]) osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); - - osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); + else + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); break; case 2: if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); - - osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); + else + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); break; } return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 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 Dec 21 14:57:32 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 14:57:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: add log message when size/config retries exhausted References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21823 ) Change subject: gprs_ns2: sns: add log message when size/config retries exhausted ...................................................................... gprs_ns2: sns: add log message when size/config retries exhausted Change-Id: I5f7c04b364807418f5ba22132fc889b46d66aed0 --- M src/gb/gprs_ns2_sns.c 1 file changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/21823/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 88eab6d..c9346e8 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1313,16 +1313,20 @@ gss->N++; switch (fi->T) { case 1: - if (gss->N >= nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES]) + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES]) { + LOGPFSML(fi, LOGL_ERROR, "NSE %d: Size retries failed. Selecting next IP-SNS endpoint.\n", nse->nsei); osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); - else + } else { osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); + } break; case 2: - if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) { + LOGPFSML(fi, LOGL_ERROR, "NSE %d: Config retries failed. Selecting next IP-SNS endpoint.\n", nse->nsei); osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); - else + } else { osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); + } break; } return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5f7c04b364807418f5ba22132fc889b46d66aed0 Gerrit-Change-Number: 21823 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 Dec 21 14:57:32 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 14:57:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21824 ) Change subject: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED ...................................................................... gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED IP-SNS NSVC are unconfigured and not started when the IP-SNS is doing the SNS configuration. If those NSVC would be started it would result in unsolicitated NS-Alive PDUs. Change-Id: Ifec7288dbe71f10109e8b5c3849bf8f23ac7b557 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/21824/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 0f6eeab..d5f134e 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -566,10 +566,12 @@ msgb_free(msg); break; case GPRS_NS2_EV_FORCE_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); - return; + 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); + return; + } break; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifec7288dbe71f10109e8b5c3849bf8f23ac7b557 Gerrit-Change-Number: 21824 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 Dec 21 14:57:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 21 Dec 2020 14:57:35 +0000 Subject: Change in libosmocore[master]: vty: Fix left shifting out of range on signed variable In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21820 ) Change subject: vty: Fix left shifting out of range on signed variable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I601caf7daa947f3cf391316f1011007ef9188c90 Gerrit-Change-Number: 21820 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 21 Dec 2020 14:57: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 Dec 21 15:28:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 15:28:18 +0000 Subject: Change in libosmocore[master]: vty: Fix left shifting out of range on signed variable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21820 ) Change subject: vty: Fix left shifting out of range on signed variable ...................................................................... vty: Fix left shifting out of range on signed variable Fixes following ASan runtime errors while running vty tests: command.c:730:27: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' Somehow we didn't catch this one in Ie11ff18d6fd9f6e1e91a51b6156fb6b0b7d3a9a8 Change-Id: I601caf7daa947f3cf391316f1011007ef9188c90 --- M src/vty/command.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/vty/command.c b/src/vty/command.c index b38be34..4825109 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -727,7 +727,7 @@ char flag; /* Skip attribute if *not* set */ - if (~cmd->usrattr & (1 << i)) + if (~cmd->usrattr & ((unsigned)1 << i)) continue; xml_att_desc = xml_escape(desc[i]); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I601caf7daa947f3cf391316f1011007ef9188c90 Gerrit-Change-Number: 21820 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 Mon Dec 21 16:00:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 16:00:37 +0000 Subject: Change in osmo-bsc[master]: Add a bts_model->bts_init() and trx_init() call-back function References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21825 ) Change subject: Add a bts_model->bts_init() and trx_init() call-back function ...................................................................... Add a bts_model->bts_init() and trx_init() call-back function This allows a given BTS model driver to initialize data structures specific cor this BTS instance (or a TRX for this BTS instance). Change-Id: Icbad9cdc12221c9ad997267d77e5414edcbac538 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bts.c M src/osmo-bsc/bts_trx.c 3 files changed, 28 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/21825/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 7d070af..aef0e03 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -178,7 +178,15 @@ const char *name; bool started; + /* start the model itself */ int (*start)(struct gsm_network *net); + + /* initialize a single BTS for this model */ + int (*bts_init)(struct gsm_bts *bts); + + /* initialize a single TRX for this model */ + int (*trx_init)(struct gsm_bts_trx *trx); + int (*oml_rcvmsg)(struct msgb *msg); char * (*oml_status)(const struct gsm_bts *bts); diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index d5a848d..730d29c 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -503,6 +503,19 @@ model->started = true; } + if (model->bts_init) { + int rc = model->bts_init(bts); + if (rc < 0) + return rc; + } + + /* handle those TRX which are already allocated at the time we set the type */ + if (model->trx_init) { + struct gsm_bts_trx *trx; + llist_for_each_entry(trx, &bts->trx_list, list) + model->trx_init(trx); + } + switch (bts->type) { case GSM_BTS_TYPE_NANOBTS: case GSM_BTS_TYPE_OSMOBTS: diff --git a/src/osmo-bsc/bts_trx.c b/src/osmo-bsc/bts_trx.c index 0e52238..6d98929 100644 --- a/src/osmo-bsc/bts_trx.c +++ b/src/osmo-bsc/bts_trx.c @@ -120,6 +120,13 @@ if (trx->nr != 0) trx->nominal_power = bts->c0->nominal_power; + if (bts->model && bts->model->trx_init) { + if (bts->model->trx_init(trx) < 0) { + talloc_free(trx); + return NULL; + } + } + llist_add_tail(&trx->list, &bts->trx_list); return trx; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icbad9cdc12221c9ad997267d77e5414edcbac538 Gerrit-Change-Number: 21825 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 Dec 21 16:00:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 16:00:38 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: make om2k_mo_name() an exported function References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21826 ) Change subject: abis_om2000: make om2k_mo_name() an exported function ...................................................................... abis_om2000: make om2k_mo_name() an exported function Change-Id: Idb05bcad8059ab2b2be6c7057495d0279a4b62c7 --- M include/osmocom/bsc/abis_om2000.h M src/osmo-bsc/abis_om2000.c 2 files changed, 22 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/26/21826/1 diff --git a/include/osmocom/bsc/abis_om2000.h b/include/osmocom/bsc/abis_om2000.h index 0d48c0c..58c07c4 100644 --- a/include/osmocom/bsc/abis_om2000.h +++ b/include/osmocom/bsc/abis_om2000.h @@ -130,4 +130,6 @@ struct vty; void abis_om2k_config_write_bts(struct vty *vty, struct gsm_bts *bts); +const char *abis_om2k_mo_name(const struct abis_om2k_mo *mo); + #endif /* OPENBCS_ABIS_OM2K_H */ diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index a1eed5b..151ecdf 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -849,7 +849,7 @@ return abis_om2k_msg_tlv_parse(&odm->tp, o2h); } -static char *om2k_mo_name(const struct abis_om2k_mo *mo) +const char *abis_om2k_mo_name(const struct abis_om2k_mo *mo) { static char mo_buf[64]; @@ -1042,7 +1042,7 @@ trx = gsm_bts_trx_num(bts, o2h->mo.inst); if (!trx) { LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to " - "non-existing TRX\n", om2k_mo_name(&o2h->mo)); + "non-existing TRX\n", abis_om2k_mo_name(&o2h->mo)); return -ENODEV; } msg->dst = trx->oml_link; @@ -1052,7 +1052,7 @@ trx = gsm_bts_trx_num(bts, o2h->mo.assoc_so); if (!trx) { LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to " - "non-existing TRX\n", om2k_mo_name(&o2h->mo)); + "non-existing TRX\n", abis_om2k_mo_name(&o2h->mo)); return -ENODEV; } msg->dst = trx->oml_link; @@ -1111,7 +1111,7 @@ o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); fill_om2k_hdr(o2k, mo, msg_type); - DEBUGP(DNM, "Tx MO=%s %s\n", om2k_mo_name(mo), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), get_value_string(om2k_msgcode_vals, msg_type)); return abis_om2k_sendmsg(bts, msg); @@ -1168,7 +1168,7 @@ msgb_tv_put(msg, OM2K_DEI_OP_INFO, operational); - DEBUGP(DNM, "Tx MO=%s %s\n", om2k_mo_name(mo), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), get_value_string(om2k_msgcode_vals, OM2K_MSGT_OP_INFO)); /* we update the state here... and send the signal at ACK */ @@ -1240,7 +1240,7 @@ talloc_free(cg); DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&bts->rbs2000.is.om2k_mo.addr), + abis_om2k_mo_name(&bts->rbs2000.is.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_IS_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1290,7 +1290,7 @@ OM2K_MSGT_CON_CONF_REQ); DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&bts->rbs2000.con.om2k_mo.addr), + abis_om2k_mo_name(&bts->rbs2000.con.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_CON_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1319,7 +1319,7 @@ fill_om2k_hdr(o2k, &bts->rbs2000.mctr.om2k_mo.addr, OM2K_MSGT_MCTR_CONF_REQ); DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&bts->rbs2000.mctr.om2k_mo.addr), + abis_om2k_mo_name(&bts->rbs2000.mctr.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_MCTR_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1409,7 +1409,7 @@ sizeof(fs_offset_undef), fs_offset_undef); DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&bts->rbs2000.tf.om2k_mo.addr), + abis_om2k_mo_name(&bts->rbs2000.tf.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_TF_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1606,7 +1606,7 @@ } DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&mo), + abis_om2k_mo_name(&mo), get_value_string(om2k_msgcode_vals, OM2K_MSGT_TS_CONF_REQ)); return abis_om2k_sendmsg(ts->trx->bts, msg); @@ -2598,7 +2598,7 @@ msgb_tlv_put(msg, OM2K_DEI_NEGOT_REC2, len, data); - DEBUGP(DNM, "Tx MO=%s %s\n", om2k_mo_name(mo), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), get_value_string(om2k_msgcode_vals, OM2K_MSGT_NEGOT_REQ_ACK)); return abis_om2k_sendmsg(bts, msg); @@ -2720,7 +2720,7 @@ uint16_t msg_type = ntohs(o2h->msg_type); struct tlv_parsed tp; - LOGP(DNM, LOGL_ERROR, "Rx MO=%s %s", om2k_mo_name(&o2h->mo), + LOGP(DNM, LOGL_ERROR, "Rx MO=%s %s", abis_om2k_mo_name(&o2h->mo), get_value_string(om2k_msgcode_vals, msg_type)); abis_om2k_msg_tlv_parse(&tp, o2h); @@ -2746,7 +2746,7 @@ mo_state = *TLVP_VAL(&odm->tp, OM2K_DEI_MO_STATE); LOGP(DNM, LOGL_DEBUG, "Rx MO=%s %s, MO State: %s\n", - om2k_mo_name(&odm->o2h.mo), + abis_om2k_mo_name(&odm->o2h.mo), get_value_string(om2k_msgcode_vals, odm->msg_type), get_value_string(om2k_mostate_vals, mo_state)); @@ -2756,7 +2756,7 @@ && mo_state != OM2K_MO_S_ENABLED) { LOGP(DNM, LOGL_ERROR, "Rx MO=%s %s Failed to enable MO State!\n", - om2k_mo_name(&odm->o2h.mo), + abis_om2k_mo_name(&odm->o2h.mo), get_value_string(om2k_msgcode_vals, odm->msg_type)); } @@ -2797,7 +2797,7 @@ } sprintf(string + strlen(string), ")\n"); - DEBUGP(DNM, "Rx MO=%s %s", om2k_mo_name(mo), string); + DEBUGP(DNM, "Rx MO=%s %s", abis_om2k_mo_name(mo), string); return true; } @@ -2828,7 +2828,7 @@ src_len--; if (msg_code != OM2K_MSGT_FAULT_REP) { LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault report: invalid message code!\n", - om2k_mo_name(mo)); + abis_om2k_mo_name(mo)); return; } @@ -2844,7 +2844,7 @@ if (tlv_count >= 11) { LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault Report: too many tlv elements!\n", - om2k_mo_name(mo)); + abis_om2k_mo_name(mo)); return; } @@ -2856,7 +2856,7 @@ else { LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault Report: invalid tlv element!\n", - om2k_mo_name(mo)); + abis_om2k_mo_name(mo)); return; } @@ -2884,7 +2884,7 @@ if (!faults_present) { DEBUGP(DNM, "Rx MO=%s Fault Report: All faults ceased!\n", - om2k_mo_name(mo)); + abis_om2k_mo_name(mo)); } } @@ -2920,7 +2920,7 @@ return -EINVAL; } - DEBUGP(DNM, "Rx MO=%s %s (%s)\n", om2k_mo_name(&o2h->mo), + DEBUGP(DNM, "Rx MO=%s %s (%s)\n", abis_om2k_mo_name(&o2h->mo), get_value_string(om2k_msgcode_vals, msg_type), osmo_hexdump(msg->l2h, msgb_l2len(msg))); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb05bcad8059ab2b2be6c7057495d0279a4b62c7 Gerrit-Change-Number: 21826 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 Dec 21 16:00:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 16:00:38 +0000 Subject: Change in osmo-bsc[master]: [cosmetic] abis_om2000: Re-format to use longer lines References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21827 ) Change subject: [cosmetic] abis_om2000: Re-format to use longer lines ...................................................................... [cosmetic] abis_om2000: Re-format to use longer lines For several years now we are using line lengths longer than 80chars, let's re-format this code more in-line with our new style. Change-Id: I8143280358c0e23ca7e32b882e952eac991e105b --- M src/osmo-bsc/abis_om2000.c 1 file changed, 97 insertions(+), 188 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/27/21827/1 diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index 151ecdf..8c2d859 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -861,8 +861,7 @@ } /* resolve the gsm_nm_state data structure for a given MO */ -static struct gsm_nm_state * -mo2nm_state(struct gsm_bts *bts, const struct abis_om2k_mo *mo) +static struct gsm_nm_state *mo2nm_state(struct gsm_bts *bts, const struct abis_om2k_mo *mo) { struct gsm_bts_trx *trx; struct gsm_nm_state *nm_state = NULL; @@ -945,8 +944,7 @@ return NULL; } -static void update_mo_state(struct gsm_bts *bts, struct abis_om2k_mo *mo, - uint8_t mo_state) +static void update_mo_state(struct gsm_bts *bts, struct abis_om2k_mo *mo, uint8_t mo_state) { struct gsm_nm_state *nm_state = mo2nm_state(bts, mo); struct gsm_nm_state new_state; @@ -998,8 +996,7 @@ nm_state->availability = new_state.availability; } -static void update_op_state(struct gsm_bts *bts, const struct abis_om2k_mo *mo, - uint8_t op_state) +static void update_op_state(struct gsm_bts *bts, const struct abis_om2k_mo *mo, uint8_t op_state) { struct gsm_nm_state *nm_state = mo2nm_state(bts, mo); struct gsm_nm_state new_state; @@ -1041,8 +1038,8 @@ /* Route through per-TRX OML Link to the appropriate TRX */ trx = gsm_bts_trx_num(bts, o2h->mo.inst); if (!trx) { - LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to " - "non-existing TRX\n", abis_om2k_mo_name(&o2h->mo)); + LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to non-existing TRX\n", + abis_om2k_mo_name(&o2h->mo)); return -ENODEV; } msg->dst = trx->oml_link; @@ -1051,8 +1048,8 @@ /* Route through per-TRX OML Link to the appropriate TRX */ trx = gsm_bts_trx_num(bts, o2h->mo.assoc_so); if (!trx) { - LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to " - "non-existing TRX\n", abis_om2k_mo_name(&o2h->mo)); + LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to non-existing TRX\n", + abis_om2k_mo_name(&o2h->mo)); return -ENODEV; } msg->dst = trx->oml_link; @@ -1066,8 +1063,7 @@ return _abis_nm_sendmsg(msg); } -static void fill_om2k_hdr(struct abis_om2k_hdr *o2h, const struct abis_om2k_mo *mo, - uint16_t msg_type) +static void fill_om2k_hdr(struct abis_om2k_hdr *o2h, const struct abis_om2k_mo *mo, uint16_t msg_type) { o2h->om.mdisc = ABIS_OM_MDISC_FOM; o2h->om.placement = ABIS_OM_PLACEMENT_ONLY; @@ -1085,8 +1081,7 @@ struct tm *tm; o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.cf.om2k_mo.addr, - OM2K_MSGT_CAL_TIME_RESP); + fill_om2k_hdr(o2k, &bts->rbs2000.cf.om2k_mo.addr, OM2K_MSGT_CAL_TIME_RESP); tm_t = time(NULL); tm = localtime(&tm_t); @@ -1102,8 +1097,7 @@ return abis_om2k_sendmsg(bts, msg); } -static int abis_om2k_tx_simple(struct gsm_bts *bts, const struct abis_om2k_mo *mo, - uint16_t msg_type) +static int abis_om2k_tx_simple(struct gsm_bts *bts, const struct abis_om2k_mo *mo, uint16_t msg_type) { struct msgb *msg = om2k_msgb_alloc(); struct abis_om2k_hdr *o2k; @@ -1111,8 +1105,7 @@ o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); fill_om2k_hdr(o2k, mo, msg_type); - DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), - get_value_string(om2k_msgcode_vals, msg_type)); + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), get_value_string(om2k_msgcode_vals, msg_type)); return abis_om2k_sendmsg(bts, msg); } @@ -1157,8 +1150,7 @@ return abis_om2k_tx_simple(bts, mo, OM2K_MSGT_DISABLE_REQ); } -int abis_om2k_tx_op_info(struct gsm_bts *bts, const struct abis_om2k_mo *mo, - uint8_t operational) +int abis_om2k_tx_op_info(struct gsm_bts *bts, const struct abis_om2k_mo *mo, uint8_t operational) { struct msgb *msg = om2k_msgb_alloc(); struct abis_om2k_hdr *o2k; @@ -1228,19 +1220,16 @@ om2k_fill_is_conn_grp(&cg[i++], grp->icp1, grp->icp2, grp->ci); o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.is.om2k_mo.addr, - OM2K_MSGT_IS_CONF_REQ); + fill_om2k_hdr(o2k, &bts->rbs2000.is.om2k_mo.addr, OM2K_MSGT_IS_CONF_REQ); msgb_tv_put(msg, OM2K_DEI_LIST_NR, 1); msgb_tv_put(msg, OM2K_DEI_END_LIST_NR, 1); - msgb_tlv_put(msg, OM2K_DEI_IS_CONN_LIST, - num_grps * sizeof(*cg), (uint8_t *)cg); + msgb_tlv_put(msg, OM2K_DEI_IS_CONN_LIST, num_grps * sizeof(*cg), (uint8_t *)cg); talloc_free(cg); - DEBUGP(DNM, "Tx MO=%s %s\n", - abis_om2k_mo_name(&bts->rbs2000.is.om2k_mo.addr), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(&bts->rbs2000.is.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_IS_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1286,11 +1275,9 @@ /* pre-pend the OM2K header */ o2k = (struct abis_om2k_hdr *) msgb_push(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.con.om2k_mo.addr, - OM2K_MSGT_CON_CONF_REQ); + fill_om2k_hdr(o2k, &bts->rbs2000.con.om2k_mo.addr, OM2K_MSGT_CON_CONF_REQ); - DEBUGP(DNM, "Tx MO=%s %s\n", - abis_om2k_mo_name(&bts->rbs2000.con.om2k_mo.addr), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(&bts->rbs2000.con.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_CON_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1316,17 +1303,14 @@ /* pre-pend the OM2K header */ o2k = (struct abis_om2k_hdr *) msgb_push(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.mctr.om2k_mo.addr, - OM2K_MSGT_MCTR_CONF_REQ); - DEBUGP(DNM, "Tx MO=%s %s\n", - abis_om2k_mo_name(&bts->rbs2000.mctr.om2k_mo.addr), + fill_om2k_hdr(o2k, &bts->rbs2000.mctr.om2k_mo.addr, OM2K_MSGT_MCTR_CONF_REQ); + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(&bts->rbs2000.mctr.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_MCTR_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); } -static void om2k_trx_to_mo(struct abis_om2k_mo *mo, - const struct gsm_bts_trx *trx, +static void om2k_trx_to_mo(struct abis_om2k_mo *mo, const struct gsm_bts_trx *trx, enum abis_om2k_mo_cls cls) { mo->class = cls; @@ -1335,8 +1319,7 @@ mo->assoc_so = 255; } -static void om2k_ts_to_mo(struct abis_om2k_mo *mo, - const struct gsm_bts_trx_ts *ts) +static void om2k_ts_to_mo(struct abis_om2k_mo *mo, const struct gsm_bts_trx_ts *ts) { mo->class = OM2K_MO_CLS_TS; mo->bts = 0; @@ -1400,16 +1383,13 @@ struct abis_om2k_hdr *o2k; o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.tf.om2k_mo.addr, - OM2K_MSGT_TF_CONF_REQ); + fill_om2k_hdr(o2k, &bts->rbs2000.tf.om2k_mo.addr, OM2K_MSGT_TF_CONF_REQ); msgb_tv_put(msg, OM2K_DEI_TF_MODE, OM2K_TF_MODE_STANDALONE); msgb_tv_put(msg, OM2K_DEI_TF_SYNC_SRC, 0x00); - msgb_tv_fixed_put(msg, OM2K_DEI_FS_OFFSET, - sizeof(fs_offset_undef), fs_offset_undef); + msgb_tv_fixed_put(msg, OM2K_DEI_FS_OFFSET, sizeof(fs_offset_undef), fs_offset_undef); - DEBUGP(DNM, "Tx MO=%s %s\n", - abis_om2k_mo_name(&bts->rbs2000.tf.om2k_mo.addr), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(&bts->rbs2000.tf.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_TF_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1438,10 +1418,8 @@ static uint8_t ts2comb(struct gsm_bts_trx_ts *ts) { if (ts->pchan_on_init == GSM_PCHAN_TCH_F_PDCH) { - LOGP(DNM, LOGL_ERROR, "%s pchan %s not intended for use" - " with OM2000, use %s instead\n", - gsm_ts_and_pchan_name(ts), - gsm_pchan_name(GSM_PCHAN_TCH_F_PDCH), + LOGP(DNM, LOGL_ERROR, "%s pchan %s not intended for use with OM2000, use %s instead\n", + gsm_ts_and_pchan_name(ts), gsm_pchan_name(GSM_PCHAN_TCH_F_PDCH), gsm_pchan_name(GSM_PCHAN_TCH_F_TCH_H_PDCH)); /* If we allowed initialization of TCH/F_PDCH, it would fail * when we try to send the ip.access specific RSL PDCH Act @@ -1676,20 +1654,17 @@ switch (omfp->mo->addr.class) { case OM2K_MO_CLS_CF: /* no Connect required, is always connected */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_start_req(omfp->trx->bts, &omfp->mo->addr); break; case OM2K_MO_CLS_TRXC: /* no Connect required, start with Reset */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_RES_COMPL, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_RES_COMPL, OM2K_TIMEOUT, 0); abis_om2k_tx_reset_cmd(omfp->trx->bts, &omfp->mo->addr); break; default: /* start with Connect */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_CONN_COMPL, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_CONN_COMPL, OM2K_TIMEOUT, 0); abis_om2k_tx_connect_cmd(omfp->trx->bts, &omfp->mo->addr); break; } @@ -1703,14 +1678,12 @@ #if 0 case OM2K_MO_CLS_TF: /* skip the reset, hope that helps */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_start_req(omfp->trx->bts, &omfp->mo->addr); break; #endif default: - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_RES_COMPL, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_RES_COMPL, OM2K_TIMEOUT, 0); abis_om2k_tx_reset_cmd(omfp->trx->bts, &omfp->mo->addr); break; } @@ -1720,8 +1693,7 @@ { struct om2k_mo_fsm_priv *omfp = fi->priv; - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_start_req(omfp->trx->bts, &omfp->mo->addr); } @@ -1731,8 +1703,7 @@ switch (omd->msg_type) { case OM2K_MSGT_START_REQ_ACK: - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_RES, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_RES, OM2K_TIMEOUT, 0); break; case OM2K_MSGT_START_REQ_REJ: osmo_fsm_inst_state_chg(fi, OM2K_ST_ERROR, 0, 0); @@ -1749,21 +1720,18 @@ case OM2K_MO_CLS_CF: case OM2K_MO_CLS_TRXC: /* Transition directly to Operational Info */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_OPINFO_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_OPINFO_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_op_info(omfp->trx->bts, &omfp->mo->addr, 1); return; case OM2K_MO_CLS_DP: /* Transition directory to WAIT_ENABLE_ACCEPT */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_enable_req(omfp->trx->bts, &omfp->mo->addr); return; #if 0 case OM2K_MO_CLS_TF: /* skip the config, hope that helps speeding things up */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_enable_req(omfp->trx->bts, &omfp->mo->addr); return; #endif @@ -1826,8 +1794,7 @@ return; } - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_enable_req(omfp->trx->bts, &omfp->mo->addr); } @@ -1841,11 +1808,9 @@ osmo_fsm_inst_state_chg(fi, OM2K_ST_ERROR, 0, 0); break; case OM2K_MSGT_ENABLE_REQ_ACK: - if (omfp->mo->addr.class == OM2K_MO_CLS_IS && - omfp->trx->bts->rbs2000.use_superchannel) + if (omfp->mo->addr.class == OM2K_MO_CLS_IS && omfp->trx->bts->rbs2000.use_superchannel) e1inp_ericsson_set_altc(omfp->trx->bts->oml_link->ts->line, 1); - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_RES, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_RES, OM2K_TIMEOUT, 0); } } @@ -1855,8 +1820,7 @@ //struct om2k_decoded_msg *omd = data; /* TODO: check if state is actually enabled now? */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_OPINFO_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_OPINFO_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_op_info(omfp->trx->bts, &omfp->mo->addr, 1); } @@ -2029,25 +1993,21 @@ switch (odm->msg_type) { case OM2K_MSGT_CONNECT_COMPL: case OM2K_MSGT_CONNECT_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_CONN_COMPL, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_CONN_COMPL, odm); break; case OM2K_MSGT_RESET_COMPL: case OM2K_MSGT_RESET_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_RESET_COMPL, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_RESET_COMPL, odm); break; case OM2K_MSGT_START_REQ_ACK: case OM2K_MSGT_START_REQ_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_START_REQ_ACCEPT, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_START_REQ_ACCEPT, odm); break; case OM2K_MSGT_START_RES: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_START_RES, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_START_RES, odm); break; case OM2K_MSGT_CON_CONF_REQ_ACK: @@ -2057,8 +2017,7 @@ case OM2K_MSGT_TF_CONF_REQ_ACK: case OM2K_MSGT_TS_CONF_REQ_ACK: case OM2K_MSGT_TX_CONF_REQ_ACK: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_CFG_REQ_ACCEPT, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_CFG_REQ_ACCEPT, odm); break; case OM2K_MSGT_CON_CONF_RES: @@ -2068,24 +2027,20 @@ case OM2K_MSGT_TF_CONF_RES: case OM2K_MSGT_TS_CONF_RES: case OM2K_MSGT_TX_CONF_RES: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_CFG_RES, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_CFG_RES, odm); break; case OM2K_MSGT_ENABLE_REQ_ACK: case OM2K_MSGT_ENABLE_REQ_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_ENA_REQ_ACCEPT, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_ENA_REQ_ACCEPT, odm); break; case OM2K_MSGT_ENABLE_RES: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_ENA_RES, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_ENA_RES, odm); break; case OM2K_MSGT_OP_INFO_ACK: case OM2K_MSGT_OP_INFO_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_OPINFO_ACC, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_OPINFO_ACC, odm); break; default: return -1; @@ -2138,10 +2093,8 @@ struct om2k_trx_fsm_priv *otfp = fi->priv; /* 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); + 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); } static void om2k_trx_s_wait_trxc(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2149,10 +2102,8 @@ struct om2k_trx_fsm_priv *otfp = fi->priv; /* 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); + 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); } static void om2k_trx_s_wait_tx(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2160,10 +2111,8 @@ struct om2k_trx_fsm_priv *otfp = fi->priv; /* 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); + 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); } static void om2k_trx_s_wait_rx(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2172,12 +2121,10 @@ struct gsm_bts_trx_ts *ts; /* Initialize Timeslots after TX */ - osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_WAIT_TS, - TRX_FSM_TIMEOUT, 0); + 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(fi, OM2K_TRX_EVT_TS_DONE, otfp->trx, &ts->rbs2000.om2k_mo); } static void om2k_trx_s_wait_ts(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2193,8 +2140,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(fi, OM2K_TRX_EVT_TS_DONE, otfp->trx, &ts->rbs2000.om2k_mo); } else { /* only after all 8 TS */ osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_SEND_SI, 0, 0); @@ -2364,10 +2310,8 @@ struct gsm_bts *bts = obfp->bts; 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); + 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); } static void om2k_bts_s_wait_cf(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2378,8 +2322,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(fi, OM2K_BTS_EVT_TF_DONE, bts->c0, &bts->rbs2000.tf.om2k_mo); } static void om2k_bts_s_wait_tf(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2406,10 +2349,8 @@ 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); + 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); } static void om2k_bts_s_wait_is(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2421,13 +2362,10 @@ /* 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); + 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); } else { - osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX_LAPD, - TRX_LAPD_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX_LAPD, TRX_LAPD_TIMEOUT, 0); } } @@ -2435,8 +2373,7 @@ { OSMO_ASSERT(event == OM2K_BTS_EVT_MCTR_DONE); - osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX_LAPD, - TRX_LAPD_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX_LAPD, TRX_LAPD_TIMEOUT, 0); } static void om2k_bts_s_wait_trx_lapd(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2446,8 +2383,7 @@ OSMO_ASSERT(event == OM2K_BTS_EVT_TRX_LAPD_UP); - osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX, - BTS_FSM_TIMEOUT, 0); + 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); @@ -2570,8 +2506,7 @@ snprintf(idbuf, sizeof(idbuf), "%u", bts->nr); - fi = osmo_fsm_inst_alloc(&om2k_bts_fsm, bts, NULL, - LOGL_DEBUG, idbuf); + 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); @@ -2725,13 +2660,11 @@ abis_om2k_msg_tlv_parse(&tp, o2h); if (TLVP_PRESENT(&tp, OM2K_DEI_REASON_CODE)) - LOGPC(DNM, LOGL_ERROR, ", Reason 0x%02x", - *TLVP_VAL(&tp, OM2K_DEI_REASON_CODE)); + LOGPC(DNM, LOGL_ERROR, ", Reason 0x%02x", *TLVP_VAL(&tp, OM2K_DEI_REASON_CODE)); if (TLVP_PRESENT(&tp, OM2K_DEI_RESULT_CODE)) LOGPC(DNM, LOGL_ERROR, ", Result %s", - get_value_string(om2k_result_strings, - *TLVP_VAL(&tp, OM2K_DEI_RESULT_CODE))); + get_value_string(om2k_result_strings, *TLVP_VAL(&tp, OM2K_DEI_RESULT_CODE))); LOGPC(DNM, LOGL_ERROR, "\n"); return 0; @@ -2745,8 +2678,7 @@ return -EIO; mo_state = *TLVP_VAL(&odm->tp, OM2K_DEI_MO_STATE); - LOGP(DNM, LOGL_DEBUG, "Rx MO=%s %s, MO State: %s\n", - abis_om2k_mo_name(&odm->o2h.mo), + LOGP(DNM, LOGL_DEBUG, "Rx MO=%s %s, MO State: %s\n", abis_om2k_mo_name(&odm->o2h.mo), get_value_string(om2k_msgcode_vals, odm->msg_type), get_value_string(om2k_mostate_vals, mo_state)); @@ -2754,10 +2686,8 @@ * not yield an enabled mo-state */ if (odm->msg_type == OM2K_MSGT_ENABLE_RES && mo_state != OM2K_MO_S_ENABLED) { - LOGP(DNM, LOGL_ERROR, - "Rx MO=%s %s Failed to enable MO State!\n", - abis_om2k_mo_name(&odm->o2h.mo), - get_value_string(om2k_msgcode_vals, odm->msg_type)); + LOGP(DNM, LOGL_ERROR, "Rx MO=%s %s Failed to enable MO State!\n", + abis_om2k_mo_name(&odm->o2h.mo), get_value_string(om2k_msgcode_vals, odm->msg_type)); } update_mo_state(bts, &odm->o2h.mo, mo_state); @@ -2827,8 +2757,7 @@ src++; src_len--; if (msg_code != OM2K_MSGT_FAULT_REP) { - LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault report: invalid message code!\n", - abis_om2k_mo_name(mo)); + LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault report: invalid message code!\n", abis_om2k_mo_name(mo)); return; } @@ -2842,20 +2771,17 @@ /* Bail if an the maximum number of TLV fields * have been parsed */ if (tlv_count >= 11) { - LOGP(DNM, LOGL_ERROR, - "Rx MO=%s Fault Report: too many tlv elements!\n", + LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault Report: too many tlv elements!\n", abis_om2k_mo_name(mo)); return; } /* Parse TLV field */ - rc = tlv_parse_one(&tag, &tag_len, &val, &om2k_att_tlvdef, - src + src_pos, src_len - src_pos); + rc = tlv_parse_one(&tag, &tag_len, &val, &om2k_att_tlvdef, src + src_pos, src_len - src_pos); if (rc > 0) src_pos += rc; else { - LOGP(DNM, LOGL_ERROR, - "Rx MO=%s Fault Report: invalid tlv element!\n", + LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault Report: invalid tlv element!\n", abis_om2k_mo_name(mo)); return; } @@ -2883,8 +2809,7 @@ } if (!faults_present) { - DEBUGP(DNM, "Rx MO=%s Fault Report: All faults ceased!\n", - abis_om2k_mo_name(mo)); + DEBUGP(DNM, "Rx MO=%s Fault Report: All faults ceased!\n", abis_om2k_mo_name(mo)); } } @@ -2901,28 +2826,24 @@ /* Various consistency checks */ if (oh->placement != ABIS_OM_PLACEMENT_ONLY) { - LOGP(DNM, LOGL_ERROR, "ABIS OML placement 0x%x not supported\n", - oh->placement); + LOGP(DNM, LOGL_ERROR, "ABIS OML placement 0x%x not supported\n", oh->placement); if (oh->placement != ABIS_OM_PLACEMENT_FIRST) return -EINVAL; } if (oh->sequence != 0) { - LOGP(DNM, LOGL_ERROR, "ABIS OML sequence 0x%x != 0x00\n", - oh->sequence); + LOGP(DNM, LOGL_ERROR, "ABIS OML sequence 0x%x != 0x00\n", oh->sequence); return -EINVAL; } msg->l3h = (unsigned char *)o2h + sizeof(*o2h); if (oh->mdisc != ABIS_OM_MDISC_FOM) { - LOGP(DNM, LOGL_ERROR, "unknown ABIS OM2000 message discriminator 0x%x\n", - oh->mdisc); + LOGP(DNM, LOGL_ERROR, "unknown ABIS OM2000 message discriminator 0x%x\n", oh->mdisc); return -EINVAL; } DEBUGP(DNM, "Rx MO=%s %s (%s)\n", abis_om2k_mo_name(&o2h->mo), - get_value_string(om2k_msgcode_vals, msg_type), - osmo_hexdump(msg->l2h, msgb_l2len(msg))); + get_value_string(om2k_msgcode_vals, msg_type), osmo_hexdump(msg->l2h, msgb_l2len(msg))); om2k_decode_msg(&odm, msg); @@ -3007,14 +2928,12 @@ mo = get_om2k_mo(bts, &o2h->mo); if (!mo) { LOGP(DNM, LOGL_ERROR, "Couldn't resolve MO for OM2K msg " - "%s: %s\n", get_value_string(om2k_msgcode_vals, msg_type), - msgb_hexdump(msg)); + "%s: %s\n", get_value_string(om2k_msgcode_vals, msg_type), msgb_hexdump(msg)); return 0; } if (!mo->fsm) { LOGP(DNM, LOGL_ERROR, "MO object should not generate any message. fsm == NULL " - "%s: %s\n", get_value_string(om2k_msgcode_vals, msg_type), - msgb_hexdump(msg)); + "%s: %s\n", get_value_string(om2k_msgcode_vals, msg_type), msgb_hexdump(msg)); return 0; } @@ -3025,8 +2944,7 @@ return rc; } -static void om2k_mo_init(struct om2k_mo *mo, uint8_t class, - uint8_t bts_nr, uint8_t assoc_so, uint8_t inst) +static void om2k_mo_init(struct om2k_mo *mo, uint8_t class, uint8_t bts_nr, uint8_t assoc_so, uint8_t inst) { mo->addr.class = class; mo->addr.bts = bts_nr; @@ -3042,17 +2960,13 @@ OSMO_ASSERT(bts->type == GSM_BTS_TYPE_RBS2000); - om2k_mo_init(&trx->rbs2000.trxc.om2k_mo, OM2K_MO_CLS_TRXC, - bts->nr, 255, trx->nr); - om2k_mo_init(&trx->rbs2000.tx.om2k_mo, OM2K_MO_CLS_TX, - bts->nr, 255, trx->nr); - om2k_mo_init(&trx->rbs2000.rx.om2k_mo, OM2K_MO_CLS_RX, - bts->nr, 255, trx->nr); + om2k_mo_init(&trx->rbs2000.trxc.om2k_mo, OM2K_MO_CLS_TRXC, bts->nr, 255, trx->nr); + om2k_mo_init(&trx->rbs2000.tx.om2k_mo, OM2K_MO_CLS_TX, bts->nr, 255, trx->nr); + om2k_mo_init(&trx->rbs2000.rx.om2k_mo, OM2K_MO_CLS_RX, bts->nr, 255, trx->nr); 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_init(&ts->rbs2000.om2k_mo, OM2K_MO_CLS_TS, bts->nr, trx->nr, i); OSMO_ASSERT(ts->fi); } } @@ -3062,18 +2976,13 @@ { OSMO_ASSERT(bts->type == GSM_BTS_TYPE_RBS2000); - om2k_mo_init(&bts->rbs2000.cf.om2k_mo, OM2K_MO_CLS_CF, - bts->nr, 0xFF, 0); - om2k_mo_init(&bts->rbs2000.is.om2k_mo, OM2K_MO_CLS_IS, - bts->nr, 0xFF, 0); - om2k_mo_init(&bts->rbs2000.con.om2k_mo, OM2K_MO_CLS_CON, - bts->nr, 0xFF, 0); - 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_init(&bts->rbs2000.mctr.om2k_mo, OM2K_MO_CLS_MCTR, - bts->nr, 0xFF, 0); // FIXME: There can be multiple MCTRs ... + om2k_mo_init(&bts->rbs2000.cf.om2k_mo, OM2K_MO_CLS_CF, bts->nr, 0xFF, 0); + om2k_mo_init(&bts->rbs2000.is.om2k_mo, OM2K_MO_CLS_IS, bts->nr, 0xFF, 0); + om2k_mo_init(&bts->rbs2000.con.om2k_mo, OM2K_MO_CLS_CON, bts->nr, 0xFF, 0); + 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_init(&bts->rbs2000.mctr.om2k_mo, OM2K_MO_CLS_MCTR, bts->nr, 0xFF, 0); + // FIXME: There can be multiple MCTRs ... } static __attribute__((constructor)) void abis_om2k_init(void) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8143280358c0e23ca7e32b882e952eac991e105b Gerrit-Change-Number: 21827 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 Dec 21 16:00:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 16:00:39 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Mark om2k_mo_fsm_start() as static References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21828 ) Change subject: abis_om2000: Mark om2k_mo_fsm_start() as static ...................................................................... abis_om2000: Mark om2k_mo_fsm_start() as static It's not used anywhere outside of the source file Change-Id: If9ebf07ac662607826270df0b0966c8dd5026f1c --- M src/osmo-bsc/abis_om2000.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/28/21828/1 diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index 8c2d859..13d3a33 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -1959,9 +1959,8 @@ .timer_cb = om2k_mo_timer_cb, }; -struct osmo_fsm_inst *om2k_mo_fsm_start(struct osmo_fsm_inst *parent, - uint32_t term_event, - struct gsm_bts_trx *trx, struct om2k_mo *mo) +static struct osmo_fsm_inst *om2k_mo_fsm_start(struct osmo_fsm_inst *parent, uint32_t term_event, + struct gsm_bts_trx *trx, struct om2k_mo *mo) { struct osmo_fsm_inst *fi; struct om2k_mo_fsm_priv *omfp; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If9ebf07ac662607826270df0b0966c8dd5026f1c Gerrit-Change-Number: 21828 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 Dec 21 16:00:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 16:00:39 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: keep OM2K FSMs around, don't terminate References: Message-ID: laforge has uploaded this change for review. ( 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, 232 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/29/21829/1 diff --git a/include/osmocom/bsc/abis_om2000.h b/include/osmocom/bsc/abis_om2000.h index 58c07c4..2a83ffb 100644 --- a/include/osmocom/bsc/abis_om2000.h +++ b/include/osmocom/bsc/abis_om2000.h @@ -121,9 +121,13 @@ 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); 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..96573ea 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,72 @@ .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; + trx->rbs2000.trx_fi = fi; + 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 (strcmp(osmo_fsm_inst_state_name(bts_fi), "DONE") && + strcmp(osmo_fsm_inst_state_name(bts_fi), "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 (strcmp(osmo_fsm_inst_state_name(bts_fi), "DONE") && + strcmp(osmo_fsm_inst_state_name(bts_fi), "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 +2359,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" }, @@ -2310,7 +2403,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 +2414,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 +2427,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 +2442,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 +2455,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 +2478,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 +2490,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 +2498,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 +2532,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 +2549,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 +2606,46 @@ .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; + + bts->rbs2000.bts_fi = fi; + 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 +3085,26 @@ 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); + 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 +3112,28 @@ /* 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); + 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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 21 16:00:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 16:00:40 +0000 Subject: Change in osmo-bsc[master]: om2000: Add "show bts 0 om2k-mo" command References: Message-ID: laforge has uploaded this change for review. ( 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, 68 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/30/21830/1 diff --git a/src/osmo-bsc/abis_om2000_vty.c b/src/osmo-bsc/abis_om2000_vty.c index 206fd6b..8596cf3 100644 --- a/src/osmo-bsc/abis_om2000_vty.c +++ b/src/osmo-bsc/abis_om2000_vty.c @@ -658,8 +658,76 @@ 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[20]; + 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_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_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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 21 16:53:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 16:53:41 +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 would like to merge this one today or tomorrow if possible, so I still have time to fix any eventual issue before Christmas, and so it doesn't stay here for weeks since it has high potential for merge conflicts otherwise. -- 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: Mon, 21 Dec 2020 16:53: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 Mon Dec 21 16:58:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 16:58:33 +0000 Subject: Change in libosmocore[master]: lapd_core: Don't dereference data link after sending PRIM_DL_REL References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21831 ) Change subject: lapd_core: Don't dereference data link after sending PRIM_DL_REL ...................................................................... lapd_core: Don't dereference data link after sending PRIM_DL_REL We must always send the RELEASE.{indication,confirm} last before returning from a function. We cannot rely on the datalink to still be around after the call, as the SAP user might have destroyed the data link meanwhile. This fixes a heap use-after-free (at least) with RBS2000 when the BTS is fully brought up and the OML data link is lost, see OS#1762 Change-Id: I8ccca8d5e5d07b666557afe12ab8ac4910ddfb00 Related: OS#1761 Related: OS#1762 --- M src/gsm/lapd_core.c 1 file changed, 4 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/31/21831/1 diff --git a/src/gsm/lapd_core.c b/src/gsm/lapd_core.c index ed0b320..e0c232f 100644 --- a/src/gsm/lapd_core.c +++ b/src/gsm/lapd_core.c @@ -624,8 +624,6 @@ if (dl->retrans_ctr >= dl->n200_est_rel + 1) { /* send MDL ERROR INIDCATION to L3 */ mdl_error(MDL_CAUSE_T200_EXPIRED, &dl->lctx); - /* send RELEASE INDICATION to L3 */ - send_dl_simple(PRIM_DL_REL, PRIM_OP_CONFIRM, &dl->lctx); /* flush tx and send buffers */ lapd_dl_flush_tx(dl); lapd_dl_flush_send(dl); @@ -634,6 +632,8 @@ /* NOTE: we must not change any other states or buffers * and queues, since we may reconnect after handover * failure. the buffered messages is replaced there */ + /* send RELEASE INDICATION to L3 */ + send_dl_simple(PRIM_DL_REL, PRIM_OP_CONFIRM, &dl->lctx); break; } /* retransmit DISC command */ @@ -1230,13 +1230,12 @@ || !!memcmp(dl->tx_hist[0].msg->data, msg->l3h, length)) { LOGDL(dl, LOGL_INFO, "**** UA response mismatches ****\n"); - rc = send_dl_simple(PRIM_DL_REL, - PRIM_OP_INDICATION, lctx); - msgb_free(msg); /* go to idle state */ lapd_dl_flush_tx(dl); lapd_dl_flush_send(dl); lapd_dl_newstate(dl, LAPD_STATE_IDLE); + rc = send_dl_simple(PRIM_DL_REL, PRIM_OP_INDICATION, lctx); + msgb_free(msg); return 0; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ccca8d5e5d07b666557afe12ab8ac4910ddfb00 Gerrit-Change-Number: 21831 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 Dec 21 17:27:59 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:27:59 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom/resources.conf.virtual: remove no longer existing arfcn reso... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21832 ) Change subject: sysmocom/resources.conf.virtual: remove no longer existing arfcn resources ...................................................................... sysmocom/resources.conf.virtual: remove no longer existing arfcn resources ARFCN are not resources anymore since a recent commit. Fixes: ecce402f43b708bf178d603e2bd8587e72fdb3b1 Change-Id: Icc0971b285e8db085670808b7d7bb98c38db2753 --- M sysmocom/resources.conf.virtual 1 file changed, 2 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/32/21832/1 diff --git a/sysmocom/resources.conf.virtual b/sysmocom/resources.conf.virtual index 7711c58..5ac792d 100644 --- a/sysmocom/resources.conf.virtual +++ b/sysmocom/resources.conf.virtual @@ -17,28 +17,8 @@ ipa_unit_id: 13 addr: 127.0.43.55 band: GSM-1800 - -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 + trx_list: + - arfcn: 860 modem: - imsi: "001010000000000" -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21832 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: Icc0971b285e8db085670808b7d7bb98c38db2753 Gerrit-Change-Number: 21832 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 Dec 21 17:37:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:37:32 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom: Port nitb_netreg_mass suite to osmo split network References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21833 ) Change subject: sysmocom: Port nitb_netreg_mass suite to osmo split network ...................................................................... sysmocom: Port nitb_netreg_mass suite to osmo split network Change-Id: I221df84d76f73e15eed98036b31adc8089c8dc99 --- R sysmocom/suites/netreg_mass/register_default_mass.py R sysmocom/suites/netreg_mass/suite.conf 2 files changed, 17 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/33/21833/1 diff --git a/sysmocom/suites/nitb_netreg_mass/register_default_mass.py b/sysmocom/suites/netreg_mass/register_default_mass.py similarity index 83% rename from sysmocom/suites/nitb_netreg_mass/register_default_mass.py rename to sysmocom/suites/netreg_mass/register_default_mass.py index f6b94ad..ed41186 100644 --- a/sysmocom/suites/nitb_netreg_mass/register_default_mass.py +++ b/sysmocom/suites/netreg_mass/register_default_mass.py @@ -7,21 +7,32 @@ from datetime import timedelta print('Claiming resources for the test') -nitb = tenv.nitb() +hlr = tenv.hlr() +mgw_msc = tenv.mgw() +mgw_bsc = tenv.mgw() +stp = tenv.stp() +msc = tenv.msc(hlr, mgw_msc, stp) +bsc = tenv.bsc(msc, mgw_bsc, stp) bts = tenv.bts() ms_driver = tenv.ms_driver() ul = ms_driver.add_test('ul_test') modems = tenv.all_resources(tenv.modem) print('Launching a simple network') -nitb.bts_add(bts) -nitb.start() +hlr.start() +stp.start() +msc.start() +mgw_msc.start() +mgw_bsc.start() + +bsc.bts_add(bts) +bsc.start() bts.start() -wait(nitb.bts_is_connected, bts) +wait(bsc.bts_is_connected, bts) # Configure all MS that are available to this test. for modem in modems: - nitb.subscriber_add(modem) + hlr.subscriber_add(modem) ms_driver.subscriber_add(modem) # Run the base test. diff --git a/sysmocom/suites/nitb_netreg_mass/suite.conf b/sysmocom/suites/netreg_mass/suite.conf similarity index 71% rename from sysmocom/suites/nitb_netreg_mass/suite.conf rename to sysmocom/suites/netreg_mass/suite.conf index 90e9946..68c43b7 100644 --- a/sysmocom/suites/nitb_netreg_mass/suite.conf +++ b/sysmocom/suites/netreg_mass/suite.conf @@ -1,9 +1,8 @@ resources: ip_address: - - times: 1 + - times: 6 # msc, bsc, hlr, stp, mgw*2 bts: - type: osmo-bts-virtual modem: - times: 100 type: osmo-mobile - -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21833 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: I221df84d76f73e15eed98036b31adc8089c8dc99 Gerrit-Change-Number: 21833 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 Dec 21 17:39:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:39:16 +0000 Subject: Change in osmo-ci[master]: jobs: ogt: Update default suite for osmo-gsm-tester_virtual job References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21834 ) Change subject: jobs: ogt: Update default suite for osmo-gsm-tester_virtual job ...................................................................... jobs: ogt: Update default suite for osmo-gsm-tester_virtual job Since osmo-nitb is deprecated, the test was moved to use the "new" split stack. Change-Id: I6cc47f7a748339de406c1216c718a0d0042955d4 --- M jobs/osmo-gsm-tester-runner.yml 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/34/21834/1 diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index 4cdd383..087201f 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -252,7 +252,7 @@ parameters: - string: name: "OSMO_GSM_TESTER_OPTS" - default: "-s nitb_netreg_mass" + default: "-s netreg_mass" description: "pass additional command line options to osmo-gsm-tester.py, e.g. to select specific suites:scenarios. Default: leave empty." - string: name: "OSMO_GSM_TESTER_BRANCH" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6cc47f7a748339de406c1216c718a0d0042955d4 Gerrit-Change-Number: 21834 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 Dec 21 17:42:21 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 17:42:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation.ttcnpp: complete SGSN emulation with SNS References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21835 ) Change subject: NS_Emulation.ttcnpp: complete SGSN emulation with SNS ...................................................................... NS_Emulation.ttcnpp: complete SGSN emulation with SNS The emulation of an SGSN with SNS was incomplete. The SNS procedure was completed. However the NSVCs didn't moved into an unblocked state. Also sending a NS_ALIVE at the beginning is wrong. Change-Id: I54c2d9d5b34d791be354298171d04180a9b263c3 --- M library/NS_Emulation.ttcnpp 1 file changed, 6 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/35/21835/1 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 2ccd399..ba859b0 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -497,14 +497,8 @@ * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ private altstep as_sns_sgsn() runs on NSVC_CT { var PDU_NS rf; - [g_config.role_sgsn] NSCP.receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}) { - log("Provider Link came up: sending NS-ALIVE"); - f_sendAlive(); - } - - [not g_config.role_sgsn] NSCP.receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}) { - log("Provider Link came up: sending NS-ALIVE"); - f_sendAlive(); + [] 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 { @@ -527,6 +521,10 @@ 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"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I54c2d9d5b34d791be354298171d04180a9b263c3 Gerrit-Change-Number: 21835 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 Dec 21 17:44:48 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 17:44:48 +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 (#6). 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 9 files changed, 271 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21753/6 -- 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: 6 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 Dec 21 17:44:52 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 21 Dec 2020 17:44:52 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: lynxis lazus 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 6: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21753/5/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/21753/5/src/gb/gprs_ns2.c at 1315 PS5, Line 1315: active_binds = talloc_zero_array(nse, struct gprs_ns2_vc_bind*, active_nsvcs); > missing talloc_free Ack -- 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: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 17:44: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 Mon Dec 21 17:47:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:47:54 +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 6: 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: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 17: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 Mon Dec 21 17:49:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:49:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: correct log message when no nsvcs available In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21821 ) Change subject: gprs_ns2: sns: correct log message when no nsvcs available ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I96b280a927aba6ac09ce88aedfcf469243c4dffe Gerrit-Change-Number: 21821 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 17:49: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 Dec 21 17:50:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:50:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send doublicated packets on retries In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21822 ) Change subject: gprs_ns2: sns: don't send doublicated packets on retries ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 17:50: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 Dec 21 17:50:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:50:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: add log message when size/config retries exhausted In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21823 ) Change subject: gprs_ns2: sns: add log message when size/config retries exhausted ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5f7c04b364807418f5ba22132fc889b46d66aed0 Gerrit-Change-Number: 21823 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 17:50: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 Dec 21 17:51:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:51:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21824 ) Change subject: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifec7288dbe71f10109e8b5c3849bf8f23ac7b557 Gerrit-Change-Number: 21824 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 17:51: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 Dec 21 17:57:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:57:56 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom/resources.conf.virtual: remove no longer existing arfcn reso... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21832 ) Change subject: sysmocom/resources.conf.virtual: remove no longer existing arfcn resources ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21832 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: Icc0971b285e8db085670808b7d7bb98c38db2753 Gerrit-Change-Number: 21832 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 17: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 Mon Dec 21 17:58:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:58:01 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom: Port nitb_netreg_mass suite to osmo split network In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21833 ) Change subject: sysmocom: Port nitb_netreg_mass suite to osmo split network ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21833 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: I221df84d76f73e15eed98036b31adc8089c8dc99 Gerrit-Change-Number: 21833 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 17: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 Mon Dec 21 17:58:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:58:03 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom/resources.conf.virtual: remove no longer existing arfcn reso... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21832 ) Change subject: sysmocom/resources.conf.virtual: remove no longer existing arfcn resources ...................................................................... sysmocom/resources.conf.virtual: remove no longer existing arfcn resources ARFCN are not resources anymore since a recent commit. Fixes: ecce402f43b708bf178d603e2bd8587e72fdb3b1 Change-Id: Icc0971b285e8db085670808b7d7bb98c38db2753 --- M sysmocom/resources.conf.virtual 1 file changed, 2 insertions(+), 22 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/sysmocom/resources.conf.virtual b/sysmocom/resources.conf.virtual index 7711c58..5ac792d 100644 --- a/sysmocom/resources.conf.virtual +++ b/sysmocom/resources.conf.virtual @@ -17,28 +17,8 @@ ipa_unit_id: 13 addr: 127.0.43.55 band: GSM-1800 - -arfcn: - - arfcn: 512 - band: GSM-1800 - - arfcn: 514 - band: GSM-1800 - - arfcn: 516 - band: GSM-1800 - - arfcn: 518 - band: GSM-1800 - - arfcn: 520 - band: GSM-1800 - - arfcn: 540 - band: GSM-1900 - - arfcn: 542 - band: GSM-1900 - - arfcn: 544 - band: GSM-1900 - - arfcn: 546 - band: GSM-1900 - - arfcn: 548 - band: GSM-1900 + trx_list: + - arfcn: 860 modem: - imsi: "001010000000000" -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21832 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: Icc0971b285e8db085670808b7d7bb98c38db2753 Gerrit-Change-Number: 21832 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 21 17:58:04 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 17:58:04 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom: Port nitb_netreg_mass suite to osmo split network In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21833 ) Change subject: sysmocom: Port nitb_netreg_mass suite to osmo split network ...................................................................... sysmocom: Port nitb_netreg_mass suite to osmo split network Change-Id: I221df84d76f73e15eed98036b31adc8089c8dc99 --- R sysmocom/suites/netreg_mass/register_default_mass.py R sysmocom/suites/netreg_mass/suite.conf 2 files changed, 17 insertions(+), 7 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/sysmocom/suites/nitb_netreg_mass/register_default_mass.py b/sysmocom/suites/netreg_mass/register_default_mass.py similarity index 83% rename from sysmocom/suites/nitb_netreg_mass/register_default_mass.py rename to sysmocom/suites/netreg_mass/register_default_mass.py index f6b94ad..ed41186 100644 --- a/sysmocom/suites/nitb_netreg_mass/register_default_mass.py +++ b/sysmocom/suites/netreg_mass/register_default_mass.py @@ -7,21 +7,32 @@ from datetime import timedelta print('Claiming resources for the test') -nitb = tenv.nitb() +hlr = tenv.hlr() +mgw_msc = tenv.mgw() +mgw_bsc = tenv.mgw() +stp = tenv.stp() +msc = tenv.msc(hlr, mgw_msc, stp) +bsc = tenv.bsc(msc, mgw_bsc, stp) bts = tenv.bts() ms_driver = tenv.ms_driver() ul = ms_driver.add_test('ul_test') modems = tenv.all_resources(tenv.modem) print('Launching a simple network') -nitb.bts_add(bts) -nitb.start() +hlr.start() +stp.start() +msc.start() +mgw_msc.start() +mgw_bsc.start() + +bsc.bts_add(bts) +bsc.start() bts.start() -wait(nitb.bts_is_connected, bts) +wait(bsc.bts_is_connected, bts) # Configure all MS that are available to this test. for modem in modems: - nitb.subscriber_add(modem) + hlr.subscriber_add(modem) ms_driver.subscriber_add(modem) # Run the base test. diff --git a/sysmocom/suites/nitb_netreg_mass/suite.conf b/sysmocom/suites/netreg_mass/suite.conf similarity index 71% rename from sysmocom/suites/nitb_netreg_mass/suite.conf rename to sysmocom/suites/netreg_mass/suite.conf index 90e9946..68c43b7 100644 --- a/sysmocom/suites/nitb_netreg_mass/suite.conf +++ b/sysmocom/suites/netreg_mass/suite.conf @@ -1,9 +1,8 @@ resources: ip_address: - - times: 1 + - times: 6 # msc, bsc, hlr, stp, mgw*2 bts: - type: osmo-bts-virtual modem: - times: 100 type: osmo-mobile - -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21833 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: I221df84d76f73e15eed98036b31adc8089c8dc99 Gerrit-Change-Number: 21833 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 21 18:01:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 18:01:52 +0000 Subject: Change in osmo-ci[master]: jobs: ogt: Update default suite for osmo-gsm-tester_virtual job In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21834 ) Change subject: jobs: ogt: Update default suite for osmo-gsm-tester_virtual job ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6cc47f7a748339de406c1216c718a0d0042955d4 Gerrit-Change-Number: 21834 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 18:01: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 Dec 21 18:02:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 21 Dec 2020 18:02:01 +0000 Subject: Change in osmo-ci[master]: jobs: ogt: Update default suite for osmo-gsm-tester_virtual job In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21834 ) Change subject: jobs: ogt: Update default suite for osmo-gsm-tester_virtual job ...................................................................... jobs: ogt: Update default suite for osmo-gsm-tester_virtual job Since osmo-nitb is deprecated, the test was moved to use the "new" split stack. Change-Id: I6cc47f7a748339de406c1216c718a0d0042955d4 --- M jobs/osmo-gsm-tester-runner.yml 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index 4cdd383..087201f 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -252,7 +252,7 @@ parameters: - string: name: "OSMO_GSM_TESTER_OPTS" - default: "-s nitb_netreg_mass" + default: "-s netreg_mass" description: "pass additional command line options to osmo-gsm-tester.py, e.g. to select specific suites:scenarios. Default: leave empty." - string: name: "OSMO_GSM_TESTER_BRANCH" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6cc47f7a748339de406c1216c718a0d0042955d4 Gerrit-Change-Number: 21834 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 21 20:02:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 20:02:36 +0000 Subject: Change in libosmo-abis[master]: Use osmo_fd_setup() wherever applicable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/20748 ) Change subject: Use osmo_fd_setup() wherever applicable ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/20748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5b369343cf708ddfcde347f218a10d5f72303aaa Gerrit-Change-Number: 20748 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 21 Dec 2020 20: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 Mon Dec 21 20:02:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 21 Dec 2020 20:02:38 +0000 Subject: Change in libosmo-abis[master]: Use osmo_fd_setup() wherever applicable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/20748 ) Change subject: Use osmo_fd_setup() wherever applicable ...................................................................... Use osmo_fd_setup() wherever applicable Change-Id: I5b369343cf708ddfcde347f218a10d5f72303aaa --- M src/input/dahdi.c M src/input/e1d.c M src/input/ipa.c M src/input/misdn.c M src/input/rs232.c M src/input/unixsocket.c M src/trau/osmo_ortp.c M tests/e1inp_ipa_bts_test.c 8 files changed, 12 insertions(+), 42 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/input/dahdi.c b/src/input/dahdi.c index ce9dfc1..a29a233 100644 --- a/src/input/dahdi.c +++ b/src/input/dahdi.c @@ -643,10 +643,6 @@ * board will be 32 */ dev_nr = scfg->chan_base + idx; - bfd->data = line; - bfd->priv_nr = ts; - bfd->cb = dahdi_fd_cb; - switch (e1i_ts->type) { case E1INP_TS_TYPE_NONE: /* close/release LAPD instance, if any */ @@ -712,6 +708,7 @@ if (bfd->fd < 0) return bfd->fd; + osmo_fd_setup(bfd, bfd->fd, bfd->when, dahdi_fd_cb, line, ts); ret = osmo_fd_register(bfd); if (ret < 0) { LOGPITS(e1i_ts, DLINP, LOGL_ERROR, "could not register FD: %s\n", strerror(ret)); diff --git a/src/input/e1d.c b/src/input/e1d.c index 3b1a45f..e3a3b82 100644 --- a/src/input/e1d.c +++ b/src/input/e1d.c @@ -364,10 +364,6 @@ if (bfd->list.next && bfd->list.next != LLIST_POISON1) osmo_fd_unregister(bfd); - bfd->data = line; - bfd->priv_nr = ts; - bfd->cb = e1d_fd_cb; - if (e1i_ts->type != E1INP_TS_TYPE_NONE && ts >= num_ts_info) { LOGPITS(e1i_ts, DLINP, LOGL_ERROR, "Timeslot configured, but not existent " "on E1D side; skipping\n"); @@ -457,6 +453,7 @@ break; }; + osmo_fd_setup(bfd, bfd->fd, bfd->when, e1d_fd_cb, line, ts); ret = osmo_fd_register(bfd); if (ret < 0) { LOGPITS(e1i_ts, DLINP, LOGL_ERROR, "could not register FD: %s\n", strerror(ret)); diff --git a/src/input/ipa.c b/src/input/ipa.c index c3e4ad3..8281b4f 100644 --- a/src/input/ipa.c +++ b/src/input/ipa.c @@ -189,11 +189,7 @@ } } - ipa_link->ofd->when |= OSMO_FD_READ | OSMO_FD_WRITE; - ipa_link->ofd->priv_nr = priv_nr; - ipa_link->ofd->cb = ipa_client_fd_cb; - ipa_link->ofd->data = ipa_link; - ipa_link->ofd->fd = -1; + osmo_fd_setup(ipa_link->ofd, -1, OSMO_FD_READ|OSMO_FD_WRITE, ipa_client_fd_cb, ipa_link, priv_nr); ipa_link->state = IPA_CLIENT_LINK_STATE_CONNECTING; ipa_link->local_addr = talloc_strdup(ipa_link, loc_addr); ipa_link->local_port = loc_port; @@ -312,10 +308,7 @@ if (!ipa_link) return NULL; - ipa_link->ofd.when |= OSMO_FD_READ | OSMO_FD_WRITE; - ipa_link->ofd.cb = ipa_server_fd_cb; - ipa_link->ofd.fd = -1; - ipa_link->ofd.data = ipa_link; + osmo_fd_setup(&ipa_link->ofd, -1, OSMO_FD_READ|OSMO_FD_WRITE, ipa_server_fd_cb, ipa_link, 0); if (addr) ipa_link->addr = talloc_strdup(ipa_link, addr); ipa_link->port = port; @@ -435,10 +428,7 @@ return NULL; } conn->server = link; - conn->ofd.fd = fd; - conn->ofd.data = conn; - conn->ofd.cb = ipa_server_conn_cb; - conn->ofd.when = OSMO_FD_READ; + osmo_fd_setup(&conn->ofd, fd, OSMO_FD_READ, ipa_server_conn_cb, conn, 0); conn->cb = cb; conn->closed_cb = closed_cb; conn->data = data; diff --git a/src/input/misdn.c b/src/input/misdn.c index 9d33932..52cd311 100644 --- a/src/input/misdn.c +++ b/src/input/misdn.c @@ -592,10 +592,6 @@ struct osmo_fd *bfd = &e1i_ts->driver.misdn.fd; struct sockaddr_mISDN addr; - bfd->data = line; - bfd->priv_nr = ts; - bfd->cb = misdn_fd_cb; - switch (e1i_ts->type) { case E1INP_TS_TYPE_NONE: continue; @@ -682,6 +678,8 @@ if (e1i_ts->type == E1INP_TS_TYPE_TRAU) activate_bchan(line, ts, 1); + osmo_fd_setup(bfd, bfd->fd, bfd->when, misdn_fd_cb, line, ts); + ret = osmo_fd_register(bfd); if (ret < 0) { fprintf(stderr, "could not register FD: %s\n", diff --git a/src/input/rs232.c b/src/input/rs232.c index 390d7fe..522cf0e 100644 --- a/src/input/rs232.c +++ b/src/input/rs232.c @@ -256,9 +256,7 @@ ser_handle->line = line; ser_handle->delay_ms = delay_ms; - bfd->when = OSMO_FD_READ; - bfd->cb = serial_fd_cb; - bfd->data = ser_handle; + osmo_fd_setup(bfd, bfd->fd, OSMO_FD_READ, serial_fd_cb, ser_handle, 0); rc = osmo_fd_register(bfd); if (rc < 0) { diff --git a/src/input/unixsocket.c b/src/input/unixsocket.c index 252da03..9a6ff9b 100644 --- a/src/input/unixsocket.c +++ b/src/input/unixsocket.c @@ -242,9 +242,6 @@ } config = line->driver_data; - config->fd.data = line; - config->fd.when = OSMO_FD_READ; - config->fd.cb = unixsocket_cb; /* Open unix domain socket */ if (line->sock_path == NULL) { @@ -274,7 +271,7 @@ } LOGPIL(line, DLINP, LOGL_DEBUG, "successfully opend (new) socket: %s (line=%p, fd=%d, ret=%d)\n", sock_path, line, config->fd.fd, ret); - config->fd.fd = ret; + osmo_fd_setup(&config->fd, ret, OSMO_FD_READ, unixsocket_cb, line, 0); /* Register socket in select loop */ if (osmo_fd_register(&config->fd) < 0) { diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index fab6471..0cd4e9d 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -247,12 +247,8 @@ { int rc; - rs->rtp_bfd.fd = rtp_session_get_rtp_socket(rs->sess); - rs->rtcp_bfd.fd = rtp_session_get_rtcp_socket(rs->sess); - rs->rtp_bfd.when = rs->rtcp_bfd.when = OSMO_FD_READ; - rs->rtp_bfd.data = rs->rtcp_bfd.data = rs; - rs->rtp_bfd.cb = osmo_rtp_fd_cb; - rs->rtcp_bfd.cb = osmo_rtcp_fd_cb; + osmo_fd_setup(&rs->rtp_bfd, rtp_session_get_rtp_socket(rs->sess), OSMO_FD_READ, osmo_rtp_fd_cb, rs, 0); + osmo_fd_setup(&rs->rtcp_bfd, rtp_session_get_rtcp_socket(rs->sess), OSMO_FD_READ, osmo_rtcp_fd_cb, rs, 0); rc = osmo_fd_register(&rs->rtp_bfd); if (rc < 0) diff --git a/tests/e1inp_ipa_bts_test.c b/tests/e1inp_ipa_bts_test.c index 3c7613e..68dfefb 100644 --- a/tests/e1inp_ipa_bts_test.c +++ b/tests/e1inp_ipa_bts_test.c @@ -307,10 +307,7 @@ LOGP(DBTSTEST, LOGL_ERROR, "cannot create pipe fds\n"); exit(EXIT_FAILURE); } - bts_eventfd.fd = eventfds[0]; - bts_eventfd.cb = test_bts_gsm_12_21_cb; - bts_eventfd.when = OSMO_FD_READ; - bts_eventfd.data = &bts_dev_info; + osmo_fd_setup(&bts_eventfd, eventfds[0], OSMO_FD_READ, test_bts_gsm_12_21_cb, &bts_dev_info, 0); if (osmo_fd_register(&bts_eventfd) < 0) { LOGP(DBTSTEST, LOGL_ERROR, "could not register event fd\n"); exit(EXIT_FAILURE); -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/20748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5b369343cf708ddfcde347f218a10d5f72303aaa Gerrit-Change-Number: 20748 Gerrit-PatchSet: 4 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 Dec 21 23:44:01 2020 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Mon, 21 Dec 2020 23:44:01 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21811 ) Change subject: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up ...................................................................... Patch Set 2: Code-Review+1 tested... w0rks4me ? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4450cc47ede4005bf4bbd4af8d5a22c78377d4cd Gerrit-Change-Number: 21811 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 21 Dec 2020 23:44:01 +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 Dec 22 01:44:10 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 22 Dec 2020 01:44:10 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fe14f7a99a8b_6ef32b22262f26003184c5@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: [ 175s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 176s] [COMPILING libboard/qmod/source/card_pres.c] [ 176s] [COMPILING libboard/qmod/source/wwan_led.c] [ 176s] [COMPILING libboard/qmod/source/i2c.c] [ 176s] [COMPILING libboard/qmod/source/board_qmod.c] [ 176s] [COMPILING apps/dfu/main.c] [ 176s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 176s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 176s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 177s] Memory region Used Size Region Size %age Used [ 177s] rom: 16588 B 16 KB 101.25% [ 177s] 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' [ 177s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 177s] collect2: error: ld returned 1 exit status [ 177s] % [ 177s] make[2]: *** [Makefile:234: flash] Error 1 [ 177s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 177s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 177s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 177s] dh_auto_build: error: make -j1 returned exit code 2 [ 177s] make: *** [debian/rules:16: build] Error 25 [ 177s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 177s] ### VM INTERACTION START ### [ 180s] [ 166.862924] sysrq: Power Off [ 180s] [ 166.872898] reboot: Power down [ 180s] ### VM INTERACTION END ### [ 180s] [ 180s] lamb14 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 22 01:44:00 UTC 2020. [ 180s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 22 01:45:19 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 22 Dec 2020 01:45:19 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fe14fcda6e40_6ef32b22262f260031859@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: [ 192s] [COMPILING apps/dfu/main.c] [ 192s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 192s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 192s] [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] [ 180.530697] sysrq: Power Off [ 195s] [ 180.537030] reboot: Power down [ 195s] ### VM INTERACTION END ### [ 195s] [ 195s] lamb17 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 22 01:45:13 UTC 2020. [ 195s] -- 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 Dec 22 06:34:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:34:29 +0000 Subject: Change in osmo-ci[master]: repo-install-test: Move from CentOS_8_Stream to CentOS_8 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21836 ) Change subject: repo-install-test: Move from CentOS_8_Stream to CentOS_8 ...................................................................... repo-install-test: Move from CentOS_8_Stream to CentOS_8 Change-Id: I233c3c944ac58823dc6ff489b5ecf1fdf56b3951 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/36/21836/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 450a754..93e8b7f 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -62,14 +62,14 @@ configure_osmocom_repo_centos8() { echo "Configuring Osmocom repository" # Generate this file, based on the feed: - # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8_Stream/network:osmocom:latest.repo + # 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] -name=$FEED packages of the Osmocom project (CentOS_8_Stream) +name=$FEED packages of the Osmocom project (CentOS_8) type=rpm-md -baseurl=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8_Stream/ +baseurl=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8/ gpgcheck=1 -gpgkey=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8_Stream/repodata/repomd.xml.key +gpgkey=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8/repodata/repomd.xml.key enabled=1 EOF } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I233c3c944ac58823dc6ff489b5ecf1fdf56b3951 Gerrit-Change-Number: 21836 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 Dec 22 06:34:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:34:54 +0000 Subject: Change in osmo-ci[master]: repo-install-test: Move from CentOS_8_Stream to CentOS_8 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21836 ) Change subject: repo-install-test: Move from CentOS_8_Stream to CentOS_8 ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I233c3c944ac58823dc6ff489b5ecf1fdf56b3951 Gerrit-Change-Number: 21836 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 22 Dec 2020 06:34: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 Dec 22 06:34:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:34:56 +0000 Subject: Change in osmo-ci[master]: repo-install-test: Move from CentOS_8_Stream to CentOS_8 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21836 ) Change subject: repo-install-test: Move from CentOS_8_Stream to CentOS_8 ...................................................................... repo-install-test: Move from CentOS_8_Stream to CentOS_8 Change-Id: I233c3c944ac58823dc6ff489b5ecf1fdf56b3951 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: laforge: 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 450a754..93e8b7f 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -62,14 +62,14 @@ configure_osmocom_repo_centos8() { echo "Configuring Osmocom repository" # Generate this file, based on the feed: - # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8_Stream/network:osmocom:latest.repo + # 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] -name=$FEED packages of the Osmocom project (CentOS_8_Stream) +name=$FEED packages of the Osmocom project (CentOS_8) type=rpm-md -baseurl=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8_Stream/ +baseurl=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8/ gpgcheck=1 -gpgkey=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8_Stream/repodata/repomd.xml.key +gpgkey=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8/repodata/repomd.xml.key enabled=1 EOF } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I233c3c944ac58823dc6ff489b5ecf1fdf56b3951 Gerrit-Change-Number: 21836 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 Tue Dec 22 06:39:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:39:14 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21811 ) Change subject: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4450cc47ede4005bf4bbd4af8d5a22c78377d4cd Gerrit-Change-Number: 21811 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 22 Dec 2020 06:39: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 Dec 22 06:39:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:39:17 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21811 ) Change subject: abis_om2000: Force TRX NM state to UNLOCKED once TRX is up ...................................................................... abis_om2000: Force TRX NM state to UNLOCKED once TRX is up In I68ae0bc51a565f903b47cf72f3e3dd6f1a2d2651 we started to initialize all (TS 12.21) NM MO state to LOCKED by default, which means BTSs not using TS 12.21 are stumbling across a general check in bts_isdn_sign_link() and will fail to process and uplink RSL messages. Change-Id: I4450cc47ede4005bf4bbd4af8d5a22c78377d4cd Related: OSE4914 --- M src/osmo-bsc/abis_om2000.c 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified keith: Looks good to me, but someone else must approve laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve tnt: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index a3f689a..a1b8e53 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -2212,6 +2212,11 @@ static void om2k_trx_s_done_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { + struct om2k_trx_fsm_priv *otfp = fi->priv; + + /* 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); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4450cc47ede4005bf4bbd4af8d5a22c78377d4cd Gerrit-Change-Number: 21811 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith 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 Dec 22 06:39:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:39:24 +0000 Subject: Change in osmo-bsc[master]: osmobsc-usermanual: Add Chapter with AoIP message flow examples In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21272 ) Change subject: osmobsc-usermanual: Add Chapter with AoIP message flow examples ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I001d5f85c95098269b5f129b0c53c3544b96ffb0 Gerrit-Change-Number: 21272 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 06:39: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 Tue Dec 22 06:39:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:39:26 +0000 Subject: Change in osmo-bsc[master]: osmobsc-usermanual: Add Chapter with AoIP message flow examples In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21272 ) Change subject: osmobsc-usermanual: Add Chapter with AoIP message flow examples ...................................................................... osmobsc-usermanual: Add Chapter with AoIP message flow examples Change-Id: I001d5f85c95098269b5f129b0c53c3544b96ffb0 --- A doc/manuals/chapters/aoip-flows.adoc A doc/manuals/message-sequences/a_interface_bringup.msc A doc/manuals/message-sequences/mo_call-bsc-msc-mgw-aoip.msc M doc/manuals/osmobsc-usermanual.adoc 4 files changed, 215 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/doc/manuals/chapters/aoip-flows.adoc b/doc/manuals/chapters/aoip-flows.adoc new file mode 100644 index 0000000..dd9f809 --- /dev/null +++ b/doc/manuals/chapters/aoip-flows.adoc @@ -0,0 +1,107 @@ +== AoIP message flow examples + +The flow diagrams / ladder diagrams of this section are intended to +provide some examples on how AoIP procedures work. We hope they will be +useful in understanding the interface better and aid in debugging any +related issues. + +=== AoIP interface bring-up + +This Figure shows the exchange of messages of a BSC when it is +establishing its AoIP interface from scratch, for example because it has +just been started up. We assume the BSC/CN has already been fully +brought up, so no SCTP/M3U*A bring-up between MSC and STP is dieplayed. + +The diagram shows only one possible scenario. + +Depending on the MSC implementation, in between the BSC and the MSC +there may be either + +* a dedicated STP (or multiple replicated STPs) +* no dedicated STP, as the functionality is implemented inside the MSC +* an entire SS7 network between BSC and MSC, with multiple STP, SGW, + elements switching messages from the BSCs to the MSCs. + +The configuration details that need to be known to the BSC at start-up +time are: + +* at SCTP level +** remote IP addresses to which it should establish a SCTP association +** SCTP port number for M3UA at the STP +* at M3UA level +** routing key (0 for none) +** local BSC-side SS7 point code +** remote MSC-side SS7 point code + +There possibly may be more configuration details, such as + +* multiple local and/or remote IP addresses for SCTP multi-homing +* a fixed local (BSC side) IP address and/or SCTP port (default: + dynamic/random) + +.AoIP interface bring-up between BSC and MSC +[mscgen] +---- +include::../message-sequences/a_interface_bringup.msc[] +---- + +For the purpose of clairty, SCTP-level acknowledgement chunks are not +shown. Those are automatically generated by the receiver for every +DATA chunk received in order to confirm its reception and to allow the +transmitter to re-transmit in case of packet loss. + +==== SCTP multi-homing + +If SCTP multi-homing is used, the additional IP addresses are typically +exchanged via additional information elements in the INIT/INIT_ACK +chunks at connection establishment. They may also change at a later +point. + +==== MSC pooling + +If there is MSC pooling configured, there is typically still only one +M3UA ASP / SCTP association. The different MSCs are addressed on the +SCCP point-code level. It's the STPs job to route the messages based +on point codes to the respective MSC. + +The BSC will try to establish BSSAP to each of the MSCs in the pool, +using a separate BSSAP reset procedure to each of the pool members +point code. + +See the Chapter _MSC Pooling_ in the OsmoBSC user manual for +configuration examples of this situation. + + +=== MO call establishment on AoIP with user plane + +The following figure shows a simplified version of the messages between +MS, OsmoBTS, OsmoBSC, OsmoMGW at BSC, MSC[-Server] and MSC-MGW in during +the establishment and release of a MO voice call. Particular focus +is given on messages related to the establishment of the RTP based +user plane. + +The fact whether or not the RAN or the CN use media gateways, how they +control their respective media gateway, and whether there are multiple +media gateways for load distribution is a private implementation detail +of either RAN or CN. Either side does not need to know the +internal structure of the other side, since the RTP endpoint parameters +are signaled for each call individually over the A interface. + +The signaling between the BSC-colocated MGW and OsmoBSC is IETF MGCP +(Media Gateway Control Protocol). + +The signaling between the MSC[-Server] and the MGW is internal to the +CN. It is typically based on MEGACO/H.248. + +As only the BSC and the MSC exchange 3GPP specified signaling messages, +there is no direct interaction between the RAN and the CN side MGW. +They only exchange RTP and associated RTCP. + +In many real deployments, OsmoMGW will have a different IP address on +the BTS/Abis facing interface than on the MSC/A facing interface. As +a simplification, this has been omitted in the figure. + +[mscgen] +---- +include::../message-sequences/mo_call-bsc-msc-mgw-aoip.msc[] +---- diff --git a/doc/manuals/message-sequences/a_interface_bringup.msc b/doc/manuals/message-sequences/a_interface_bringup.msc new file mode 100644 index 0000000..1652621 --- /dev/null +++ b/doc/manuals/message-sequences/a_interface_bringup.msc @@ -0,0 +1,31 @@ +msc { + hscale=2; + bsc[label="BSC"], stp[label="STP"], _msc[label="MSC"]; + + |||; + ||| [label="We assume the MSC is already well connected to the STP and MGW(CN)"]; + + --- [label="SCTP/IP level establishment"]; + bsc =>> stp [label="SCTP INIT"]; + bsc <<= stp [label="SCTP INIT_ACK"]; + bsc =>> stp [label="SCTP COOKIE_ECHO"]; + bsc <<= stp [label="SCTP COOKIE_ACK"]; + ||| [label="SCTP payload can now be carried over the link"]; + |||; + |||; + --- [label="M3UA level establishment (over SCTP)"]; + bsc =>> stp [label="M3UA ASPUP"]; + bsc <<= stp [label="M3UA ASPUP_ACK"]; + bsc =>> stp [label="M3UA ASPAC (routing context)"]; + bsc <<= stp [label="M3UA ASPAC_ACK (routing context)"]; + bsc <<= stp [label="M3UA NTFY (AS-ACTIVE)"]; + ||| [label="M3UA payload can now be carried over the link"]; + |||; + --- [label="BSSMAP level establishment (over SCCP/M3UA/SCTP)"]; + bsc =>> _msc [label="BSSMAP RESET (OPC=BSC, DPC=MSC)"]; + bsc <<= _msc [label="BSSMAP RESET ACK (OPC=MSC, DPC=BSC)"]; + ||| [label="BSSMAP connection-oriented data can now be exchanged"]; + |||; + --- [label="Repeat BSSMAP level establishment (to other MSCs in the pool)"]; + |||; +} diff --git a/doc/manuals/message-sequences/mo_call-bsc-msc-mgw-aoip.msc b/doc/manuals/message-sequences/mo_call-bsc-msc-mgw-aoip.msc new file mode 100644 index 0000000..55fd6cd --- /dev/null +++ b/doc/manuals/message-sequences/mo_call-bsc-msc-mgw-aoip.msc @@ -0,0 +1,75 @@ +# MO-Call with OsmoBTS + OsmoBSC with true 3GPP AoIP +msc { + hscale=2; + ms [label="MS"], bts [label="OsmoBTS\n1.1.1.1"], bsc[label="OsmoBSC"], mgcp[label="OsmoMGW at BSC\n3.3.3.3"], m_sc[label="MSC"], mgw_m[label="MGW at MSC\n5.5.5.5"]; + + ms box m_sc [label="We assume a SDCCH is already established"]; + ...; + + ms -> m_sc [label="DTAP CC SETUP"]; + ms <- m_sc [label="DTAP CC CALL PROCEEDING"]; + + m_sc -> mgw_m [label="Request allocation of local RTP port"]; + m_sc <- mgw_m [label="Respond with RTP port the MGW bound to (5.5.5.5:4000)"]; + bsc <- m_sc [label="BSSAP ASSIGN REQ (3GPP AoIP, CN RTP IP/Port 5.5.5.5:4000)"]; + bts <- bsc [label="RSL CHAN ACT (TCH)"]; + bts -> bsc [label="RSL CHAN ACT ACK"]; + ms <-> bsc [label="RR Assignment of TCH"]; + ...; + + # connect BTS RTP with BSC-MGW RTP + bts <- bsc [label="IPA CRCX"]; + bts box bts [label="Bind to BTS-local RTP Port (1.1.1.1:1000)"]; + bts -> bsc [label="IPA CRCX ACK (1.1.1.1:1000)"]; + bsc -> mgcp [label="MGCP CRCX rtpbridge/2 at mgw (1.1.1.1:1000)"]; + mgcp box mgcp [label="Bind to MGW-local RTP Port (3.3.3.3:2000)\nConnect to 1.1.1.1:1000"]; + bsc <- mgcp [label="MGCP CRCX rtpbridge/2 at mgw OK (3.3.3.3:2000)"]; + bts <- bsc [label="IPA MDCX (3.3.3.3:2000)"]; + bts box bts [label="Connect RTP socket to remote (MGW) RTP Port"]; + bts -> bsc [label="IPA MDCX ACK"]; + bsc -> mgcp [label="MGCP MDCX rtpbridge/2 at mgw (optional)"]; + bsc <- mgcp [label="MGCP MDCX rtpbridge/2 at mgw OK (optional)"]; + ...; + + mgcp <- bsc [label="MGCP CRCX rtpbridge/2 at mgw (5.5.5.5:4000)"]; + mgcp box mgcp [label="Bind to MGW-local RTP Port (3.3.3.3:3000)\nConnect to 5.5.5.5:4000"]; + mgcp -> bsc [label="MGCP CRCX rtpbridge/2 at mgw OK (3.3.3.3:3000)"]; + ...; + + bsc -> m_sc [label="BSSAP ASSIGN CMPL (3GPP AoIP 3.3.3.3:3000)"]; + m_sc -> mgw_m [label="Request MGW to connect RTP to remote endpoint 3.3.3.3:3000"]; + mgw_m box mgw_m [label="Connect RTP to 3.3.3.3:3000"]; + ...; + + mgcp <=> mgw_m [label="RTP Audio 3.3.3.3:3000 5.5.5.5:4000"]; + bts <=> mgcp [label="RTP Audio 1.1.1.1:1000 3.3.3.3:2000"]; + ms <=> bts [label="Um Audio (bidirectional)"]; + ms <-> m_sc [label="DTAP CC ALERTING"]; + ...; + + ms <- m_sc [label="DTAP CC CONNECT"]; + ms -> m_sc [label="DTAP CC CONNECT ACK"]; + --- [label="Voice Call in Progress"]; + ms <- m_sc [label="DTAP CC DISCONNET"]; + ms <- m_sc [label="DTAP CC RELEASE"]; + ms <- m_sc [label="DTAP CC RELEASE COMPL"]; + ...; + bsc <- m_sc [label="BSSMAP CLEAR CMD"]; + m_sc -> mgw_m [label="Request release RTP port/termination"]; + mgw_m box mgw_m [label="Release RTP port 5.5.5.5:4000"]; + bsc -> m_sc [label="BSSMAP CLEAR COMPL"]; + bsc <- m_sc [label="SCCP RLSD"]; + bsc -> m_sc [label="SCCP RLC"]; + ...; + mgcp <- bsc [label="MGCP DLCX rtpbridge/2 at mgw"]; + mgcp box mgcp [label="Release MSC-facing local RTP port (3.3.3.3:3000)"]; + mgcp -> bsc [label="MGCP DLCX rtpbridge/2 at mgw OK"]; + + mgcp <- bsc [label="MGCP DLCX rtpbridge/2 at mgw"]; + mgcp box mgcp [label="Release BTS-facing local RTP port (3.3.3.3:2000)"]; + mgcp -> bsc [label="MGCP DLCX rtpbridge/2 at mgw OK"]; + + bts <- bsc [label="IPA DLCX"]; + bts box bts [label="Release BTS-local RTP port (1.1.1.1:1000)"]; + bts -> bsc [label="IPA DLCX OK"]; +} diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc index 3c80cee..a084a51 100644 --- a/doc/manuals/osmobsc-usermanual.adoc +++ b/doc/manuals/osmobsc-usermanual.adoc @@ -46,6 +46,8 @@ include::./common/chapters/vty_cpu_sched.adoc[] +include::{srcdir}/chapters/aoip-flows.adoc[] + include::./common/chapters/port_numbers.adoc[] include::./common/chapters/bibliography.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I001d5f85c95098269b5f129b0c53c3544b96ffb0 Gerrit-Change-Number: 21272 Gerrit-PatchSet: 4 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 Tue Dec 22 06:39:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:39:33 +0000 Subject: Change in osmo-bsc[master]: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21813 ) Change subject: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9df44f840a2818ebc877453c74bde127dce9b3e9 Gerrit-Change-Number: 21813 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 22 Dec 2020 06:39: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 Dec 22 06:39:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:39:41 +0000 Subject: Change in osmo-bsc[master]: OM2K: Skip the entire CON MO if there are no connection groups In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21814 ) Change subject: OM2K: Skip the entire CON MO if there are no connection groups ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia4d5bd96734686381f04aa3b380b17a161a31174 Gerrit-Change-Number: 21814 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 22 Dec 2020 06:39: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 Dec 22 06:39:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:39:59 +0000 Subject: Change in osmo-bsc[master]: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21813 ) Change subject: OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT ...................................................................... OM2K: Permit transition from WAIT_CONF_RES -> WAIT_ENABLE_ACCEPT This is how the DP MO FSM is doing, so let's permit it. Change-Id: I9df44f840a2818ebc877453c74bde127dce9b3e9 --- M src/osmo-bsc/abis_om2000.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve tnt: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index a1b8e53..c74c0eb 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -1922,7 +1922,8 @@ .out_state_mask = S(OM2K_ST_DONE) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_CFG_ACCEPT) | - S(OM2K_ST_WAIT_OPINFO_ACCEPT), + S(OM2K_ST_WAIT_OPINFO_ACCEPT) | + S(OM2K_ST_WAIT_ENABLE_ACCEPT), .action = om2k_mo_st_wait_start_res, }, [OM2K_ST_WAIT_CFG_ACCEPT] = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9df44f840a2818ebc877453c74bde127dce9b3e9 Gerrit-Change-Number: 21813 Gerrit-PatchSet: 2 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 Dec 22 06:39:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:39:59 +0000 Subject: Change in osmo-bsc[master]: OM2K: Skip the entire CON MO if there are no connection groups In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21814 ) Change subject: OM2K: Skip the entire CON MO if there are no connection groups ...................................................................... OM2K: Skip the entire CON MO if there are no connection groups If the user doesn't specify any CON connection groups in the config file, then the CON is not used. The current code runs into an error condition, as abis_om2k_tx_con_conf_req() never sends the CON CONF REQ if the groups list is empty, but we still wait in the FSM for the arrival of a CFG REQ ACCEPT. The CON FSM eventually times out in T10 and we proceed with the IS, ignoring the error. With this patch, we simply skip the entire CON MO in case there is no related configuration. Change-Id: Ia4d5bd96734686381f04aa3b380b17a161a31174 --- M src/osmo-bsc/abis_om2000.c 1 file changed, 10 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve tnt: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index c74c0eb..a1eed5b 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -2389,10 +2389,14 @@ OSMO_ASSERT(event == OM2K_BTS_EVT_TF_DONE); - 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); + 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); + } 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); + } } static void om2k_bts_s_wait_con(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2486,7 +2490,8 @@ [OM2K_BTS_S_WAIT_TF] = { .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_CON) | + S(OM2K_BTS_S_WAIT_IS), .name = "WAIT-TF", .action = om2k_bts_s_wait_tf, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia4d5bd96734686381f04aa3b380b17a161a31174 Gerrit-Change-Number: 21814 Gerrit-PatchSet: 2 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 Dec 22 06:41:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 06:41:15 +0000 Subject: Change in osmo-bsc[master]: om2000: Add "show bts 0 om2k-mo" command 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/+/21830 to look at the new patch set (#2). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/30/21830/2 -- 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: 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 Tue Dec 22 09:34:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 09:34:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation.ttcnpp: complete SGSN emulation with SNS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21835 ) Change subject: NS_Emulation.ttcnpp: complete SGSN emulation with SNS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I54c2d9d5b34d791be354298171d04180a9b263c3 Gerrit-Change-Number: 21835 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 22 Dec 2020 09: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 Tue Dec 22 09:34:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 09:34:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation.ttcnpp: complete SGSN emulation with SNS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21835 ) Change subject: NS_Emulation.ttcnpp: complete SGSN emulation with SNS ...................................................................... NS_Emulation.ttcnpp: complete SGSN emulation with SNS The emulation of an SGSN with SNS was incomplete. The SNS procedure was completed. However the NSVCs didn't moved into an unblocked state. Also sending a NS_ALIVE at the beginning is wrong. Change-Id: I54c2d9d5b34d791be354298171d04180a9b263c3 --- M library/NS_Emulation.ttcnpp 1 file changed, 6 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 2ccd399..ba859b0 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -497,14 +497,8 @@ * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ private altstep as_sns_sgsn() runs on NSVC_CT { var PDU_NS rf; - [g_config.role_sgsn] NSCP.receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}) { - log("Provider Link came up: sending NS-ALIVE"); - f_sendAlive(); - } - - [not g_config.role_sgsn] NSCP.receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}) { - log("Provider Link came up: sending NS-ALIVE"); - f_sendAlive(); + [] 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 { @@ -527,6 +521,10 @@ 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"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I54c2d9d5b34d791be354298171d04180a9b263c3 Gerrit-Change-Number: 21835 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 Tue Dec 22 09:37:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 09:37:49 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: WIP: gprs_ns2: add new vty2 ...................................................................... Patch Set 18: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 18 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 09:37: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 Dec 22 09:40:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 09:40:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: correct log message when no nsvcs available In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21821 ) Change subject: gprs_ns2: sns: correct log message when no nsvcs available ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I96b280a927aba6ac09ce88aedfcf469243c4dffe Gerrit-Change-Number: 21821 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 09:40: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 Dec 22 09:41:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 09:41:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send duplicated packets on retries In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2) to the change originally created by lynxis lazus. ( https://gerrit.osmocom.org/c/libosmocore/+/21822 ) Change subject: gprs_ns2: sns: don't send duplicated packets on retries ...................................................................... gprs_ns2: sns: don't send duplicated packets on retries When all retries exhausted it should change the state and not send out a packet Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e --- M src/gb/gprs_ns2_sns.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/21822/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 Gerrit-PatchSet: 2 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 Tue Dec 22 09:41:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 09:41:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send duplicated packets on retries In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21822 ) Change subject: gprs_ns2: sns: don't send duplicated packets on retries ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 09:41: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 Dec 22 09:41:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 09:41:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: add log message when size/config retries exhausted In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21823 ) Change subject: gprs_ns2: sns: add log message when size/config retries exhausted ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5f7c04b364807418f5ba22132fc889b46d66aed0 Gerrit-Change-Number: 21823 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 09:41: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 Tue Dec 22 09:42:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 09:42:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21824 ) Change subject: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifec7288dbe71f10109e8b5c3849bf8f23ac7b557 Gerrit-Change-Number: 21824 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 09:42: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 Dec 22 10:28:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 10:28:46 +0000 Subject: Change in osmo-bsc[master]: Add a bts_model->bts_init() and trx_init() call-back function In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21825 ) Change subject: Add a bts_model->bts_init() and trx_init() call-back function ...................................................................... Patch Set 1: (2 comments) I have the feeling you just hooked the function calls to the first place you found which made your stuff work, it may be worth giving it a second thought IMHO. https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts.c at 513 PS1, Line 513: if (model->trx_init) { I would rather hook all this into vty_go_parent cb so that it is called at the end of config (you can check if you are currently reading a file or in config mode somehow iirc), or in main() https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts_trx.c File src/osmo-bsc/bts_trx.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts_trx.c at 123 PS1, Line 123: if (bts->model && bts->model->trx_init) { I find a bit strange that you call trx_init() here and in the previous file too. Looks like prone to double-call and I don't see why you need it in both places. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icbad9cdc12221c9ad997267d77e5414edcbac538 Gerrit-Change-Number: 21825 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 10:28: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 Tue Dec 22 10:30:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 10:30:01 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: make om2k_mo_name() an exported function In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21826 ) Change subject: abis_om2000: make om2k_mo_name() an exported function ...................................................................... Patch Set 1: Code-Review+1 A comment "will be used in future commits" (to answer "why?") or alike would be welcome -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb05bcad8059ab2b2be6c7057495d0279a4b62c7 Gerrit-Change-Number: 21826 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 10: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 Tue Dec 22 10:30:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 10:30:24 +0000 Subject: Change in osmo-bsc[master]: [cosmetic] abis_om2000: Re-format to use longer lines In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21827 ) Change subject: [cosmetic] abis_om2000: Re-format to use longer lines ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8143280358c0e23ca7e32b882e952eac991e105b Gerrit-Change-Number: 21827 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 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 Tue Dec 22 10:30:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 10:30:36 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Mark om2k_mo_fsm_start() as static In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21828 ) Change subject: abis_om2000: Mark om2k_mo_fsm_start() as static ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If9ebf07ac662607826270df0b0966c8dd5026f1c Gerrit-Change-Number: 21828 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 10:30: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 Dec 22 10:35:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 10:35:52 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: keep OM2K FSMs around, don't terminate In-Reply-To: References: Message-ID: pespin 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 1: (4 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c File src/osmo-bsc/abis_om2000.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2310 PS1, Line 2310: trx->rbs2000.trx_fi = fi; in an alloc() function (returning the allocated struct) I would expect this to be done by the caller. You can also drop the OSMO:ASSERT you introduce above. https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2326 PS1, Line 2326: if (strcmp(osmo_fsm_inst_state_name(bts_fi), "DONE") && better check against bts->fi->state == https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2340 PS1, Line 2340: if (strcmp(osmo_fsm_inst_state_name(bts_fi), "DONE") && same, check against enum. https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2630 PS1, Line 2630: bts->rbs2000.bts_fi = fi; Same, I'd expect this to be done by caller. -- 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: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 10:35: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 Dec 22 10:37:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 10:37:05 +0000 Subject: Change in osmo-bsc[master]: om2000: Add "show bts 0 om2k-mo" command In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21830 ) Change subject: om2000: Add "show bts 0 om2k-mo" command ...................................................................... Patch Set 2: Code-Review+1 -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 10:37: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 Dec 22 10:43:49 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 10:43:49 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration 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/+/21705 to look at the new patch set (#5). Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... gbproxy: Add SGSN NRI configuration In order to support SGSN pooling we need to configure the various NRI parameters such as the bitlen, NULL NRI, and which NRIs are assigned to which SGSN. Related: OS#4890, OS#4472 Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e --- 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 M tests/Makefile.am A tests/osmo-gbproxy_test-nodes.vty R tests/osmo-sgsn_test-nodes.vty 8 files changed, 495 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/05/21705/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 5 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 Tue Dec 22 10:43:50 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 10:43:50 +0000 Subject: Change in osmo-sgsn[master]: osmo-gbproxy: Initialize all hash_maps References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21837 ) Change subject: osmo-gbproxy: Initialize all hash_maps ...................................................................... osmo-gbproxy: Initialize all hash_maps Change-Id: I9578af77a7b2f61b57c918a703768ca20221c294 Related: OS#4472 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/37/21837/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 53aecdf..d84da1a 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1287,6 +1287,8 @@ /* by default we advertise 100% of the BSS-side capacity to _each_ SGSN */ cfg->pool.bvc_fc_ratio = 100; hash_init(cfg->bss_nses); + hash_init(cfg->sgsn_nses); + hash_init(cfg->cells); 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"); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9578af77a7b2f61b57c918a703768ca20221c294 Gerrit-Change-Number: 21837 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 Dec 22 10:43:50 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 10:43:50 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix confusing log message in gbprox_relay2nse References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 ) Change subject: gbproxy: Fix confusing log message in gbprox_relay2nse ...................................................................... gbproxy: Fix confusing log message in gbprox_relay2nse This function is now used to transmit messages in both directions, BSS->SGSN and SGSN->BSS. Print the actual direction in the logs Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Related: OS#4472 --- M src/gbproxy/gb_proxy.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/38/21838/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index d84da1a..49841d2 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -145,11 +145,12 @@ struct gprs_ns2_inst *nsi = nse->cfg->nsi; struct osmo_gprs_ns2_prim nsp = {}; struct msgb *msg = bssgp_msgb_copy(old_msg, "msgb_relay2nse"); + char log_pfx[32]; uint32_t tlli; int rc; - DEBUGP(DGPRS, "NSE(%05u/SGSN)-BVC(%05u) proxying SGSN->BSS NSE(%05u/BSS)\n", - msgb_nsei(msg), ns_bvci, nse->nsei); + snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/%s)-BVC(%05u/??)", msgb_nsei(msg), !nse->sgsn_facing ? "SGSN" : "BSS", ns_bvci); + DEBUGP(DGPRS, "%s proxying to NSE(%05u/%s)\n", log_pfx, nse->nsei, nse->sgsn_facing ? "SGSN" : "BSS"); nsp.bvci = ns_bvci; nsp.nsei = nse->nsei; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Gerrit-Change-Number: 21838 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 Dec 22 10:45:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 10:45:18 +0000 Subject: Change in osmo-sgsn[master]: osmo-gbproxy: Initialize all hash_maps In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21837 ) Change subject: osmo-gbproxy: Initialize all hash_maps ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9578af77a7b2f61b57c918a703768ca20221c294 Gerrit-Change-Number: 21837 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 22 Dec 2020 10:45: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 Dec 22 10:46:07 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 10:46:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... Patch Set 5: (1 comment) > Patch Set 4: Code-Review-1 > > FYI: daniel and I had a phone call some days ago, from my memory we agreed that the 'sgsn' would be come a first-class object (with name, linked into a global list in the gbproxy_config) and that we won't be piggy-backing the NRI bits into the NSE. Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21705/4/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21705/4/src/gbproxy/gb_proxy_vty.c at 50 PS4, Line 50: #define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" > s/MSC/SGSN here and below Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 22 Dec 2020 10:46:07 +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 Dec 22 10:46:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 10:46:26 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix confusing log message in gbprox_relay2nse In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 ) Change subject: gbproxy: Fix confusing log message in gbprox_relay2nse ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21838/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21838/1/src/gbproxy/gb_proxy.c at 152 PS1, Line 152: snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/%s)-BVC(%05u/??)", msgb_nsei(msg), !nse->sgsn_facing ? "SGSN" : "BSS", ns_bvci); Why do you need this temporary buffer + snprintf? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Gerrit-Change-Number: 21838 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 10:46: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 Dec 22 10:53:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 10:53:16 +0000 Subject: Change in osmo-sgsn[master]: osmo-gbproxy: Initialize all hash_maps In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21837 ) Change subject: osmo-gbproxy: Initialize all hash_maps ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9578af77a7b2f61b57c918a703768ca20221c294 Gerrit-Change-Number: 21837 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 10:53: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 Dec 22 10:54:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 10:54:19 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix confusing log message in gbprox_relay2nse In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 ) Change subject: gbproxy: Fix confusing log message in gbprox_relay2nse ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21838/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21838/1/src/gbproxy/gb_proxy.c at 152 PS1, Line 152: snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/%s)-BVC(%05u/??)", msgb_nsei(msg), !nse->sgsn_facing ? "SGSN" : "BSS", ns_bvci); > Why do you need this temporary buffer + snprintf? same question here. would only make sense if the same log_pfx is used in multiple lines. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Gerrit-Change-Number: 21838 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 10:54:19 +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 Dec 22 10:54:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 10:54:22 +0000 Subject: Change in osmo-sgsn[master]: osmo-gbproxy: Initialize all hash_maps In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21837 ) Change subject: osmo-gbproxy: Initialize all hash_maps ...................................................................... osmo-gbproxy: Initialize all hash_maps Change-Id: I9578af77a7b2f61b57c918a703768ca20221c294 Related: OS#4472 --- M src/gbproxy/gb_proxy.c 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/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 53aecdf..d84da1a 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1287,6 +1287,8 @@ /* by default we advertise 100% of the BSS-side capacity to _each_ SGSN */ cfg->pool.bvc_fc_ratio = 100; hash_init(cfg->bss_nses); + hash_init(cfg->sgsn_nses); + hash_init(cfg->cells); 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"); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9578af77a7b2f61b57c918a703768ca20221c294 Gerrit-Change-Number: 21837 Gerrit-PatchSet: 1 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 Tue Dec 22 10:56:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 10:56:45 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... Patch Set 5: Code-Review+1 would be good to get neels' input. I would like to request that each sgsn also gets a user-settable 'const char *name', but that can be a later follow-up patch for this separate feature. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 22 Dec 2020 10: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 Tue Dec 22 11:01:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:01:22 +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 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c File src/osmo-bsc/abis_om2000.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2310 PS1, Line 2310: trx->rbs2000.trx_fi = fi; > in an alloc() function (returning the allocated struct) I would expect this to be done by the caller [?] My original idea was to do as much as possible inside the function, to avoid having to repeat the same pattern around the function call at multiple caller sites, where the chance is high to change only one of the callers and forget about others. I have to check if we actually do have multiple callers left in the latet iteration of the code. If not, I can go for your proposal. Otherwise, I'd rather rename the function like _alloc_and_link or so. https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2326 PS1, Line 2326: if (strcmp(osmo_fsm_inst_state_name(bts_fi), "DONE") && > better check against bts->fi->state == yes, but that would mean the enum must be declared here already, which would mean that the enum definition no longer is next to the FSM, which I really like about this current code. So I decided to go for the strcmp, after all it is a super infrequent operation. -- 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: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11:01: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 Tue Dec 22 11:08:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:08:00 +0000 Subject: Change in osmo-bsc[master]: Add a bts_model->bts_init() and trx_init() call-back function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21825 ) Change subject: Add a bts_model->bts_init() and trx_init() call-back function ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts.c at 513 PS1, Line 513: if (model->trx_init) { > I would rather hook all this into vty_go_parent cb so that it is called at the end of config (you ca [?] All of this sucks (and has sucked ever since we supported more than one BTS type/model). You already run into massive problems today when you change the type back and forth at runtime, as we have various initialization and no cleanup. So if you wanted to do this properly, you'd also have to add cleanup functions and whenever setting the type/model, first run cleanup of the old model, then init of the new one. If you want to do it at every go_parent from the BTS, you would have to memorize of what the old type was at entering the node, and what the new type is. So you can figure out if any change was made, and then only call the init if there was any change. As there is no funding for this work, I just wanted to improve the usability (i.e. persistent MO FSMs that you can show) with minimal effort. https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts_trx.c File src/osmo-bsc/bts_trx.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts_trx.c at 123 PS1, Line 123: if (bts->model && bts->model->trx_init) { > I find a bit strange that you call trx_init() here and in the previous file too. [?] I put a comment at the other invocation: "/* handle those TRX which are already allocated at the time we set the type */" The point is when we allocate a BTS, we always allocate TRX0 as it's mandatory. And at the time of allocation we don't know the type yet, and hence we cannot do type/model specific initialization. So there is one path invoked when you add trx >=1 in the vty (here) and one path for the trx0 which pre-exists when you set the type. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icbad9cdc12221c9ad997267d77e5414edcbac538 Gerrit-Change-Number: 21825 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11:08: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 Tue Dec 22 11:08:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:08:27 +0000 Subject: Change in libosmocore[master]: lapd_core: Don't dereference data link after sending PRIM_DL_REL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21831 ) Change subject: lapd_core: Don't dereference data link after sending PRIM_DL_REL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ccca8d5e5d07b666557afe12ab8ac4910ddfb00 Gerrit-Change-Number: 21831 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 22 Dec 2020 11:08: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 Dec 22 11:08:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:08:29 +0000 Subject: Change in libosmocore[master]: lapd_core: Don't dereference data link after sending PRIM_DL_REL In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21831 ) Change subject: lapd_core: Don't dereference data link after sending PRIM_DL_REL ...................................................................... lapd_core: Don't dereference data link after sending PRIM_DL_REL We must always send the RELEASE.{indication,confirm} last before returning from a function. We cannot rely on the datalink to still be around after the call, as the SAP user might have destroyed the data link meanwhile. This fixes a heap use-after-free (at least) with RBS2000 when the BTS is fully brought up and the OML data link is lost, see OS#1762 Change-Id: I8ccca8d5e5d07b666557afe12ab8ac4910ddfb00 Related: OS#1761 Related: OS#1762 --- M src/gsm/lapd_core.c 1 file changed, 4 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gsm/lapd_core.c b/src/gsm/lapd_core.c index ed0b320..e0c232f 100644 --- a/src/gsm/lapd_core.c +++ b/src/gsm/lapd_core.c @@ -624,8 +624,6 @@ if (dl->retrans_ctr >= dl->n200_est_rel + 1) { /* send MDL ERROR INIDCATION to L3 */ mdl_error(MDL_CAUSE_T200_EXPIRED, &dl->lctx); - /* send RELEASE INDICATION to L3 */ - send_dl_simple(PRIM_DL_REL, PRIM_OP_CONFIRM, &dl->lctx); /* flush tx and send buffers */ lapd_dl_flush_tx(dl); lapd_dl_flush_send(dl); @@ -634,6 +632,8 @@ /* NOTE: we must not change any other states or buffers * and queues, since we may reconnect after handover * failure. the buffered messages is replaced there */ + /* send RELEASE INDICATION to L3 */ + send_dl_simple(PRIM_DL_REL, PRIM_OP_CONFIRM, &dl->lctx); break; } /* retransmit DISC command */ @@ -1230,13 +1230,12 @@ || !!memcmp(dl->tx_hist[0].msg->data, msg->l3h, length)) { LOGDL(dl, LOGL_INFO, "**** UA response mismatches ****\n"); - rc = send_dl_simple(PRIM_DL_REL, - PRIM_OP_INDICATION, lctx); - msgb_free(msg); /* go to idle state */ lapd_dl_flush_tx(dl); lapd_dl_flush_send(dl); lapd_dl_newstate(dl, LAPD_STATE_IDLE); + rc = send_dl_simple(PRIM_DL_REL, PRIM_OP_INDICATION, lctx); + msgb_free(msg); return 0; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ccca8d5e5d07b666557afe12ab8ac4910ddfb00 Gerrit-Change-Number: 21831 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 Tue Dec 22 11:10:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:10:09 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... Patch Set 6: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21685/6/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21685/6/src/osmo-bsc/bsc_vty.c at 158 PS6, Line 158: "%s(config-power-ctrl)# ", it would be nice to see _which_ power control node you are in (MS/BS) but I don't think this is possible. Likewise we don't show which TRX/TX we're in anyway... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11:10: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 Dec 22 11:10:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:10:27 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY command for re-sending default parameters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21794 ) Change subject: power_control: add VTY command for re-sending default parameters ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35e9147d5536f9901ac63f605d87ae112c024401 Gerrit-Change-Number: 21794 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11: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 Tue Dec 22 11:10:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 11:10:40 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: keep OM2K FSMs around, don't terminate In-Reply-To: References: Message-ID: pespin 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 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c File src/osmo-bsc/abis_om2000.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2326 PS1, Line 2326: if (strcmp(osmo_fsm_inst_state_name(bts_fi), "DONE") && > yes, but that would mean the enum must be declared here already, which would mean that the enum defi [?] Just move the enum to the fsm header file. It's not only about optimization, it's about saving one's ass if the FSM is extended/changed in the future and the name of the state changes. If an enum is used, the compiler will detect so and then one knows this code here needs to be adapted too. You can also add a function to the FSM file, something bool like bts_not_yet_brought_up(bts_fi). -- 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: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11:10:40 +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 Tue Dec 22 11:11:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:11:03 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY command to set static / maximum BS Power In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21812 ) Change subject: power_control: add VTY command to set static / maximum BS Power ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I11ca856aba46aaf84d94cbbdf4c39a01ee8289b9 Gerrit-Change-Number: 21812 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11:11: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 Dec 22 11:11:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:11:08 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... power_control: add VTY commands for per-BTS configuration Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Related: SYS#4918 --- M include/osmocom/bsc/vty.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/Makefile.am A tests/power_ctrl.vty 5 files changed, 677 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/vty.h b/include/osmocom/bsc/vty.h index cfdcbfc..92f7932 100644 --- a/include/osmocom/bsc/vty.h +++ b/include/osmocom/bsc/vty.h @@ -28,6 +28,7 @@ CBC_SERVER_NODE, CBC_CLIENT_NODE, SMLC_NODE, + POWER_CTRL_NODE, }; struct log_info; diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 3858da8..91ce2df 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -153,6 +153,12 @@ 1, }; +struct cmd_node power_ctrl_node = { + POWER_CTRL_NODE, + "%s(config-power-ctrl)# ", + 1, +}; + struct cmd_node trx_node = { TRX_NODE, "%s(config-net-bts-trx)# ", @@ -869,6 +875,99 @@ vty_out(vty, "auto%s", VTY_NEWLINE); } +/* TODO: generalize and move indention handling to libosmocore */ +#define cfg_out(fmt, args...) \ + vty_out(vty, "%*s" fmt, indent, "", ##args); + +static void config_write_power_ctrl_meas(struct vty *vty, unsigned int indent, + const struct gsm_power_ctrl_params *cp, + uint8_t ptype) +{ + const struct gsm_power_ctrl_meas_params *mp; + const char *param; + + switch (ptype) { + case IPAC_RXLEV_AVE: + mp = &cp->rxlev_meas; + param = "rxlev"; + break; + case IPAC_RXQUAL_AVE: + mp = &cp->rxqual_meas; + param = "rxqual"; + break; + default: + /* Shall not happen */ + OSMO_ASSERT(0); + } + + cfg_out("%s-thresh lower %u upper %u%s", + param, mp->lower_thresh, mp->upper_thresh, + VTY_NEWLINE); + cfg_out("%s-thresh-comp lower %u %u upper %u %u%s", + param, mp->lower_cmp_p, mp->lower_cmp_n, + mp->upper_cmp_p, mp->upper_cmp_n, + VTY_NEWLINE); + + switch (mp->algo) { + case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: + cfg_out("no %s-avg%s", param, VTY_NEWLINE); + return; /* we're done */ + case GSM_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED: + cfg_out("%s-avg algo unweighted%s", param, VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_WEIGHTED: + cfg_out("%s-avg algo weighted%s", param, VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_MOD_MEDIAN: + cfg_out("%s-avg algo mod-median%s", param, VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: + cfg_out("%s-avg algo osmo-ewma beta %u%s", + param, 100 - mp->ewma.alpha, + VTY_NEWLINE); + break; + } + + cfg_out("%s-avg params hreqave %u hreqt %u%s", + param, mp->h_reqave, mp->h_reqt, + VTY_NEWLINE); +} + +static void config_write_power_ctrl(struct vty *vty, unsigned int indent, + const struct gsm_power_ctrl_params *cp) +{ + const char *node_name; + + if (cp->dir == GSM_PWR_CTRL_DIR_UL) + node_name = "ms-power-control"; + else + node_name = "bs-power-control"; + + switch (cp->mode) { + case GSM_PWR_CTRL_MODE_NONE: + cfg_out("no %s%s", node_name, VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MODE_STATIC: + cfg_out("%s%s", node_name, VTY_NEWLINE); + cfg_out(" mode static%s", VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MODE_DYN_BTS: + cfg_out("%s%s", node_name, VTY_NEWLINE); + cfg_out(" mode dyn-bts%s", VTY_NEWLINE); + + cfg_out(" step-size inc %u red %u%s", + cp->inc_step_size_db, cp->red_step_size_db, + VTY_NEWLINE); + + /* Measurement processing / averaging parameters */ + config_write_power_ctrl_meas(vty, indent + 1, cp, IPAC_RXLEV_AVE); + config_write_power_ctrl_meas(vty, indent + 1, cp, IPAC_RXQUAL_AVE); + break; + } +} + +#undef cfg_out + static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts) { int i; @@ -1129,6 +1228,10 @@ || bts->repeated_acch_policy.dl_facch_cmd) vty_out(vty, " repeat rxqual %u%s", bts->repeated_acch_policy.rxqual, VTY_NEWLINE); + /* BS/MS Power Control parameters */ + config_write_power_ctrl(vty, 2, &bts->bs_power_ctrl); + config_write_power_ctrl(vty, 2, &bts->ms_power_ctrl); + config_write_bts_model(vty, bts); } @@ -4722,6 +4825,344 @@ return CMD_SUCCESS; } +#define BS_POWER_CONTROL_CMD \ + "bs-power-control" +#define MS_POWER_CONTROL_CMD \ + "ms-power-control" +#define POWER_CONTROL_CMD \ + "(" BS_POWER_CONTROL_CMD "|" MS_POWER_CONTROL_CMD ")" +#define POWER_CONTROL_DESC \ + "BS (Downlink) power control parameters\n" \ + "MS (Uplink) power control parameters\n" + +#define BTS_POWER_CTRL_PARAMS(bts) \ + (strcmp(argv[0], BS_POWER_CONTROL_CMD) == 0) ? \ + &bts->bs_power_ctrl : &bts->ms_power_ctrl + +DEFUN_USRATTR(cfg_bts_no_power_ctrl, + cfg_bts_no_power_ctrl_cmd, + X(BSC_VTY_ATTR_NEW_LCHAN), + "no " POWER_CONTROL_CMD, + NO_STR POWER_CONTROL_DESC) +{ + struct gsm_power_ctrl_params *params; + struct gsm_bts *bts = vty->index; + + params = BTS_POWER_CTRL_PARAMS(bts); + params->mode = GSM_PWR_CTRL_MODE_NONE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_bts_power_ctrl, + cfg_bts_power_ctrl_cmd, + POWER_CONTROL_CMD, + POWER_CONTROL_DESC) +{ + struct gsm_bts *bts = vty->index; + + vty->index = BTS_POWER_CTRL_PARAMS(bts); + vty->node = POWER_CTRL_NODE; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_power_ctrl_mode, + cfg_power_ctrl_mode_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "mode (static|dyn-bts) [reset]", + "Power control mode\n" + "Instruct the MS/BTS to use a static power level (default)\n" + "Power control to be performed dynamically by the BTS itself\n" + "Reset to default parameters for the given mode\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + + /* Do we need to reset? */ + if (argc > 1) { + vty_out(vty, "%% Reset to default parameters%s", VTY_NEWLINE); + enum gsm_power_ctrl_dir dir = params->dir; + *params = power_ctrl_params_def; + params->dir = dir; + } + + if (strcmp(argv[0], "static") == 0) + params->mode = GSM_PWR_CTRL_MODE_STATIC; + else if (strcmp(argv[0], "dyn-bts") == 0) + params->mode = GSM_PWR_CTRL_MODE_DYN_BTS; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_power_ctrl_step_size, + cfg_power_ctrl_step_size_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "step-size inc <2-6> red <2-4>", + "Set power change step size (for dynamic mode)\n" + "Increase step size (default is 4 dB)\n" + "Step size (2, 4, or 6 dB)\n" + "Reduce step size (default is 2 dB)\n" + "Step size (2 or 4 dB)\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + + if (atoi(argv[0]) % 2 || atoi(argv[1]) % 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]); + + return CMD_SUCCESS; +} + +#define POWER_CONTROL_MEAS_RXLEV_DESC \ + "RxLev value (signal strength, 0 is worst, 63 is best)\n" +#define POWER_CONTROL_MEAS_RXQUAL_DESC \ + "RxQual value (signal quality, 0 is best, 7 is worst)\n" + +DEFUN_USRATTR(cfg_power_ctrl_rxlev_thresh, + cfg_power_ctrl_rxlev_thresh_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "rxlev-thresh lower <0-63> upper <0-63>", + "Set target RxLev thresholds (for dynamic mode)\n" + "Lower RxLev value (default is 32, i.e. -78 dBm)\n" + "Lower " POWER_CONTROL_MEAS_RXLEV_DESC + "Upper RxLev value (default is 38, i.e. -72 dBm)\n" + "Upper " POWER_CONTROL_MEAS_RXLEV_DESC) +{ + struct gsm_power_ctrl_params *params = vty->index; + int lower = atoi(argv[0]); + int upper = atoi(argv[1]); + + if (lower > upper) { + vty_out(vty, "%% Lower 'rxlev-thresh' (%d) must be less than upper (%d)%s", + lower, upper, VTY_NEWLINE); + return CMD_WARNING; + } + + params->rxlev_meas.lower_thresh = lower; + params->rxlev_meas.upper_thresh = upper; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_power_ctrl_rxqual_thresh, + cfg_power_ctrl_rxqual_thresh_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "rxqual-thresh lower <0-7> upper <0-7>", + "Set target RxQual thresholds (for dynamic mode)\n" + "Lower RxQual value (default is 0, i.e. BER < 0.2%)\n" + "Lower " POWER_CONTROL_MEAS_RXQUAL_DESC + "Upper RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%)\n" + "Upper " POWER_CONTROL_MEAS_RXQUAL_DESC) +{ + struct gsm_power_ctrl_params *params = vty->index; + int lower = atoi(argv[0]); + int upper = atoi(argv[1]); + + if (lower > upper) { + vty_out(vty, "%% Lower 'rxqual-rxqual' (%d) must be less than upper (%d)%s", + lower, upper, VTY_NEWLINE); + return CMD_WARNING; + } + + params->rxqual_meas.lower_thresh = lower; + params->rxqual_meas.upper_thresh = upper; + + return CMD_SUCCESS; +} + +#define POWER_CONTROL_MEAS_THRESH_COMP_CMD(meas) \ + meas " lower <0-31> <0-31> upper <0-31> <0-31>" +#define POWER_CONTROL_MEAS_THRESH_COMP_DESC(meas, lp, ln, up, un) \ + "Set " meas " threshold comparators (for dynamic mode)\n" \ + "Lower " meas " threshold comparators (see 3GPP TS 45.008, A.3.2.1)\n" lp ln \ + "Upper " meas " threshold comparators (see 3GPP TS 45.008, A.3.2.1)\n" up un + +DEFUN_USRATTR(cfg_power_ctrl_rxlev_thresh_comp, + cfg_power_ctrl_rxlev_thresh_comp_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_MEAS_THRESH_COMP_CMD("rxlev-thresh-comp"), + POWER_CONTROL_MEAS_THRESH_COMP_DESC("RxLev", + "P1 (default 10)\n", "N1 (default 12)\n", + "P2 (default 10)\n", "N2 (default 12)\n")) +{ + struct gsm_power_ctrl_params *params = vty->index; + int lower_cmp_p = atoi(argv[0]); + int lower_cmp_n = atoi(argv[1]); + int upper_cmp_p = atoi(argv[2]); + int upper_cmp_n = atoi(argv[3]); + + if (lower_cmp_p > lower_cmp_n) { + vty_out(vty, "%% Lower RxLev P1 %d must be less than N1 %d%s", + lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + return CMD_WARNING; + } + + if (upper_cmp_p > upper_cmp_n) { + vty_out(vty, "%% Upper RxLev P2 %d must be less than N2 %d%s", + lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + return CMD_WARNING; + } + + params->rxlev_meas.lower_cmp_p = lower_cmp_p; + params->rxlev_meas.lower_cmp_n = lower_cmp_n; + params->rxlev_meas.upper_cmp_p = upper_cmp_p; + params->rxlev_meas.upper_cmp_n = upper_cmp_n; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_power_ctrl_rxqual_thresh_comp, + cfg_power_ctrl_rxqual_thresh_comp_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_MEAS_THRESH_COMP_CMD("rxqual-thresh-comp"), + POWER_CONTROL_MEAS_THRESH_COMP_DESC("RxQual", + "P3 (default 5)\n", "N3 (default 7)\n", + "P4 (default 15)\n", "N4 (default 18)\n")) +{ + struct gsm_power_ctrl_params *params = vty->index; + int lower_cmp_p = atoi(argv[0]); + int lower_cmp_n = atoi(argv[1]); + int upper_cmp_p = atoi(argv[2]); + int upper_cmp_n = atoi(argv[3]); + + if (lower_cmp_p > lower_cmp_n) { + vty_out(vty, "%% Lower RxQual P3 %d must be less than N3 %d%s", + lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + return CMD_WARNING; + } + + if (upper_cmp_p > upper_cmp_n) { + vty_out(vty, "%% Upper RxQual P4 %d must be less than N4 %d%s", + lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + return CMD_WARNING; + } + + params->rxqual_meas.lower_cmp_p = lower_cmp_p; + params->rxqual_meas.lower_cmp_n = lower_cmp_n; + params->rxqual_meas.upper_cmp_p = upper_cmp_p; + params->rxqual_meas.upper_cmp_n = upper_cmp_n; + + return CMD_SUCCESS; +} + +#define POWER_CONTROL_MEAS_AVG_CMD \ + "(rxlev-avg|rxqual-avg)" +#define POWER_CONTROL_MEAS_AVG_DESC \ + "RxLev (signal strength) measurement averaging (for dynamic mode)\n" \ + "RxQual (signal quality) measurement averaging (for dynamic mode)\n" + +#define POWER_CONTROL_MEAS_AVG_PARAMS(params) \ + (strncmp(argv[0], "rxlev", 5) == 0) ? \ + ¶ms->rxlev_meas : ¶ms->rxqual_meas + +DEFUN_USRATTR(cfg_power_ctrl_no_avg, + cfg_power_ctrl_no_avg_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "no " POWER_CONTROL_MEAS_AVG_CMD, + NO_STR POWER_CONTROL_MEAS_AVG_DESC) +{ + struct gsm_power_ctrl_params *params = vty->index; + struct gsm_power_ctrl_meas_params *avg_params; + + avg_params = POWER_CONTROL_MEAS_AVG_PARAMS(params); + avg_params->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_power_ctrl_avg_params, + cfg_power_ctrl_avg_params_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_MEAS_AVG_CMD " params hreqave <1-31> hreqt <1-31>", + POWER_CONTROL_MEAS_AVG_DESC "Configure general averaging parameters\n" + "Hreqave: the period over which an average is produced\n" + "Hreqave value (so that Hreqave * Hreqt < 32)\n" + "Hreqt: the number of averaged results that are maintained\n" + "Hreqt value (so that Hreqave * Hreqt < 32)\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + struct gsm_power_ctrl_meas_params *avg_params; + int h_reqave = atoi(argv[1]); + int h_reqt = atoi(argv[2]); + + if (h_reqave * h_reqt > 31) { + vty_out(vty, "%% Hreqave (%d) * Hreqt (%d) = %d must be < 32%s", + h_reqave, h_reqt, h_reqave * h_reqt, VTY_NEWLINE); + return CMD_WARNING; + } + + avg_params = POWER_CONTROL_MEAS_AVG_PARAMS(params); + avg_params->h_reqave = h_reqave; + avg_params->h_reqt = h_reqt; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_power_ctrl_avg_algo, + cfg_power_ctrl_avg_algo_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + /* FIXME: add algorithm specific parameters */ + POWER_CONTROL_MEAS_AVG_CMD " algo (unweighted|weighted|mod-median)", + POWER_CONTROL_MEAS_AVG_DESC "Select the averaging algorithm\n" + "Un-weighted average\n" "Weighted average\n" + "Modified median calculation\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + struct gsm_power_ctrl_meas_params *avg_params; + + avg_params = POWER_CONTROL_MEAS_AVG_PARAMS(params); + if (strcmp(argv[1], "unweighted") == 0) + avg_params->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED; + else if (strcmp(argv[1], "weighted") == 0) + avg_params->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_WEIGHTED; + else if (strcmp(argv[1], "mod-median") == 0) + avg_params->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_MOD_MEDIAN; + + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_power_ctrl_avg_osmo_ewma, + cfg_power_ctrl_avg_osmo_ewma_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + POWER_CONTROL_MEAS_AVG_CMD " algo osmo-ewma beta <1-99>", + POWER_CONTROL_MEAS_AVG_DESC "Select the averaging algorithm\n" + "Exponentially Weighted Moving Average (EWMA)\n" + "Smoothing factor (in %): beta = (100 - alpha)\n" + "1% - lowest smoothing, 99% - highest smoothing\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + struct gsm_power_ctrl_meas_params *avg_params; + +#if 0 + if (trx->bts->type != GSM_BTS_TYPE_OSMOBTS) { + vty_out(vty, "%% EWMA is an OsmoBTS specific algorithm, " + "it's not usable for other BTS types%s", VTY_NEWLINE); + return CMD_WARNING; + } +#endif + + avg_params = POWER_CONTROL_MEAS_AVG_PARAMS(params); + avg_params->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA; + avg_params->ewma.alpha = 100 - atoi(argv[1]); + + return CMD_SUCCESS; +} + #define TRX_TEXT "Radio Transceiver\n" /* per TRX configuration */ @@ -7194,6 +7635,20 @@ neighbor_ident_vty_init(network, network->neighbor_bss_cells); /* See also handover commands added on bts level from handover_vty.c */ + install_element(BTS_NODE, &cfg_bts_power_ctrl_cmd); + install_element(BTS_NODE, &cfg_bts_no_power_ctrl_cmd); + install_node(&power_ctrl_node, dummy_config_write); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_mode_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_step_size_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_comp_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_comp_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_no_avg_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_params_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_algo_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_osmo_ewma_cmd); + install_element(BTS_NODE, &cfg_trx_cmd); install_node(&trx_node, dummy_config_write); install_element(TRX_NODE, &cfg_trx_arfcn_cmd); diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 4ab0430..ed561aa 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -583,6 +583,21 @@ vty->index_sub = NULL; } break; + case POWER_CTRL_NODE: + vty->node = BTS_NODE; + { + const struct gsm_power_ctrl_params *cp = vty->index; + struct gsm_bts *bts; + + if (cp->dir == GSM_PWR_CTRL_DIR_UL) + bts = container_of(cp, struct gsm_bts, ms_power_ctrl); + else + bts = container_of(cp, struct gsm_bts, bs_power_ctrl); + + vty->index_sub = &bts->description; + vty->index = bts; + } + break; case TRX_NODE: vty->node = BTS_NODE; { diff --git a/tests/Makefile.am b/tests/Makefile.am index c061baa..b11b905 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -40,6 +40,7 @@ nri_cfg.vty \ osmo-bsc.vty \ timer.vty \ + power_ctrl.vty \ $(NULL) TESTSUITE = $(srcdir)/testsuite diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty new file mode 100644 index 0000000..abd2768 --- /dev/null +++ b/tests/power_ctrl.vty @@ -0,0 +1,205 @@ +OsmoBSC> enable + +OsmoBSC# ### Dynamic power control must be disabled by default +OsmoBSC# show running-config +... + bs-power-control + mode static + ms-power-control + mode static +... + +OsmoBSC# ### Check that 'power-ctrl' node and its commands exist +OsmoBSC# configure terminal +OsmoBSC(config)# network +OsmoBSC(config-net)# bts 0 +OsmoBSC(config-net-bts)# list with-flags +... + . ... (bs-power-control|ms-power-control) + . ..l no (bs-power-control|ms-power-control) +... + +OsmoBSC(config-net-bts)# bs-power-control +OsmoBSC(config-power-ctrl)# list with-flags +... + . lv mode (static|dyn-bts) [reset] + . 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> + +OsmoBSC(config-power-ctrl)# ### Check default BS Power Parameters +OsmoBSC(config-power-ctrl)# mode dyn-bts +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control + mode dyn-bts + 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 0 upper 3 + rxqual-thresh-comp lower 5 7 upper 15 18 + no rxqual-avg + ms-power-control + mode static +... + +OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-net-bts)# ms-power-control +OsmoBSC(config-power-ctrl)# list with-flags +... + . lv mode (static|dyn-bts) [reset] + . 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> + +OsmoBSC(config-power-ctrl)# ### Check default MS Power Parameters +OsmoBSC(config-power-ctrl)# mode dyn-bts +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control + mode dyn-bts + 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 0 upper 3 + rxqual-thresh-comp lower 5 7 upper 15 18 + no rxqual-avg + ms-power-control + mode dyn-bts + 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 0 upper 3 + rxqual-thresh-comp lower 5 7 upper 15 18 + no rxqual-avg +... + +OsmoBSC(config-power-ctrl)# step-size inc 5 red 4 +% Power change step size must be an even number +OsmoBSC(config-power-ctrl)# step-size inc 2 red 3 +% Power change step size must be an even number +OsmoBSC(config-power-ctrl)# step-size inc 2 red 4 +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control + mode dyn-bts + step-size inc 4 red 2 +... + ms-power-control + mode dyn-bts + step-size inc 2 red 4 +... + +OsmoBSC(config-power-ctrl)# rxlev-thresh lower? + lower Lower RxLev value (default is 32, i.e. -78 dBm) +OsmoBSC(config-power-ctrl)# rxlev-thresh lower ? + <0-63> Lower RxLev value (signal strength, 0 is worst, 63 is best) +OsmoBSC(config-power-ctrl)# rxlev-thresh lower 30 upper? + upper Upper RxLev value (default is 38, i.e. -72 dBm) +OsmoBSC(config-power-ctrl)# rxlev-thresh lower 30 upper ? + <0-63> Upper RxLev value (signal strength, 0 is worst, 63 is best) +OsmoBSC(config-power-ctrl)# rxlev-thresh lower 30 upper 63 +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control +... !rxlev-thresh + rxlev-thresh lower 32 upper 38 +... + ms-power-control +... !rxlev-thresh + rxlev-thresh lower 30 upper 63 +... + +OsmoBSC(config-power-ctrl)# rxqual-thresh lower? + lower Lower RxQual value (default is 0, i.e. BER < 0.2%) +OsmoBSC(config-power-ctrl)# rxqual-thresh lower ? + <0-7> Lower RxQual value (signal quality, 0 is best, 7 is worst) +OsmoBSC(config-power-ctrl)# rxqual-thresh lower 0 upper? + upper Upper RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%) +OsmoBSC(config-power-ctrl)# rxqual-thresh lower 0 upper ? + <0-7> Upper RxQual value (signal quality, 0 is best, 7 is worst) +OsmoBSC(config-power-ctrl)# rxqual-thresh lower 0 upper 7 +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control +... !rxqual-thresh + rxqual-thresh lower 0 upper 3 +... + ms-power-control +... !rxqual-thresh + rxqual-thresh lower 0 upper 7 +... + +OsmoBSC(config-power-ctrl)# rxlev-avg algo osmo-ewma beta 50 +OsmoBSC(config-power-ctrl)# rxqual-avg algo unweighted +OsmoBSC(config-power-ctrl)# show running-config +... + 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 + rxlev-avg params hreqave 4 hreqt 6 +... !(rxlev-avg|rxqual-avg) + rxqual-avg algo unweighted + rxqual-avg params hreqave 4 hreqt 6 +... + +OsmoBSC(config-power-ctrl)# rxlev-avg params hreqave 2 hreqt 20 +% Hreqave (2) * Hreqt (20) = 40 must be < 32 +OsmoBSC(config-power-ctrl)# rxlev-avg params hreqave 2 hreqt 15 +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control +... !rxlev-avg params + ms-power-control +... !rxlev-avg params + rxlev-avg params hreqave 2 hreqt 15 +... + +OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-net-bts)# ### Disable BS/MS Power Control +OsmoBSC(config-net-bts)# no bs-power-control +OsmoBSC(config-net-bts)# no ms-power-control +OsmoBSC(config-net-bts)# show running-config +... + no bs-power-control + no ms-power-control +... + +OsmoBSC(config-net-bts)# bs-power-control +OsmoBSC(config-power-ctrl)# mode static reset +% Reset to default parameters +OsmoBSC(config-power-ctrl)# exit + +OsmoBSC(config-net-bts)# ms-power-control +OsmoBSC(config-power-ctrl)# mode static reset +% Reset to default parameters +OsmoBSC(config-power-ctrl)# exit + +OsmoBSC(config-net-bts)# show running-config +... + bs-power-control + mode static + ms-power-control + mode static +... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 7 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 Dec 22 11:11:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:11:09 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY command for re-sending default parameters In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21794 ) Change subject: power_control: add VTY command for re-sending default parameters ...................................................................... power_control: add VTY command for re-sending default parameters Change-Id: I35e9147d5536f9901ac63f605d87ae112c024401 Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 37 insertions(+), 2 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/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 91ce2df..c12fd12 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -5646,7 +5646,8 @@ return CMD_SUCCESS; } -DEFUN(bts_resend, bts_resend_cmd, +DEFUN(bts_resend_sysinfo, + bts_resend_sysinfo_cmd, "bts <0-255> resend-system-information", "BTS Specific Commands\n" BTS_NR_STR "Re-generate + re-send BCCH SYSTEM INFORMATION\n") @@ -5679,6 +5680,39 @@ return CMD_SUCCESS; } +DEFUN(bts_resend_power_ctrl_params, + bts_resend_power_ctrl_params_cmd, + "bts <0-255> resend-power-control-defaults", + "BTS Specific Commands\n" BTS_NR_STR + "Re-generate + re-send default MS/BS Power control parameters\n") +{ + const struct gsm_bts_trx *trx; + const struct gsm_bts *bts; + int bts_nr = atoi(argv[0]); + + bts = gsm_bts_num(gsmnet_from_vty(vty), bts_nr); + if (!bts) { + vty_out(vty, "%% No such BTS (%d)%s", bts_nr, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bts->model->power_ctrl_send_def_params == NULL) { + vty_out(vty, "%% Sending default MS/BS Power control parameters " + "for BTS%d is not implemented%s", bts_nr, VTY_NEWLINE); + return CMD_WARNING; + } + + llist_for_each_entry(trx, &bts->trx_list, list) { + if (bts->model->power_ctrl_send_def_params(trx) != 0) { + vty_out(vty, "%% Failed to send default MS/BS Power control parameters " + "to BTS%d/TRX%d%s", bts_nr, trx->nr, VTY_NEWLINE); + return CMD_WARNING; + } + } + + return CMD_SUCCESS; +} + DEFUN(smscb_cmd, smscb_cmd_cmd, "bts <0-255> smscb-command (normal|schedule|default) <1-4> HEXSTRING", @@ -7675,7 +7709,8 @@ install_element(ENABLE_NODE, &drop_bts_cmd); install_element(ENABLE_NODE, &restart_bts_cmd); - install_element(ENABLE_NODE, &bts_resend_cmd); + install_element(ENABLE_NODE, &bts_resend_sysinfo_cmd); + install_element(ENABLE_NODE, &bts_resend_power_ctrl_params_cmd); install_element(ENABLE_NODE, &pdch_act_cmd); install_element(ENABLE_NODE, &lchan_act_cmd); install_element(ENABLE_NODE, &lchan_act_all_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35e9147d5536f9901ac63f605d87ae112c024401 Gerrit-Change-Number: 21794 Gerrit-PatchSet: 5 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 Dec 22 11:11:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 11:11:09 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY command to set static / maximum BS Power In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21812 ) Change subject: power_control: add VTY command to set static / maximum BS Power ...................................................................... power_control: add VTY command to set static / maximum BS Power Change-Id: I11ca856aba46aaf84d94cbbdf4c39a01ee8289b9 Related: SYS#4918 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/lchan_fsm.c M tests/power_ctrl.vty 5 files changed, 94 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/gsm_data.h b/include/osmocom/bsc/gsm_data.h index f9d5736..233c3b6 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1328,6 +1328,10 @@ /* Power Control mode to be used by the BTS */ enum gsm_power_ctrl_mode mode; + /* BS Power reduction value / maximum (in dB) */ + uint8_t bs_power_val_db; /* for static mode */ + uint8_t bs_power_max_db; /* for dynamic mode */ + /* Power change step size (dynamic mode only) */ uint8_t inc_step_size_db; /* increasing direction */ uint8_t red_step_size_db; /* reducing direction */ diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index c12fd12..fe46d45 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -950,10 +950,14 @@ case GSM_PWR_CTRL_MODE_STATIC: cfg_out("%s%s", node_name, VTY_NEWLINE); cfg_out(" mode static%s", VTY_NEWLINE); + if (cp->dir == GSM_PWR_CTRL_DIR_DL && cp->bs_power_val_db != 0) + cfg_out(" bs-power static %u%s", cp->bs_power_val_db, VTY_NEWLINE); break; case GSM_PWR_CTRL_MODE_DYN_BTS: cfg_out("%s%s", node_name, VTY_NEWLINE); cfg_out(" mode dyn-bts%s", VTY_NEWLINE); + if (cp->dir == GSM_PWR_CTRL_DIR_DL) + cfg_out(" bs-power dyn-max %u%s", cp->bs_power_max_db, VTY_NEWLINE); cfg_out(" step-size inc %u red %u%s", cp->inc_step_size_db, cp->red_step_size_db, @@ -4895,6 +4899,40 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_power_ctrl_bs_power, + cfg_power_ctrl_bs_power_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "bs-power (static|dyn-max) <0-30>", + "BS Power IE value to be send to the BTS\n" + "Fixed BS Power reduction value (for static mode)\n" + "Maximum BS Power reduction value (for dynamic mode)\n" + "BS Power reduction value (in dB, even numbers only)\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + bool dynamic = !strcmp(argv[0], "dyn-max"); + int value = atoi(argv[1]); + + if (params->dir != GSM_PWR_CTRL_DIR_DL) { + vty_out(vty, "%% This command is only valid for " + "'bs-power-control' node%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (value % 2 != 0) { + vty_out(vty, "%% Incorrect BS Power reduction value, " + "an even number is expected%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (dynamic) /* maximum value */ + params->bs_power_max_db = value; + else /* static (fixed) value */ + params->bs_power_val_db = value; + + return CMD_SUCCESS; +} + DEFUN_USRATTR(cfg_power_ctrl_step_size, cfg_power_ctrl_step_size_cmd, X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | @@ -7673,6 +7711,7 @@ install_element(BTS_NODE, &cfg_bts_no_power_ctrl_cmd); install_node(&power_ctrl_node, dummy_config_write); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_mode_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_bs_power_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_step_size_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_cmd); diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 0b5650f..4c87fd8 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -972,6 +972,10 @@ /* Static Power Control is the safe default */ .mode = GSM_PWR_CTRL_MODE_STATIC, + /* BS Power reduction value / maximum (in dB) */ + .bs_power_val_db = 0, /* no attenuation in static mode */ + .bs_power_max_db = 12, /* up to 12 dB in dynamic mode */ + /* Power increasing/reducing step size */ .inc_step_size_db = 4, /* 2, 4, or 6 dB */ .red_step_size_db = 2, /* 2 or 4 dB */ diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 1903645..5a42527 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -379,6 +379,9 @@ */ 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) @@ -408,6 +411,12 @@ .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) diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index abd2768..7884c01 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -23,6 +23,7 @@ OsmoBSC(config-power-ctrl)# list with-flags ... . lv mode (static|dyn-bts) [reset] + . lv 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> @@ -33,12 +34,30 @@ . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> +OsmoBSC(config-power-ctrl)# bs-power ? + static Fixed BS Power reduction value (for static mode) + dyn-max Maximum BS Power reduction value (for dynamic mode) +OsmoBSC(config-power-ctrl)# bs-power static ? + <0-30> BS Power reduction value (in dB, even numbers only) +OsmoBSC(config-power-ctrl)# bs-power static 3 +% Incorrect BS Power reduction value, an even number is expected +OsmoBSC(config-power-ctrl)# bs-power static 6 +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control + mode static + bs-power static 6 + ms-power-control + mode static +... !bs-power + OsmoBSC(config-power-ctrl)# ### Check default BS Power Parameters OsmoBSC(config-power-ctrl)# mode dyn-bts OsmoBSC(config-power-ctrl)# show running-config ... bs-power-control mode dyn-bts + bs-power dyn-max 12 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -50,11 +69,23 @@ mode static ... +OsmoBSC(config-power-ctrl)# bs-power dyn-max 30 +OsmoBSC(config-power-ctrl)# show running-config +... + bs-power-control + mode dyn-bts + bs-power dyn-max 30 +... !bs-power + ms-power-control + mode static +... !bs-power + OsmoBSC(config-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control OsmoBSC(config-power-ctrl)# list with-flags ... . lv mode (static|dyn-bts) [reset] + . lv 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> @@ -71,6 +102,7 @@ ... bs-power-control mode dyn-bts + bs-power dyn-max 30 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -89,6 +121,11 @@ no rxqual-avg ... +OsmoBSC(config-power-ctrl)# bs-power static 30 +% This command is only valid for 'bs-power-control' node +OsmoBSC(config-power-ctrl)# bs-power dyn-max 30 +% This command is only valid for 'bs-power-control' node + OsmoBSC(config-power-ctrl)# step-size inc 5 red 4 % Power change step size must be an even number OsmoBSC(config-power-ctrl)# step-size inc 2 red 3 @@ -98,6 +135,7 @@ ... bs-power-control mode dyn-bts + bs-power dyn-max 30 step-size inc 4 red 2 ... ms-power-control -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I11ca856aba46aaf84d94cbbdf4c39a01ee8289b9 Gerrit-Change-Number: 21812 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 Tue Dec 22 11:32:39 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 11:32:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix confusing log message in gbprox_relay2nse 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/+/21838 to look at the new patch set (#2). Change subject: gbproxy: Fix confusing log message in gbprox_relay2nse ...................................................................... gbproxy: Fix confusing log message in gbprox_relay2nse This function is now used to transmit messages in both directions, BSS->SGSN and SGSN->BSS. Print the actual direction in the logs Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Related: OS#4472 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/38/21838/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Gerrit-Change-Number: 21838 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder 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 Tue Dec 22 11:34:13 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 11:34:13 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix confusing log message in gbprox_relay2nse In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 ) Change subject: gbproxy: Fix confusing log message in gbprox_relay2nse ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21838/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21838/1/src/gbproxy/gb_proxy.c at 152 PS1, Line 152: snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/%s)-BVC(%05u/??)", msgb_nsei(msg), !nse->sgsn_facing ? "SGSN" : "BSS", ns_bvci); > same question here. would only make sense if the same log_pfx is used in multiple lines. I don't know what to say.. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Gerrit-Change-Number: 21838 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11:34:13 +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 Tue Dec 22 11:37:41 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 22 Dec 2020 11:37:41 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21685/6/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21685/6/src/osmo-bsc/bsc_vty.c at 158 PS6, Line 158: "%s(config-power-ctrl)# ", > it would be nice to see _which_ power control node you are in (MS/BS) but I don't think this is poss [?] ACK! Adding another node with the same set of commands looks like a hack to me. I guess a better way would be to add some API to libosmovty, but for now we can just change 'power_ctrl_node->prompt' from the respective VTY commands on the fly. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11:37:41 +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 Dec 22 11:44:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 11:44:09 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix confusing log message in gbprox_relay2nse In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 ) Change subject: gbproxy: Fix confusing log message in gbprox_relay2nse ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Gerrit-Change-Number: 21838 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11:44: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 Dec 22 11:56:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 22 Dec 2020 11:56:07 +0000 Subject: Change in osmo-bsc[master]: power_control: reflect MS/BS Power difference in the VTY prompt References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21839 ) Change subject: power_control: reflect MS/BS Power difference in the VTY prompt ...................................................................... power_control: reflect MS/BS Power difference in the VTY prompt Change-Id: I66d414a5f761eeec042a47207fc7d295e073cd10 Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 2 files changed, 54 insertions(+), 46 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/39/21839/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index fe46d45..9bf83e9 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4863,10 +4863,18 @@ POWER_CONTROL_CMD, POWER_CONTROL_DESC) { + struct gsm_power_ctrl_params *params; struct gsm_bts *bts = vty->index; - vty->index = BTS_POWER_CTRL_PARAMS(bts); + params = BTS_POWER_CTRL_PARAMS(bts); vty->node = POWER_CTRL_NODE; + vty->index = params; + + /* Change the prefix to reflect MS/BS difference */ + if (params->dir == GSM_PWR_CTRL_DIR_UL) + power_ctrl_node.prompt = "%s(config-ms-power-ctrl)# "; + else + power_ctrl_node.prompt = "%s(config-bs-power-ctrl)# "; return CMD_SUCCESS; } diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index 7884c01..2bc427b 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -20,7 +20,7 @@ ... OsmoBSC(config-net-bts)# bs-power-control -OsmoBSC(config-power-ctrl)# list with-flags +OsmoBSC(config-bs-power-ctrl)# list with-flags ... . lv mode (static|dyn-bts) [reset] . lv bs-power (static|dyn-max) <0-30> @@ -34,15 +34,15 @@ . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> -OsmoBSC(config-power-ctrl)# bs-power ? +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) -OsmoBSC(config-power-ctrl)# bs-power static ? +OsmoBSC(config-bs-power-ctrl)# bs-power static ? <0-30> BS Power reduction value (in dB, even numbers only) -OsmoBSC(config-power-ctrl)# bs-power static 3 +OsmoBSC(config-bs-power-ctrl)# bs-power static 3 % Incorrect BS Power reduction value, an even number is expected -OsmoBSC(config-power-ctrl)# bs-power static 6 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-bs-power-ctrl)# bs-power static 6 +OsmoBSC(config-bs-power-ctrl)# show running-config ... bs-power-control mode static @@ -51,9 +51,9 @@ mode static ... !bs-power -OsmoBSC(config-power-ctrl)# ### Check default BS Power Parameters -OsmoBSC(config-power-ctrl)# mode dyn-bts -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-bs-power-ctrl)# ### Check default BS Power Parameters +OsmoBSC(config-bs-power-ctrl)# mode dyn-bts +OsmoBSC(config-bs-power-ctrl)# show running-config ... bs-power-control mode dyn-bts @@ -69,8 +69,8 @@ mode static ... -OsmoBSC(config-power-ctrl)# bs-power dyn-max 30 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-bs-power-ctrl)# bs-power dyn-max 30 +OsmoBSC(config-bs-power-ctrl)# show running-config ... bs-power-control mode dyn-bts @@ -80,9 +80,9 @@ mode static ... !bs-power -OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-bs-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control -OsmoBSC(config-power-ctrl)# list with-flags +OsmoBSC(config-ms-power-ctrl)# list with-flags ... . lv mode (static|dyn-bts) [reset] . lv bs-power (static|dyn-max) <0-30> @@ -96,9 +96,9 @@ . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> -OsmoBSC(config-power-ctrl)# ### Check default MS Power Parameters -OsmoBSC(config-power-ctrl)# mode dyn-bts -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# ### Check default MS Power Parameters +OsmoBSC(config-ms-power-ctrl)# mode dyn-bts +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control mode dyn-bts @@ -121,17 +121,17 @@ no rxqual-avg ... -OsmoBSC(config-power-ctrl)# bs-power static 30 +OsmoBSC(config-ms-power-ctrl)# bs-power static 30 % This command is only valid for 'bs-power-control' node -OsmoBSC(config-power-ctrl)# bs-power dyn-max 30 +OsmoBSC(config-ms-power-ctrl)# bs-power dyn-max 30 % This command is only valid for 'bs-power-control' node -OsmoBSC(config-power-ctrl)# step-size inc 5 red 4 +OsmoBSC(config-ms-power-ctrl)# step-size inc 5 red 4 % Power change step size must be an even number -OsmoBSC(config-power-ctrl)# step-size inc 2 red 3 +OsmoBSC(config-ms-power-ctrl)# step-size inc 2 red 3 % Power change step size must be an even number -OsmoBSC(config-power-ctrl)# step-size inc 2 red 4 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# step-size inc 2 red 4 +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control mode dyn-bts @@ -143,16 +143,16 @@ step-size inc 2 red 4 ... -OsmoBSC(config-power-ctrl)# rxlev-thresh lower? +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower? lower Lower RxLev value (default is 32, i.e. -78 dBm) -OsmoBSC(config-power-ctrl)# rxlev-thresh lower ? +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower ? <0-63> Lower RxLev value (signal strength, 0 is worst, 63 is best) -OsmoBSC(config-power-ctrl)# rxlev-thresh lower 30 upper? +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower 30 upper? upper Upper RxLev value (default is 38, i.e. -72 dBm) -OsmoBSC(config-power-ctrl)# rxlev-thresh lower 30 upper ? +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower 30 upper ? <0-63> Upper RxLev value (signal strength, 0 is worst, 63 is best) -OsmoBSC(config-power-ctrl)# rxlev-thresh lower 30 upper 63 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower 30 upper 63 +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !rxlev-thresh @@ -163,16 +163,16 @@ rxlev-thresh lower 30 upper 63 ... -OsmoBSC(config-power-ctrl)# rxqual-thresh lower? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower? lower Lower RxQual value (default is 0, i.e. BER < 0.2%) -OsmoBSC(config-power-ctrl)# rxqual-thresh lower ? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower ? <0-7> Lower RxQual value (signal quality, 0 is best, 7 is worst) -OsmoBSC(config-power-ctrl)# rxqual-thresh lower 0 upper? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper? upper Upper RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%) -OsmoBSC(config-power-ctrl)# rxqual-thresh lower 0 upper ? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper ? <0-7> Upper RxQual value (signal quality, 0 is best, 7 is worst) -OsmoBSC(config-power-ctrl)# rxqual-thresh lower 0 upper 7 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper 7 +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !rxqual-thresh @@ -183,9 +183,9 @@ rxqual-thresh lower 0 upper 7 ... -OsmoBSC(config-power-ctrl)# rxlev-avg algo osmo-ewma beta 50 -OsmoBSC(config-power-ctrl)# rxqual-avg algo unweighted -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# rxlev-avg algo osmo-ewma beta 50 +OsmoBSC(config-ms-power-ctrl)# rxqual-avg algo unweighted +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !(rxlev-avg|rxqual-avg) @@ -202,10 +202,10 @@ rxqual-avg params hreqave 4 hreqt 6 ... -OsmoBSC(config-power-ctrl)# rxlev-avg params hreqave 2 hreqt 20 +OsmoBSC(config-ms-power-ctrl)# rxlev-avg params hreqave 2 hreqt 20 % Hreqave (2) * Hreqt (20) = 40 must be < 32 -OsmoBSC(config-power-ctrl)# rxlev-avg params hreqave 2 hreqt 15 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# rxlev-avg params hreqave 2 hreqt 15 +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !rxlev-avg params @@ -214,7 +214,7 @@ rxlev-avg params hreqave 2 hreqt 15 ... -OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-ms-power-ctrl)# exit OsmoBSC(config-net-bts)# ### Disable BS/MS Power Control OsmoBSC(config-net-bts)# no bs-power-control OsmoBSC(config-net-bts)# no ms-power-control @@ -225,14 +225,14 @@ ... OsmoBSC(config-net-bts)# bs-power-control -OsmoBSC(config-power-ctrl)# mode static reset +OsmoBSC(config-bs-power-ctrl)# mode static reset % Reset to default parameters -OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-bs-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control -OsmoBSC(config-power-ctrl)# mode static reset +OsmoBSC(config-ms-power-ctrl)# mode static reset % Reset to default parameters -OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-ms-power-ctrl)# exit OsmoBSC(config-net-bts)# show running-config ... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I66d414a5f761eeec042a47207fc7d295e073cd10 Gerrit-Change-Number: 21839 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 Dec 22 11:56:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 22 Dec 2020 11:56:07 +0000 Subject: Change in osmo-bsc[master]: vty: cosmetic: make all 'struct cmd_node' definitions static References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21840 ) Change subject: vty: cosmetic: make all 'struct cmd_node' definitions static ...................................................................... vty: cosmetic: make all 'struct cmd_node' definitions static Change-Id: I7bc8fcb53aef8dbee120e8a6457d8ce4227c7698 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/40/21840/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 9bf83e9..7774147 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -141,31 +141,31 @@ { 0, NULL } }; -struct cmd_node net_node = { +static struct cmd_node net_node = { GSMNET_NODE, "%s(config-net)# ", 1, }; -struct cmd_node bts_node = { +static struct cmd_node bts_node = { BTS_NODE, "%s(config-net-bts)# ", 1, }; -struct cmd_node power_ctrl_node = { +static struct cmd_node power_ctrl_node = { POWER_CTRL_NODE, "%s(config-power-ctrl)# ", 1, }; -struct cmd_node trx_node = { +static struct cmd_node trx_node = { TRX_NODE, "%s(config-net-bts-trx)# ", 1, }; -struct cmd_node ts_node = { +static struct cmd_node ts_node = { TS_NODE, "%s(config-net-bts-trx-ts)# ", 1, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7bc8fcb53aef8dbee120e8a6457d8ce4227c7698 Gerrit-Change-Number: 21840 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 Dec 22 11:56:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 11:56:13 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: WIP: gprs_ns2: add new vty2 ...................................................................... Patch Set 18: Code-Review-1 (7 comments) https://gerrit.osmocom.org/c/libosmocore/+/21487/18/include/osmocom/gprs/gprs_ns2.h File include/osmocom/gprs/gprs_ns2.h: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/include/osmocom/gprs/gprs_ns2.h at 45 PS18, Line 45: GPRS_NS2_LL_UNDEF, /*!< undefined used by vty */ what do you mean here? "undefined use by vty"? or "undefined is used by bty"? If the second, simply write "used by bty", otherwise it's confusing. https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_internal.h at 188 PS18, Line 188: beautiful new spacing not related to the commit. https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_sns.c at 1541 PS18, Line 1541: * \param[in] stats Whether or not statistics shall also be printed */ ninja param, not showing up in the function! https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_sns.c at 1554 PS18, Line 1554: vty_out(vty, " ip-sns %s %d%s", addr_str.ip, addr_str.port, VTY_NEWLINE); port is probably %u https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c at 220 PS18, Line 220: /* TODO: add fr/gre */ what about this todo. https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c at 362 PS18, Line 362: vty_out(vty, "nsvc udp %s %s %d%s", ports as %u? https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c at 408 PS18, Line 408: // TODO timer this is missing? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 18 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 11:56: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 Dec 22 11:57:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 22 Dec 2020 11:57:13 +0000 Subject: Change in osmo-bsc[master]: power_control: add VTY commands for per-BTS configuration In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21685 ) Change subject: power_control: add VTY commands for per-BTS configuration ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21685/6/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21685/6/src/osmo-bsc/bsc_vty.c at 158 PS6, Line 158: "%s(config-power-ctrl)# ", > ACK! Adding another node with the same set of commands looks like a hack to me. [?] It worked, please see: https://gerrit.osmocom.org/c/osmo-bsc/+/21839. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifd6ea29c3b9dbaccf92856131d5fb2e352b84eb2 Gerrit-Change-Number: 21685 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 11:57:13 +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 Tue Dec 22 12:04:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 12:04:58 +0000 Subject: Change in osmo-bsc[master]: vty: cosmetic: make all 'struct cmd_node' definitions static In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21840 ) Change subject: vty: cosmetic: make all 'struct cmd_node' definitions static ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7bc8fcb53aef8dbee120e8a6457d8ce4227c7698 Gerrit-Change-Number: 21840 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 22 Dec 2020 12:04: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 Dec 22 12:24:43 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 12:24:43 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: WIP: gprs_ns2: add new vty2 ...................................................................... Patch Set 18: (9 comments) https://gerrit.osmocom.org/c/libosmocore/+/21487/18/include/osmocom/gprs/gprs_ns2.h File include/osmocom/gprs/gprs_ns2.h: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/include/osmocom/gprs/gprs_ns2.h at 45 PS18, Line 45: GPRS_NS2_LL_UNDEF, /*!< undefined used by vty */ > what do you mean here? "undefined use by vty"? or "undefined is used by bty"? If the second, simply [?] this sentence makes me smile. Even it wasn't meant that way. https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_internal.h at 188 PS18, Line 188: > beautiful new spacing not related to the commit. Ack https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_sns.c at 1541 PS18, Line 1541: * \param[in] stats Whether or not statistics shall also be printed */ > ninja param, not showing up in the function! it's not often that the documentation precedes https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_sns.c at 1554 PS18, Line 1554: vty_out(vty, " ip-sns %s %d%s", addr_str.ip, addr_str.port, VTY_NEWLINE); > port is probably %u Ack https://gerrit.osmocom.org/c/libosmocore/+/21487/4/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/4/src/gb/gprs_ns2_vty2.c at 670 PS4, Line 670: "A unique bind identifier created by ns bind\n" : "Remote IPv4 Address\n" "Remote IPv6 Address\n" : "Remote UDP Port\n" > could also all be #defines as we need them multiple times, even in the same order Done https://gerrit.osmocom.org/c/libosmocore/+/21487/15/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/15/src/gb/gprs_ns2_vty2.c at 232 PS15, Line 232: /* TODO: create a function GPRS_NS2_LL_UDP -> udp function */ > don't we already have a value_string for that? we have get_string_value(), not just get_value_strin [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c at 220 PS18, Line 220: /* TODO: add fr/gre */ > what about this todo. fr/gre is a todo of the ns2 implementation. IMHO: without test equipment this isn't going to be implemented. https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c at 362 PS18, Line 362: vty_out(vty, "nsvc udp %s %s %d%s", > ports as %u? Done https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c at 408 PS18, Line 408: // TODO timer > this is missing? Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 18 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 12:24:43 +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 Tue Dec 22 12:24:54 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 12:24:54 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 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/+/21487 to look at the new patch set (#19). Change subject: gprs_ns2: add new vty2 ...................................................................... gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,669 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/19 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 19 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 12:24:54 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 12:24:54 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send doublicated packets on retries 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/+/21822 to look at the new patch set (#3). Change subject: gprs_ns2: sns: don't send doublicated packets on retries ...................................................................... gprs_ns2: sns: don't send doublicated packets on retries When all retries exhausted it should change the state and not send out a packet Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e --- M src/gb/gprs_ns2_sns.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/21822/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 Gerrit-PatchSet: 3 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 Dec 22 12:24:57 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 12:24:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix force-unconfigured for IP-SNS NSE References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21841 ) Change subject: gprs_ns2: fix force-unconfigured for IP-SNS NSE ...................................................................... gprs_ns2: fix force-unconfigured for IP-SNS NSE The IP-SNS need to do a reselection of the IP-SNS remote for testing. Freeing all nsvc will force this. Change-Id: I367c215a830c02eae2a470cba314828b5e0fb5c9 --- M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c 2 files changed, 12 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/41/21841/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 9e09f0d..065f3ad 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -440,8 +440,12 @@ return CMD_WARNING; } - /* Perform the operation for all nsvc */ - gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); + if (nse->dialect == 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; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 41ef759..e48448f 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1485,8 +1485,12 @@ return CMD_WARNING; } - /* Perform the operation for all nsvc */ - gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); + if (nse->dialect == 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; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I367c215a830c02eae2a470cba314828b5e0fb5c9 Gerrit-Change-Number: 21841 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 Dec 22 12:38:21 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 12:38:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 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/+/21487 to look at the new patch set (#20). Change subject: gprs_ns2: add new vty2 ...................................................................... gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,674 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/20 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 20 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 13:01:07 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 13:01:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 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/+/21487 to look at the new patch set (#21). Change subject: gprs_ns2: add new vty2 ...................................................................... gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,674 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/21 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 21 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 13:12:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 13:12:00 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix force-unconfigured for IP-SNS NSE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21841 ) Change subject: gprs_ns2: fix force-unconfigured for IP-SNS NSE ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I367c215a830c02eae2a470cba314828b5e0fb5c9 Gerrit-Change-Number: 21841 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 22 Dec 2020 13:12: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 Dec 22 13:14:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 13:14:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 21: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/src/gb/gprs_ns2_vty2.c at 220 PS18, Line 220: /* TODO: add fr/gre */ > fr/gre is a todo of the ns2 implementation. [?] I could try to set up something, but given that it's a super niche feature of which we knew only one user historically, I think we have more important things to worry about. Side-Note: it might actually be easier to simply wrap the new FR code on top of GRE altogether. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 21 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 13:14:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes 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 Dec 22 13:15:08 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 13:15:08 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix confusing log message in gbprox_relay2nse In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 ) Change subject: gbproxy: Fix confusing log message in gbprox_relay2nse ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Gerrit-Change-Number: 21838 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 13: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 Tue Dec 22 13:15:21 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 13:15:21 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix confusing log message in gbprox_relay2nse In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 ) Change subject: gbproxy: Fix confusing log message in gbprox_relay2nse ...................................................................... gbproxy: Fix confusing log message in gbprox_relay2nse This function is now used to transmit messages in both directions, BSS->SGSN and SGSN->BSS. Print the actual direction in the logs Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Related: OS#4472 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 2 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/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index d84da1a..ca1c07c 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -148,8 +148,8 @@ uint32_t tlli; int rc; - DEBUGP(DGPRS, "NSE(%05u/SGSN)-BVC(%05u) proxying SGSN->BSS NSE(%05u/BSS)\n", - msgb_nsei(msg), ns_bvci, nse->nsei); + DEBUGP(DGPRS, "NSE(%05u/%s)-BVC(%05u/??) proxying to NSE(%05u/%s)\n", msgb_nsei(msg), + !nse->sgsn_facing ? "SGSN" : "BSS", ns_bvci, nse->nsei, nse->sgsn_facing ? "SGSN" : "BSS"); nsp.bvci = ns_bvci; nsp.nsei = nse->nsei; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I31682156dfe88f7ca121a711968e625caed8bd5e Gerrit-Change-Number: 21838 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 Tue Dec 22 13:16:45 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 13:16:45 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 22 Dec 2020 13:16: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 Dec 22 13:17:24 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 13:17:24 +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 removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21617 ) Change subject: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 ...................................................................... Removed Code-Review-1 by lynxis lazus -- 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: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 14:06:30 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 14:06:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 21: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21487/21/include/osmocom/vty/command.h File include/osmocom/vty/command.h: https://gerrit.osmocom.org/c/libosmocore/+/21487/21/include/osmocom/vty/command.h at 105 PS21, Line 105: L_NS_NSE_NODE, Doxygen comments? https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/gprs_ns2_sns.c at 1501 PS21, Line 1501: * \param[in] nse NS Entity whose IP-SNS state shall be printed */ Stats is still a parameter in this function https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/gprs_ns2_sns.c at 1540 PS21, Line 1540: * \param[in] stats Whether or not statistics shall also be printed */ Here it's not :-) https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/libosmogb.map File src/gb/libosmogb.map: https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/libosmogb.map at 167 PS21, Line 167: gprs_ns2_vty2_init; Add a TODO_RELEASE entry to move vty2_init to vty_init? No use introducing a deprecated API right away -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 21 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 14:06: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 Dec 22 14:10:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 22 Dec 2020 14:10:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix: explicitly enable/disable dynamic power control References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 ) Change subject: BSC_Tests: fix: explicitly enable/disable dynamic power control ...................................................................... BSC_Tests: fix: explicitly enable/disable dynamic power control In the recent osmo-bsc, dynamic MS/BS power control is disabled by default and needs to be enabled / configured explicitly. Change-Id: I029eac9d8f38477a395a72e4c00dd24d7107ca79 Related: SYS#4918 --- M bsc/BSC_Tests.ttcn 1 file changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/42/21842/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2695ce2..d69ae06 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -6363,10 +6363,23 @@ //pars.encr := valueof(t_EncrParams('01'O, f_rnd_octstring(8))); pars.exp_ms_power_params := true; + /* Enable dynamic power control */ + f_bts_0_cfg(BSCVTY, { + "ms-power-control", + "mode dyn-bts" + }); + f_init(1, true); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5), pars); vc_conn.done; + + /* Disable dynamic power control */ + f_bts_0_cfg(BSCVTY, { + "ms-power-control", + "mode static" + }); + f_shutdown_helper(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I029eac9d8f38477a395a72e4c00dd24d7107ca79 Gerrit-Change-Number: 21842 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 Dec 22 14:11:13 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 14:11:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send doublicated packets on retries In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21822 ) Change subject: gprs_ns2: sns: don't send doublicated packets on retries ...................................................................... Patch Set 5: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21822/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/21822/5//COMMIT_MSG at 7 PS5, Line 7: gprs_ns2: sns: don't send doublicated packets on retries duplicated https://gerrit.osmocom.org/c/libosmocore/+/21822/5//COMMIT_MSG at 9 PS5, Line 9: When all retries exhausted it should change the state and not send out a packet ... retries are exhausted -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 14:11: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 Dec 22 14:12:13 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 14:12:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: add log message when size/config retries exhausted In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21823 ) Change subject: gprs_ns2: sns: add log message when size/config retries exhausted ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5f7c04b364807418f5ba22132fc889b46d66aed0 Gerrit-Change-Number: 21823 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 14:12: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 Dec 22 14:23:36 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 14:23:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix force-unconfigured for IP-SNS NSE In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21841 ) Change subject: gprs_ns2: fix force-unconfigured for IP-SNS NSE ...................................................................... Patch Set 3: Code-Review+2 You could also squash this and change Ifec7288dbe71f10109e8b5c3849bf8f23ac7b557 together -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I367c215a830c02eae2a470cba314828b5e0fb5c9 Gerrit-Change-Number: 21841 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 22 Dec 2020 14:23: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 Dec 22 14:23:47 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 14:23:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21824 ) Change subject: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifec7288dbe71f10109e8b5c3849bf8f23ac7b557 Gerrit-Change-Number: 21824 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 14: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 Tue Dec 22 14:38:41 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:38:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 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/+/21617 to look at the new patch set (#2). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/17/21617/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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 14:45:07 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:45:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 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/+/21487 to look at the new patch set (#22). Change subject: gprs_ns2: add new vty2 ...................................................................... gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,674 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/22 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 22 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 14:45:09 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:45:09 +0000 Subject: Change in libosmocore[master]: frame_relay: prevent null pointer exception when talloc fails References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21843 ) Change subject: frame_relay: prevent null pointer exception when talloc fails ...................................................................... frame_relay: prevent null pointer exception when talloc fails Change-Id: Ib39682ad0c7f30c97303b3d0bb6240fddd23ec0b --- M src/gb/frame_relay.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/43/21843/1 diff --git a/src/gb/frame_relay.c b/src/gb/frame_relay.c index ae6bbf5..0304882 100644 --- a/src/gb/frame_relay.c +++ b/src/gb/frame_relay.c @@ -849,6 +849,8 @@ struct osmo_fr_network *osmo_fr_network_alloc(void *ctx) { struct osmo_fr_network *net = talloc_zero(ctx, struct osmo_fr_network); + if (!net) + return NULL; INIT_LLIST_HEAD(&net->links); net->T_defs = fr_tdefs; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib39682ad0c7f30c97303b3d0bb6240fddd23ec0b Gerrit-Change-Number: 21843 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 Dec 22 14:45:10 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:45:10 +0000 Subject: Change in libosmocore[master]: frame_relay: link_alloc: move log message to the end References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21844 ) Change subject: frame_relay: link_alloc: move log message to the end ...................................................................... frame_relay: link_alloc: move log message to the end The link->name is still not set resulting in logging a (null) Change-Id: I67cd4bce8238340e6ecb8d04a9a39c8b8d7d63e7 --- M src/gb/frame_relay.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/21844/1 diff --git a/src/gb/frame_relay.c b/src/gb/frame_relay.c index 0304882..3a51700 100644 --- a/src/gb/frame_relay.c +++ b/src/gb/frame_relay.c @@ -880,9 +880,6 @@ struct osmo_fr_link *link = talloc_zero(net, struct osmo_fr_link); if (!link) return NULL; - - LOGPFRL(link, LOGL_INFO, "Creating frame relay link with role %s\n", osmo_fr_role_str(role)); - link->role = role; link->net = net; link->name = talloc_strdup(link, name); @@ -901,6 +898,8 @@ break; } + LOGPFRL(link, LOGL_INFO, "Creating frame relay link with role %s\n", osmo_fr_role_str(role)); + return link; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I67cd4bce8238340e6ecb8d04a9a39c8b8d7d63e7 Gerrit-Change-Number: 21844 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 Dec 22 14:45:10 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:45:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: setup_device: allow to setup a device a fresh dahdi device References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21845 ) Change subject: gprs_ns2_fr: setup_device: allow to setup a device a fresh dahdi device ...................................................................... gprs_ns2_fr: setup_device: allow to setup a device a fresh dahdi device When a dahdi device hasn't been setupped yet, ioctl IF_GET_PROTO fails with invalid argument. Also fix the device check to skip ioctl's if the device is also in the correct state. Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a --- M src/gb/gprs_ns2_fr.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/45/21845/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 1a6b92f..3435cf7 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -476,16 +476,17 @@ req.ifr_settings.size = sizeof(buffer); req.ifr_settings.type = IF_GET_PROTO; + /* EINVAL is returned when no protocol has been set */ rc = ioctl(sock, SIOCWANDEV, &req); - if (rc < 0) { + if (rc < 0 && errno != EINVAL) { LOGP(DLNS, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n", netif, strerror(errno)); goto err; } /* check if the device is good */ - if (req.ifr_settings.type != IF_PROTO_FR && fr->lmi != LMI_NONE) { - LOGP(DLNS, LOGL_INFO, "%s: has correct frame relay mode and lmi\n", netif); + 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); goto ifup; } @@ -516,6 +517,7 @@ /* monitored events count */ fr->n393 = 4; + LOGP(DLNS, LOGL_ERROR, "%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", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a Gerrit-Change-Number: 21845 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 Dec 22 14:45:11 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:45:11 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty2: initialize frame relay network References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21846 ) Change subject: gprs_ns2_vty2: initialize frame relay network ...................................................................... gprs_ns2_vty2: initialize frame relay network Change-Id: I21a074f14fcd8817ae8297dc36aa4b4046a85da0 --- M src/gb/gprs_ns2_vty2.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/21846/1 diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index be44597..a1827d6 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1593,6 +1593,10 @@ 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); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I21a074f14fcd8817ae8297dc36aa4b4046a85da0 Gerrit-Change-Number: 21846 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 Dec 22 14:49:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 14:49:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix: explicitly enable/disable dynamic power control In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 ) Change subject: BSC_Tests: fix: explicitly enable/disable dynamic power control ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I029eac9d8f38477a395a72e4c00dd24d7107ca79 Gerrit-Change-Number: 21842 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 14:49: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 Dec 22 14:51:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 14:51:23 +0000 Subject: Change in libosmocore[master]: frame_relay: link_alloc: move log message to the end In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21844 ) Change subject: frame_relay: link_alloc: move log message to the end ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I67cd4bce8238340e6ecb8d04a9a39c8b8d7d63e7 Gerrit-Change-Number: 21844 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 14:51: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 Dec 22 14:51:50 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:51:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 22: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21487/21/include/osmocom/vty/command.h File include/osmocom/vty/command.h: https://gerrit.osmocom.org/c/libosmocore/+/21487/21/include/osmocom/vty/command.h at 105 PS21, Line 105: L_NS_NSE_NODE, > Doxygen comments? Done https://gerrit.osmocom.org/c/libosmocore/+/21487/1/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/1/src/gb/gprs_ns2_vty2.c at 83 PS1, Line 83: v > this isn't done by the vty already? I'm checking now the identifier. https://gerrit.osmocom.org/c/libosmocore/+/21487/1/src/gb/gprs_ns2_vty2.c at 641 PS1, Line 641: > No. You could have multiple nsvc over the same bind. [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21487/1/src/gb/gprs_ns2_vty2.c at 953 PS1, Line 953: > likewise "no sns BINDGROUP" should be sufficient as the group name is unique, right? Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 22 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 14:51:50 +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 Dec 22 14:53:26 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:53:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 22: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/gprs_ns2_sns.c at 1501 PS21, Line 1501: * \param[in] nse NS Entity whose IP-SNS state shall be printed */ > Stats is still a parameter in this function Done https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/gprs_ns2_sns.c at 1540 PS21, Line 1540: * \param[in] stats Whether or not statistics shall also be printed */ > Here it's not :-) Done https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/libosmogb.map File src/gb/libosmogb.map: https://gerrit.osmocom.org/c/libosmocore/+/21487/21/src/gb/libosmogb.map at 167 PS21, Line 167: gprs_ns2_vty2_init; > Add a TODO_RELEASE entry to move vty2_init to vty_init? No use introducing a deprecated API right aw [?] i think the tdoo_release is wrong. however you're right. i want to do another cleanup of the ns2 code bases before release. e.g. renaming things of ns2. improve gprs_ns2 and ns2_ prefix. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 22 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 14:53:26 +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 Dec 22 14:53:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 14:53:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty2: initialize frame relay network In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21846 ) Change subject: gprs_ns2_vty2: initialize frame relay network ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I21a074f14fcd8817ae8297dc36aa4b4046a85da0 Gerrit-Change-Number: 21846 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 22 Dec 2020 14: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 Tue Dec 22 14:53:50 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:53:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vty2: initialize frame relay network In-Reply-To: References: Message-ID: lynxis lazus has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21846 ) Change subject: gprs_ns2_vty2: initialize frame relay network ...................................................................... Abandoned fixup for vty2 code. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I21a074f14fcd8817ae8297dc36aa4b4046a85da0 Gerrit-Change-Number: 21846 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 14:56:08 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:56:08 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send doublicated packets on retries In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21822 ) Change subject: gprs_ns2: sns: don't send doublicated packets on retries ...................................................................... Patch Set 6: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21822/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/21822/5//COMMIT_MSG at 7 PS5, Line 7: gprs_ns2: sns: don't send doublicated packets on retries > duplicated Done https://gerrit.osmocom.org/c/libosmocore/+/21822/5//COMMIT_MSG at 9 PS5, Line 9: When all retries exhausted it should change the state and not send out a packet > ... [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 14:56:08 +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 Dec 22 14:56:24 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:56:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 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/+/21487 to look at the new patch set (#23). Change subject: gprs_ns2: add new vty2 ...................................................................... gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,675 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/23 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 23 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 14:56:24 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 14:56:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send duplicated packets on retries 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/+/21822 to look at the new patch set (#7). Change subject: gprs_ns2: sns: don't send duplicated packets on retries ...................................................................... gprs_ns2: sns: don't send duplicated packets on retries When all retries are exhausted it should change the state and not send out a packet. Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e --- M src/gb/gprs_ns2_sns.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/21822/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 Gerrit-PatchSet: 7 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 Tue Dec 22 15:06:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 15:06:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send duplicated packets on retries In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21822 ) Change subject: gprs_ns2: sns: don't send duplicated packets on retries ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 15:06: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 Dec 22 15:06:16 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 15:06:16 +0000 Subject: Change in libosmocore[master]: frame_relay: prevent null pointer exception when talloc fails In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21843 ) Change subject: frame_relay: prevent null pointer exception when talloc fails ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib39682ad0c7f30c97303b3d0bb6240fddd23ec0b Gerrit-Change-Number: 21843 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 15: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 Tue Dec 22 15:07:01 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 15:07:01 +0000 Subject: Change in libosmocore[master]: frame_relay: link_alloc: move log message to the end In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21844 ) Change subject: frame_relay: link_alloc: move log message to the end ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I67cd4bce8238340e6ecb8d04a9a39c8b8d7d63e7 Gerrit-Change-Number: 21844 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 15:07: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 Dec 22 15:09:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 15:09:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 23: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21487/18/include/osmocom/gprs/gprs_ns2.h File include/osmocom/gprs/gprs_ns2.h: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/include/osmocom/gprs/gprs_ns2.h at 45 PS18, Line 45: GPRS_NS2_LL_UNDEF, /*!< undefined used by vty */ > this sentence makes me smile. Even it wasn't meant that way. So then please improve the description. https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c at 1024 PS23, Line 1024: NSVCI_STR Are you sure this repeated NSVCI_STR belongs here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 23 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 15:09:38 +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 Dec 22 15:09:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 15:09:58 +0000 Subject: Change in libosmocore[master]: frame_relay: prevent null pointer exception when talloc fails In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21843 ) Change subject: frame_relay: prevent null pointer exception when talloc fails ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib39682ad0c7f30c97303b3d0bb6240fddd23ec0b Gerrit-Change-Number: 21843 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 15:09: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 Dec 22 15:12:33 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 15:12:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: setup_device: allow to setup a device a fresh dahdi device In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21845 ) Change subject: gprs_ns2_fr: setup_device: allow to setup a device a fresh dahdi device ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21845/1/src/gb/gprs_ns2_fr.c File src/gb/gprs_ns2_fr.c: https://gerrit.osmocom.org/c/libosmocore/+/21845/1/src/gb/gprs_ns2_fr.c at 496 PS1, Line 496: LOGP(DLNS, LOGL_ERROR, "Unable to bring up the device %s: %s\n", You're actually bringing down the device https://gerrit.osmocom.org/c/libosmocore/+/21845/1/src/gb/gprs_ns2_fr.c at 520 PS1, Line 520: LOGP(DLNS, LOGL_ERROR, "%s: Setting frame relay related parameters\n", netif); LOGL_INFO -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a Gerrit-Change-Number: 21845 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 15:12: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 Tue Dec 22 15:14:19 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 15:14:19 +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 ...................................................................... Set Ready For Review -- 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: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 22 Dec 2020 15:14: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 Tue Dec 22 15:15:03 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 15:15:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send duplicated packets on retries In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21822 ) Change subject: gprs_ns2: sns: don't send duplicated packets on retries ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 15: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 Tue Dec 22 15:21:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 15:21:15 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21701 ) Change subject: utils: add osmo-ns-dummy ...................................................................... Patch Set 12: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21701/12/utils/osmo-ns-dummy.c File utils/osmo-ns-dummy.c: https://gerrit.osmocom.org/c/libosmocore/+/21701/12/utils/osmo-ns-dummy.c at 29 PS12, Line 29: static char *config_file = "osmo-pcu.cfg"; osmo-pcu? -- 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: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 15:21: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 Tue Dec 22 15:21:42 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 15:21:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: setup_device: allow to setup a device a fresh dahdi device In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21845 ) Change subject: gprs_ns2_fr: setup_device: allow to setup a device a fresh dahdi device ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21845/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/21845/2//COMMIT_MSG at 7 PS2, Line 7: gprs_ns2_fr: setup_device: allow to setup a device a fresh dahdi device ...setup a new dahdi device https://gerrit.osmocom.org/c/libosmocore/+/21845/2//COMMIT_MSG at 9 PS2, Line 9: setupped set up / configured -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a Gerrit-Change-Number: 21845 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 15:21: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 Dec 22 15:31:01 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 15:31:01 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 23: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c at 1024 PS23, Line 1024: NSVCI_STR > Are you sure this repeated NSVCI_STR belongs here? Seems those are repeated both for "nsvci" and the actual range. In any case you probably want to move it to the end. https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c at 1108 PS23, Line 1108: NSVCI_STR : NSVCI_STR : "Remote IPv4 Address\n" "Remote IPv6 Address\n" : "Remote UDP Port\n" Oder is wrong here as well -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 23 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 15:31:01 +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 Dec 22 15:37:30 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 15:37:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 23: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21487/18/include/osmocom/gprs/gprs_ns2.h File include/osmocom/gprs/gprs_ns2.h: https://gerrit.osmocom.org/c/libosmocore/+/21487/18/include/osmocom/gprs/gprs_ns2.h at 45 PS18, Line 45: GPRS_NS2_LL_UNDEF, /*!< undefined used by vty */ > So then please improve the description. i've added a ",". hopefully it's ok this way. https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c at 1024 PS23, Line 1024: NSVCI_STR > Seems those are repeated both for "nsvci" and the actual range. [?] you're right. I moved nsvci early today to the end. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 23 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 15:37:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin 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 Dec 22 15:37:47 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 15:37:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 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/+/21487 to look at the new patch set (#24). Change subject: gprs_ns2: add new vty2 ...................................................................... gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,675 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/21487/24 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 24 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 15:37:47 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 15:37:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: setup_device: allow to setup a fresh dahdi device 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/+/21845 to look at the new patch set (#3). Change subject: gprs_ns2_fr: setup_device: allow to setup a fresh dahdi device ...................................................................... gprs_ns2_fr: setup_device: allow to setup a fresh dahdi device When a dahdi device hasn't been setupped yet, ioctl IF_GET_PROTO fails with invalid argument. Also fix the device check to skip ioctl's if the device is also in the correct state. Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a --- M src/gb/gprs_ns2_fr.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/45/21845/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a Gerrit-Change-Number: 21845 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus 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 Tue Dec 22 15:38:14 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 22 Dec 2020 15:38:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 24: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c at 1108 PS23, Line 1108: NSVCI_STR : NSVCI_STR : "Remote IPv4 Address\n" "Remote IPv6 Address\n" : "Remote UDP Port\n" > Oder is wrong here as well Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 24 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 22 Dec 2020 15:38: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 Dec 22 15:39:15 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 15:39:15 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 24: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/21487/23/src/gb/gprs_ns2_vty2.c at 1108 PS23, Line 1108: NSVCI_STR : NSVCI_STR : "Remote IPv4 Address\n" "Remote IPv6 Address\n" : "Remote UDP Port\n" > Oder is wrong here as well Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 24 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 15:39:15 +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 Tue Dec 22 16:22:56 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 16:22:56 +0000 Subject: Change in osmo-ci[master]: Add timeout to gerrit verifications References: Message-ID: daniel has uploaded this change for review. ( 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, 9 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/47/21847/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 8d3e2cd..8b3bf7b 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 -v 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,7 +80,7 @@ -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 @@ -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,7 +150,7 @@ {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 @@ -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,7 +221,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_ss7: repos_url: '{gerrit_url}/erlang/{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: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 16:25:30 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 16:25:30 +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 1: Haven't tested this with docker yet, only running a build locally I think I remember that the jenkins timeout (which I didn't find) doesn't play nice with docker. -- 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: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 16:25: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 Tue Dec 22 17:27:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 17:27:33 +0000 Subject: Change in osmo-bsc[master]: WIP: Introduce Neigbhour resolution service References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: WIP: Introduce Neigbhour resolution service ...................................................................... WIP: Introduce Neigbhour resolution service 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, 373 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/21848/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 233c3b6..35e8545 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1213,6 +1213,10 @@ /* Remote BSS Cell Identifier Lists */ struct neighbor_ident_list *neighbor_bss_cells; + /* Remote BSS resolution sevice (CTRL iface) */ + char *neigh_ctrl_addr; + uint16_t neigh_ctrl_port; + struct ctrl_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..c5b8e42 100644 --- a/include/osmocom/bsc/neighbor_ident.h +++ b/include/osmocom/bsc/neighbor_ident.h @@ -45,7 +45,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 +59,13 @@ 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); + + +#include +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_NIDE_NEIGHBOR +}; diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index fe46d45..a750317 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 d5a848d..5819633 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..24709b2 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,107 @@ 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; + + //LOGP(DLINP, LOGL_DEBUG, "get_neighbor_resolve_rai_by_lac_ci called: %s\n", cmd->variable); + + if (!cmd->variable) + goto fmt_err; + + tmp = talloc_strdup(cmd, cmd->variable); + if (!tmp) + goto oom; + + 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); + + //LOGP(DLINP, LOGL_DEBUG, "lac=%u cell_id=%u arfcn=%u bsic=%u\n", lac, cell_id, ni.arfcn, ni.bsic); + + 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, "%u,%u,%u,%u,%u", cgi_ps->rai.lac.plmn.mcc, + cgi_ps->rai.lac.plmn.mnc, + cgi_ps->rai.lac.lac, cgi_ps->rai.rac, + cgi_ps->cell_identity); + + 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; +oom: + cmd->reply = "OOM"; + 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_NIDE_NEIGHBOR); +} diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c index 7feed2a..49b740c 100644 --- a/src/osmo-bsc/neighbor_ident_vty.c +++ b/src/osmo-bsc/neighbor_ident_vty.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -84,6 +85,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 Switch, 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 +158,35 @@ 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; + cell_id = (struct gsm0808_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 +279,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 +537,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 +578,25 @@ return neighbor_del_all(vty); } +DEFUN(cfg_neighbor_bind, cfg_neighbor_bind_cmd, + "neighbor bind " VTY_IPV46_CMD " <0-65535>", + NEIGHBOR_DOC "Bind Neighbor Resolution Service (CTRL interface) to given ip and port\n" + "IPv4 address to bind the service to\n" "IPv6 address to bind the service to\n" + "Port to bind the service to\n") +{ + osmo_talloc_replace_string(g_net, &g_net->neigh_ctrl_addr, argv[0]); + g_net->neigh_ctrl_port = atoi(argv[1]); + 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 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 +648,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 +686,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 +744,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..9955bd5 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 = neighbor_controlif_setup(bsc_gsmnet); + if (!bsc_gsmnet->neigh_ctrl) { + fprintf(stderr, "Failed to install neighbor control commands. Exiting.\n"); + exit(1); + } + rc = neighbor_ctrl_cmds_install(bsc_gsmnet); + if (rc < 0) { + fprintf(stderr, "Failed to install neighbor control 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/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..3931c08 --- /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 bind 127.0.0.1 5000 + 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..a0f230e 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 (5000, "./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'], '23,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..48af8bf 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 bind 1.2.3.4 ? + <0-65535> Port to bind the service to + 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 Switch, 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: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 17:34:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 17:34:44 +0000 Subject: Change in libosmocore[master]: WIP: Intoduce Packet Switch CGI References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21849 ) Change subject: WIP: Intoduce Packet Switch CGI ...................................................................... WIP: Intoduce Packet Switch CGI Change-Id: I87016d1c23f893cbb7dad2e6ff74566ad8a06b5c --- 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/49/21849/1 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..0e740ab 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, 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..ac4b4e8 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -1613,6 +1613,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; -- 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-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 22 17:35:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 22 Dec 2020 17:35:49 +0000 Subject: Change in osmo-bsc[master]: WIP: 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 (#2). Change subject: WIP: Introduce Neigbhour resolution service ...................................................................... WIP: Introduce Neigbhour resolution service Depends: libosmocore.git Change-Id I87016d1c23f893cbb7dad2e6ff74566ad8a06b5c 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, 373 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/21848/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: 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 Dec 22 19:33:31 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 19:33:31 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21692/7/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21692/7/src/gbproxy/gb_proxy_vty.c at 251 PS7, Line 251: DEFUN(show_gbproxy_cell, show_gbproxy_cell_cmd, "show gbproxy cell [stats]", > nice catch. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 22 Dec 2020 19:33:31 +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 Tue Dec 22 19:33:34 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 22 Dec 2020 19:33:34 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add "show gbproxy cell ..." VTY command In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 ) Change subject: gbproxy: Add "show gbproxy cell ..." VTY command ...................................................................... gbproxy: Add "show gbproxy cell ..." VTY command This allows the user to inspect CELL related gb-proxy state. Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 42 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index fc2e8f1..595ac02 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -83,6 +83,32 @@ } } +static void gbproxy_vty_print_cell(struct vty *vty, struct gbproxy_cell *cell, bool show_stats) +{ + struct gprs_ra_id raid; + gsm48_parse_ra(&raid, cell->ra); + unsigned int num_sgsn_bvc = 0; + unsigned int i; + + vty_out(vty, "BVCI %5u RAI %s: ", cell->bvci, osmo_rai_name(&raid)); + if (cell->bss_bvc) + vty_out(vty, "BSS NSEI %5u, SGSN NSEI ", cell->bss_bvc->nse->nsei); + else + vty_out(vty, "BSS NSEI , SGSN NSEI "); + + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + struct gbproxy_bvc *sgsn_bvc = cell->sgsn_bvc[i]; + if (sgsn_bvc) { + vty_out(vty, "%5u ", sgsn_bvc->nse->nsei); + num_sgsn_bvc++; + } + } + if (num_sgsn_bvc) + vty_out(vty, "%s", VTY_NEWLINE); + else + vty_out(vty, "%s", VTY_NEWLINE); +} + static int config_write_gbproxy(struct vty *vty) { struct gbproxy_nse *nse; @@ -222,6 +248,21 @@ return CMD_SUCCESS; } +DEFUN(show_gbproxy_cell, show_gbproxy_cell_cmd, "show gbproxy cell [stats]", + SHOW_STR "Display information about the Gb proxy\n" + "Show GPRS Cell Information\n" + "Show statistics\n") +{ + struct gbproxy_cell *cell; + bool show_stats = argc >= 1; + int i; + + hash_for_each(g_cfg->cells, i, cell, list) + gbproxy_vty_print_cell(vty, cell, show_stats); + + return CMD_SUCCESS; +} + DEFUN(show_gbproxy_links, show_gbproxy_links_cmd, "show gbproxy links", SHOW_STR "Display information about the Gb proxy\n" "Show logical links\n") { @@ -336,6 +377,7 @@ int gbproxy_vty_init(void) { install_element_ve(&show_gbproxy_bvc_cmd); + install_element_ve(&show_gbproxy_cell_cmd); install_element_ve(&show_gbproxy_links_cmd); install_element_ve(&logging_fltr_bvc_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iad1e8bbc358df9a3b3392404a70445a169dfebd5 Gerrit-Change-Number: 21692 Gerrit-PatchSet: 9 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Dec 22 21:01:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 21:01:03 +0000 Subject: Change in libosmocore[master]: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restr... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21789 ) Change subject: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Gerrit-Change-Number: 21789 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 22 Dec 2020 21:01: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 Dec 22 21:01:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 21:01:12 +0000 Subject: Change in libosmocore[master]: rest_octets: Fix decoding of SI3 3G Early Classmark Sending Restriction In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21818 ) Change subject: rest_octets: Fix decoding of SI3 3G Early Classmark Sending Restriction ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idd170bc0f12e8b215a624e0632a106bde076179b Gerrit-Change-Number: 21818 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 22 Dec 2020 21:01: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 Dec 22 21:07:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 21:07:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... Patch Set 24: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 24 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 21:07: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 Dec 22 22:27:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 22:27:06 +0000 Subject: Change in osmo-bsc[master]: power_control: reflect MS/BS Power difference in the VTY prompt In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21839 ) Change subject: power_control: reflect MS/BS Power difference in the VTY prompt ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21839/1/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21839/1/src/osmo-bsc/bsc_vty.c at 4874 PS1, Line 4874: if (params->dir == GSM_PWR_CTRL_DIR_UL) I was about to say you cannot do that as there might be multiple VTY sessions. But then, the config node is alrady protected so there can only be one program in any of those nodes... interesting hack ;) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I66d414a5f761eeec042a47207fc7d295e073cd10 Gerrit-Change-Number: 21839 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 22 Dec 2020 22:27:06 +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 Dec 22 22:27:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 22 Dec 2020 22:27:14 +0000 Subject: Change in osmo-bsc[master]: vty: cosmetic: make all 'struct cmd_node' definitions static In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21840 ) Change subject: vty: cosmetic: make all 'struct cmd_node' definitions static ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7bc8fcb53aef8dbee120e8a6457d8ce4227c7698 Gerrit-Change-Number: 21840 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 22 Dec 2020 22:27: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 Dec 23 01:59:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 01:59:08 +0000 Subject: Change in osmo-bsc[master]: handover_test: implement as VTY shell In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21642 ) Change subject: handover_test: implement as VTY shell ...................................................................... handover_test: implement as VTY shell Drop the string arrays, and move the 32 handover tests to separate script files. Instead of the peculiar implementation and instead of cryptic commands, implement the handover test scripts as a VTY. handover_test.c now sets up a VTY with handover testing VTY commands. It also features the complete and unabridged VTY configuration nodes of osmo-bsc itself. That allows dropping various ho script commands. Before: static char *test_case_14[] = { "Handover to congested cell, if RX level is below minimum\n\n" "The better neighbor cell is congested, so no handover is performed.\n" "If the RX level of the current cell drops below minimum acceptable\n" "level, the handover is performed.\n", "create-n-bts", "2", "create-ms", "0", "TCH/F", "AMR", "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", "set-min-free", "1", "TCH/F", "4", "set-min-free", "1", "TCH/H", "4", "meas-rep", "0","0","1","0", "10","0", "1","0","30", "expect-no-chan", "meas-rep", "0","0","1","0", "9","0", "1","0","30", "expect-chan", "1", "1", "ack-chan", "expect-ho", "0", "1", "ho-complete", "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", } After: # Handover to congested cell, if RX level is below minimum # The better neighbor cell is congested, so no handover is performed. # If the RX level of the current cell drops below minimum acceptable # level, the handover is performed. create-n-bts 2 set-ts-use trx 0 0 states * TCH/F - - - - - - network bts 1 handover2 min-free-slots tch/f 4 handover2 min-free-slots tch/h 4 meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 30 expect-no-chan meas-rep lchan 0 0 1 0 rxlev 9 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 - - - - - - Note how osmo-bsc's stock vty config nodes seamlessly integrate in the test steps: just enter a configuration node, modify some values, and indenting trivially takes care of exiting nodes correctly. Running a test manually: ./handover_test test_0123.ho_vty Instead of calling each test separately in testsuite.at, have a handover_tests.sh script that picks up new tests just by presence of files named test*.ho_vty. Rationale: It was considered to move handover tests to the TTCN suite, but there is an advantage in having these C tests: they run super fast and catch bugs even in the gerrit verification job, potentially saving a lot of time. It is a reality that I need more of these tests, for dynamic timeslots and TCH/F <-> TCH/H switches. The way the handover tests are written, as arrays of strings containing cryptic fixed-argument script commands, has been a pain to work with from the start, and now I am no longer willing to endure that pain. Change-Id: Ie238ebe41039d3fa44c9699937589e000883e052 --- M tests/handover/Makefile.am M tests/handover/handover_test.c D tests/handover/handover_test.ok A tests/handover/handover_tests.ok A tests/handover/handover_tests.sh A tests/handover/test0000.ho_vty A tests/handover/test0001.ho_vty A tests/handover/test0002.ho_vty A tests/handover/test0003.ho_vty A tests/handover/test0004.ho_vty A tests/handover/test0005.ho_vty A tests/handover/test0006.ho_vty A tests/handover/test0007.ho_vty A tests/handover/test0008.ho_vty A tests/handover/test0009.ho_vty A tests/handover/test0010.ho_vty A tests/handover/test0011.ho_vty A tests/handover/test0012.ho_vty A tests/handover/test0013.ho_vty A tests/handover/test0014.ho_vty A tests/handover/test0015.ho_vty A tests/handover/test0016.ho_vty A tests/handover/test0017.ho_vty A tests/handover/test0018.ho_vty A tests/handover/test0019.ho_vty A tests/handover/test0020.ho_vty A tests/handover/test0021.ho_vty A tests/handover/test0022.ho_vty A tests/handover/test0023.ho_vty A tests/handover/test0024.ho_vty A tests/handover/test0025.ho_vty A tests/handover/test0026.ho_vty A tests/handover/test0027.ho_vty A tests/handover/test0028.ho_vty A tests/handover/test0029.ho_vty A tests/handover/test0030.ho_vty A tests/handover/test0031.ho_vty A tests/handover/test0032.ho_vty M tests/testsuite.at 39 files changed, 1,387 insertions(+), 1,714 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index eb2a26b..3951624 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -21,7 +21,9 @@ $(NULL) EXTRA_DIST = \ - handover_test.ok \ + handover_tests.sh \ + handover_tests.ok \ + $(srcdir)/test*.ho_vty \ neighbor_ident_test.ok \ neighbor_ident_test.err \ $(NULL) @@ -130,3 +132,4 @@ .PHONY: update_exp update_exp: $(builddir)/neighbor_ident_test >$(srcdir)/neighbor_ident_test.ok 2>$(srcdir)/neighbor_ident_test.err + $(srcdir)/handover_tests.sh $(srcdir) $(builddir) -u diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 28d87db..33e5ff0 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -26,6 +26,7 @@ #include #include #include +#include #include @@ -49,6 +50,9 @@ #include #include #include +#include + +#include "../../bscconfig.h" void *ctx; @@ -77,13 +81,21 @@ /* measurement report */ uint8_t meas_rep_ba = 0, meas_rep_valid = 1, meas_valid = 1, meas_multi_rep = 0; -uint8_t meas_dl_rxlev = 0, meas_dl_rxqual = 0; uint8_t meas_ul_rxlev = 0, meas_ul_rxqual = 0; -uint8_t meas_tx_power_ms = 0, meas_tx_power_bs = 0, meas_ta_ms = 0; +uint8_t meas_tx_power_ms = 0, meas_tx_power_bs = 0; uint8_t meas_dtx_ms = 0, meas_dtx_bs = 0, meas_nr = 0; -uint8_t meas_num_nc = 0, meas_rxlev_nc[6], meas_bsic_nc[6], meas_bcch_f_nc[6]; +char *codec_tch_f = NULL; +char *codec_tch_h = NULL; -static void gen_meas_rep(struct gsm_lchan *lchan) +struct neighbor_meas { + uint8_t rxlev; + uint8_t bsic; + uint8_t bcch_f; +}; + +static void gen_meas_rep(struct gsm_lchan *lchan, + uint8_t rxlev, uint8_t rxqual, uint8_t ta, + int neighbors_count, struct neighbor_meas *neighbors) { struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL"); struct abis_rsl_dchan_hdr *dh; @@ -108,7 +120,7 @@ msgb_tv_put(msg, RSL_IE_BS_POWER, meas_tx_power_bs); l1i[0] = 0; - l1i[1] = meas_ta_ms; + l1i[1] = ta; msgb_tv_fixed_put(msg, RSL_IE_L1_INFO, sizeof(l1i), l1i); buf = msgb_put(msg, 3); @@ -123,49 +135,44 @@ gh->msg_type = GSM48_MT_RR_MEAS_REP; /* measurement results */ - mr->rxlev_full = meas_dl_rxlev; - mr->rxlev_sub = meas_dl_rxlev; - mr->rxqual_full = meas_dl_rxqual; - mr->rxqual_sub = meas_dl_rxqual; + mr->rxlev_full = rxlev; + mr->rxlev_sub = rxlev; + mr->rxqual_full = rxqual; + mr->rxqual_sub = rxqual; mr->dtx_used = meas_dtx_ms; mr->ba_used = meas_rep_ba; - mr->meas_valid = !meas_valid; /* 0 = valid */ - if (meas_rep_valid) { - mr->no_nc_n_hi = meas_num_nc >> 2; - mr->no_nc_n_lo = meas_num_nc & 3; - } else { - /* no results for serving cells */ - mr->no_nc_n_hi = 1; - mr->no_nc_n_lo = 3; - } - mr->rxlev_nc1 = meas_rxlev_nc[0]; - mr->rxlev_nc2_hi = meas_rxlev_nc[1] >> 1; - mr->rxlev_nc2_lo = meas_rxlev_nc[1] & 1; - mr->rxlev_nc3_hi = meas_rxlev_nc[2] >> 2; - mr->rxlev_nc3_lo = meas_rxlev_nc[2] & 3; - mr->rxlev_nc4_hi = meas_rxlev_nc[3] >> 3; - mr->rxlev_nc4_lo = meas_rxlev_nc[3] & 7; - mr->rxlev_nc5_hi = meas_rxlev_nc[4] >> 4; - mr->rxlev_nc5_lo = meas_rxlev_nc[4] & 15; - mr->rxlev_nc6_hi = meas_rxlev_nc[5] >> 5; - mr->rxlev_nc6_lo = meas_rxlev_nc[5] & 31; - mr->bsic_nc1_hi = meas_bsic_nc[0] >> 3; - mr->bsic_nc1_lo = meas_bsic_nc[0] & 7; - mr->bsic_nc2_hi = meas_bsic_nc[1] >> 4; - mr->bsic_nc2_lo = meas_bsic_nc[1] & 15; - mr->bsic_nc3_hi = meas_bsic_nc[2] >> 5; - mr->bsic_nc3_lo = meas_bsic_nc[2] & 31; - mr->bsic_nc4 = meas_bsic_nc[3]; - mr->bsic_nc5 = meas_bsic_nc[4]; - mr->bsic_nc6 = meas_bsic_nc[5]; - mr->bcch_f_nc1 = meas_bcch_f_nc[0]; - mr->bcch_f_nc2 = meas_bcch_f_nc[1]; - mr->bcch_f_nc3 = meas_bcch_f_nc[2]; - mr->bcch_f_nc4 = meas_bcch_f_nc[3]; - mr->bcch_f_nc5_hi = meas_bcch_f_nc[4] >> 1; - mr->bcch_f_nc5_lo = meas_bcch_f_nc[4] & 1; - mr->bcch_f_nc6_hi = meas_bcch_f_nc[5] >> 2; - mr->bcch_f_nc6_lo = meas_bcch_f_nc[5] & 3; + mr->meas_valid = 0; /* 0 = valid */ + mr->no_nc_n_hi = neighbors_count >> 2; + mr->no_nc_n_lo = neighbors_count & 3; + + mr->rxlev_nc1 = neighbors[0].rxlev; + mr->rxlev_nc2_hi = neighbors[1].rxlev >> 1; + mr->rxlev_nc2_lo = neighbors[1].rxlev & 1; + mr->rxlev_nc3_hi = neighbors[2].rxlev >> 2; + mr->rxlev_nc3_lo = neighbors[2].rxlev & 3; + mr->rxlev_nc4_hi = neighbors[3].rxlev >> 3; + mr->rxlev_nc4_lo = neighbors[3].rxlev & 7; + mr->rxlev_nc5_hi = neighbors[4].rxlev >> 4; + mr->rxlev_nc5_lo = neighbors[4].rxlev & 15; + mr->rxlev_nc6_hi = neighbors[5].rxlev >> 5; + mr->rxlev_nc6_lo = neighbors[5].rxlev & 31; + mr->bsic_nc1_hi = neighbors[0].bsic >> 3; + mr->bsic_nc1_lo = neighbors[0].bsic & 7; + mr->bsic_nc2_hi = neighbors[1].bsic >> 4; + mr->bsic_nc2_lo = neighbors[1].bsic & 15; + mr->bsic_nc3_hi = neighbors[2].bsic >> 5; + mr->bsic_nc3_lo = neighbors[2].bsic & 31; + mr->bsic_nc4 = neighbors[3].bsic; + mr->bsic_nc5 = neighbors[4].bsic; + mr->bsic_nc6 = neighbors[5].bsic; + mr->bcch_f_nc1 = neighbors[0].bcch_f; + mr->bcch_f_nc2 = neighbors[1].bcch_f; + mr->bcch_f_nc3 = neighbors[2].bcch_f; + mr->bcch_f_nc4 = neighbors[3].bcch_f; + mr->bcch_f_nc5_hi = neighbors[4].bcch_f >> 1; + mr->bcch_f_nc5_lo = neighbors[4].bcch_f & 1; + mr->bcch_f_nc6_hi = neighbors[5].bcch_f >> 2; + mr->bcch_f_nc6_lo = neighbors[5].bcch_f & 3; msg->dst = lchan->ts->trx->bts->c0->rsl_link; msg->l2h = (unsigned char *)dh; @@ -195,7 +202,7 @@ "c+s4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "-", }; -static struct gsm_bts *create_bts(int num_trx, const char * const *ts_args) +static struct gsm_bts *_create_bts(int num_trx, const char * const *ts_args, int ts_args_count) { static int arfcn = 870; struct gsm_bts *bts; @@ -205,15 +212,10 @@ struct gsm_bts_trx *trx; fprintf(stderr, "- Creating BTS %d, %d TRX\n", bsc_gsmnet->num_bts, num_trx); - for (trx_i = 0; trx_i < num_trx; trx_i++) { - for (i = 0; i < 8; i++) - fprintf(stderr, "\t%s", ts_args[8*trx_i + i]); - fprintf(stderr, "\n"); - } bts = bsc_bts_alloc_register(bsc_gsmnet, GSM_BTS_TYPE_UNKNOWN, 0x3f); if (!bts) { - printf("No resource for bts1\n"); + fprintf(stderr, "No resource for bts1\n"); return NULL; } @@ -241,13 +243,21 @@ /* 4 full rate and 4 half rate channels */ for (i = 0; i < 8; i++) { - trx->ts[i].pchan_from_config = pchan_from_str(ts_args[trx_i * 8 + i]); + int arg_i = trx_i * 8 + i; + const char *ts_arg; + if (arg_i >= ts_args_count) + ts_arg = bts_default_ts[i]; + else + ts_arg = ts_args[arg_i]; + fprintf(stderr, "\t%s", ts_arg); + trx->ts[i].pchan_from_config = pchan_from_str(ts_arg); if (trx->ts[i].pchan_from_config == GSM_PCHAN_NONE) continue; trx->ts[i].mo.nm_state.operational = NM_OPSTATE_ENABLED; trx->ts[i].mo.nm_state.availability = NM_AVSTATE_OK; trx->ts[i].mo.nm_state.administrative = NM_STATE_UNLOCKED; } + fprintf(stderr, "\n"); for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { /* make sure ts->lchans[] get initialized */ @@ -303,22 +313,15 @@ } } -bool expect_ts_use(int bts_nr, int trx_nr, const char * const *ts_use) +bool _expect_ts_use(struct gsm_bts *bts, struct gsm_bts_trx *trx, const char * const *ts_use) { - struct gsm_bts *bts; - struct gsm_bts_trx *trx; int i; int mismatching_ts = -1; - bts = gsm_bts_num(bsc_gsmnet, bts_nr); - OSMO_ASSERT(bts); - trx = gsm_bts_trx_num(bts, trx_nr); - OSMO_ASSERT(trx); - fprintf(stderr, "Expect TS use:"); + fprintf(stderr, "bts %d trx %d: expect:", bts->nr, trx->nr); for (i = 0; i < 8; i++) fprintf(stderr, "\t%s", ts_use[i]); - fprintf(stderr, "\n"); - fprintf(stderr, " Got TS use:"); + fprintf(stderr, "\nbts %d trx %d: got:", bts->nr, trx->nr); for (i = 0; i < 8; i++) { struct gsm_bts_trx_ts *ts = &trx->ts[i]; @@ -328,14 +331,14 @@ if (!strcmp(ts_use[i], "*")) continue; - if (strcmp(ts_use[i], use) && mismatching_ts < 0) + if (strcasecmp(ts_use[i], use) && mismatching_ts < 0) mismatching_ts = i; } fprintf(stderr, "\n"); if (mismatching_ts >= 0) { fprintf(stderr, "Test failed: mismatching TS use in bts %d trx %d ts %d\n", - bts_nr, trx_nr, mismatching_ts); + bts->nr, trx->nr, mismatching_ts); return false; } return true; @@ -399,7 +402,7 @@ lchan->tch_mode = GSM48_CMODE_SPEECH_AMR; lchan->activate.info.s15_s0 = 0x0002; } else { - printf("Given codec unknown\n"); + fprintf(stderr, "Given codec unknown\n"); exit(EXIT_FAILURE); } @@ -423,7 +426,7 @@ lchan = lchan_select_by_type(bts, (full_rate) ? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H); if (!lchan) { - printf("No resource for lchan\n"); + fprintf(stderr, "No resource for lchan\n"); exit(EXIT_FAILURE); } @@ -445,15 +448,9 @@ } } -bool set_ts_use(int bts_nr, int trx_nr, const char * const *ts_use) +bool _set_ts_use(struct gsm_bts *bts, struct gsm_bts_trx *trx, const char * const *ts_use) { - struct gsm_bts *bts; - struct gsm_bts_trx *trx; int i; - bts = gsm_bts_num(bsc_gsmnet, bts_nr); - OSMO_ASSERT(bts); - trx = gsm_bts_trx_num(bts, trx_nr); - OSMO_ASSERT(trx); fprintf(stderr, "Setting TS use:"); for (i = 0; i < 8; i++) @@ -469,44 +466,44 @@ continue; /* If it is already as desired, don't change anything */ - if (!strcmp(want_use, is_use)) + if (!strcasecmp(want_use, is_use)) continue; - if (!strcmp(want_use, "TCH/F")) { + if (!strcasecmp(want_use, "tch/f")) { if (!ts_is_capable_of_pchan(ts, GSM_PCHAN_TCH_F)) { - printf("Error: bts %d trx %d ts %d cannot be used as TCH/F\n", - bts_nr, trx_nr, i); + fprintf(stderr, "Error: bts %d trx %d ts %d cannot be used as TCH/F\n", + bts->nr, trx->nr, i); return false; } ts_clear(ts); - lchan_act(&ts->lchan[0], true, "AMR"); - } else if (!strcmp(want_use, "TCH/H-") - || !strcmp(want_use, "TCH/HH") - || !strcmp(want_use, "TCH/-H")) { + lchan_act(&ts->lchan[0], true, codec_tch_f ? : "AMR"); + } else if (!strcasecmp(want_use, "tch/h-") + || !strcasecmp(want_use, "tch/hh") + || !strcasecmp(want_use, "tch/-h")) { bool act[2]; int j; if (!ts_is_capable_of_pchan(ts, GSM_PCHAN_TCH_H)) { - printf("Error: bts %d trx %d ts %d cannot be used as TCH/H\n", - bts_nr, trx_nr, i); + fprintf(stderr, "Error: bts %d trx %d ts %d cannot be used as TCH/H\n", + bts->nr, trx->nr, i); return false; } if (ts->pchan_is != GSM_PCHAN_TCH_H) ts_clear(ts); - act[0] = want_use[4] == 'H'; - act[1] = want_use[5] == 'H'; + act[0] = (want_use[4] == 'h' || want_use[4] == 'H'); + act[1] = (want_use[5] == 'h' || want_use[5] == 'H'); for (j = 0; j < 2; j++) { if (lchan_state_is(&ts->lchan[j], LCHAN_ST_UNUSED)) { if (act[j]) - lchan_act(&ts->lchan[j], false, "AMR"); + lchan_act(&ts->lchan[j], false, codec_tch_h ? : "AMR"); } else if (!act[j]) lchan_clear(&ts->lchan[j]); } - } else if (!strcmp(want_use, "-") || !strcmp(want_use, "PDCH")) { + } else if (!strcmp(want_use, "-") || !strcasecmp(want_use, "PDCH")) { ts_clear(ts); } } @@ -592,6 +589,8 @@ struct abis_rsl_rll_hdr *rh; uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + fprintf(stderr, "- Send EST IND for %s\n", gsm_lchan_name(lchan)); + rh = (struct abis_rsl_rll_hdr *) msgb_put(msg, sizeof(*rh)); rh->c.msg_discr = ABIS_RSL_MDISC_RLL; rh->c.msg_type = RSL_MT_EST_IND; @@ -646,6 +645,16 @@ 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); @@ -658,7 +667,7 @@ struct gsm_lchan *other_lchan; if (rc) { - printf("rsl_lchan_lookup() failed\n"); + fprintf(stderr, "rsl_lchan_lookup() failed\n"); exit(1); } @@ -707,1105 +716,381 @@ case RSL_MT_DEACTIVATE_SACCH: break; default: - printf("unknown rsl message=0x%x\n", dh->c.msg_type); + fprintf(stderr, "unknown rsl message=0x%x\n", dh->c.msg_type); } return 0; } -/* test cases */ +struct gsm_bts *bts_by_num_str(const char *num_str) +{ + struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, atoi(num_str)); + OSMO_ASSERT(bts); + return bts; +} -static char *test_case_0[] = { - "2", +struct gsm_bts_trx *trx_by_num_str(struct gsm_bts *bts, const char *num_str) +{ + struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, atoi(num_str)); + OSMO_ASSERT(trx); + return trx; +} - "Stay in better cell\n\n" - "There are many neighbor cells, but only the current cell is the best\n" - "cell, so no handover is performed\n", +#define LCHAN_ARGS "lchan <0-255> <0-255> <0-7> <0-7>" +#define LCHAN_ARGS_DOC "identify an lchan\nBTS nr\nTRX nr\nTimeslot nr\nSubslot nr\n" - "create-n-bts", "7", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", - "30","0", - "6", "0","20", "1","21", "2","18", "3","20", "4","23", "5","19", - "expect-no-chan", - NULL -}; +static struct gsm_lchan *parse_lchan_args(const char **argv) +{ + struct gsm_bts *bts = bts_by_num_str(argv[0]); + struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + struct gsm_bts_trx_ts *ts = &trx->ts[atoi(argv[2])]; + return &ts->lchan[atoi(argv[3])]; +} -static char *test_case_1[] = { - "2", +#define TS_USE " (TCH/F|TCH/H-|TCH/-H|TCH/HH|PDCH" \ + "|tch/f|tch/h-|tch/-h|tch/hh|pdch" \ + "|-|*)" +#define TS_USE_DOC "'TCH/F': one FR call\n" \ + "'TCH/H-': HR TS with first subslot used as TCH/H, other subslot unused\n" \ + "'TCH/HH': HR TS with both subslots used as TCH/H\n" \ + "'TCH/-H': HR TS with only second subslot used as TCH/H\n" \ + "'PDCH': TS used for PDCH (e.g. unused dynamic TS)\n" \ + "'tch/f': one FR call\n" \ + "'tch/h-': HR TS with first subslot used as TCH/H, other subslot unused\n" \ + "'tch/hh': HR TS with both subslots used as TCH/H\n" \ + "'tch/-h': HR TS with only second subslot used as TCH/H\n" \ + "'pdch': TS used for PDCH (e.g. unused dynamic TS)\n" \ + "'-': TS unused\n" \ + "'*': TS allowed to be in any state\n" - "Handover to best better cell\n\n" - "The best neighbor cell is selected\n", +DEFUN(create_n_bts, create_n_bts_cmd, + "create-n-bts <1-255>", + "Create a number of BTS with four TCH/F and four TCH/H timeslots\n" + "Number of BTS to create\n") +{ + int i; + int n = atoi(argv[0]); + for (i = 0; i < n; i++) + _create_bts(1, NULL, 0); + return CMD_SUCCESS; +} - "create-n-bts", "7", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", - "10","0", - "6", "0","20", "1","21", "2","18", "3","20", "4","23", "5","19", - "expect-chan", "5", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "5", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; +DEFUN(create_bts, create_bts_cmd, + "create-bts trx-count <1-255> timeslots .TS_CFG", + "Create a new BTS with specific timeslot configuration\n" + "Create N TRX in the new BTS\n" + "TRX count\n" + "Timeslot config\n" + "Timeslot types for 8 * trx-count, each being one of CCCH+SDCCH4|SDCCH8|TCH/F|TCH/H|TCH/F_TCH/H_PDCH|...;" + " shorthands: cs+4 = CCCH+SDCCH4; dyn = TCH/F_TCH/H_PDCH\n") +{ + int num_trx = atoi(argv[0]); + _create_bts(num_trx, argv + 1, argc - 1); + return CMD_SUCCESS; +} -static char *test_case_2[] = { - "2", +DEFUN(create_ms, create_ms_cmd, + "create-ms bts <0-999> (TCH/F|TCH/H) (AMR|HR|EFR)", + "Create an MS using the next free matching lchan on a given BTS\n" + "BTS index to subscribe on\n" + "lchan type to select\n" + "codec\n") +{ + const char *bts_nr_str = argv[0]; + const char *tch_type = argv[1]; + const char *codec = argv[2]; + struct gsm_lchan *lchan; + 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), + !strcmp(tch_type, "TCH/F"), codec); + if (!lchan) { + fprintf(stderr, "Failed to create lchan!\n"); + return CMD_WARNING; + } + fprintf(stderr, " * New MS is at %s\n", gsm_lchan_name(lchan)); + return CMD_SUCCESS; +} - "Handover and Assignment must be enabled\n\n" - "This test will start with disabled assignment and handover. A\n" - "better neighbor cell (assignment enabled) will not be selected and \n" - "also no assignment from TCH/H to TCH/F to improve quality. There\n" - "will be no handover nor assignment. After enabling assignment on the\n" - "current cell, the MS will assign to TCH/F. After enabling handover\n" - "in the current cell, but disabling in the neighbor cell, handover\n" - "will not be performed, until it is enabled in the neighbor cell too.\n", +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" + ) +{ + struct gsm_lchan *lc; + uint8_t rxlev; + uint8_t rxqual; + uint8_t ta; + int i; + struct neighbor_meas nm[6] = {}; - "create-n-bts", "2", - "afs-rxlev-improve", "0", "5", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - "as-enable", "0", "0", - "ho-enable", "0", "0", - "meas-rep", "0","0","5","0", "0","0", "1","0","30", - "expect-no-chan", - "as-enable", "0", "1", - "meas-rep", "0","0","5","0", "0","0", "1","0","30", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "0", "5", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "ho-enable", "0", "1", - "ho-enable", "1", "0", - "meas-rep", "0","0","1","0", "0","0", "1","0","30", - "expect-no-chan", - "ho-enable", "1", "1", - "meas-rep", "0","0","1","0", "0","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; + lc = parse_lchan_args(argv); + argv += 4; + argc -= 4; -static char *test_case_3[] = { - "2", + rxlev = atoi(argv[0]); + rxqual = atoi(argv[1]); + ta = atoi(argv[2]); + argv += 3; + argc -= 3; - "Penalty timer must not run\n\n" - "The MS will try to handover to a better cell, but this will fail.\n" - "Even though the cell is still better, handover will not be performed\n" - "due to penalty timer after handover failure\n", + if (!lchan_state_is(lc, LCHAN_ST_ESTABLISHED)) { + fprintf(stderr, "Error: sending measurement report for %s which is in state %s\n", + gsm_lchan_name(lc), lchan_state_name(lc)); + exit(1); + } - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-failed", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - NULL -}; + /* skip the optional [neighbors] keyword */ + if (argc) { + argv++; + argc--; + } -static char *test_case_4[] = { - "2", + fprintf(stderr, "- Sending measurement report from %s: rxlev=%u rxqual=%u ta=%u (%d neighbors)\n", + gsm_lchan_name(lc), rxlev, rxqual, ta, argc); - "TCH/H keeping with HR codec\n\n" - "The MS is using half rate V1 codec, but the better cell is congested\n" - "at TCH/H slots. As the congestion is removed, the handover takes\n" - "place.\n", + for (i = 0; i < 6; i++) { + int neighbor_bts_nr = i; + /* since our bts is not in the list of neighbor cells, we need to shift */ + if (neighbor_bts_nr >= lc->ts->trx->bts->nr) + neighbor_bts_nr++; + nm[i] = (struct neighbor_meas){ + .rxlev = argc > i ? atoi(argv[i]) : 0, + .bsic = 0x3f, + .bcch_f = i, + }; + if (i < argc) + 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; +} - "create-n-bts", "2", - "set-min-free", "1", "TCH/H", "4", - "create-ms", "0", "TCH/H", "HR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","5","0", "20","0", "1","0","30", - "expect-no-chan", - "set-min-free", "1", "TCH/H", "3", - "meas-rep", "0","0","5","0", "20","0", "1","0","30", - "expect-chan", "1", "5", - "ack-chan", - "expect-ho", "0", "5", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - NULL -}; +DEFUN(congestion_check, congestion_check_cmd, + "congestion-check", + "Trigger a congestion check\n") +{ + fprintf(stderr, "- Triggering congestion check\n"); + got_chan_req = 0; + hodec2_congestion_check(bsc_gsmnet); + return CMD_SUCCESS; +} -static char *test_case_5[] = { - "2", +DEFUN(expect_no_chan, expect_no_chan_cmd, + "expect-no-chan", + "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)); + fprintf(stderr, "Test failed, because channel was requested\n"); + exit(1); + } + fprintf(stderr, " * Got no channel request\n"); + return CMD_SUCCESS; +} - "TCH/F keeping with FR codec\n\n" - "The MS is using full rate V1 codec, but the better cell is congested\n" - "at TCH/F slots. As the congestion is removed, the handover takes\n" - "place.\n", +static void _expect_chan_activ(struct gsm_lchan *lchan) +{ + fprintf(stderr, "- Expecting channel request at %s\n", + gsm_lchan_name(lchan)); + if (!got_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) { + 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)); + exit(1); + } +} - "create-n-bts", "2", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "FR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - "set-min-free", "1", "TCH/F", "3", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; +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); +} -static char *test_case_6[] = { - "2", +static void _expect_ho_req(struct gsm_lchan *lchan) +{ + fprintf(stderr, "- Expecting handover/assignment request at %s\n", + gsm_lchan_name(lchan)); - "TCH/F keeping with EFR codec\n\n" - "The MS is using full rate V2 codec, but the better cell is congested\n" - "at TCH/F slots. As the congestion is removed, the handover takes\n" - "place.\n", + if (!got_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, "Test failed, because handover/assignment was not commanded on the expected lchan\n"); + exit(1); + } +} - "create-n-bts", "2", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "EFR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - "set-min-free", "1", "TCH/F", "3", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; +DEFUN(expect_chan, expect_chan_cmd, + "expect-chan " LCHAN_ARGS, + "Expect a channel request from BSC to a cell for a specific lchan\n" + LCHAN_ARGS_DOC) +{ + _expect_chan_activ(parse_lchan_args(argv)); + return CMD_SUCCESS; +} -static char *test_case_7[] = { - "2", +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; +} - "TCH/F to TCH/H changing with AMR codec\n\n" - "The MS is using AMR V3 codec, the better cell is congested at TCH/F\n" - "slots. The handover is performed to non-congested TCH/H slots.\n", +DEFUN(expect_ho_req, expect_ho_req_cmd, + "expect-ho-req " LCHAN_ARGS, + "Expect a handover of a given lchan\n" + LCHAN_ARGS_DOC) +{ + _expect_ho_req(parse_lchan_args(argv)); + return CMD_SUCCESS; +} - "create-n-bts", "2", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "5", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - NULL -}; +DEFUN(ho_complete, ho_complete_cmd, + "ho-complete", + "Send Handover Complete for the most recent HO target lchan\n") +{ + if (!got_chan_req) { + 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_complete(chan_req_lchan, true); + lchan_release_ack(ho_req_lchan); + return CMD_SUCCESS; +} -static char *test_case_8[] = { - "2", +DEFUN(expect_ho, expect_ho_cmd, + "expect-ho from " LCHAN_ARGS " to " LCHAN_ARGS, + "Expect a handover of a specific lchan to a specific target lchan;" + " shorthand for expect-chan, ack-chan, expect-ho, ho-complete.\n" + "lchan to handover from\n" LCHAN_ARGS_DOC + "lchan that to handover to\n" LCHAN_ARGS_DOC) +{ + struct gsm_lchan *from = parse_lchan_args(argv); + struct gsm_lchan *to = parse_lchan_args(argv+4); - "No handover to a cell with no slots available\n\n" - "If no slot is available, no handover is performed\n", + _expect_chan_activ(to); + _ack_chan_activ(to); + _expect_ho_req(from); + send_ho_complete(to, true); + lchan_release_ack(from); + return CMD_SUCCESS; +} - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "expect-ts-use", "1", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/HH", "TCH/HH", "-", - "meas-rep", "0","0","1","0", "0","0", "1","0","30", - "expect-no-chan", - NULL -}; +DEFUN(ho_failed, ho_failed_cmd, + "ho-failed", + "Fail the most recent handover request\n") +{ + if (!got_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); + return CMD_SUCCESS; +} -static char *test_case_9[] = { - "2", +DEFUN(expect_ts_use, expect_ts_use_cmd, + "expect-ts-use trx <0-255> <0-255> states" TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE, + "Expect timeslots of a BTS' TRX to be in a specific state\n" + "Indicate a BTS and TRX\n" "BTS nr\n" "TRX nr\n" + "List of 8 expected TS states\n" + TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC) +{ + struct gsm_bts *bts = bts_by_num_str(argv[0]); + struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + argv += 2; + argc -= 2; + if (!_expect_ts_use(bts, trx, argv)) + exit(1); + return CMD_SUCCESS; +} - "No more parallel handovers, if max_unsync_ho is defined\n\n" - "There are tree mobiles that want to handover, but only two can do\n" - "it at a time, because the maximum number is limited to two.\n", +DEFUN(codec_f, codec_f_cmd, + "codec tch/f (AMR|EFR|FR)", + "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") +{ + osmo_talloc_replace_string(ctx, &codec_tch_f, argv[0]); + return CMD_SUCCESS; +} - "create-n-bts", "2", - "set-max-ho", "1", "2", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "0","0", "1","0","30", - "expect-chan", "1", "1", - "meas-rep", "0","0","2","0", "0","0", "1","0","30", - "expect-chan", "1", "2", - "meas-rep", "0","0","3","0", "0","0", "1","0","30", - "expect-no-chan", - NULL -}; +DEFUN(codec_h, codec_h_cmd, + "codec tch/h (AMR|HR)", + "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") +{ + osmo_talloc_replace_string(ctx, &codec_tch_h, argv[0]); + return CMD_SUCCESS; +} -static char *test_case_10[] = { - "2", +DEFUN(set_ts_use, set_ts_use_cmd, + "set-ts-use trx <0-255> <0-255> states" TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE TS_USE, + "Put timeslots of a BTS' TRX into a specific state\n" + "Indicate a BTS and TRX\n" "BTS nr\n" "TRX nr\n" + "List of 8 TS states to apply\n" + TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC TS_USE_DOC) +{ + struct gsm_bts *bts = bts_by_num_str(argv[0]); + struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + argv += 2; + argc -= 2; + if (!_set_ts_use(bts, trx, argv)) + exit(1); + if (!_expect_ts_use(bts, trx, argv)) + exit(1); + return CMD_SUCCESS; +} - "Hysteresis\n\n" - "If neighbor cell is better, handover is only performed if the\n" - "amount of improvement is greater or equal hyteresis\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "27","0", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "26","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_11[] = { - "2", - - "No Hysteresis and minimum RX level\n\n" - "If current cell's RX level is below mimium level, handover must be\n" - "performed, no matter of the hysteresis. First do not perform\n" - "handover to better neighbor cell, because the hysteresis is not\n" - "met. Second do not perform handover because better neighbor cell is\n" - "below minimum RX level. Third perform handover because current cell\n" - "is below minimum RX level, even if the better neighbor cell (minimum\n" - "RX level reached) does not meet the hysteresis.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "10","0", "1","0","11", - "expect-no-chan", - "meas-rep", "0","0","1","0", "8","0", "1","0","9", - "expect-no-chan", - "meas-rep", "0","0","1","0", "9","0", "1","0","10", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_12[] = { - "2", - - "No handover to congested cell\n\n" - "The better neighbor cell is congested, so no handover is performed.\n" - "After the congestion is over, handover will be performed.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - "set-min-free", "1", "TCH/F", "3", - "set-min-free", "1", "TCH/H", "3", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_13[] = { - "2", - - "Handover to balance congestion\n\n" - "The current and the better cell are congested, so no handover is\n" - "performed. This is because handover would congest the neighbor cell\n" - "more. After congestion raises in the current cell, the handover is\n" - "performed to balance congestion\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "20","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_14[] = { - "2", - - "Handover to congested cell, if RX level is below minimum\n\n" - "The better neighbor cell is congested, so no handover is performed.\n" - "If the RX level of the current cell drops below minimum acceptable\n" - "level, the handover is performed.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "meas-rep", "0","0","1","0", "10","0", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "9","0", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_15[] = { - "2", - - "Handover to cell with worse RXLEV, if RXQUAL is below minimum\n\n" - "The neighbor cell has worse RXLEV, so no handover is performed.\n" - "If the RXQUAL of the current cell drops below minimum acceptable\n" - "level, the handover is performed. It is also required that 10\n" - "reports are received, before RXQUAL is checked.\n", - /* (See also test 28, which tests for RXQUAL triggering HO to congested cell.) */ - /* TODO: bad RXQUAL may want to prefer assignment within the same cell to avoid interference. - * See Performance Enhancements in a Frequency Hopping GSM Network (Nielsen Wigard 2002), Chapter - * 2.1.1, "Interference" in the list of triggers on p.157. */ - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-no-chan", - "meas-rep", "0","0","1","0", "40","6", "1","0","30", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_16[] = { - "2", - - "Handover due to maximum TA exceeded\n\n" - "The MS in the current (best) cell has reached maximum allowed timing\n" - "advance. No handover is performed until the timing advance exceeds\n" - "it. The originating cell is still the best, but no handover is\n" - "performed back to that cell, because the penalty timer (due to\n" - "maximum allowed timing advance) is running.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-max-ta", "0", "5", /* of cell */ - "set-ta", "0", "5", /* of ms */ - "meas-rep", "0","0","1","0", "30","0", "1","0","20", - "expect-no-chan", - "set-ta", "0", "6", /* of ms */ - "meas-rep", "0","0","1","0", "30","0", "1","0","20", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "1","0","1","0", "20","0", "1","0","30", - "expect-no-chan", - NULL -}; - -static char *test_case_17[] = { - "2", - - "Congestion check: No congestion\n\n" - "Three cells have different number of used slots, but there is no\n" - "congestion in any of these cells. No handover is performed.\n", - - "create-n-bts", "3", - "set-min-free", "0", "TCH/F", "2", - "set-min-free", "0", "TCH/H", "2", - "set-min-free", "1", "TCH/F", "2", - "set-min-free", "1", "TCH/H", "2", - "set-min-free", "2", "TCH/F", "2", - "set-min-free", "2", "TCH/H", "2", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","2","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","5","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","5","1", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "1","0","1","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "1","0","5","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "congestion-check", - "expect-no-chan", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-", - NULL -}; - -static char *test_case_18[] = { - "2", - - "Congestion check: One out of three cells is congested\n\n" - "Three cells have different number of used slots, but there is\n" - "congestion at TCH/F in the first cell. Handover is performed with\n" - "the best candidate.\n", - - "create-n-bts", "3", - "set-min-free", "0", "TCH/F", "2", - "set-min-free", "0", "TCH/H", "2", - "set-min-free", "1", "TCH/F", "2", - "set-min-free", "1", "TCH/H", "2", - "set-min-free", "2", "TCH/F", "2", - "set-min-free", "2", "TCH/H", "2", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "1", "TCH/F", "AMR", - "create-ms", "1", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","2","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","3","0", "30","0", "2","0","21","1","20", - "expect-no-chan", - "meas-rep", "0","0","5","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "0","0","5","1", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "1","0","1","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "meas-rep", "1","0","5","0", "30","0", "2","0","20","1","20", - "expect-no-chan", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "TCH/H-", "-", "-", - "congestion-check", - "expect-chan", "1", "2", - "ack-chan", - "expect-ho", "0", "3", /* best candidate is MS 2 at BTS 0, TS 3 */ - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/HH", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/H-", "-", "-", - NULL -}; - -static char *test_case_19[] = { - "2", - - "Congestion check: Balancing over congested cells\n\n" - "Two cells are congested, but the second cell is less congested.\n" - "Handover is performed to solve the congestion.\n", - - "create-n-bts", "2", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "FR", - "create-ms", "0", "TCH/F", "FR", - "create-ms", "0", "TCH/F", "FR", - "create-ms", "1", "TCH/F", "FR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "1","0","20", - "expect-no-chan", - "meas-rep", "0","0","2","0", "30","0", "1","0","21", - "expect-no-chan", - "meas-rep", "0","0","3","0", "30","0", "1","0","20", - "expect-no-chan", - "meas-rep", "1","0","1","0", "30","0", "1","0","20", - "expect-no-chan", - "congestion-check", - "expect-chan", "1", "2", - "ack-chan", - "expect-ho", "0", "2", /* best candidate is MS 1 at BTS 0, TS 2 */ - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "TCH/F", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "TCH/F", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_20[] = { - "2", - - "Congestion check: Solving congestion by handover TCH/F -> TCH/H\n\n" - "Two BTS, one MS in the first congested BTS must handover to\n" - "non-congested TCH/H of second BTS, in order to solve congestion\n", - "create-n-bts", "2", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "set-min-free", "1", "TCH/F", "4", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "1","0","30", - "expect-no-chan", - "congestion-check", - "expect-chan", "1", "5", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "TCH/H-", "-", "-", - NULL -}; - -static char *test_case_21[] = { - "2", - - "Congestion check: Balancing congestion by handover TCH/F -> TCH/H\n\n" - "Two BTS, one MS in the first congested BTS must handover to\n" - "less-congested TCH/H of second BTS, in order to balance congestion\n", - "create-n-bts", "2", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "1","0","30", - "expect-no-chan", - "congestion-check", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "-", "-", "TCH/H-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_22[] = { - "2", - - "Congestion check: Upgrading worst candidate from TCH/H -> TCH/F\n\n" - "There is only one BTS. The TCH/H slots are congested. Since\n" - "assignment is performed to less-congested TCH/F, the candidate with\n" - "the worst RX level is chosen.\n", - - "create-n-bts", "1", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/HH", "TCH/H-", "-", - "meas-rep", "0","0","5","0", "30","0", "0", - "meas-rep", "0","0","5","1", "34","0", "0", - "meas-rep", "0","0","6","0", "20","0", "0", - "expect-no-chan", - "congestion-check", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "0", "6", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "TCH/HH", "-", "-", - NULL -}; - -static char *test_case_23[] = { - "2", - - "Story: 'A neighbor is your friend'\n", - - "create-n-bts", "3", - - "print", - "Andreas is driving along the coast, on a sunny june afternoon.\n" - "Suddenly he is getting a call from his friend and neighbor Axel.\n" - "\n" - "What happens: Two MS are created, #0 for Axel, #1 for Andreas.", - /* Axel */ - "create-ms", "2", "TCH/F", "AMR", - /* andreas */ - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "40","0", "1","0","30", - "expect-no-chan", - - "print", - "Axel asks Andreas if he would like to join them for a barbecue.\n" - "Axel's house is right in the neighborhood and the weather is fine.\n" - "Andreas agrees, so he drives to a close store to buy some barbecue\n" - "skewers.\n" - "\n" - "What happens: While driving, a different cell (mounted atop the\n" - "store) becomes better.", - /* drive to bts 1 */ - "meas-rep", "0","0","1","0", "20","0", "1","0","35", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - "print", - "While Andreas is walking into the store, Axel asks, if he could also\n" - "bring some beer. Andreas has problems understanding him: \"I have a\n" - "bad reception here. The cell tower is right atop the store, but poor\n" - "coverage inside. Can you repeat please?\"\n" - "\n" - "What happens: Inside the store the close cell is so bad, that\n" - "handover back to the previous cell is required.", - /* bts 1 becomes bad, so bts 0 helps out */ - "meas-rep", "1","0","1","0", "5","0", "1","0","20", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "1", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - "print", - "After Andreas bought skewers and beer, he leaves the store.\n" - "\n" - "What happens: Outside the store the close cell is better again, so\n" - "handover back to the that cell is performed.", - /* bts 1 becomes better again */ - "meas-rep", "0","0","1","0", "20","0", "1","0","35", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - "print", - /* bts 2 becomes better */ - "Andreas drives down to the lake where Axel's house is.\n" - "\n" - "What happens: There is a small cell at Axel's house, which becomes\n" - "better, because the current cell has no good comverage at the lake.", - "meas-rep", "1","0","1","0", "14","0", "2","0","2","1","63", - "expect-chan", "2", "2", - "ack-chan", - "expect-ho", "1", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "2", "0", "*", "TCH/F", "TCH/F", "-", "-", "-", "-", "-", - - "print", - "Andreas wonders why he still has good radio coverage: \"Last time it\n" - "was so bad\". Axel says: \"I installed a pico cell in my house,\n" - "now we can use our mobile phones down here at the lake.\"", - - NULL -}; - -static char *test_case_24[] = { - "2", - "No (or not enough) measurements for handover\n\n" - "Do not solve congestion in cell, because there is no measurement.\n" - "As soon as enough measurements available (1 in our case), perform\n" - "handover. Afterwards the old cell becomes congested and the new\n" - "cell is not. Do not perform handover until new measurements are\n" - "received.\n", - - /* two cells, first in congested, but no handover */ - "create-n-bts", "2", - "set-min-free", "0", "TCH/F", "4", - "set-min-free", "0", "TCH/H", "4", - "create-ms", "0", "TCH/F", "AMR", - "congestion-check", - "expect-no-chan", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - /* send measurement and trigger congestion check */ - "meas-rep", "0","0","1","0", "20","0", "1","0","20", - "expect-no-chan", - "congestion-check", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - - /* congest the first cell and remove congestion from second cell */ - "set-min-free", "0", "TCH/F", "0", - "set-min-free", "0", "TCH/H", "0", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - - /* no handover until measurements applied */ - "congestion-check", - "expect-no-chan", - "meas-rep", "1","0","1","0", "20","0", "1","0","20", - "expect-no-chan", - "congestion-check", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "1", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "-", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_25[] = { - "1", - - "Stay in better cell\n\n" - "There are many neighbor cells, but only the current cell is the best\n" - "cell, so no handover is performed\n", - - "create-n-bts", "7", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", - "6","0","20","1","21","2","18","3","20","4","23","5","19", - "expect-no-chan", - NULL -}; - -static char *test_case_26[] = { - "1", - - "Handover to best better cell\n\n" - "The best neighbor cell is selected\n", - - "create-n-bts", "7", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "meas-rep", "0","0","1","0", "10","0", - "6","0","20","1","21","2","18","3","20","4","23","5","19", - "expect-chan", "5", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "5", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_27[] = { - "2", - - "Congestion check: Upgrading worst candidate from TCH/H -> TCH/F\n\n" - "There is only one BTS. The TCH/H slots are congested. Since\n" - "assignment is performed to less-congested TCH/F, the candidate with\n" - "the worst RX level is chosen. (So far like test 22.)\n" - "After that, trigger more congestion checks to ensure stability.\n", - - "create-n-bts", "1", - "set-min-free", "0", "TCH/F", "2", - "set-min-free", "0", "TCH/H", "4", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "TCH/HH", "TCH/H-", "-", - "meas-rep", "0","0","5","0", "30","0", "0", - "meas-rep", "0","0","5","1", "34","0", "0", - "meas-rep", "0","0","6","0", "20","0", "0", - "expect-no-chan", - "congestion-check", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "0", "6", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "TCH/HH", "-", "-", - "congestion-check", - "expect-chan", "0", "2", - "ack-chan", - "expect-ho", "0", "5", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/-H", "-", "-", - "congestion-check", - "expect-no-chan", - "congestion-check", - "expect-no-chan", - NULL -}; - -static char *test_case_28[] = { - "2", - - "Handover to congested cell, if RX quality is below minimum\n\n" - "The better neighbor cell is congested, so no handover is performed.\n" - "If the RX quality of the current cell drops below minimum acceptable\n" - "level, the handover is performed. It is also required that 10\n" - "resports are received, before RX quality is checked.\n", - - "create-n-bts", "2", - "create-ms", "0", "TCH/F", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - "set-min-free", "1", "TCH/F", "4", - "set-min-free", "1", "TCH/H", "4", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-no-chan", - "meas-rep", "0","0","1","0", "30","6", "1","0","40", - "expect-chan", "1", "1", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "-", "-", "-", "-", - "expect-ts-use", "1", "0", "*", "TCH/F", "-", "-", "-", "-", "-", "-", - NULL -}; - -static char *test_case_29[] = { - "2", - - "Congestion check: Balancing congestion by handover TCH/F -> TCH/H\n\n" - "One BTS, and TCH/F are considered congested, TCH/H are not.\n" - , - "create-n-bts", "1", - "set-min-free", "0", "TCH/F", "3", - "set-min-free", "0", "TCH/H", "0", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/F", "AMR", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "-", "-", "TCH/H-", "-", "-", - "meas-rep", "0","0","1","0", "30","0", "1","0","30", - "expect-no-chan", - "congestion-check", - "expect-chan", "0", "5", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "-", "-", "TCH/HH", "-", "-", - NULL -}; - -static char *test_case_30[] = { - "2", - - "Congestion check: Balancing congestion by handover TCH/F -> TCH/H\n\n" - "With dynamic timeslots.\n" - "As soon as only one TCH/F is left, there should be HO to a dyn TS.\n" - , - "create-bts", "1", "c+s4", "TCH/F", "TCH/F", "TCH/F", "dyn", "dyn", "dyn", "PDCH", - "set-min-free", "0", "TCH/F", "2", - "set-min-free", "0", "TCH/H", "0", - "as-enable", "0", "1", - "set-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "PDCH", "PDCH", "PDCH", - "meas-rep", "0","0","1","0", "40","0", "1", "0","30", - "meas-rep", "0","0","2","0", "40","0", "1", "0","30", - "meas-rep", "0","0","3","0", "40","0", "1", "0","30", - "meas-rep", "0","0","4","0", "40","0", "1", "0","30", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","5","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "PDCH", "PDCH", - "congestion-check", - "expect-chan", "0", "6", - "ack-chan", - "expect-ho", "0", "5", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "PDCH", "TCH/H-", "PDCH", - "congestion-check", - "expect-chan", "0", "6", - "ack-chan", - "expect-ho", "0", "4", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "PDCH", "PDCH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","4","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "PDCH", "TCH/HH", "PDCH", - "congestion-check", - "expect-chan", "0", "5", - "ack-chan", - "expect-ho", "0", "4", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "PDCH", "TCH/H-", "TCH/HH", "PDCH", - "congestion-check", - "expect-chan", "0", "5", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "TCH/F", "PDCH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","1","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "PDCH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-chan", "0", "4", - "ack-chan", - "expect-ho", "0", "1", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "TCH/F", "TCH/F", "TCH/H-", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-chan", "0", "4", - "ack-chan", - "expect-ho", "0", "2", - "ho-complete", - "expect-ts-use", "0", "0", "*", "-", "-", "TCH/F", "TCH/HH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","1","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "-", "TCH/F", "TCH/HH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - "create-ms", "0", "TCH/F", "AMR", - "meas-rep", "0","0","2","0", "40","0", "1", "0","30", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/F", "TCH/F", "TCH/HH", "TCH/HH", "TCH/HH", "PDCH", - "congestion-check", - "expect-no-chan", - NULL -}; - -static char *test_case_31[] = { - "2", - - "Congestion check: re-use half used TCH/H to avoid switching more dyn TS to TCH/H\n" - , - "create-bts", "1", "c+s4", "TCH/F", "TCH/F", "TCH/F", "dyn", "dyn", "dyn", "PDCH", - "set-ts-use", "0", "0", "*", "-", "-", "-", "PDCH", "TCH/H-", "PDCH", "PDCH", - "create-ms", "0", "TCH/H", "AMR", - "expect-ts-use", "0", "0", "*", "-", "-", "-", "PDCH", "TCH/HH", "PDCH", "PDCH", - NULL -}; - -static char *test_case_32[] = { - "2", - - "Congestion check: favor moving a TCH/H that frees a half-used dyn TS completely\n" - , - "create-bts", "1", "c+s4", "dyn", "dyn", "dyn", "dyn", "dyn", "-", "-", - "set-ts-use", "0", "0", "*", "PDCH", "TCH/HH", "TCH/H-", "TCH/HH", "PDCH", "-", "-", - "meas-rep", "0","0","2","1", "30","0", "0", - "meas-rep", "0","0","3","0", "30","0", "0", - "meas-rep", "0","0","4","0", "30","0", "0", - "meas-rep", "0","0","4","1", "30","0", "0", - /* pick one to move */ - "set-min-free", "0", "TCH/H", "6", - "congestion-check", - "expect-chan", "0", "1", - "ack-chan", - "expect-ho", "0", "3", - "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/HH", "PDCH", "TCH/HH", "PDCH", "-", "-", - NULL -}; - -static char **test_cases[] = { - test_case_0, - test_case_1, - test_case_2, - test_case_3, - test_case_4, - test_case_5, - test_case_6, - test_case_7, - test_case_8, - test_case_9, - test_case_10, - test_case_11, - test_case_12, - test_case_13, - test_case_14, - test_case_15, - test_case_16, - test_case_17, - test_case_18, - test_case_19, - test_case_20, - test_case_21, - test_case_22, - test_case_23, - test_case_24, - test_case_25, - test_case_26, - test_case_27, - test_case_28, - test_case_29, - test_case_30, - test_case_31, - test_case_32, -}; +static void ho_test_vty_init() +{ + install_element(CONFIG_NODE, &create_n_bts_cmd); + 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, &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_complete_cmd); + install_element(CONFIG_NODE, &expect_ho_cmd); + install_element(CONFIG_NODE, &ho_failed_cmd); + install_element(CONFIG_NODE, &expect_ts_use_cmd); + install_element(CONFIG_NODE, &codec_f_cmd); + install_element(CONFIG_NODE, &codec_h_cmd); + install_element(CONFIG_NODE, &set_ts_use_cmd); +} static const struct log_info_cat log_categories[] = { [DHO] = { @@ -1878,35 +1163,43 @@ .num_cat = ARRAY_SIZE(log_categories), }; -struct gsm_bts *bts_by_num_str(const char *num_str) -{ - struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, atoi(num_str)); - OSMO_ASSERT(bts); - return bts; -} +static struct vty_app_info vty_info = { + .name = "ho_test", + .copyright = + "Copyright (C) 2020 sysmocom - s.f.m.c. GmbH\r\n" + "License AGPLv3+: GNU AGPL version 3 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", + .version = PACKAGE_VERSION, + .usr_attr_desc = { + [BSC_VTY_ATTR_RESTART_ABIS_OML_LINK] = \ + "This command applies on A-bis OML link (re)establishment", + [BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK] = \ + "This command applies on A-bis RSL link (re)establishment", + [BSC_VTY_ATTR_NEW_LCHAN] = \ + "This command applies for newly created lchans", + }, + .usr_attr_letters = { + [BSC_VTY_ATTR_RESTART_ABIS_OML_LINK] = 'o', + [BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK] = 'r', + [BSC_VTY_ATTR_NEW_LCHAN] = 'l', + }, +}; int main(int argc, char **argv) { - char **test_case; - int i; - int algorithm; - int test_case_i; - int last_test_i; + char *test_file = NULL; + int rc; + + if (argc < 2) { + fprintf(stderr, "Pass a handover test script as argument\n"); + exit(1); + } + test_file = argv[1]; ctx = talloc_named_const(NULL, 0, "handover_test"); msgb_talloc_ctx_init(ctx, 0); - - test_case_i = argc > 1? atoi(argv[1]) : -1; - last_test_i = ARRAY_SIZE(test_cases) - 1; - - if (test_case_i < 0 || test_case_i > last_test_i) { - for (i = 0; i <= last_test_i; i++) { - printf("Test #%d (algorithm %s):\n%s\n", i, - test_cases[i][0], test_cases[i][1]); - } - printf("\nPlease specify test case number 0..%d\n", last_test_i); - return EXIT_FAILURE; - } + vty_info.tall_ctx = ctx; osmo_init_logging2(ctx, &log_info); @@ -1919,6 +1212,10 @@ if (!bsc_gsmnet) exit(1); + vty_init(&vty_info); + bsc_vty_init(bsc_gsmnet); + ho_test_vty_init(); + ts_fsm_init(); lchan_fsm_init(); bsc_subscr_conn_fsm_init(); @@ -1945,355 +1242,24 @@ /* We don't really need any specific model here */ bts_model_unknown_init(); - test_case = test_cases[test_case_i]; - - fprintf(stderr, "--------------------\n"); - fprintf(stderr, "Performing the following test %d (algorithm %s):\n%s", - test_case_i, test_case[0], test_case[1]); - algorithm = atoi(test_case[0]); - test_case += 2; - fprintf(stderr, "--------------------\n"); - /* Disable the congestion check timer, we will trigger manually. */ bsc_gsmnet->hodec2.congestion_check_interval_s = 0; handover_decision_1_init(); hodec2_init(bsc_gsmnet); - while (*test_case) { - if (!strcmp(*test_case, "create-n-bts")) { - int n = atoi(test_case[1]); - for (i = 0; i < n; i++) - create_bts(1, bts_default_ts); - test_case += 2; - } else - if (!strcmp(*test_case, "create-bts")) { - /* new BTS with one TRX: - * "create-bts", "1", "CCCH+SDCCH4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "PDCH", - * - * new BTS with two TRX: - * "create-bts", "2", "CCCH+SDCCH4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "PDCH", - * "SDCCH8", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "PDCH", - */ - int num_trx = atoi(test_case[1]); - const char * const * ts_cfg = (void*)&test_case[2]; - create_bts(num_trx, ts_cfg); - test_case += 2 + 8 * num_trx; - } else - if (!strcmp(*test_case, "as-enable")) { - fprintf(stderr, "- Set assignment enable state at " - "BTS %s to %s\n", test_case[1], test_case[2]); - ho_set_hodec2_as_active(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "ho-enable")) { - fprintf(stderr, "- Set handover enable state at " - "BTS %s to %s\n", test_case[1], test_case[2]); - ho_set_ho_active(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "afs-rxlev-improve")) { - fprintf(stderr, "- Set afs RX level improvement at " - "BTS %s to %s\n", test_case[1], test_case[2]); - ho_set_hodec2_afs_bias_rxlev(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "afs-rxqual-improve")) { - fprintf(stderr, "- Set afs RX quality improvement at " - "BTS %s to %s\n", test_case[1], test_case[2]); - ho_set_hodec2_afs_bias_rxqual(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "set-min-free")) { - fprintf(stderr, "- Setting minimum required free %s " - "slots at BTS %s to %s\n", test_case[2], - test_case[1], test_case[3]); - if (!strcmp(test_case[2], "TCH/F")) - ho_set_hodec2_tchf_min_slots(bts_by_num_str(test_case[1])->ho, atoi(test_case[3])); - else - ho_set_hodec2_tchh_min_slots(bts_by_num_str(test_case[1])->ho, atoi(test_case[3])); - test_case += 4; - } else - if (!strcmp(*test_case, "set-max-ho")) { - fprintf(stderr, "- Setting maximum parallel handovers " - "at BTS %s to %s\n", test_case[1], - test_case[2]); - ho_set_hodec2_ho_max( bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "set-max-ta")) { - fprintf(stderr, "- Setting maximum timing advance " - "at BTS %s to %s\n", test_case[1], - test_case[2]); - ho_set_hodec2_max_distance(bts_by_num_str(test_case[1])->ho, atoi(test_case[2])); - test_case += 3; - } else - if (!strcmp(*test_case, "create-ms")) { - const char *bts_nr_str = test_case[1]; - const char *tch_type = test_case[2]; - const char *codec = test_case[3]; - struct gsm_lchan *lchan; - 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), - !strcmp(tch_type, "TCH/F"), codec); - if (!lchan) { - printf("Failed to create lchan!\n"); - return EXIT_FAILURE; - } - fprintf(stderr, " * New MS is at BTS %d TS %d\n", - lchan->ts->trx->bts->nr, - lchan->ts->nr); - test_case += 4; - } else - if (!strcmp(*test_case, "set-ta")) { - fprintf(stderr, "- Setting maximum timing advance " - "at MS %s to %s\n", test_case[1], - test_case[2]); - meas_ta_ms = atoi(test_case[2]); - test_case += 3; - } else - if (!strcmp(*test_case, "meas-rep")) { - /* meas-rep [ [...]] */ - int n; - struct gsm_bts *bts; - struct gsm_bts_trx *trx; - struct gsm_bts_trx_ts *ts; - struct gsm_lchan *lc; - int bts_nr = atoi(test_case[1]); - int trx_nr = atoi(test_case[2]); - int ts_nr = atoi(test_case[3]); - int ss_nr = atoi(test_case[4]); - meas_dl_rxlev = atoi(test_case[5]); - meas_dl_rxqual = atoi(test_case[6]); - n = atoi(test_case[7]); - - bts = gsm_bts_num(bsc_gsmnet, bts_nr); - trx = gsm_bts_trx_num(bts, trx_nr); - ts = &trx->ts[ts_nr]; - lc = &ts->lchan[ss_nr]; - - if (!lchan_state_is(lc, LCHAN_ST_ESTABLISHED)) { - printf("Error: sending measurement report for %d-%d-%d-%d which is in state %s\n", - bts_nr, trx_nr, ts_nr, ss_nr, - lchan_state_name(lc)); - exit(1); - } - - fprintf(stderr, "- Sending measurement report from " - "%d-%d-%d-%d (rxlev=%d, rxqual=%d)\n", - bts_nr, trx_nr, ts_nr, ss_nr, - meas_dl_rxlev, meas_dl_rxqual); - meas_num_nc = n; - test_case += 8; - for (i = 0; i < n; i++) { - int nr = atoi(test_case[0]); - /* since our bts is not in the list of neighbor - * cells, we need to shift */ - if (nr >= lc->ts->trx->bts->nr) - nr++; - fprintf(stderr, " * Neighbor cell #%s, actual " - "BTS %d (rxlev=%s)\n", test_case[0], nr, - test_case[1]); - meas_bcch_f_nc[i] = atoi(test_case[0]); - /* bts number, not counting our own */ - meas_rxlev_nc[i] = atoi(test_case[1]); - meas_bsic_nc[i] = 0x3f; - test_case += 2; - } - got_chan_req = 0; - gen_meas_rep(lc); - } else - if (!strcmp(*test_case, "congestion-check")) { - fprintf(stderr, "- Triggering congestion check\n"); - got_chan_req = 0; - if (algorithm == 2) - hodec2_congestion_check(bsc_gsmnet); - test_case += 1; - } else - if (!strcmp(*test_case, "expect-chan")) { - fprintf(stderr, "- Expecting channel request at BTS %s " - "TS %s\n", test_case[1], test_case[2]); - if (!got_chan_req) { - printf("Test failed, because no channel was " - "requested\n"); - return EXIT_FAILURE; - } - fprintf(stderr, " * Got channel request at BTS %d " - "TS %d\n", chan_req_lchan->ts->trx->bts->nr, - chan_req_lchan->ts->nr); - if (chan_req_lchan->ts->trx->bts->nr - != atoi(test_case[1])) { - printf("Test failed, because channel was not " - "requested on expected BTS\n"); - return EXIT_FAILURE; - } - if (chan_req_lchan->ts->nr != atoi(test_case[2])) { - printf("Test failed, because channel was not " - "requested on expected TS\n"); - return EXIT_FAILURE; - } - test_case += 3; - } else - if (!strcmp(*test_case, "expect-no-chan")) { - fprintf(stderr, "- Expecting no channel request\n"); - if (got_chan_req) { - fprintf(stderr, " * Got channel request at " - "BTS %d TS %d\n", - chan_req_lchan->ts->trx->bts->nr, - chan_req_lchan->ts->nr); - printf("Test failed, because channel was " - "requested\n"); - return EXIT_FAILURE; - } - fprintf(stderr, " * Got no channel request\n"); - test_case += 1; - } else - if (!strcmp(*test_case, "expect-ho")) { - fprintf(stderr, "- Expecting handover/assignment " - "request at BTS %s TS %s\n", test_case[1], - test_case[2]); - if (!got_ho_req) { - printf("Test failed, because no handover was " - "requested\n"); - return EXIT_FAILURE; - } - fprintf(stderr, " * Got handover/assignment request at " - "BTS %d TS %d\n", - ho_req_lchan->ts->trx->bts->nr, - ho_req_lchan->ts->nr); - if (ho_req_lchan->ts->trx->bts->nr - != atoi(test_case[1])) { - printf("Test failed, because " - "handover/assignment was not commanded " - "at the expected BTS\n"); - return EXIT_FAILURE; - } - if (ho_req_lchan->ts->nr != atoi(test_case[2])) { - printf("Test failed, because " - "handover/assignment was not commanded " - "at the expected TS\n"); - return EXIT_FAILURE; - } - test_case += 3; - } else - if (!strcmp(*test_case, "ack-chan")) { - fprintf(stderr, "- Acknowledging channel request\n"); - if (!got_chan_req) { - printf("Cannot ack channel, because no " - "request\n"); - return EXIT_FAILURE; - } - test_case += 1; - got_ho_req = 0; - send_chan_act_ack(chan_req_lchan, 1); - } else - if (!strcmp(*test_case, "ho-complete")) { - fprintf(stderr, "- Acknowledging handover/assignment " - "request\n"); - if (!got_chan_req) { - printf("Cannot ack handover/assignment, " - "because no chan request\n"); - return EXIT_FAILURE; - } - if (!got_ho_req) { - printf("Cannot ack handover/assignment, " - "because no ho request\n"); - return EXIT_FAILURE; - } - test_case += 1; - got_chan_req = 0; - got_ho_req = 0; - send_ho_complete(chan_req_lchan, true); - } else - if (!strcmp(*test_case, "ho-failed")) { - fprintf(stderr, "- Making handover fail\n"); - if (!got_chan_req) { - printf("Cannot fail handover, because no chan " - "request\n"); - return EXIT_FAILURE; - } - test_case += 1; - got_chan_req = 0; - got_ho_req = 0; - send_ho_complete(ho_req_lchan, false); - } else - if (!strcmp(*test_case, "expect-ts-use")) { - /* expect-ts-use 8x - * e.g. - * expect-ts-use 0 0 - TCH/F - - TCH/H- TCH/HH TCH/-H PDCH - * TCH/F: one FR call. - * TCH/H-: HR TS with first subslot used as TCH/H, other subslot unused. - * TCH/HH: HR TS with both subslots used as TCH/H - * TCH/-H: HR TS with only second subslot used as TCH/H - * PDCH: TS used for PDCH (e.g. unused dynamic TS) - */ - int bts_nr = atoi(test_case[1]); - int trx_nr = atoi(test_case[2]); - const char * const * ts_use = (void*)&test_case[3]; - if (!expect_ts_use(bts_nr, trx_nr, ts_use)) - return EXIT_FAILURE; - test_case += 1 + 2 + 8; - } else - if (!strcmp(*test_case, "set-ts-use")) { - /* set-ts-use 8x - * e.g. - * set-ts-use 0 0 * TCH/F - - TCH/H- TCH/HH TCH/-H PDCH - * '*': keep as is - * TCH/F: one FR call. - * TCH/H-: HR TS with first subslot used as TCH/H, other subslot unused. - * TCH/HH: HR TS with both subslots used as TCH/H - * TCH/-H: HR TS with only second subslot used as TCH/H - * PDCH: TS used for PDCH (e.g. unused dynamic TS) - */ - int bts_nr = atoi(test_case[1]); - int trx_nr = atoi(test_case[2]); - const char * const * ts_use = (void*)&test_case[3]; - if (!set_ts_use(bts_nr, trx_nr, ts_use)) - return EXIT_FAILURE; - if (!expect_ts_use(bts_nr, trx_nr, ts_use)) - return EXIT_FAILURE; - test_case += 1 + 2 + 8; - } else - if (!strcmp(*test_case, "print")) { - fprintf(stderr, "\n%s\n\n", test_case[1]); - test_case += 2; - } else { - printf("Unknown test command '%s', please fix!\n", - *test_case); - return EXIT_FAILURE; - } - - { - /* Help the lchan out of releasing states */ - struct gsm_bts *bts; - llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { - struct gsm_bts_trx *trx; - llist_for_each_entry(trx, &bts->trx_list, list) { - int ts_nr; - for (ts_nr = 0; ts_nr < TRX_NR_TS; ts_nr++) { - struct gsm_lchan *lchan; - ts_for_each_lchan(lchan, &trx->ts[ts_nr]) { - - if (lchan->fi && lchan->fi->state == LCHAN_ST_WAIT_BEFORE_RF_RELEASE) { - osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_WAIT_RF_RELEASE_ACK, 0, 0); - osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RSL_RF_CHAN_REL_ACK, 0); - } - } - } - } - } - } + rc = vty_read_config_file(test_file, NULL); + if (rc < 0) { + fprintf(stderr, "Failed to parse the test file: '%s'\n", test_file); } - fprintf(stderr, "--------------------\n"); - - printf("Test OK\n"); - - fprintf(stderr, "--------------------\n"); - talloc_free(ctx); - return EXIT_SUCCESS; + fprintf(stderr,"-------------------\n"); + if (!rc) + fprintf(stderr, "pass\n"); + else + fprintf(stderr, "FAIL\n"); + return rc; } void rtp_socket_free() {} diff --git a/tests/handover/handover_test.ok b/tests/handover/handover_test.ok deleted file mode 100644 index 678f9a3..0000000 --- a/tests/handover/handover_test.ok +++ /dev/null @@ -1 +0,0 @@ -Test OK diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok new file mode 100644 index 0000000..5ec8dc2 --- /dev/null +++ b/tests/handover/handover_tests.ok @@ -0,0 +1,33 @@ +pass test0000.ho_vty +pass test0001.ho_vty +pass test0002.ho_vty +pass test0003.ho_vty +pass test0004.ho_vty +pass test0005.ho_vty +pass test0006.ho_vty +pass test0007.ho_vty +pass test0008.ho_vty +pass test0009.ho_vty +pass test0010.ho_vty +pass test0011.ho_vty +pass test0012.ho_vty +pass test0013.ho_vty +pass test0014.ho_vty +pass test0015.ho_vty +pass test0016.ho_vty +pass test0017.ho_vty +pass test0018.ho_vty +pass test0019.ho_vty +pass test0020.ho_vty +pass test0021.ho_vty +pass test0022.ho_vty +pass test0023.ho_vty +pass test0024.ho_vty +pass test0025.ho_vty +pass test0026.ho_vty +pass test0027.ho_vty +pass test0028.ho_vty +pass test0029.ho_vty +pass test0030.ho_vty +pass test0031.ho_vty +pass test0032.ho_vty diff --git a/tests/handover/handover_tests.sh b/tests/handover/handover_tests.sh new file mode 100755 index 0000000..68a8e2d --- /dev/null +++ b/tests/handover/handover_tests.sh @@ -0,0 +1,68 @@ +#!/bin/sh +set -e +tests_dir="${1:-.}" +build_dir="${2:-.}" +update="$3" +test -d "$tests_dir" +test -d "$build_dir" + +if [ -n "$update" -a "x$update" != "x-u" ]; then + echo "unknown argument: $update" + exit 1 +fi + +one_test() { + test_path="$1" + test_name="$(basename "$test_path")" + got_out="$(mktemp "tmp.$test_name.stdout.XXXXX")" + got_err="$(mktemp "tmp.$test_name.stderr.XXXXX")" + 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 + fi + fi + rm "$got_out" + rm "$got_err" + set -e + return $rc +} + +results="$(mktemp "tmp.handover_test_results.XXXXX")" +for test_path in "$tests_dir"/test*.ho_vty ; do + test_name="$(basename "$test_path")" + if one_test "$test_path"; then + echo "pass $test_name" >> "$results" + else + echo "FAIL $test_name" >> "$results" + fi +done +set +e +cat "$results" +failed="$(grep FAIL "$results")" +if [ -z "$failed" -a "x$update" = "x-u" ]; then + cp "$results" "$tests_dir"/handover_tests.ok +fi +rm "$results" +if [ -n "$failed" ]; then + echo "tests failed" + exit 1 +fi +exit 0 diff --git a/tests/handover/test0000.ho_vty b/tests/handover/test0000.ho_vty new file mode 100644 index 0000000..00e0e1a --- /dev/null +++ b/tests/handover/test0000.ho_vty @@ -0,0 +1,6 @@ +# Stay in better cell +# There are many neighbor cells, but only the current cell is the best cell, so no handover is performed +create-n-bts 7 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 21 18 20 23 19 +expect-no-chan diff --git a/tests/handover/test0001.ho_vty b/tests/handover/test0001.ho_vty new file mode 100644 index 0000000..afa0a88 --- /dev/null +++ b/tests/handover/test0001.ho_vty @@ -0,0 +1,8 @@ +# Handover to best better cell +# The best neighbor cell is selected +create-n-bts 7 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 20 21 18 20 23 19 +expect-ho from lchan 0 0 1 0 to lchan 5 0 1 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 5 0 states * TCH/F - - - - - - diff --git a/tests/handover/test0002.ho_vty b/tests/handover/test0002.ho_vty new file mode 100644 index 0000000..ffd0311 --- /dev/null +++ b/tests/handover/test0002.ho_vty @@ -0,0 +1,36 @@ +# Handover and Assignment must be enabled +# This test will start with disabled assignment and handover. A +# better neighbor cell (assignment enabled) will not be selected and +# also no assignment from TCH/H to TCH/F to improve quality. There +# will be no handover nor assignment. After enabling assignment on the +# current cell, the MS will assign to TCH/F. After enabling handover +# in the current cell, but disabling in the neighbor cell, handover +# will not be performed, until it is enabled in the neighbor cell too. +network + handover 0 + handover2 afs-bias rxlev 5 + handover2 assignment 0 + +create-n-bts 2 +set-ts-use trx 0 0 states * - - - - TCH/H- - - +meas-rep lchan 0 0 5 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-no-chan +network + bts 0 + handover2 assignment 1 +meas-rep lchan 0 0 5 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - - +network + bts 0 + handover 1 +meas-rep lchan 0 0 1 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-no-chan +network + bts 1 + handover 1 +meas-rep lchan 0 0 1 0 rxlev 0 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 - - - - - - + diff --git a/tests/handover/test0003.ho_vty b/tests/handover/test0003.ho_vty new file mode 100644 index 0000000..be25c20 --- /dev/null +++ b/tests/handover/test0003.ho_vty @@ -0,0 +1,16 @@ +# Penalty timer must not run +# The MS will try to handover to a better cell, but this will fail. +# Even though the cell is still better, handover will not be performed +# due to penalty timer after handover failure + +create-n-bts 2 +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 - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 +expect-no-chan diff --git a/tests/handover/test0004.ho_vty b/tests/handover/test0004.ho_vty new file mode 100644 index 0000000..2f514bf --- /dev/null +++ b/tests/handover/test0004.ho_vty @@ -0,0 +1,20 @@ +# TCH/H keeping with HR codec +# The MS is using half rate V1 codec, but the better cell is congested +# at TCH/H slots. As the congestion is removed, the handover takes +# place. + +create-n-bts 2 +network + bts 1 + handover2 min-free-slots tch/h 4 +codec tch/h HR +set-ts-use trx 0 0 states * - - - - TCH/H- - - +meas-rep lchan 0 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 30 +expect-no-chan +network + bts 1 + handover2 min-free-slots tch/h 3 +meas-rep lchan 0 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 30 +expect-ho from lchan 0 0 5 0 to lchan 1 0 5 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * - - - - TCH/H- - - diff --git a/tests/handover/test0005.ho_vty b/tests/handover/test0005.ho_vty new file mode 100644 index 0000000..4729d25 --- /dev/null +++ b/tests/handover/test0005.ho_vty @@ -0,0 +1,21 @@ +# TCH/F keeping with FR codec +# The MS is using full rate V1 codec, but the better cell is congested +# at TCH/F slots. As the congestion is removed, the handover takes +# place. + +create-n-bts 2 +network + bts 1 + handover2 min-free-slots tch/f 4 +codec tch/f FR +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-no-chan +network + bts 1 + handover2 min-free-slots tch/f 3 +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 - - - - - - + diff --git a/tests/handover/test0006.ho_vty b/tests/handover/test0006.ho_vty new file mode 100644 index 0000000..f1a9b40 --- /dev/null +++ b/tests/handover/test0006.ho_vty @@ -0,0 +1,21 @@ +# TCH/F keeping with EFR codec +# The MS is using full rate V2 codec, but the better cell is congested +# at TCH/F slots. As the congestion is removed, the handover takes +# place. + +create-n-bts 2 +network + bts 1 + handover2 min-free-slots tch/f 4 +codec tch/f EFR +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-no-chan +network + bts 1 + handover2 min-free-slots tch/f 3 +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 - - - - - - + diff --git a/tests/handover/test0007.ho_vty b/tests/handover/test0007.ho_vty new file mode 100644 index 0000000..22c5e87 --- /dev/null +++ b/tests/handover/test0007.ho_vty @@ -0,0 +1,14 @@ +# TCH/F to TCH/H changing with AMR codec +# The MS is using AMR V3 codec, the better cell is congested at TCH/F +# slots. The handover is performed to non-congested TCH/H slots. + +create-n-bts 2 +network + bts 1 + handover2 min-free-slots tch/f 4 +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-ho from lchan 0 0 1 0 to lchan 1 0 5 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * - - - - TCH/H- - - + diff --git a/tests/handover/test0008.ho_vty b/tests/handover/test0008.ho_vty new file mode 100644 index 0000000..3b06d3d --- /dev/null +++ b/tests/handover/test0008.ho_vty @@ -0,0 +1,9 @@ +# No handover to a cell with no slots available +# If no slot is available, no handover is performed + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/HH TCH/HH - +meas-rep lchan 0 0 1 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-no-chan + diff --git a/tests/handover/test0009.ho_vty b/tests/handover/test0009.ho_vty new file mode 100644 index 0000000..31482d2 --- /dev/null +++ b/tests/handover/test0009.ho_vty @@ -0,0 +1,16 @@ +# No more parallel handovers, if max_unsync_ho is defined +# There are three mobiles that want to handover, but only two can do +# it at a time, because the maximum number is limited to two. + +create-n-bts 2 +network + bts 1 + handover2 max-handovers 2 +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 +meas-rep lchan 0 0 2 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-chan lchan 1 0 2 0 +meas-rep lchan 0 0 3 0 rxlev 0 rxqual 0 ta 0 neighbors 30 +expect-no-chan + diff --git a/tests/handover/test0010.ho_vty b/tests/handover/test0010.ho_vty new file mode 100644 index 0000000..5c06a36 --- /dev/null +++ b/tests/handover/test0010.ho_vty @@ -0,0 +1,13 @@ +# Hysteresis +# If neighbor cell is better, handover is only performed if the +# amount of improvement is greater or equal hyteresis + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 27 rxqual 0 ta 0 neighbors 30 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 26 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 - - - - - - + diff --git a/tests/handover/test0011.ho_vty b/tests/handover/test0011.ho_vty new file mode 100644 index 0000000..e034fad --- /dev/null +++ b/tests/handover/test0011.ho_vty @@ -0,0 +1,20 @@ +# No Hysteresis and minimum RX level +# If current cell's RX level is below mimium level, handover must be +# performed, no matter of the hysteresis. First do not perform +# handover to better neighbor cell, because the hysteresis is not +# met. Second do not perform handover because better neighbor cell is +# below minimum RX level. Third perform handover because current cell +# is below minimum RX level, even if the better neighbor cell (minimum +# RX level reached) does not meet the hysteresis. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 11 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 8 rxqual 0 ta 0 neighbors 9 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 9 rxqual 0 ta 0 neighbors 10 +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 - - - - - - + diff --git a/tests/handover/test0012.ho_vty b/tests/handover/test0012.ho_vty new file mode 100644 index 0000000..b2319d4 --- /dev/null +++ b/tests/handover/test0012.ho_vty @@ -0,0 +1,21 @@ +# No handover to congested cell +# The better neighbor cell is congested, so no handover is performed. +# After the congestion is over, handover will be performed. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +network + bts 1 + 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 +network + bts 1 + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 3 +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 - - - - - - + diff --git a/tests/handover/test0013.ho_vty b/tests/handover/test0013.ho_vty new file mode 100644 index 0000000..e8304a1 --- /dev/null +++ b/tests/handover/test0013.ho_vty @@ -0,0 +1,24 @@ +# Handover to balance congestion +# The current and the better cell are congested, so no handover is +# performed. This is because handover would congest the neighbor cell +# more. After congestion rises in the current cell, the handover is +# performed to balance congestion + +create-n-bts 2 +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 +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 - - - - - +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 * - TCH/F - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0014.ho_vty b/tests/handover/test0014.ho_vty new file mode 100644 index 0000000..d43b89c --- /dev/null +++ b/tests/handover/test0014.ho_vty @@ -0,0 +1,18 @@ +# Handover to congested cell, if RX level is below minimum +# The better neighbor cell is congested, so no handover is performed. +# If the RX level of the current cell drops below minimum acceptable +# level, the handover is performed. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +network + bts 1 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 +meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 30 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 9 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 - - - - - - + diff --git a/tests/handover/test0015.ho_vty b/tests/handover/test0015.ho_vty new file mode 100644 index 0000000..2b80d01 --- /dev/null +++ b/tests/handover/test0015.ho_vty @@ -0,0 +1,37 @@ +# Handover to cell with worse RXLEV, if RXQUAL is below minimum +# The neighbor cell has worse RXLEV, so no handover is performed. +# If the RXQUAL of the current cell drops below minimum acceptable +# level, the handover is performed. It is also required that 10 +# reports are received, before RXQUAL is checked. +# +# (See also test 28, which tests for RXQUAL triggering HO to congested cell.) +# +# TODO: bad RXQUAL may want to prefer assignment within the same cell to avoid interference. +# See Performance Enhancements in a Frequency Hopping GSM Network (Nielsen Wigard 2002), Chapter +# 2.1.1, "Interference" in the list of triggers on p.157. + +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 +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 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0016.ho_vty b/tests/handover/test0016.ho_vty new file mode 100644 index 0000000..05c4a76 --- /dev/null +++ b/tests/handover/test0016.ho_vty @@ -0,0 +1,21 @@ +# Handover due to maximum TA exceeded +# The MS in the current (best) cell has reached maximum allowed timing +# advance. No handover is performed until the timing advance exceeds +# it. The originating cell is still the best, but no handover is +# performed back to that cell, because the penalty timer (due to +# maximum allowed timing advance) is running. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +network + bts 0 + handover2 maximum distance 5 +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 5 neighbors 20 +expect-no-chan +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 6 neighbors 20 +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 - - - - - - +meas-rep lchan 1 0 1 0 rxlev 20 rxqual 0 ta 6 neighbors 30 +expect-no-chan + diff --git a/tests/handover/test0017.ho_vty b/tests/handover/test0017.ho_vty new file mode 100644 index 0000000..824d1d3 --- /dev/null +++ b/tests/handover/test0017.ho_vty @@ -0,0 +1,34 @@ +# Congestion check: No congestion +# Three cells have different number of used slots, but there is no +# congestion in any of these cells. No handover is performed. + +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 +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 +expect-no-chan +congestion-check +expect-no-chan +expect-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - +expect-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - + diff --git a/tests/handover/test0018.ho_vty b/tests/handover/test0018.ho_vty new file mode 100644 index 0000000..4919d20 --- /dev/null +++ b/tests/handover/test0018.ho_vty @@ -0,0 +1,39 @@ +# Congestion check: One out of three cells is congested +# Three cells have different number of used slots, but there is +# congestion at TCH/F in the first cell. Handover is performed with +# the best candidate. + +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 +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 +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 3 0 rxlev 30 rxqual 0 ta 0 neighbors 21 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 +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 +expect-ho from lchan 0 0 3 0 to lchan 1 0 2 0 +expect-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - +expect-ts-use trx 1 0 states * TCH/F TCH/F - - TCH/H- - - + diff --git a/tests/handover/test0019.ho_vty b/tests/handover/test0019.ho_vty new file mode 100644 index 0000000..2e7fa5a --- /dev/null +++ b/tests/handover/test0019.ho_vty @@ -0,0 +1,26 @@ +# Congestion check: Balancing over congested cells +# Two cells are congested, but the second cell is less congested. +# Handover is performed to solve the congestion. + +create-n-bts 2 +network + bts 0 + handover2 min-free-slots tch/f 4 + bts 1 + 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 - - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan +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 - - - - +expect-ts-use trx 1 0 states * TCH/F TCH/F - - - - - + diff --git a/tests/handover/test0020.ho_vty b/tests/handover/test0020.ho_vty new file mode 100644 index 0000000..5c93494 --- /dev/null +++ b/tests/handover/test0020.ho_vty @@ -0,0 +1,19 @@ +# Congestion check: Solving congestion by handover TCH/F -> TCH/H +# Two BTS, one MS in the first congested BTS must handover to +# non-congested TCH/H of second BTS, in order to solve congestion + +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 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 30 +expect-no-chan +congestion-check +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * - - - - TCH/H- - - + diff --git a/tests/handover/test0021.ho_vty b/tests/handover/test0021.ho_vty new file mode 100644 index 0000000..79a3084 --- /dev/null +++ b/tests/handover/test0021.ho_vty @@ -0,0 +1,20 @@ +# Congestion check: Balancing congestion by handover TCH/F -> TCH/H +# Two BTS, one MS in the first congested BTS must handover to +# less-congested TCH/H of second BTS, in order to balance congestion + +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 +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 +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 - - TCH/H- - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0022.ho_vty b/tests/handover/test0022.ho_vty new file mode 100644 index 0000000..d6515fc --- /dev/null +++ b/tests/handover/test0022.ho_vty @@ -0,0 +1,19 @@ +# Congestion check: Upgrading worst candidate from TCH/H -> TCH/F +# There is only one BTS. The TCH/H slots are congested. Since +# assignment is performed to less-congested TCH/F, the candidate with +# the worst RX level is chosen. + +create-n-bts 1 +network + bts 0 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 +set-ts-use trx 0 0 states * - - - - TCH/HH TCH/H- - +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 +meas-rep lchan 0 0 5 1 rxlev 34 rxqual 0 ta 0 +meas-rep lchan 0 0 6 0 rxlev 20 rxqual 0 ta 0 +expect-no-chan +congestion-check +expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - TCH/HH - - + diff --git a/tests/handover/test0023.ho_vty b/tests/handover/test0023.ho_vty new file mode 100644 index 0000000..4e82761 --- /dev/null +++ b/tests/handover/test0023.ho_vty @@ -0,0 +1,72 @@ +# Story: 'A neighbor is your friend' + +create-n-bts 3 + +# Andreas is driving along the coast, on a sunny june afternoon. +# Suddenly he is getting a call from his friend and neighbor Axel. +# +# What happens: Two MS are created, #0 for Axel, #1 for Andreas. +# Axel: +create-ms bts 2 TCH/F AMR +# andreas: +create-ms bts 0 TCH/F AMR +expect-ts-use trx 0 0 states * TCH/F - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - +expect-ts-use trx 2 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +# Axel asks Andreas if he would like to join them for a barbecue. +# Axel's house is right in the neighborhood and the weather is fine. +# Andreas agrees, so he drives to a close store to buy some barbecue +# skewers. +# +# What happens: While driving, a different cell (mounted atop the +# store) becomes better. +# drive to bts 1: +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 35 +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 - - - - - - +expect-ts-use trx 2 0 states * TCH/F - - - - - - + +# While Andreas is walking into the store, Axel asks, if he could also +# bring some beer. Andreas has problems understanding him: "I have a +# bad reception here. The cell tower is right atop the store, but poor +# coverage inside. Can you repeat please?" +# +# What happens: Inside the store the close cell is so bad, that +# handover back to the previous cell is required. +# bts 1 becomes bad, so bts 0 helps out: +meas-rep lchan 1 0 1 0 rxlev 5 rxqual 0 ta 0 neighbors 20 +expect-ho from lchan 1 0 1 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - +expect-ts-use trx 2 0 states * TCH/F - - - - - - + +# After Andreas bought skewers and beer, he leaves the store. +# +# What happens: Outside the store the close cell is better again, so +# handover back to the that cell is performed. +# bts 1 becomes better again: +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 35 +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 - - - - - - +expect-ts-use trx 2 0 states * TCH/F - - - - - - + +# bts 2 becomes better: +# Andreas drives down to the lake where Axel's house is. +# +# What happens: There is a small cell at Axel's house, which becomes +# better, because the current cell has no good comverage at the lake. +meas-rep lchan 1 0 1 0 rxlev 14 rxqual 0 ta 0 neighbors 2 63 +expect-ho from lchan 1 0 1 0 to lchan 2 0 2 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - +expect-ts-use trx 2 0 states * TCH/F TCH/F - - - - - + +# Andreas wonders why he still has good radio coverage: "Last time it +# was so bad". Axel says: "I installed a pico cell in my house, +# now we can use our mobile phones down here at the lake." + diff --git a/tests/handover/test0024.ho_vty b/tests/handover/test0024.ho_vty new file mode 100644 index 0000000..b67a248 --- /dev/null +++ b/tests/handover/test0024.ho_vty @@ -0,0 +1,46 @@ +# No (or not enough) measurements for handover +# Do not solve congestion in cell, because there is no measurement. +# As soon as enough measurements available (1 in our case), perform +# handover. Afterwards the old cell becomes congested and the new +# cell is not. Do not perform handover until new measurements are +# received. +# +# two cells, first in congested, but no handover: + +create-n-bts 2 +network + bts 0 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 +set-ts-use trx 0 0 states * TCH/F - - - - - - +congestion-check +expect-no-chan +expect-ts-use trx 0 0 states * TCH/F - - - - - - + +# send measurement and trigger congestion check: +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 20 +expect-no-chan +congestion-check +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 - - - - - - + +# congest the first cell and remove congestion from second cell: +network + bts 0 + handover2 min-free-slots tch/f 0 + handover2 min-free-slots tch/h 0 + bts 1 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 + +# no handover until measurements applied: +congestion-check +expect-no-chan +meas-rep lchan 1 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 20 +expect-no-chan +congestion-check +expect-ho from lchan 1 0 1 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - - +expect-ts-use trx 1 0 states * - - - - - - - + diff --git a/tests/handover/test0025.ho_vty b/tests/handover/test0025.ho_vty new file mode 100644 index 0000000..b3e76f8 --- /dev/null +++ b/tests/handover/test0025.ho_vty @@ -0,0 +1,10 @@ +# Stay in better cell +# There are many neighbor cells, but only the current cell is the best +# cell, so no handover is performed + +create-n-bts 7 +create-ms bts 0 TCH/F AMR +expect-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 21 18 20 23 19 +expect-no-chan + diff --git a/tests/handover/test0026.ho_vty b/tests/handover/test0026.ho_vty new file mode 100644 index 0000000..c3f5544 --- /dev/null +++ b/tests/handover/test0026.ho_vty @@ -0,0 +1,10 @@ +# Handover to best better cell +# The best neighbor cell is selected + +create-n-bts 7 +set-ts-use trx 0 0 states * TCH/F - - - - - - +meas-rep lchan 0 0 1 0 rxlev 10 rxqual 0 ta 0 neighbors 20 21 18 20 23 19 +expect-ho from lchan 0 0 1 0 to lchan 5 0 1 0 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 5 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0027.ho_vty b/tests/handover/test0027.ho_vty new file mode 100644 index 0000000..e7778d0 --- /dev/null +++ b/tests/handover/test0027.ho_vty @@ -0,0 +1,27 @@ +# Congestion check: Upgrading worst candidate from TCH/H -> TCH/F +# There is only one BTS. The TCH/H slots are congested. Since +# assignment is performed to less-congested TCH/F, the candidate with +# the worst RX level is chosen. (So far like test 22.) +# After that, trigger more congestion checks to ensure stability. + +create-n-bts 1 +network + bts 0 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 4 +set-ts-use trx 0 0 states * - - - - TCH/HH TCH/H- - +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 +meas-rep lchan 0 0 5 1 rxlev 34 rxqual 0 ta 0 +meas-rep lchan 0 0 6 0 rxlev 20 rxqual 0 ta 0 +expect-no-chan +congestion-check +expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - TCH/HH - - +congestion-check +expect-ho from lchan 0 0 5 0 to lchan 0 0 2 0 +expect-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/-H - - +congestion-check +expect-no-chan +congestion-check +expect-no-chan + diff --git a/tests/handover/test0028.ho_vty b/tests/handover/test0028.ho_vty new file mode 100644 index 0000000..1e81293 --- /dev/null +++ b/tests/handover/test0028.ho_vty @@ -0,0 +1,35 @@ +# Handover to congested cell, if RX quality is below minimum +# The better neighbor cell is congested, so no handover is performed. +# If the RX quality of the current cell drops below minimum acceptable +# level, the handover is performed. It is also required that 10 +# resports are received, before RX quality is checked. + +create-n-bts 2 +set-ts-use trx 0 0 states * TCH/F - - - - - - +network + 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 +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 +expect-ts-use trx 0 0 states * - - - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + diff --git a/tests/handover/test0029.ho_vty b/tests/handover/test0029.ho_vty new file mode 100644 index 0000000..ffa3614 --- /dev/null +++ b/tests/handover/test0029.ho_vty @@ -0,0 +1,15 @@ +# Congestion check: Balancing congestion by handover TCH/F -> TCH/H +# One BTS, and TCH/F are considered congested, TCH/H are not. + +create-n-bts 1 +network + bts 0 + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 0 +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 +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/HH - - + diff --git a/tests/handover/test0030.ho_vty b/tests/handover/test0030.ho_vty new file mode 100644 index 0000000..3ae5997 --- /dev/null +++ b/tests/handover/test0030.ho_vty @@ -0,0 +1,81 @@ +# Congestion check: Balancing congestion by handover TCH/F -> TCH/H +# With dynamic timeslots. +# As soon as only one TCH/F is left, there should be HO to a dyn TS. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH + +network + bts 0 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 0 + handover2 assignment 1 +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 + +congestion-check +expect-no-chan + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +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 + +congestion-check +expect-no-chan + diff --git a/tests/handover/test0031.ho_vty b/tests/handover/test0031.ho_vty new file mode 100644 index 0000000..c648c27 --- /dev/null +++ b/tests/handover/test0031.ho_vty @@ -0,0 +1,7 @@ +# assign new MS: re-use half used TCH/H to avoid switching more dyn TS to TCH/H + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH +set-ts-use trx 0 0 states * - - - pdch TCH/H- pdch pdch +create-ms bts 0 TCH/H AMR +expect-ts-use trx 0 0 states * - - - pdch TCH/HH pdch pdch + diff --git a/tests/handover/test0032.ho_vty b/tests/handover/test0032.ho_vty new file mode 100644 index 0000000..b90236d --- /dev/null +++ b/tests/handover/test0032.ho_vty @@ -0,0 +1,15 @@ +# Congestion check: favor moving a TCH/H that frees a half-used dyn TS completely + +create-bts trx-count 1 timeslots c+s4 dyn dyn dyn dyn dyn - - +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 - - diff --git a/tests/testsuite.at b/tests/testsuite.at index afff9c5..17153cc 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -51,200 +51,8 @@ AT_CHECK([$abs_top_builddir/tests/handover/neighbor_ident_test], [], [expout], [experr]) AT_CLEANUP -AT_SETUP([handover test 0]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 0], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 1]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 1], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 2]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 2], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 3]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 3], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 4]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 4], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 5]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 5], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 6]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 6], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 7]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 7], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 8]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 8], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 9]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 9], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 10]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 10], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 11]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 11], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 12]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 12], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 13]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 13], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 14]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 14], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 15]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 15], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 16]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 16], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 17]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 17], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 18]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 18], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 19]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 19], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 20]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 20], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 21]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 21], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 22]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 22], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 23]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 23], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 24]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 24], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 25]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 25], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 26]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 26], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 27]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 27], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 28]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 28], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 29]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 29], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 30]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 30], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 31]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 31], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([handover test 32]) -AT_KEYWORDS([handover]) -cat $abs_srcdir/handover/handover_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/handover/handover_test 32], [], [expout], [ignore]) +AT_SETUP([handover_tests]) +AT_KEYWORDS([handover_tests]) +cat $abs_srcdir/handover/handover_tests.ok > expout +AT_CHECK([$abs_srcdir/handover/handover_tests.sh $abs_srcdir/handover $abs_builddir/handover], [], [expout], [ignore]) AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie238ebe41039d3fa44c9699937589e000883e052 Gerrit-Change-Number: 21642 Gerrit-PatchSet: 6 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 Wed Dec 23 01:59:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 01:59:09 +0000 Subject: Change in osmo-bsc[master]: handover_test: log sending ho complete In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21659 ) Change subject: handover_test: log sending ho complete ...................................................................... handover_test: log sending ho complete Change-Id: I540e880f9aafb92be03c35086340de1968b26836 --- M tests/handover/handover_test.c 1 file changed, 5 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 33e5ff0..0e603fa 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -618,6 +618,11 @@ send_est_ind(lchan); osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RTP_READY, 0); + if (success) + fprintf(stderr, "- Send HO COMPLETE for %s\n", gsm_lchan_name(lchan)); + else + fprintf(stderr, "- Send HO FAIL to %s\n", gsm_lchan_name(lchan)); + rh = (struct abis_rsl_rll_hdr *) msgb_put(msg, sizeof(*rh)); rh->c.msg_discr = ABIS_RSL_MDISC_RLL; rh->c.msg_type = RSL_MT_DATA_IND; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I540e880f9aafb92be03c35086340de1968b26836 Gerrit-Change-Number: 21659 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 Wed Dec 23 01:59:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 01:59:10 +0000 Subject: Change in osmo-bsc[master]: handover_test: send ho detection In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21660 ) Change subject: handover_test: send ho detection ...................................................................... handover_test: send ho detection So far we skipped the HO Detection message, because the FSM also accepts a handover when the Handover Complete arrives without a Detection. Rather model the real behavior. Also send the EST IND message and RTP-ready events from the ho detection. Change-Id: Ib676e74f23ef9cd1b55262117822b0e110013bdc --- M tests/handover/handover_test.c 1 file changed, 44 insertions(+), 4 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 0e603fa..69b25a1 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -605,7 +605,32 @@ abis_rsl_rcvmsg(msg); } -/* send handover complete */ +static void send_ho_detect(struct gsm_lchan *lchan) +{ + struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL"); + struct abis_rsl_rll_hdr *rh; + uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + + fprintf(stderr, "- Send HO DETECT for %s\n", gsm_lchan_name(lchan)); + + rh = (struct abis_rsl_rll_hdr *) msgb_put(msg, sizeof(*rh)); + rh->c.msg_discr = ABIS_RSL_MDISC_DED_CHAN; + rh->c.msg_type = RSL_MT_HANDO_DET; + rh->ie_chan = RSL_IE_CHAN_NR; + rh->chan_nr = chan_nr; + rh->ie_link_id = RSL_IE_LINK_IDENT; + rh->link_id = 0x00; + + msg->dst = lchan->ts->trx->bts->c0->rsl_link; + msg->l2h = (unsigned char *)rh; + + abis_rsl_rcvmsg(msg); + + send_est_ind(lchan); + osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RTP_READY, 0); + +} + static void send_ho_complete(struct gsm_lchan *lchan, bool success) { struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL"); @@ -615,9 +640,6 @@ struct gsm48_hdr *gh; struct gsm48_ho_cpl *hc; - send_est_ind(lchan); - osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RTP_READY, 0); - if (success) fprintf(stderr, "- Send HO COMPLETE for %s\n", gsm_lchan_name(lchan)); else @@ -975,6 +997,22 @@ return CMD_SUCCESS; } +DEFUN(ho_detection, ho_detection_cmd, + "ho-detect", + "Send Handover Detection to the most recent HO target lchan\n") +{ + if (!got_chan_req) { + 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(chan_req_lchan); + return CMD_SUCCESS; +} + DEFUN(ho_complete, ho_complete_cmd, "ho-complete", "Send Handover Complete for the most recent HO target lchan\n") @@ -1005,6 +1043,7 @@ _expect_chan_activ(to); _ack_chan_activ(to); _expect_ho_req(from); + send_ho_detect(to); send_ho_complete(to, true); lchan_release_ack(from); return CMD_SUCCESS; @@ -1088,6 +1127,7 @@ 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); install_element(CONFIG_NODE, &expect_ho_cmd); install_element(CONFIG_NODE, &ho_failed_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib676e74f23ef9cd1b55262117822b0e110013bdc Gerrit-Change-Number: 21660 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 Wed Dec 23 01:59:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 01:59:11 +0000 Subject: Change in osmo-bsc[master]: handover_test: adjust logging for reproducability In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21661 ) Change subject: handover_test: adjust logging for reproducability ...................................................................... handover_test: adjust logging for reproducability Do not show source file and line numbers in the log, so that the log output remains unchanged for unrelated changes. Also show the log level. Change-Id: I8ebcaf16cd14881a3a41616dcff175e173db9ae8 --- M tests/handover/handover_test.c 1 file changed, 3 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 69b25a1..92d25da 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -1248,9 +1248,11 @@ osmo_init_logging2(ctx, &log_info); + log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_NONE); log_set_print_category(osmo_stderr_target, 1); log_set_print_category_hex(osmo_stderr_target, 0); - log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); + log_set_print_level(osmo_stderr_target, 1); + log_set_print_timestamp(osmo_stderr_target, 0); osmo_fsm_log_addr(false); bsc_network_alloc(); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8ebcaf16cd14881a3a41616dcff175e173db9ae8 Gerrit-Change-Number: 21661 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 Wed Dec 23 01:59:12 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 01:59:12 +0000 Subject: Change in osmo-bsc[master]: handover_test: set a fake osmo_mgcpc_ep_ci pointer In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21662 ) Change subject: handover_test: set a fake osmo_mgcpc_ep_ci pointer ...................................................................... handover_test: set a fake osmo_mgcpc_ep_ci pointer The handover_fsm activates voice on a target lchan only when the source lchan has an osmo_mgcpc_ep_ci pointer for the BTS side. Since that struct is opaque, set a fake pointer and override the osmo_mgcpc_ep_ci_name() function so that the pointer is never dereferenced. This more accurately models the RTP stream setup events during handover. Change-Id: Ibc22001bf9e9874dd3f44f0acac8b6a4c1069aa7 --- M tests/handover/handover_test.c 1 file changed, 10 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 92d25da..cbe0cf3 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -381,6 +381,8 @@ lchan->fi->state = LCHAN_ST_ESTABLISHED; lchan->ts->fi->state = TS_ST_IN_USE; lchan->type = full_rate ? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H; + /* Fake osmo_mgcpc_ep_ci to indicate that the lchan is used for voice */ + lchan->mgw_endpoint_ci_bts = (void*)1; if (lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) lchan->ts->pchan_is = full_rate ? GSM_PCHAN_TCH_F : GSM_PCHAN_TCH_H; @@ -1346,3 +1348,11 @@ void osmo_bsc_sigtran_reset(void) {} void bssmap_reset_alloc(void) {} void bssmap_reset_is_conn_ready(void) {} +const char *osmo_mgcpc_ep_name(const struct osmo_mgcpc_ep *ep) +{ + return "fake-ep"; +} +const char *osmo_mgcpc_ep_ci_name(const struct osmo_mgcpc_ep_ci *ci) +{ + return "fake-ci"; +} -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibc22001bf9e9874dd3f44f0acac8b6a4c1069aa7 Gerrit-Change-Number: 21662 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 Wed Dec 23 01:59:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 01:59:13 +0000 Subject: Change in osmo-bsc[master]: handover_test: rename test scripts from numbers to names In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21643 ) Change subject: handover_test: rename test scripts from numbers to names ...................................................................... handover_test: rename test scripts from numbers to names The meaningful names expose that some of those tests are apparently quite similar. With names like this it is far easier to see whether a specific scenario is already tested or not, and find a test when looking for a specific scenario. Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 --- M tests/handover/handover_tests.ok R tests/handover/test_amr_tch_f_to_h.ho_vty R tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty R tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty R tests/handover/test_balance_congestion.ho_vty R tests/handover/test_balance_congestion_2.ho_vty R tests/handover/test_congestion.ho_vty R tests/handover/test_disabled_ho_and_as.ho_vty R tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty R tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty R tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty R tests/handover/test_ho_to_better_cell.ho_vty R tests/handover/test_ho_to_better_cell_2.ho_vty R tests/handover/test_hysteresis.ho_vty R tests/handover/test_insufficient_measurements.ho_vty R tests/handover/test_keep_efr_codec.ho_vty R tests/handover/test_keep_fr_codec.ho_vty R tests/handover/test_keep_hr_codec.ho_vty R tests/handover/test_max_handovers.ho_vty R tests/handover/test_max_ta.ho_vty R tests/handover/test_min_rxlev_vs_congestion.ho_vty R tests/handover/test_min_rxlev_vs_hysteresis.ho_vty R tests/handover/test_neighbor_congested.ho_vty R tests/handover/test_neighbor_full.ho_vty R tests/handover/test_no_congestion.ho_vty R tests/handover/test_penalty_timer.ho_vty R tests/handover/test_rxqual.ho_vty R tests/handover/test_rxqual_vs_congestion.ho_vty R tests/handover/test_stay_in_better_cell.ho_vty R tests/handover/test_stay_in_better_cell_2.ho_vty R tests/handover/test_story.ho_vty 34 files changed, 33 insertions(+), 33 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 5ec8dc2..1a9a18f 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -1,33 +1,33 @@ -pass test0000.ho_vty -pass test0001.ho_vty -pass test0002.ho_vty -pass test0003.ho_vty -pass test0004.ho_vty -pass test0005.ho_vty -pass test0006.ho_vty -pass test0007.ho_vty -pass test0008.ho_vty -pass test0009.ho_vty -pass test0010.ho_vty -pass test0011.ho_vty -pass test0012.ho_vty -pass test0013.ho_vty -pass test0014.ho_vty -pass test0015.ho_vty -pass test0016.ho_vty -pass test0017.ho_vty -pass test0018.ho_vty -pass test0019.ho_vty -pass test0020.ho_vty -pass test0021.ho_vty -pass test0022.ho_vty -pass test0023.ho_vty -pass test0024.ho_vty -pass test0025.ho_vty -pass test0026.ho_vty -pass test0027.ho_vty -pass test0028.ho_vty -pass test0029.ho_vty -pass test0030.ho_vty -pass test0031.ho_vty -pass test0032.ho_vty +pass test_amr_tch_f_to_h.ho_vty +pass test_amr_tch_f_to_h_balance_congestion.ho_vty +pass test_amr_tch_f_to_h_congestion.ho_vty +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_balance_congestion.ho_vty +pass test_balance_congestion_2.ho_vty +pass test_congestion.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 +pass test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +pass test_ho_to_better_cell.ho_vty +pass test_ho_to_better_cell_2.ho_vty +pass test_hysteresis.ho_vty +pass test_insufficient_measurements.ho_vty +pass test_keep_efr_codec.ho_vty +pass test_keep_fr_codec.ho_vty +pass test_keep_hr_codec.ho_vty +pass test_max_handovers.ho_vty +pass test_max_ta.ho_vty +pass test_min_rxlev_vs_congestion.ho_vty +pass test_min_rxlev_vs_hysteresis.ho_vty +pass test_neighbor_congested.ho_vty +pass test_neighbor_full.ho_vty +pass test_no_congestion.ho_vty +pass test_penalty_timer.ho_vty +pass test_rxqual.ho_vty +pass test_rxqual_vs_congestion.ho_vty +pass test_stay_in_better_cell.ho_vty +pass test_stay_in_better_cell_2.ho_vty +pass test_story.ho_vty diff --git a/tests/handover/test0007.ho_vty b/tests/handover/test_amr_tch_f_to_h.ho_vty similarity index 100% rename from tests/handover/test0007.ho_vty rename to tests/handover/test_amr_tch_f_to_h.ho_vty diff --git a/tests/handover/test0021.ho_vty b/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty similarity index 100% rename from tests/handover/test0021.ho_vty rename to tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty diff --git a/tests/handover/test0020.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion.ho_vty similarity index 100% rename from tests/handover/test0020.ho_vty rename to tests/handover/test_amr_tch_f_to_h_congestion.ho_vty diff --git a/tests/handover/test0022.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty similarity index 100% rename from tests/handover/test0022.ho_vty rename to tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty diff --git a/tests/handover/test0027.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty similarity index 100% rename from tests/handover/test0027.ho_vty rename to tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty diff --git a/tests/handover/test0029.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty similarity index 100% rename from tests/handover/test0029.ho_vty rename to tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty diff --git a/tests/handover/test0013.ho_vty b/tests/handover/test_balance_congestion.ho_vty similarity index 100% rename from tests/handover/test0013.ho_vty rename to tests/handover/test_balance_congestion.ho_vty diff --git a/tests/handover/test0019.ho_vty b/tests/handover/test_balance_congestion_2.ho_vty similarity index 100% rename from tests/handover/test0019.ho_vty rename to tests/handover/test_balance_congestion_2.ho_vty diff --git a/tests/handover/test0018.ho_vty b/tests/handover/test_congestion.ho_vty similarity index 100% rename from tests/handover/test0018.ho_vty rename to tests/handover/test_congestion.ho_vty diff --git a/tests/handover/test0002.ho_vty b/tests/handover/test_disabled_ho_and_as.ho_vty similarity index 100% rename from tests/handover/test0002.ho_vty rename to tests/handover/test_disabled_ho_and_as.ho_vty diff --git a/tests/handover/test0030.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty similarity index 100% rename from tests/handover/test0030.ho_vty rename to tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty diff --git a/tests/handover/test0031.ho_vty b/tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty similarity index 100% rename from tests/handover/test0031.ho_vty rename to tests/handover/test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test0032.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty similarity index 100% rename from tests/handover/test0032.ho_vty rename to tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty diff --git a/tests/handover/test0001.ho_vty b/tests/handover/test_ho_to_better_cell.ho_vty similarity index 100% rename from tests/handover/test0001.ho_vty rename to tests/handover/test_ho_to_better_cell.ho_vty diff --git a/tests/handover/test0026.ho_vty b/tests/handover/test_ho_to_better_cell_2.ho_vty similarity index 100% rename from tests/handover/test0026.ho_vty rename to tests/handover/test_ho_to_better_cell_2.ho_vty diff --git a/tests/handover/test0010.ho_vty b/tests/handover/test_hysteresis.ho_vty similarity index 100% rename from tests/handover/test0010.ho_vty rename to tests/handover/test_hysteresis.ho_vty diff --git a/tests/handover/test0024.ho_vty b/tests/handover/test_insufficient_measurements.ho_vty similarity index 100% rename from tests/handover/test0024.ho_vty rename to tests/handover/test_insufficient_measurements.ho_vty diff --git a/tests/handover/test0006.ho_vty b/tests/handover/test_keep_efr_codec.ho_vty similarity index 100% rename from tests/handover/test0006.ho_vty rename to tests/handover/test_keep_efr_codec.ho_vty diff --git a/tests/handover/test0005.ho_vty b/tests/handover/test_keep_fr_codec.ho_vty similarity index 100% rename from tests/handover/test0005.ho_vty rename to tests/handover/test_keep_fr_codec.ho_vty diff --git a/tests/handover/test0004.ho_vty b/tests/handover/test_keep_hr_codec.ho_vty similarity index 100% rename from tests/handover/test0004.ho_vty rename to tests/handover/test_keep_hr_codec.ho_vty diff --git a/tests/handover/test0009.ho_vty b/tests/handover/test_max_handovers.ho_vty similarity index 100% rename from tests/handover/test0009.ho_vty rename to tests/handover/test_max_handovers.ho_vty diff --git a/tests/handover/test0016.ho_vty b/tests/handover/test_max_ta.ho_vty similarity index 100% rename from tests/handover/test0016.ho_vty rename to tests/handover/test_max_ta.ho_vty diff --git a/tests/handover/test0014.ho_vty b/tests/handover/test_min_rxlev_vs_congestion.ho_vty similarity index 100% rename from tests/handover/test0014.ho_vty rename to tests/handover/test_min_rxlev_vs_congestion.ho_vty diff --git a/tests/handover/test0011.ho_vty b/tests/handover/test_min_rxlev_vs_hysteresis.ho_vty similarity index 100% rename from tests/handover/test0011.ho_vty rename to tests/handover/test_min_rxlev_vs_hysteresis.ho_vty diff --git a/tests/handover/test0012.ho_vty b/tests/handover/test_neighbor_congested.ho_vty similarity index 100% rename from tests/handover/test0012.ho_vty rename to tests/handover/test_neighbor_congested.ho_vty diff --git a/tests/handover/test0008.ho_vty b/tests/handover/test_neighbor_full.ho_vty similarity index 100% rename from tests/handover/test0008.ho_vty rename to tests/handover/test_neighbor_full.ho_vty diff --git a/tests/handover/test0017.ho_vty b/tests/handover/test_no_congestion.ho_vty similarity index 100% rename from tests/handover/test0017.ho_vty rename to tests/handover/test_no_congestion.ho_vty diff --git a/tests/handover/test0003.ho_vty b/tests/handover/test_penalty_timer.ho_vty similarity index 100% rename from tests/handover/test0003.ho_vty rename to tests/handover/test_penalty_timer.ho_vty diff --git a/tests/handover/test0015.ho_vty b/tests/handover/test_rxqual.ho_vty similarity index 100% rename from tests/handover/test0015.ho_vty rename to tests/handover/test_rxqual.ho_vty diff --git a/tests/handover/test0028.ho_vty b/tests/handover/test_rxqual_vs_congestion.ho_vty similarity index 100% rename from tests/handover/test0028.ho_vty rename to tests/handover/test_rxqual_vs_congestion.ho_vty diff --git a/tests/handover/test0000.ho_vty b/tests/handover/test_stay_in_better_cell.ho_vty similarity index 100% rename from tests/handover/test0000.ho_vty rename to tests/handover/test_stay_in_better_cell.ho_vty diff --git a/tests/handover/test0025.ho_vty b/tests/handover/test_stay_in_better_cell_2.ho_vty similarity index 100% rename from tests/handover/test0025.ho_vty rename to tests/handover/test_stay_in_better_cell_2.ho_vty diff --git a/tests/handover/test0023.ho_vty b/tests/handover/test_story.ho_vty similarity index 100% rename from tests/handover/test0023.ho_vty rename to tests/handover/test_story.ho_vty -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6f6d65d818fd1265e8ff94a2e0afba6392c50eb9 Gerrit-Change-Number: 21643 Gerrit-PatchSet: 6 Gerrit-Owner: neels 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 Wed Dec 23 02:00:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 02:00:39 +0000 Subject: Change in osmo-bsc[master]: handover_tests: add expected output In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21645 ) Change subject: handover_tests: add expected output ...................................................................... Abandoned let's just not add the expected output to git -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I387aa62eb2dd9896494aefa32e6d336106e0ecdc Gerrit-Change-Number: 21645 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Dec 23 02:12:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 23 Dec 2020 02:12:56 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fe2a7be28b11_6ef32b22262f2600749141@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] [ 153.306834] sysrq: Power Off [ 166s] [ 153.314871] reboot: Power down [ 166s] ### VM INTERACTION END ### [ 166s] [ 166s] lamb08 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 23 02:12:46 UTC 2020. [ 166s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 23 02:28:54 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 23 Dec 2020 02:28:54 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fe2ab80b6c99_6ef32b22262f26007515fc@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] [ 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] [ 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] [ 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] [ 146.451416] sysrq: Power Off [ 160s] [ 146.456611] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] old-atreju2 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 23 02:28:33 UTC 2020. [ 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 Wed Dec 23 07:53:11 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 07:53:11 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Se... References: Message-ID: herlesupreeth has uploaded this change for review. ( 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/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 14 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/50/21850/1 diff --git a/pySim/cards.py b/pySim/cards.py index 6243d4a..cc3dbdb 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -284,6 +284,12 @@ 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': + (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 +1201,13 @@ 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('mcc') and p.get('mnc'): + sw = self.update_ePDGSelection(p['mcc'], p['mnc']) + if sw != '9000': + print("Programming ePDGSelection failed with code %s"%sw) + return diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index b6836e7..93df6d5 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -166,7 +166,7 @@ Not available ePDGSelection: - ffffffffffff # unused + 00f110000100 # MCC: 001 MNC: 001 ePDG Priority: 0001 ePDG FQDN format: Operator Identifier FQDN ffffffffffff # unused ffffffffffff # unused ffffffffffff # unused -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 07:53:12 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 07:53:12 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully program... References: Message-ID: herlesupreeth has uploaded this change for review. ( 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 M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 19 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/51/21851/1 diff --git a/pySim/cards.py b/pySim/cards.py index cc3dbdb..7e37271 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -298,6 +298,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): """ @@ -1208,6 +1215,16 @@ if sw != '9000': 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']): + 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 diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 93df6d5..b4aeec0 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -157,6 +157,8 @@ 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/+/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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 08:05:23 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 08:05:23 +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, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21850 to look at the new patch set (#2). 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/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 17 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/50/21850/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: 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 Wed Dec 23 08:09:31 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 08:09:31 +0000 Subject: Change in pysim[master]: Re-purpose helper method to be used for parsing Address TLV Object in... References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/52/21852/1 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 7e37271..dd0eaa6 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 ebc2a95..a6c6be9 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 08:26:44 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 08:26:44 +0000 Subject: Change in pysim[master]: cards: Define ISIM Card class References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/53/21853/1 diff --git a/pySim/cards.py b/pySim/cards.py index dd0eaa6..87f81b7 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -305,6 +305,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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 08:26:44 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 08:26:44 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Inherit ISIM Card class as SysmoISIMSJA2 UICC contain... References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/54/21854/1 diff --git a/pySim/cards.py b/pySim/cards.py index 87f81b7..81b2f5d 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1084,7 +1084,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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 08:41:52 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 08:41:52 +0000 Subject: Change in pysim[master]: ts_31_103.py: Add ADF map for files at ISIM ADF References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/55/21855/1 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 08:53:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 08:53:01 +0000 Subject: Change in osmo-msc[master]: Autofill LCLS parameters for A-interface transactions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/13422 ) Change subject: Autofill LCLS parameters for A-interface transactions ...................................................................... Patch Set 12: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/13422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I35ae6b6ca04925c8d300bc1a0269af00eac727f3 Gerrit-Change-Number: 13422 Gerrit-PatchSet: 12 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 08:53: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 Wed Dec 23 08:53:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 08:53:18 +0000 Subject: Change in osmo-msc[master]: Add vty option to globally enable LCLS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/13421 ) Change subject: Add vty option to globally enable LCLS ...................................................................... Patch Set 9: This change is ready for review. -- 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: 9 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-Comment-Date: Wed, 23 Dec 2020 08:53: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 Wed Dec 23 08:54:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 08:54:58 +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 2: Code-Review+1 -- 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: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 08:54: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 Dec 23 08:55:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 08:55:55 +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 2: my question is: should we always do this unconditionally by default? If so, please provide a quick rationale in the commit log. thanks. -- 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: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 08:55: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 Wed Dec 23 08:55:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 08:55:59 +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 2: my question is: should we always do this unconditionally by default? If so, please provide a quick rationale in the commit log. thanks. -- 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: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 08:55: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 Wed Dec 23 08:56:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 08:56:22 +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 1: Code-Review+1 -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 08:56: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 Dec 23 08:56:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 08:56:34 +0000 Subject: Change in pysim[master]: cards: Define ISIM Card class In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21853 ) Change subject: cards: Define ISIM Card class ...................................................................... Patch Set 1: Code-Review+2 -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 08:56: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 Dec 23 08:56:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 08:56:44 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Inherit ISIM Card class as SysmoISIMSJA2 UICC contain... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21854 ) Change subject: sysmoISIM-SJA2: Inherit ISIM Card class as SysmoISIMSJA2 UICC contains an ISIM ...................................................................... Patch Set 1: Code-Review+2 -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 08:56: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 Dec 23 08:56:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 08:56:58 +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 posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21855 ) Change subject: ts_31_103.py: Add ADF map for files at ISIM ADF ...................................................................... Patch Set 1: Code-Review+2 -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 08:56: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 Dec 23 09:07:06 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 09:07:06 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Se... In-Reply-To: References: Message-ID: herlesupreeth 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 2: > Patch Set 2: > > my question is: should we always do this unconditionally by default? If so, please provide a quick rationale in the commit log. thanks. I don't think its needs to be set unconditionally to that default (i didn't find anything in the spec for that) but in order for ME to force select/query the ePDG in HPLMN it would be necessary This is could be expanded in future with option to configure different PLMNs rather than just HPLMN In the spec TS 31.102 version 13.4.0, it states below: Requirement: service n?106 and n?107 are "available" in the USIM Service Table. The ME performs the reading procedure with EFePDGSelection. The UE then shall use the ePDG selection information present in the EFePDGSelection toperform the ePDG selection procedure as defined in 3GPP TS 24.302. If EFePDGId and EFePDGSelection are empty, the UE shall consider "ePDG configuration information is configured but empty", then the UE shall follow the procedure specified in the "Selection of the ePDG" UE procedure as defined in 3GPP TS 24.302 let me know your opinion on this, i will update the commit log accordingly -- 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: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 09:07:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Dec 23 09:12:41 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 23 Dec 2020 09:12:41 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fe30a162ccf9_6ef32b22262f26008688be@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_9.0/armv7l Package network:osmocom:nightly/simtrace2 failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 1s] [ 1s] armbuild04 started "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 23 09:12:32 UTC 2020. [ 1s] [ 1s] Building simtrace2 for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 'fb4935fdfffdea0d4caa7b7709146e7d' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/simtrace2_0.7.0.69.aadd.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/simtrace2_0.7.0.69.aadd.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/simtrace2_0.7.0.69.aadd.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 23 09:12:32 UTC 2020. [ 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 Wed Dec 23 09:15:02 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 09:15:02 +0000 Subject: Change in pysim[master]: pySim-read.py: Enabled reading P-CSCF address from ISIM References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/56/21856/1 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 81b2f5d..bc67ecd 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 @@ -309,6 +310,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 6487958..88872df 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -173,6 +173,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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 10:43:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 10:43:36 +0000 Subject: Change in pysim[master]: pySim-read.py: Enabled reading P-CSCF address from ISIM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21856 ) Change subject: pySim-read.py: Enabled reading P-CSCF address from ISIM ...................................................................... Patch Set 1: Code-Review+2 -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 10: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 Wed Dec 23 11:27:07 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 23 Dec 2020 11:27:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add new vty2 In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21487 ) Change subject: gprs_ns2: add new vty2 ...................................................................... gprs_ns2: add new vty2 Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 --- M include/osmocom/gprs/gprs_ns2.h M include/osmocom/vty/command.h M src/gb/Makefile.am M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map 8 files changed, 1,675 insertions(+), 1 deletion(-) Approvals: daniel: Looks good to me, but someone else must approve laforge: 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 0b3ea1f..1b20298 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -42,6 +42,7 @@ /*! Osmocom NS link layer types */ enum gprs_ns2_ll { + GPRS_NS2_LL_UNDEF, /*!< undefined, used by vty */ GPRS_NS2_LL_UDP, /*!< NS/UDP/IP */ GPRS_NS2_LL_FR, /*!< NS/FR */ GPRS_NS2_LL_FR_GRE, /*!< NS/FR/GRE/IP */ @@ -264,4 +265,7 @@ 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/include/osmocom/vty/command.h b/include/osmocom/vty/command.h index add57e2..bc8f2e1 100644 --- a/include/osmocom/vty/command.h +++ b/include/osmocom/vty/command.h @@ -100,6 +100,8 @@ L_CS7_SCCPADDR_GT_NODE, /*!< SS7 SCCP Global Title */ L_CPU_SCHED_NODE, /*!< CPU Sched related options node */ + L_NS_BIND_NODE, /*!< NS bind node */ + L_NS_NSE_NODE, /*!< NS NSE node */ /* * When adding new nodes to the libosmocore project, these nodes can be * used to avoid ABI changes for unrelated projects. diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index ea1cfde..c829c29 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_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 endif diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index df3772a..5cb1630 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -234,6 +234,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 ns2_prim_status_ind(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index f25d93a..4664a35 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -1534,6 +1535,25 @@ } } +/*! 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) +{ + struct ns2_sns_state *gss; + struct osmo_sockaddr_str addr_str; + struct sns_endpoint *endpoint; + + if (!nse->bss_sns_fi) + return; + + 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); + vty_out(vty, " ip-sns %s %u%s", addr_str.ip, addr_str.port, VTY_NEWLINE); + } +} + static struct sns_endpoint *ns2_get_sns_endpoint(struct ns2_sns_state *state, const struct osmo_sockaddr *saddr) { diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index e33869b..9e09f0d 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -935,6 +935,9 @@ case GPRS_NS2_LL_FR_GRE: dialect = 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); @@ -984,6 +987,7 @@ break; } case GPRS_NS2_LL_FR_GRE: + case GPRS_NS2_LL_UNDEF: continue; } } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c new file mode 100644 index 0000000..2ccc7ed --- /dev/null +++ b/src/gb/gprs_ns2_vty2.c @@ -0,0 +1,1642 @@ +/*! \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(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, 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 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 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 NS2_DIALECT_SNS: + gprs_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 != NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != 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 == NS2_DIALECT_UNDEF) { + nse->dialect = 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 = 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 = 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 NS2_DIALECT_SNS: + case NS2_DIALECT_STATIC_ALIVE: + vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); + return CMD_WARNING; + case NS2_DIALECT_UNDEF: + vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); + return CMD_WARNING; + case NS2_DIALECT_IPACCESS: + case 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 = 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 == NS2_DIALECT_UNDEF) { + nse->dialect = 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 != 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 = 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 != 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 = 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 == NS2_DIALECT_UNDEF) { + nse->dialect = 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 != 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 = 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 != 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 = 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 == 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; + 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 != 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 = 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 != 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 = 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); + + gprs_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) +{ + gprs_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; + } + + /* Perform the operation for all nsvc */ + gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); + + 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(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 8f638ff..5c029b0 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -164,6 +164,7 @@ gprs_ns2_sns_del_endpoint; gprs_ns2_vty_create; gprs_ns2_vty_init; +gprs_ns2_vty2_init; gprs_nsvc_create2; gprs_nsvc_delete; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9 Gerrit-Change-Number: 21487 Gerrit-PatchSet: 24 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 Dec 23 11:27:08 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 23 Dec 2020 11:27:08 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: correct log message when no nsvcs available In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21821 ) Change subject: gprs_ns2: sns: correct log message when no nsvcs available ...................................................................... gprs_ns2: sns: correct log message when no nsvcs available The log message should only shown if a reselection will be triggered. Change-Id: I96b280a927aba6ac09ce88aedfcf469243c4dffe --- M src/gb/gprs_ns2_sns.c 1 file changed, 6 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/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 4664a35..f0e587d 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -250,7 +250,6 @@ gss->sns_nsvc = tmp; } } else { - LOGPFSML(fi, LOGL_ERROR, "NSE %d: no remaining NSVC, resetting SNS FSM\n", nse->nsei); gss->sns_nsvc = NULL; osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_NO_NSVC, NULL); } @@ -1337,8 +1336,12 @@ /* reset when receiving GPRS_SNS_EV_NO_NSVC */ switch (event) { case GPRS_SNS_EV_NO_NSVC: - if (!gss->reselection_running) - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); + /* ignore reselection running */ + if (gss->reselection_running) + break; + + LOGPFSML(fi, LOGL_ERROR, "NSE %d: no remaining NSVC, resetting SNS FSM\n", nse->nsei); + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); break; case GPRS_SNS_EV_SELECT_ENDPOINT: /* tear down previous state -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I96b280a927aba6ac09ce88aedfcf469243c4dffe Gerrit-Change-Number: 21821 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 Dec 23 11:27:09 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 23 Dec 2020 11:27:09 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: don't send duplicated packets on retries In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21822 ) Change subject: gprs_ns2: sns: don't send duplicated packets on retries ...................................................................... gprs_ns2: sns: don't send duplicated packets on retries When all retries are exhausted it should change the state and not send out a packet. Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e --- M src/gb/gprs_ns2_sns.c 1 file changed, 4 insertions(+), 4 deletions(-) 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_sns.c b/src/gb/gprs_ns2_sns.c index f0e587d..8747129 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1315,14 +1315,14 @@ case 1: if (gss->N >= nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES]) osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); - - osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); + else + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); break; case 2: if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); - - osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); + else + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); break; } return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie33df4a12298882bc46633200486dc34c6e34d8e Gerrit-Change-Number: 21822 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 Wed Dec 23 11:27:09 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 23 Dec 2020 11:27:09 +0000 Subject: Change in libosmocore[master]: gprs_ns2: sns: add log message when size/config retries exhausted In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21823 ) Change subject: gprs_ns2: sns: add log message when size/config retries exhausted ...................................................................... gprs_ns2: sns: add log message when size/config retries exhausted Change-Id: I5f7c04b364807418f5ba22132fc889b46d66aed0 --- M src/gb/gprs_ns2_sns.c 1 file changed, 8 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 8747129..027d1da 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1313,16 +1313,20 @@ gss->N++; switch (fi->T) { case 1: - if (gss->N >= nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES]) + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES]) { + LOGPFSML(fi, LOGL_ERROR, "NSE %d: Size retries failed. Selecting next IP-SNS endpoint.\n", nse->nsei); osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); - else + } else { osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); + } break; case 2: - if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) { + LOGPFSML(fi, LOGL_ERROR, "NSE %d: Config retries failed. Selecting next IP-SNS endpoint.\n", nse->nsei); osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SELECT_ENDPOINT, NULL); - else + } else { osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); + } break; } return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5f7c04b364807418f5ba22132fc889b46d66aed0 Gerrit-Change-Number: 21823 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: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 11:27:10 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 23 Dec 2020 11:27:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21824 ) Change subject: gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED ...................................................................... gprs_ns2: don't start unconfigured fsm via FORCE_UNCONFIGURED IP-SNS NSVC are unconfigured and not started when the IP-SNS is doing the SNS configuration. If those NSVC would be started it would result in unsolicitated NS-Alive PDUs. Change-Id: Ifec7288dbe71f10109e8b5c3849bf8f23ac7b557 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 6 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve 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 0f6eeab..d5f134e 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -566,10 +566,12 @@ msgb_free(msg); break; case GPRS_NS2_EV_FORCE_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); - return; + 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); + return; + } break; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifec7288dbe71f10109e8b5c3849bf8f23ac7b557 Gerrit-Change-Number: 21824 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: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 11:27:11 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 23 Dec 2020 11:27:11 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix force-unconfigured for IP-SNS NSE In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21841 ) Change subject: gprs_ns2: fix force-unconfigured for IP-SNS NSE ...................................................................... gprs_ns2: fix force-unconfigured for IP-SNS NSE The IP-SNS need to do a reselection of the IP-SNS remote for testing. Freeing all nsvc will force this. Change-Id: I367c215a830c02eae2a470cba314828b5e0fb5c9 --- M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c 2 files changed, 12 insertions(+), 4 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/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 9e09f0d..065f3ad 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -440,8 +440,12 @@ return CMD_WARNING; } - /* Perform the operation for all nsvc */ - gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); + if (nse->dialect == 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; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 2ccc7ed..e8738c1 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1491,8 +1491,12 @@ return CMD_WARNING; } - /* Perform the operation for all nsvc */ - gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); + if (nse->dialect == 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; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I367c215a830c02eae2a470cba314828b5e0fb5c9 Gerrit-Change-Number: 21841 Gerrit-PatchSet: 7 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 Dec 23 11:27:11 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 23 Dec 2020 11:27:11 +0000 Subject: Change in libosmocore[master]: frame_relay: prevent null pointer exception when talloc fails In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21843 ) Change subject: frame_relay: prevent null pointer exception when talloc fails ...................................................................... frame_relay: prevent null pointer exception when talloc fails Change-Id: Ib39682ad0c7f30c97303b3d0bb6240fddd23ec0b --- M src/gb/frame_relay.c 1 file changed, 2 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/src/gb/frame_relay.c b/src/gb/frame_relay.c index ae6bbf5..0304882 100644 --- a/src/gb/frame_relay.c +++ b/src/gb/frame_relay.c @@ -849,6 +849,8 @@ struct osmo_fr_network *osmo_fr_network_alloc(void *ctx) { struct osmo_fr_network *net = talloc_zero(ctx, struct osmo_fr_network); + if (!net) + return NULL; INIT_LLIST_HEAD(&net->links); net->T_defs = fr_tdefs; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib39682ad0c7f30c97303b3d0bb6240fddd23ec0b Gerrit-Change-Number: 21843 Gerrit-PatchSet: 4 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 Wed Dec 23 11:27:13 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 23 Dec 2020 11:27:13 +0000 Subject: Change in libosmocore[master]: frame_relay: link_alloc: move log message to the end In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21844 ) Change subject: frame_relay: link_alloc: move log message to the end ...................................................................... frame_relay: link_alloc: move log message to the end The link->name is still not set resulting in logging a (null) Change-Id: I67cd4bce8238340e6ecb8d04a9a39c8b8d7d63e7 --- M src/gb/frame_relay.c 1 file changed, 2 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/gb/frame_relay.c b/src/gb/frame_relay.c index 0304882..3a51700 100644 --- a/src/gb/frame_relay.c +++ b/src/gb/frame_relay.c @@ -880,9 +880,6 @@ struct osmo_fr_link *link = talloc_zero(net, struct osmo_fr_link); if (!link) return NULL; - - LOGPFRL(link, LOGL_INFO, "Creating frame relay link with role %s\n", osmo_fr_role_str(role)); - link->role = role; link->net = net; link->name = talloc_strdup(link, name); @@ -901,6 +898,8 @@ break; } + LOGPFRL(link, LOGL_INFO, "Creating frame relay link with role %s\n", osmo_fr_role_str(role)); + return link; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I67cd4bce8238340e6ecb8d04a9a39c8b8d7d63e7 Gerrit-Change-Number: 21844 Gerrit-PatchSet: 4 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 Wed Dec 23 12:03:33 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 12:03:33 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming Proxy Call Session Contro... References: Message-ID: herlesupreeth has uploaded this change for review. ( 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, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/57/21857/1 diff --git a/pySim-prog.py b/pySim-prog.py index e172d80..62b8c1e 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("--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 ) @@ -447,6 +450,7 @@ 'pin_adm' : pin_adm, 'msisdn' : opts.msisdn, 'epdgid' : opts.epdgid, + 'pcscf' : opts.pcscf, } diff --git a/pySim/cards.py b/pySim/cards.py index bc67ecd..ced7e4c 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -322,6 +322,12 @@ pcscf_recs += "\tP-CSCF: Can't read, response code = %s\n" % (sw) return pcscf_recs + def update_pcscf(self, pcscf): + content = enc_addr_tlv(pcscf) + 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): """ @@ -1204,6 +1210,13 @@ 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']) + 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 12:39:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 23 Dec 2020 12:39:10 +0000 Subject: Change in libosmocore[master]: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restr... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21789 ) Change subject: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" ...................................................................... Patch Set 2: I'm removing -2 from fixeria after our IRC talk, otherwise it seems I cannot merge it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Gerrit-Change-Number: 21789 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 12:39: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 Dec 23 12:39:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 23 Dec 2020 12:39:11 +0000 Subject: Change in libosmocore[master]: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restr... In-Reply-To: References: Message-ID: pespin has removed a vote from this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21789 ) Change subject: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" ...................................................................... Removed Code-Review-2 by fixeria -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Gerrit-Change-Number: 21789 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 12:39:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 23 Dec 2020 12:39:18 +0000 Subject: Change in libosmocore[master]: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restr... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21789 ) Change subject: Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" ...................................................................... Revert "rest_octets: fix encoding of 3G Early Classmark Sending Restriction" This reverts commit c9eab828ea4a9f508a013cf5cc1e0384a0e62e4c. The initial code was correct, which has also been used in osmo-bsc until recently, where it moved to use this function from libosmocore and errors started to show up in TTCN3 tests. See 3GPP TS 44.018 Section 10.5.2.34 / Table 10.5.2.34.1: "SI 3 Rest Octets information element": """ ::= ... <3G Early Classmark Sending Restriction> ... <3G Early Classmark Sending Restriction>::= L | H; """ Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Related: OS#3075 Related: SYS#4021 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 3a424f7..90f2b03 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -611,9 +611,9 @@ /* 3G Early Classmark Sending Restriction. If H, then controlled by * early_cm_ctrl above */ if (si3->early_cm_restrict_3g) - bitvec_set_bit(&bv, H); - else bitvec_set_bit(&bv, L); + else + bitvec_set_bit(&bv, H); if (si3->si2quater_indicator) { bitvec_set_bit(&bv, H); /* indicator struct present */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ee48d3240c62c4d2e15063b26da7a2a617f383e Gerrit-Change-Number: 21789 Gerrit-PatchSet: 3 Gerrit-Owner: pespin 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 gerrit-no-reply at lists.osmocom.org Wed Dec 23 12:39:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 23 Dec 2020 12:39:19 +0000 Subject: Change in libosmocore[master]: rest_octets: Fix decoding of SI3 3G Early Classmark Sending Restriction In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21818 ) Change subject: rest_octets: Fix decoding of SI3 3G Early Classmark Sending Restriction ...................................................................... rest_octets: Fix decoding of SI3 3G Early Classmark Sending Restriction Restriction is applied if the value is L, so fix it. Fixes: f85b33f68fcf9b34e723e4571078d7eeb0de5d59 Change-Id: Idd170bc0f12e8b215a624e0632a106bde076179b --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index 90f2b03..b2b37b3 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -1063,9 +1063,9 @@ /* 3G Early Classmark Sending Restriction. If H, then controlled by * early_cm_ctrl above */ if (bitvec_get_bit_high(&bv) == H) - si3->early_cm_restrict_3g = 1; - else si3->early_cm_restrict_3g = 0; + else + si3->early_cm_restrict_3g = 1; if (bitvec_get_bit_high(&bv) == H) si3->si2quater_indicator = 1; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idd170bc0f12e8b215a624e0632a106bde076179b Gerrit-Change-Number: 21818 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 Wed Dec 23 12:40:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 23 Dec 2020 12:40:52 +0000 Subject: Change in osmo-bsc[master]: power_control: reflect MS/BS Power difference in the VTY prompt In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21839 ) Change subject: power_control: reflect MS/BS Power difference in the VTY prompt ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I66d414a5f761eeec042a47207fc7d295e073cd10 Gerrit-Change-Number: 21839 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 23 Dec 2020 12:40: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 Dec 23 13:45:17 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 13:45:17 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of Home Network Domain Name from ISIM References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/58/21858/1 diff --git a/pySim-read.py b/pySim-read.py index b6eeab7..4de520e 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 + 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 ced7e4c..31be141 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -328,6 +328,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 88872df..f925473 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -183,6 +183,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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 13:52:20 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 13:52:20 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Disable Service 95, 99, 115 in EF.UST in case ISIM is... References: Message-ID: herlesupreeth has uploaded this change for review. ( 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 M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/59/21859/1 diff --git a/pySim/cards.py b/pySim/cards.py index 31be141..9fcc748 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1257,6 +1257,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']): sw = self.update_ust(106, 1) if sw != '9000': @@ -1264,6 +1265,15 @@ sw = self.update_ust(107, 1) 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 diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index f925473..c3e6509 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -156,7 +156,6 @@ 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 -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 13:52:21 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 13:52:21 +0000 Subject: Change in pysim[master]: utils.py: Add helper method to get type of address (FQDN, IPv4, IPv6) References: Message-ID: herlesupreeth has uploaded this change for review. ( 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, 42 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/60/21860/1 diff --git a/pySim/utils.py b/pySim/utils.py index a6c6be9..376e2da 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -680,3 +680,45 @@ (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 + + addr_list = addr.split('.') + + ipv4_flag = True + for i in addr_list: + import re + if not re.match('^[0-9_]+$', i): + ipv4_flag = False + break + + 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 + + if (len(addr_list) == 4) and ipv4_flag: # IPv4 + try: + import ipaddress + # Throws ValueError if addr is not correct + ipaddress.ip_address(unicode(addr)) + return 0x01 + except ValueError: + return None + elif fqdn_flag: # FQDN + 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 13:59:01 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 23 Dec 2020 13:59:01 +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, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21859 to look at the new patch set (#2). 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 M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 11 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/59/21859/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: 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 Wed Dec 23 14:17:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 23 Dec 2020 14:17:18 +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 2: it _might_ make sense to use the standard library for parsing IPv4/IPv6 addresses, https://docs.python.org/3/library/ipaddress.html ? -- 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: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 23 Dec 2020 14:17: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 Wed Dec 23 19:49:54 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 23 Dec 2020 19:49:54 +0000 Subject: Change in osmo-bsc[master]: power_control: reflect MS/BS Power difference in the VTY prompt In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21839 ) Change subject: power_control: reflect MS/BS Power difference in the VTY prompt ...................................................................... power_control: reflect MS/BS Power difference in the VTY prompt Change-Id: I66d414a5f761eeec042a47207fc7d295e073cd10 Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 2 files changed, 54 insertions(+), 46 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-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index fe46d45..9bf83e9 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4863,10 +4863,18 @@ POWER_CONTROL_CMD, POWER_CONTROL_DESC) { + struct gsm_power_ctrl_params *params; struct gsm_bts *bts = vty->index; - vty->index = BTS_POWER_CTRL_PARAMS(bts); + params = BTS_POWER_CTRL_PARAMS(bts); vty->node = POWER_CTRL_NODE; + vty->index = params; + + /* Change the prefix to reflect MS/BS difference */ + if (params->dir == GSM_PWR_CTRL_DIR_UL) + power_ctrl_node.prompt = "%s(config-ms-power-ctrl)# "; + else + power_ctrl_node.prompt = "%s(config-bs-power-ctrl)# "; return CMD_SUCCESS; } diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index 7884c01..2bc427b 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -20,7 +20,7 @@ ... OsmoBSC(config-net-bts)# bs-power-control -OsmoBSC(config-power-ctrl)# list with-flags +OsmoBSC(config-bs-power-ctrl)# list with-flags ... . lv mode (static|dyn-bts) [reset] . lv bs-power (static|dyn-max) <0-30> @@ -34,15 +34,15 @@ . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> -OsmoBSC(config-power-ctrl)# bs-power ? +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) -OsmoBSC(config-power-ctrl)# bs-power static ? +OsmoBSC(config-bs-power-ctrl)# bs-power static ? <0-30> BS Power reduction value (in dB, even numbers only) -OsmoBSC(config-power-ctrl)# bs-power static 3 +OsmoBSC(config-bs-power-ctrl)# bs-power static 3 % Incorrect BS Power reduction value, an even number is expected -OsmoBSC(config-power-ctrl)# bs-power static 6 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-bs-power-ctrl)# bs-power static 6 +OsmoBSC(config-bs-power-ctrl)# show running-config ... bs-power-control mode static @@ -51,9 +51,9 @@ mode static ... !bs-power -OsmoBSC(config-power-ctrl)# ### Check default BS Power Parameters -OsmoBSC(config-power-ctrl)# mode dyn-bts -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-bs-power-ctrl)# ### Check default BS Power Parameters +OsmoBSC(config-bs-power-ctrl)# mode dyn-bts +OsmoBSC(config-bs-power-ctrl)# show running-config ... bs-power-control mode dyn-bts @@ -69,8 +69,8 @@ mode static ... -OsmoBSC(config-power-ctrl)# bs-power dyn-max 30 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-bs-power-ctrl)# bs-power dyn-max 30 +OsmoBSC(config-bs-power-ctrl)# show running-config ... bs-power-control mode dyn-bts @@ -80,9 +80,9 @@ mode static ... !bs-power -OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-bs-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control -OsmoBSC(config-power-ctrl)# list with-flags +OsmoBSC(config-ms-power-ctrl)# list with-flags ... . lv mode (static|dyn-bts) [reset] . lv bs-power (static|dyn-max) <0-30> @@ -96,9 +96,9 @@ . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> -OsmoBSC(config-power-ctrl)# ### Check default MS Power Parameters -OsmoBSC(config-power-ctrl)# mode dyn-bts -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# ### Check default MS Power Parameters +OsmoBSC(config-ms-power-ctrl)# mode dyn-bts +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control mode dyn-bts @@ -121,17 +121,17 @@ no rxqual-avg ... -OsmoBSC(config-power-ctrl)# bs-power static 30 +OsmoBSC(config-ms-power-ctrl)# bs-power static 30 % This command is only valid for 'bs-power-control' node -OsmoBSC(config-power-ctrl)# bs-power dyn-max 30 +OsmoBSC(config-ms-power-ctrl)# bs-power dyn-max 30 % This command is only valid for 'bs-power-control' node -OsmoBSC(config-power-ctrl)# step-size inc 5 red 4 +OsmoBSC(config-ms-power-ctrl)# step-size inc 5 red 4 % Power change step size must be an even number -OsmoBSC(config-power-ctrl)# step-size inc 2 red 3 +OsmoBSC(config-ms-power-ctrl)# step-size inc 2 red 3 % Power change step size must be an even number -OsmoBSC(config-power-ctrl)# step-size inc 2 red 4 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# step-size inc 2 red 4 +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control mode dyn-bts @@ -143,16 +143,16 @@ step-size inc 2 red 4 ... -OsmoBSC(config-power-ctrl)# rxlev-thresh lower? +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower? lower Lower RxLev value (default is 32, i.e. -78 dBm) -OsmoBSC(config-power-ctrl)# rxlev-thresh lower ? +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower ? <0-63> Lower RxLev value (signal strength, 0 is worst, 63 is best) -OsmoBSC(config-power-ctrl)# rxlev-thresh lower 30 upper? +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower 30 upper? upper Upper RxLev value (default is 38, i.e. -72 dBm) -OsmoBSC(config-power-ctrl)# rxlev-thresh lower 30 upper ? +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower 30 upper ? <0-63> Upper RxLev value (signal strength, 0 is worst, 63 is best) -OsmoBSC(config-power-ctrl)# rxlev-thresh lower 30 upper 63 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower 30 upper 63 +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !rxlev-thresh @@ -163,16 +163,16 @@ rxlev-thresh lower 30 upper 63 ... -OsmoBSC(config-power-ctrl)# rxqual-thresh lower? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower? lower Lower RxQual value (default is 0, i.e. BER < 0.2%) -OsmoBSC(config-power-ctrl)# rxqual-thresh lower ? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower ? <0-7> Lower RxQual value (signal quality, 0 is best, 7 is worst) -OsmoBSC(config-power-ctrl)# rxqual-thresh lower 0 upper? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper? upper Upper RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%) -OsmoBSC(config-power-ctrl)# rxqual-thresh lower 0 upper ? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper ? <0-7> Upper RxQual value (signal quality, 0 is best, 7 is worst) -OsmoBSC(config-power-ctrl)# rxqual-thresh lower 0 upper 7 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper 7 +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !rxqual-thresh @@ -183,9 +183,9 @@ rxqual-thresh lower 0 upper 7 ... -OsmoBSC(config-power-ctrl)# rxlev-avg algo osmo-ewma beta 50 -OsmoBSC(config-power-ctrl)# rxqual-avg algo unweighted -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# rxlev-avg algo osmo-ewma beta 50 +OsmoBSC(config-ms-power-ctrl)# rxqual-avg algo unweighted +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !(rxlev-avg|rxqual-avg) @@ -202,10 +202,10 @@ rxqual-avg params hreqave 4 hreqt 6 ... -OsmoBSC(config-power-ctrl)# rxlev-avg params hreqave 2 hreqt 20 +OsmoBSC(config-ms-power-ctrl)# rxlev-avg params hreqave 2 hreqt 20 % Hreqave (2) * Hreqt (20) = 40 must be < 32 -OsmoBSC(config-power-ctrl)# rxlev-avg params hreqave 2 hreqt 15 -OsmoBSC(config-power-ctrl)# show running-config +OsmoBSC(config-ms-power-ctrl)# rxlev-avg params hreqave 2 hreqt 15 +OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !rxlev-avg params @@ -214,7 +214,7 @@ rxlev-avg params hreqave 2 hreqt 15 ... -OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-ms-power-ctrl)# exit OsmoBSC(config-net-bts)# ### Disable BS/MS Power Control OsmoBSC(config-net-bts)# no bs-power-control OsmoBSC(config-net-bts)# no ms-power-control @@ -225,14 +225,14 @@ ... OsmoBSC(config-net-bts)# bs-power-control -OsmoBSC(config-power-ctrl)# mode static reset +OsmoBSC(config-bs-power-ctrl)# mode static reset % Reset to default parameters -OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-bs-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control -OsmoBSC(config-power-ctrl)# mode static reset +OsmoBSC(config-ms-power-ctrl)# mode static reset % Reset to default parameters -OsmoBSC(config-power-ctrl)# exit +OsmoBSC(config-ms-power-ctrl)# exit OsmoBSC(config-net-bts)# show running-config ... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I66d414a5f761eeec042a47207fc7d295e073cd10 Gerrit-Change-Number: 21839 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 Dec 23 19:49:55 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 23 Dec 2020 19:49:55 +0000 Subject: Change in osmo-bsc[master]: vty: cosmetic: make all 'struct cmd_node' definitions static In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21840 ) Change subject: vty: cosmetic: make all 'struct cmd_node' definitions static ...................................................................... vty: cosmetic: make all 'struct cmd_node' definitions static Change-Id: I7bc8fcb53aef8dbee120e8a6457d8ce4227c7698 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 5 insertions(+), 5 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/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 9bf83e9..7774147 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -141,31 +141,31 @@ { 0, NULL } }; -struct cmd_node net_node = { +static struct cmd_node net_node = { GSMNET_NODE, "%s(config-net)# ", 1, }; -struct cmd_node bts_node = { +static struct cmd_node bts_node = { BTS_NODE, "%s(config-net-bts)# ", 1, }; -struct cmd_node power_ctrl_node = { +static struct cmd_node power_ctrl_node = { POWER_CTRL_NODE, "%s(config-power-ctrl)# ", 1, }; -struct cmd_node trx_node = { +static struct cmd_node trx_node = { TRX_NODE, "%s(config-net-bts-trx)# ", 1, }; -struct cmd_node ts_node = { +static struct cmd_node ts_node = { TS_NODE, "%s(config-net-bts-trx-ts)# ", 1, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7bc8fcb53aef8dbee120e8a6457d8ce4227c7698 Gerrit-Change-Number: 21840 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 Dec 23 20:31:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 20:31:19 +0000 Subject: Change in osmo-msc[master]: Autofill LCLS parameters for A-interface transactions In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/13422 ) Change subject: Autofill LCLS parameters for A-interface transactions ...................................................................... Patch Set 12: (9 comments) https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/include/osmocom/msc/mncc.h File include/osmocom/msc/mncc.h: https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/include/osmocom/msc/mncc.h at 166 PS12, Line 166: > Need to bump the MNCC version. @laforge, this is the reason why this patch must remain WIP, it changes the MNCC socket protocol without bumping the revision (which should also be coordinated with osmo-sip-connector) https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/include/osmocom/msc/transaction.h File include/osmocom/msc/transaction.h: https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/include/osmocom/msc/transaction.h at 135 PS12, Line 135: struct osmo_lcls *lcls; this should go in the "cc" struct above, because it only concerns voice transactions https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/include/osmocom/msc/vlr.h File include/osmocom/msc/vlr.h: https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/include/osmocom/msc/vlr.h at 274 PS12, Line 274: bool lcls_enable; i don't see this flag being used anywhere. It gets initialized to 1 at some point but never has any effect, right? (also, the VLR is not the right place to put an LCLS flag) I think we can drop the flag until a need arises... https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/gsm_04_08_cc.c File src/libmsc/gsm_04_08_cc.c: https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/gsm_04_08_cc.c at 503 PS12, Line 503: trans->lcls = trans_lcls_compose(trans, true); (if (!trans->lcls), log a comment that composing LCLS info failed?) https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/gsm_04_08_cc.c at 1984 PS12, Line 1984: trans->lcls->gcr = trans->cc.msg.gcr; > Might be worth placing in a comment here that this is happing as a result of Paging success, so we n [?] imho above comment is sufficient https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/mncc_builtin.c File src/libmsc/mncc_builtin.c: https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/mncc_builtin.c at 72 PS12, Line 72: struct osmo_gcr_parsed gcr) setup->gcr == gcr, there should be no need to add another argument. (BTW, passing a struct as argument must always be done as a pointer) https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/mncc_builtin.c at 116 PS12, Line 116: setup->gcr = gcr; afaict the same gcr is already in there, just leave it up to the caller and not bother here https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/mncc_builtin.c at 310 PS12, Line 310: rc = mncc_setup_ind(call, arg, data->gcr); arg and data are pointers to the same MNCC struct, it shouldn't be necessary to add another arg https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/transaction.c File src/libmsc/transaction.c: https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/transaction.c at 117 PS12, Line 117: Can we get primary_pc elsewhere? */ > Not sure this commment is still valid. [?] i think this comment can be dropped, doesn't seem to convey any useful information -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/13422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I35ae6b6ca04925c8d300bc1a0269af00eac727f3 Gerrit-Change-Number: 13422 Gerrit-PatchSet: 12 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-Comment-Date: Wed, 23 Dec 2020 20:31:19 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No 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 Dec 23 20:32:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 20:32:58 +0000 Subject: Change in osmo-msc[master]: Add vty option to globally enable LCLS In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/13421 ) Change subject: Add vty option to globally enable LCLS ...................................................................... Patch Set 9: so this makes the flag configurable, but the flag itself is never used anywhere. as per other patch comment, i'd favor just dropping the flag entirely -- 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: 9 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-Comment-Date: Wed, 23 Dec 2020 20:32: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 Dec 23 20:33:07 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 20:33:07 +0000 Subject: Change in osmo-msc[master]: Add vty option to globally enable LCLS In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/13421 ) Change subject: Add vty option to globally enable LCLS ...................................................................... Patch Set 9: Code-Review-1 -- 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: 9 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-Comment-Date: Wed, 23 Dec 2020 20:33: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 Dec 23 20:33:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 23 Dec 2020 20:33:39 +0000 Subject: Change in osmo-msc[master]: Add vty option to globally enable LCLS In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/13421 ) Change subject: Add vty option to globally enable LCLS ...................................................................... Patch Set 9: > Patch Set 9: > > so this makes the flag configurable, but the flag itself is never used anywhere. as per other patch comment, i'd favor just dropping the flag entirely other patch being https://gerrit.osmocom.org/c/osmo-msc/+/13422 -- 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: 9 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-Comment-Date: Wed, 23 Dec 2020 20:33: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 Dec 23 20:41:30 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 23 Dec 2020 20:41:30 +0000 Subject: Change in libosmocore[master]: gsm_08_18: add struct to parse RIM PDU Indications References: Message-ID: dexter has uploaded this change for review. ( 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, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/61/21861/1 diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 466b0c5..bc2dc64 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -349,3 +349,23 @@ 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 */ +#define RIM_PDU_TYPE_STOP 0 +#define RIM_PDU_TYPE_SING_REP 1 +#define 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: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 20:41:30 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 23 Dec 2020 20:41:30 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers References: Message-ID: dexter has uploaded this change for review. ( 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 generic RIM application specific payload information. Lets add the container structurs required for NACC. 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,362 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21862/1 diff --git a/include/Makefile.am b/include/Makefile.am index 842b872..2e3237d 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -68,6 +68,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..c801c29 --- /dev/null +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -0,0 +1,129 @@ +#pragma once + +#include + +/* 3GPP TS 48.018, table 11.3.62a.1.b: RAN-INFORMATION-REQUEST RIM Container Contents */ +struct bssgp_ran_inf_req_rim_cont { + uint8_t app_id; + uint32_t seq_num; + struct bssgp_rim_pdu_ind pdu_ind; + uint8_t prot_ver; + + /* Pointer to nested containers */ + const uint8_t *app_cont; + size_t app_cont_len; + 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 { + uint8_t app_id; + uint32_t seq_num; + struct bssgp_rim_pdu_ind pdu_ind; + uint8_t prot_ver; + + /* Pointer to nested containers */ + const uint8_t *app_cont; + size_t app_cont_len; + const uint8_t *app_err_cont; + size_t app_err_cont_len; + 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 { + uint8_t app_id; + uint32_t seq_num; + uint8_t prot_ver; + + /* Pointer to nested containers */ + 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 { + uint8_t app_id; + uint8_t cause; + uint8_t prot_ver; + + /* Pointer to nested containers */ + const uint8_t *err_pdu; + size_t err_pdu_len; + 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 { + uint8_t app_id; + uint32_t seq_num; + struct bssgp_rim_pdu_ind pdu_ind; + uint8_t prot_ver; + + /* Pointer to nested containers */ + const uint8_t *app_err_cont; + size_t app_err_cont_len; +}; + +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); + +/* 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 { + struct gprs_ra_id raid; + uint16_t cid; + } 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); + +/* 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 { + struct gprs_ra_id raid; + uint16_t cid; + } reprt_cell; + bool type_psi; + uint8_t num_si; + 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; + 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); diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index c829c29..93e4f0e 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..f6aeb1d --- /dev/null +++ b/src/gb/gprs_bssgp_rim.c @@ -0,0 +1,509 @@ +/*! \file gprs_bssgp.c + * GPRS BSSGP RIM protocol implementation as per 3GPP TS 48.018. */ +/* + * (C) 2020 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 + +/* 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. Those container + * types share common IEs. */ +#define DEC_RIM_CONT_COMMON \ + if (TLVP_PRESENT(&tp, BSSGP_IE_RIM_APP_IDENTITY)) \ + cont->app_id = TLVP_VAL(&tp, BSSGP_IE_RIM_APP_IDENTITY)[0]; \ + else \ + return -EINVAL; \ + if (TLVP_PRESENT(&tp, BSSGP_IE_RIM_SEQ_NR)) \ + cont->seq_num = tlvp_val32be(&tp, BSSGP_IE_RIM_SEQ_NR); \ + else \ + return -EINVAL; \ + if (TLVP_PRESENT(&tp, BSSGP_IE_RIM_PDU_INDICATIONS)) \ + memcpy(&cont->pdu_ind, TLVP_VAL(&tp, BSSGP_IE_RIM_PDU_INDICATIONS), sizeof(cont->pdu_ind)); \ + else \ + return -EINVAL; \ + if (TLVP_PRESENT(&tp, BSSGP_IE_RIM_PROTOCOL_VERSION)) \ + cont->prot_ver = TLVP_VAL(&tp, BSSGP_IE_RIM_PROTOCOL_VERSION)[0]; \ + else \ + cont->prot_ver = 1; + +/* (requires max. 15 octets of memory, see also comment above) */ +#define ENC_RIM_CONT_COMMON \ + uint32_t seq_num = osmo_htonl(cont->seq_num); \ + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_APP_IDENTITY, 1, &cont->app_id); \ + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_SEQ_NR, 4, (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, 1, &cont->prot_ver); \ + +/*! 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; + + DEC_RIM_CONT_COMMON if (TLVP_PRESENT(&tp, BSSGP_IE_RIM_REQ_APP_CONTAINER)) { + cont->app_cont = TLVP_VAL(&tp, BSSGP_IE_RIM_REQ_APP_CONTAINER); + cont->app_cont_len = TLVP_LEN(&tp, BSSGP_IE_RIM_REQ_APP_CONTAINER); + } else { + cont->app_cont = NULL; + cont->app_cont_len = 0; + } + + if (TLVP_PRESENT(&tp, BSSGP_IE_SON_TRANSFER_APP_ID)) { + 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); + } else { + cont->son_trans_app_id = NULL; + cont->son_trans_app_id_len = 0; + } + + return 0; +} + +/*! 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; + + if (len < 15 + cont->app_cont_len + cont->son_trans_app_id_len) + return -EINVAL; + + ENC_RIM_CONT_COMMON; + + if (cont->app_cont && cont->app_cont_len > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_REQ_APP_CONTAINER, cont->app_cont_len, cont->app_cont); + + 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 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; + + DEC_RIM_CONT_COMMON if (TLVP_PRESENT(&tp, BSSGP_IE_RAN_INFO_APP_CONTAINER)) { + cont->app_cont = TLVP_VAL(&tp, BSSGP_IE_RAN_INFO_APP_CONTAINER); + cont->app_cont_len = TLVP_LEN(&tp, BSSGP_IE_RAN_INFO_APP_CONTAINER); + } else { + cont->app_cont = NULL; + cont->app_cont_len = 0; + } + + if (TLVP_PRESENT(&tp, BSSGP_IE_APP_ERROR_CONTAINER)) { + cont->app_err_cont = TLVP_VAL(&tp, BSSGP_IE_APP_ERROR_CONTAINER); + cont->app_err_cont_len = TLVP_LEN(&tp, BSSGP_IE_APP_ERROR_CONTAINER); + cont->app_cont = NULL; + cont->app_cont_len = 0; + } else { + cont->app_err_cont = NULL; + cont->app_err_cont_len = 0; + } + + if (TLVP_PRESENT(&tp, BSSGP_IE_SON_TRANSFER_APP_ID)) { + 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); + } else { + cont->son_trans_app_id = NULL; + cont->son_trans_app_id_len = 0; + } + + 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; + + if (len < 15 + cont->app_err_cont_len + cont->app_cont_len + cont->son_trans_app_id_len) + return -EINVAL; + + ENC_RIM_CONT_COMMON; + + if (cont->app_err_cont && cont->app_err_cont_len > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_REQ_APP_CONTAINER, cont->app_err_cont_len, cont->app_err_cont); + else if (cont->app_cont && cont->app_cont_len > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_REQ_APP_CONTAINER, cont->app_cont_len, cont->app_cont); + + 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 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_PRESENT(&tp, BSSGP_IE_RIM_APP_IDENTITY)) + cont->app_id = TLVP_VAL(&tp, BSSGP_IE_RIM_APP_IDENTITY)[0]; + else + return -EINVAL; + + if (TLVP_PRESENT(&tp, BSSGP_IE_RIM_SEQ_NR)) + cont->seq_num = tlvp_val32be(&tp, BSSGP_IE_RIM_SEQ_NR); + else + return -EINVAL; + + if (TLVP_PRESENT(&tp, BSSGP_IE_RIM_PROTOCOL_VERSION)) + cont->prot_ver = TLVP_VAL(&tp, BSSGP_IE_RIM_PROTOCOL_VERSION)[0]; + else + cont->prot_ver = 1; + + if (TLVP_PRESENT(&tp, BSSGP_IE_SON_TRANSFER_APP_ID)) { + 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); + } else { + cont->son_trans_app_id = NULL; + cont->son_trans_app_id_len = 0; + } + + 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); + + if (len < 13 + cont->son_trans_app_id_len) + return -EINVAL; + + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_APP_IDENTITY, 1, &cont->app_id); + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_SEQ_NR, 4, (uint8_t *) & seq_num); + + if (cont->prot_ver > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_PROTOCOL_VERSION, 1, &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_PRESENT(&tp, BSSGP_IE_RIM_APP_IDENTITY)) + cont->app_id = TLVP_VAL(&tp, BSSGP_IE_RIM_APP_IDENTITY)[0]; + else + return -EINVAL; + + if (TLVP_PRESENT(&tp, BSSGP_IE_CAUSE)) + cont->cause = TLVP_VAL(&tp, BSSGP_IE_CAUSE)[0]; + else + return -EINVAL; + + if (TLVP_PRESENT(&tp, BSSGP_IE_RIM_PROTOCOL_VERSION)) + 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_PRESENT(&tp, BSSGP_IE_SON_TRANSFER_APP_ID)) { + 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); + } else { + cont->son_trans_app_id = NULL; + cont->son_trans_app_id_len = 0; + } + + 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; + + if (len < 9 + cont->err_pdu_len + cont->son_trans_app_id_len) + return -EINVAL; + + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_APP_IDENTITY, 1, &cont->app_id); + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_CAUSE, 1, &cont->cause); + + if (cont->prot_ver > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_PROTOCOL_VERSION, 1, &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; + + DEC_RIM_CONT_COMMON if (TLVP_PRESENT(&tp, BSSGP_IE_APP_ERROR_CONTAINER)) { + cont->app_err_cont = TLVP_VAL(&tp, BSSGP_IE_APP_ERROR_CONTAINER); + cont->app_err_cont_len = TLVP_LEN(&tp, BSSGP_IE_APP_ERROR_CONTAINER); + } else + return -EINVAL; + + 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; + + if (len < 15 + cont->app_err_cont_len) + return -EINVAL; + + ENC_RIM_CONT_COMMON; + + if (cont->app_err_cont && cont->app_err_cont_len > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_APP_ERROR_CONTAINER, cont->app_err_cont_len, cont->app_err_cont); + else + return -EINVAL; + + return (int)(buf_ptr - buf); + + return 0; +} + +/*! 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) +{ + if (len < 8) + return -EINVAL; + cont->reprt_cell.cid = bssgp_parse_cell_id(&cont->reprt_cell.raid, buf); + 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; + + if (len < 10) + return -EINVAL; + + rc = bssgp_create_cell_id(buf, &cont->reprt_cell.raid, cont->reprt_cell.cid); + 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; + + if (len < 9) + return -EINVAL; + + cont->reprt_cell.cid = bssgp_parse_cell_id(&cont->reprt_cell.raid, buf); + + buf += 8; + + cont->type_psi = buf[0] & 1; + cont->num_si = buf[0] >> 1; + + if (cont->type_psi && (len - 8) / 22 != cont->num_si) + return -EINVAL; + else if ((len - 8) / 21 != cont->num_si) + return -EINVAL; + + buf++; + + for (i = 0; i < cont->num_si; i++) { + cont->si[i] = buf; + if (cont->type_psi) + buf += 22; + else + buf += 21; + } + + 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; + + if (cont->type_psi) + silen = 22; + else + silen = 21; + + if (len < 11 + silen * cont->num_si) + return -EINVAL; + + rc = bssgp_create_cell_id(buf_ptr, &cont->reprt_cell.raid, cont->reprt_cell.cid); + 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) +{ + if (len < 1) + return -EINVAL; + + cont->nacc_cause = buf[0]; + buf++; + cont->err_app_cont = buf; + cont->err_app_cont_len = len - 1; + + 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; + + 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); +} 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 cb683f7..8cd7695 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_bssgp_rim_test gb/gprs_ns_test fr/fr_test endif utils_utils_test_SOURCES = utils/utils_test.c @@ -175,6 +175,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 \ diff --git a/tests/gb/gprs_bssgp_rim_test.c b/tests/gb/gprs_bssgp_rim_test.c new file mode 100644 index 0000000..99073a2 --- /dev/null +++ b/tests/gb/gprs_bssgp_rim_test.c @@ -0,0 +1,538 @@ +/* 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_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); + if (rim_cont->app_cont) { + printf(" app_cont: %s\n", osmo_hexdump_nospc(rim_cont->app_cont, rim_cont->app_cont_len)); + printf(" app_cont_len: %lu\n", rim_cont->app_cont_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_req_rim_cont() +{ + 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() +{ + int rc; + struct bssgp_ran_inf_req_rim_cont rim_cont; + uint8_t app_cont[] = { 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; + uint8_t result[256]; + printf("----- %s START\n", __func__); + + rim_cont.app_id = 1; + 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.app_cont = app_cont; + rim_cont.app_cont_len = 8; + rim_cont.son_trans_app_id = NULL; + rim_cont.son_trans_app_id_len = 0; + 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__); +} + +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); + if (rim_cont->app_cont) { + printf(" app_cont: %s\n", osmo_hexdump_nospc(rim_cont->app_cont, rim_cont->app_cont_len)); + printf(" app_cont_len: %lu\n", rim_cont->app_cont_len); + } + if (rim_cont->app_err_cont) { + printf(" app_err_cont: %s\n", osmo_hexdump_nospc(rim_cont->app_err_cont, rim_cont->app_err_cont_len)); + printf(" app_err_cont_len: %lu\n", rim_cont->app_err_cont_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_rim_cont() +{ + 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_ran_inf_req_rim_cont() +{ + int rc; + struct bssgp_ran_inf_rim_cont rim_cont; + uint8_t app_cont[] = + { 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 }; + + uint8_t result[256]; + printf("----- %s START\n", __func__); + + rim_cont.app_id = 1; + 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.app_cont = app_cont; + rim_cont.app_cont_len = sizeof(app_cont); + rim_cont.app_err_cont = NULL; + rim_cont.app_err_cont_len = 0; + rim_cont.son_trans_app_id = NULL; + rim_cont.son_trans_app_id_len = 0; + 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__); +} + +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 = 1; + 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); + if (rim_cont->app_err_cont) { + printf(" app_err_cont: %s\n", osmo_hexdump_nospc(rim_cont->app_err_cont, rim_cont->app_err_cont_len)); + printf(" app_err_cont_len: %lu\n", rim_cont->app_err_cont_len); + } +} + +static void test_bssgp_dec_ran_inf_app_err_rim_cont() +{ + 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() +{ + int rc; + struct bssgp_ran_inf_app_err_rim_cont rim_cont; + uint8_t app_err_cont[] = { 0xaa, 0xbb, 0xcc, 0xdd, 0xee }; + uint8_t result[256]; + printf("----- %s START\n", __func__); + rim_cont.app_id = 1; + 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.app_err_cont = app_err_cont; + rim_cont.app_err_cont_len = sizeof(app_err_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__); +} + +void dump_bssgp_ran_inf_req_app_cont_nacc(struct bssgp_ran_inf_req_app_cont_nacc *app_cont) +{ + printf("bssgp_ran_inf_req_app_cont_nacc:\n"); + printf(" reprt_cell.raid.mcc = %u\n", app_cont->reprt_cell.raid.mcc); + printf(" reprt_cell.raid.mnc = %u\n", app_cont->reprt_cell.raid.mnc); + printf(" reprt_cell.raid.mnc_3_digits = %u\n", app_cont->reprt_cell.raid.mnc_3_digits); + printf(" reprt_cell.raid.lac = %u\n", app_cont->reprt_cell.raid.lac); + printf(" reprt_cell.raid.rac = %u\n", app_cont->reprt_cell.raid.rac); + printf(" reprt_cell.cid = %04x\n", app_cont->reprt_cell.cid); +} + +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.raid.mcc = 262; + app_cont.reprt_cell.raid.mnc = 42; + app_cont.reprt_cell.raid.mnc_3_digits = 0; + app_cont.reprt_cell.raid.lac = 13200; + app_cont.reprt_cell.raid.rac = 0; + app_cont.reprt_cell.cid = 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__); +} + +void dump_bssgp_ran_inf_app_cont_nacc(struct bssgp_ran_inf_app_cont_nacc *app_cont) +{ + unsigned int i; + unsigned int silen; + printf("bssgp_ran_inf_app_cont_nacc:\n"); + printf(" reprt_cell.raid.mcc = %u\n", app_cont->reprt_cell.raid.mcc); + printf(" reprt_cell.raid.mnc = %u\n", app_cont->reprt_cell.raid.mnc); + printf(" reprt_cell.raid.mnc_3_digits = %u\n", app_cont->reprt_cell.raid.mnc_3_digits); + printf(" reprt_cell.raid.lac = %u\n", app_cont->reprt_cell.raid.lac); + printf(" reprt_cell.raid.rac = %u\n", app_cont->reprt_cell.raid.rac); + printf(" reprt_cell.cid = %04x\n", app_cont->reprt_cell.cid); + 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 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.raid.mcc = 262; + app_cont.reprt_cell.raid.mnc = 42; + app_cont.reprt_cell.raid.mnc_3_digits = 0; + app_cont.reprt_cell.raid.lac = 13135; + app_cont.reprt_cell.raid.rac = 0; + app_cont.reprt_cell.cid = 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__); +} + +void dump_bssgp_app_err_cont_nacc(struct bssgp_app_err_cont_nacc *app_cont) +{ + printf("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 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"); + test_bssgp_dec_ran_inf_req_rim_cont(); + test_bssgp_enc_ran_inf_req_rim_cont(); + test_bssgp_dec_ran_inf_rim_cont(); + test_bssgp_ran_inf_req_rim_cont(); + 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(); + test_bssgp_enc_ran_inf_app_err_rim_cont(); + 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..92d3282 --- /dev/null +++ b/tests/gb/gprs_bssgp_rim_test.ok @@ -0,0 +1,157 @@ +===== BSSGP RIM test START +----- test_bssgp_dec_ran_inf_req_rim_cont 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: 62f22433900051e1 + app_cont_len: 8 +----- test_bssgp_dec_ran_inf_req_rim_cont END +----- test_bssgp_enc_ran_inf_req_rim_cont 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: 62f22433900051e1 + app_cont_len: 8 +rc=25, result=4b81014c84000000014f81f25581014d8862f22433900051e1 +----- test_bssgp_enc_ran_inf_req_rim_cont END +----- test_bssgp_dec_ran_inf_rim_cont 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_cont: 62f224334f0051e006198fb100000000000000000000000000007900002b1b753000f110236ec9033c2747407900003c0b2b2b009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b + app_cont_len: 72 +----- test_bssgp_dec_ran_inf_rim_cont END +----- test_bssgp_ran_inf_req_rim_cont 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_cont: 62f224334f0051e006198fb100000000000000000000000000007900002b1b753000f110236ec9033c2747407900003c0b2b2b009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b + app_cont_len: 72 +rc=89, result=4b81014c84000000014f81025581014dc862f224334f0051e006198fb100000000000000000000000000007900002b1b753000f110236ec9033c2747407900003c0b2b2b009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b +----- test_bssgp_ran_inf_req_rim_cont 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 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: aabbccddee + app_err_cont_len: 5 +----- test_bssgp_dec_ran_inf_app_err_rim_cont END +----- test_bssgp_enc_ran_inf_app_err_rim_cont 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: aabbccddee + app_err_cont_len: 5 +rc=22, result=4b81014c84000000014f81025581015685aabbccddee +----- test_bssgp_enc_ran_inf_app_err_rim_cont END +----- test_bssgp_dec_ran_inf_req_app_cont_nacc START +rc=0, bssgp_ran_inf_req_app_cont_nacc: + reprt_cell.raid.mcc = 262 + reprt_cell.raid.mnc = 42 + reprt_cell.raid.mnc_3_digits = 0 + reprt_cell.raid.lac = 13200 + reprt_cell.raid.rac = 0 + reprt_cell.cid = 51e1 +----- test_bssgp_dec_ran_inf_req_app_cont_nacc END +----- test_bssgp_enc_ran_inf_req_app_cont_nacc START +bssgp_ran_inf_req_app_cont_nacc: + reprt_cell.raid.mcc = 262 + reprt_cell.raid.mnc = 42 + reprt_cell.raid.mnc_3_digits = 0 + reprt_cell.raid.lac = 13200 + reprt_cell.raid.rac = 0 + reprt_cell.cid = 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, bssgp_ran_inf_app_cont_nacc: + reprt_cell.raid.mcc = 262 + reprt_cell.raid.mnc = 42 + reprt_cell.raid.mnc_3_digits = 0 + reprt_cell.raid.lac = 13135 + reprt_cell.raid.rac = 0 + reprt_cell.cid = 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 +bssgp_ran_inf_app_cont_nacc: + reprt_cell.raid.mcc = 262 + reprt_cell.raid.mnc = 42 + reprt_cell.raid.mnc_3_digits = 0 + reprt_cell.raid.lac = 13135 + reprt_cell.raid.rac = 0 + reprt_cell.cid = 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, 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 +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 43f515a..9a5e866 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: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 20:41:31 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 23 Dec 2020 20:41:31 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... References: Message-ID: dexter has uploaded this change for review. ( 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. 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, 307 insertions(+), 308 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/21863/1 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 c801c29..2486351 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -2,6 +2,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.62a.1.b: RAN-INFORMATION-REQUEST RIM Container Contents */ struct bssgp_ran_inf_req_rim_cont { uint8_t app_id; diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index fd2a48c..4551427 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -326,93 +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.mcc = ri->eutran.tai.mcc; - raid_temp.mnc = ri->eutran.tai.mnc; - raid_temp.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; - } -} - /* 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 f6aeb1d..56f2d4d 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -27,6 +27,93 @@ #include #include +/*! 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.mcc = ri->eutran.tai.mcc; + raid_temp.mnc = ri->eutran.tai.mnc; + raid_temp.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; + } +} + /* 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. Those container * types share common IEs. */ #define DEC_RIM_CONT_COMMON \ diff --git a/tests/gb/gprs_bssgp_rim_test.c b/tests/gb/gprs_bssgp_rim_test.c index 99073a2..d7a19d4 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_rim_cont(struct bssgp_ran_inf_req_rim_cont *rim_cont) { printf("bssgp_ran_inf_req_rim_cont:\n"); @@ -516,6 +647,8 @@ int main(int argc, char **argv) { printf("===== BSSGP RIM test START\n"); + test_bssgp_parse_rim_ri(); + test_bssgp_create_rim_ri(); test_bssgp_dec_ran_inf_req_rim_cont(); test_bssgp_enc_ran_inf_req_rim_cont(); test_bssgp_dec_ran_inf_rim_cont(); diff --git a/tests/gb/gprs_bssgp_rim_test.ok b/tests/gb/gprs_bssgp_rim_test.ok index 92d3282..4f3ebcd 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 START rc=0, bssgp_ran_inf_req_rim_cont: app_id = 01 @@ -18,7 +74,7 @@ prot_ver = 1 app_cont: 62f22433900051e1 app_cont_len: 8 -rc=25, result=4b81014c84000000014f81f25581014d8862f22433900051e1 +rc=25, result=4b81014c84000000014f81025581014d8862f22433900051e1 ----- test_bssgp_enc_ran_inf_req_rim_cont END ----- test_bssgp_dec_ran_inf_rim_cont START rc=0, bssgp_ran_inf_rim_cont: 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: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 21:24:45 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 23 Dec 2020 21:24:45 +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 (#2). 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 generic RIM application specific payload information. Lets add the container structurs required for NACC. 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,369 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21862/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: 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 Wed Dec 23 21:49:49 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 23 Dec 2020 21:49:49 +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 (#3). 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 generic RIM application specific payload information. Lets add the container structurs required for NACC. 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,368 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21862/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: 3 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 Wed Dec 23 22:06:35 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 23 Dec 2020 22:06:35 +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 (#4). 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 generic RIM application specific payload information. Lets add the container structurs required for NACC. 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,368 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21862/4 -- 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: 4 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 Wed Dec 23 22:37:22 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 23 Dec 2020 22:37:22 +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 (#5). 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 generic RIM application specific payload information. Lets add the container structurs required for NACC. 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,369 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21862/5 -- 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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 23 22:53:22 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 23 Dec 2020 22:53:22 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: fix problem with uninitalized in bssgp_create_rim_ri() References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21864 ) Change subject: gprs_bssgp_rim: fix problem with uninitalized in bssgp_create_rim_ri() ...................................................................... gprs_bssgp_rim: fix problem with uninitalized in bssgp_create_rim_ri() The variable raid_temp is used partially uninitalized since not all possible members are set. The encoded end result will not include any values from the uninitalized fields. However, lets ensure that raid_temp is fully initalized in order to be clean. Change-Id: Id92c3ae86016ef6000127fbef223276b250c2e97 Related: CID 215836 --- M src/gb/gprs_bssgp_rim.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/21864/1 diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index c004b33..815b959 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -99,6 +99,7 @@ /* 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. */ + memset(&raid_temp, 0, sizeof(raid_temp)); 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; -- 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-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 00:10:37 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 24 Dec 2020 00:10:37 +0000 Subject: Change in osmo-bsc[master]: power_control: fix swapped lower/upper RxQual threshold values References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21865 ) Change subject: power_control: fix swapped lower/upper RxQual threshold values ...................................................................... power_control: fix swapped lower/upper RxQual threshold values According to 3GPP TS 45.008, section A.3.2.1: c) Comparison of RXQUAL_XX with L_RXQUAL_XX_P (XX = DL or UL): Increase XX_TXPWR if at least P3 averaged values out of N3 averaged values are greater (worse quality) than L_RXQUAL_XX_P. d) Comparison of RXQUAL_XX with U_RXQUAL_XX_P (XX = DL or UL): Decrease XX_TXPWR if at least P4 averaged values out of N4 averaged values are lower (better quality) than U_RXQUAL_XX_P. Given that RxQual is a value in range 0 .. 7, where 0 is the best and 7 is the worst: L_RXQUAL_XX_P must define the worst quality, while U_RXQUAL_XX_P must define the best quality value. Change-Id: I0f37b23ed360782f3c1f4275234c4e18a17aa89b Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 3 files changed, 18 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/21865/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 7774147..3cb479d 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -5004,18 +5004,19 @@ X(BSC_VTY_ATTR_NEW_LCHAN), "rxqual-thresh lower <0-7> upper <0-7>", "Set target RxQual thresholds (for dynamic mode)\n" - "Lower RxQual value (default is 0, i.e. BER < 0.2%)\n" + "Lower RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%)\n" "Lower " POWER_CONTROL_MEAS_RXQUAL_DESC - "Upper RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%)\n" + "Upper RxQual value (default is 0, i.e. BER < 0.2%)\n" "Upper " POWER_CONTROL_MEAS_RXQUAL_DESC) { struct gsm_power_ctrl_params *params = vty->index; int lower = atoi(argv[0]); int upper = atoi(argv[1]); - if (lower > upper) { - vty_out(vty, "%% Lower 'rxqual-rxqual' (%d) must be less than upper (%d)%s", - lower, upper, VTY_NEWLINE); + /* RxQual: 0 is best, 7 is worst, so upper must be less */ + if (upper > lower) { + vty_out(vty, "%% Upper 'rxqual-rxqual' (%d) must be less than lower (%d)%s", + upper, lower, VTY_NEWLINE); return CMD_WARNING; } diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 4c87fd8..38392fc 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1007,8 +1007,8 @@ /* RxQual measurement parameters */ .rxqual_meas = { /* Thresholds for RxQual (see 3GPP TS 45.008, A.3.2.1) */ - .lower_thresh = 0, /* L_RXQUAL_XX_P (BER < 0.2%) */ - .upper_thresh = 3, /* U_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ + .lower_thresh = 3, /* L_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ + .upper_thresh = 0, /* U_RXQUAL_XX_P (BER < 0.2%) */ /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index 2bc427b..d58c075 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -62,7 +62,7 @@ rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 no rxlev-avg - rxqual-thresh lower 0 upper 3 + rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 no rxqual-avg ms-power-control @@ -107,7 +107,7 @@ rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 no rxlev-avg - rxqual-thresh lower 0 upper 3 + rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 no rxqual-avg ms-power-control @@ -116,7 +116,7 @@ rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 no rxlev-avg - rxqual-thresh lower 0 upper 3 + rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 no rxqual-avg ... @@ -164,23 +164,23 @@ ... OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower? - lower Lower RxQual value (default is 0, i.e. BER < 0.2%) + lower Lower RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%) OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower ? <0-7> Lower RxQual value (signal quality, 0 is best, 7 is worst) -OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper? - upper Upper RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%) -OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper ? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 7 upper? + upper Upper RxQual value (default is 0, i.e. BER < 0.2%) +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 7 upper ? <0-7> Upper RxQual value (signal quality, 0 is best, 7 is worst) -OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper 7 +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 7 upper 4 OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !rxqual-thresh - rxqual-thresh lower 0 upper 3 + rxqual-thresh lower 3 upper 0 ... ms-power-control ... !rxqual-thresh - rxqual-thresh lower 0 upper 7 + rxqual-thresh lower 7 upper 4 ... OsmoBSC(config-ms-power-ctrl)# rxlev-avg algo osmo-ewma beta 50 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0f37b23ed360782f3c1f4275234c4e18a17aa89b Gerrit-Change-Number: 21865 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 Dec 24 01:38:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 24 Dec 2020 01:38:25 +0000 Subject: Change in osmo-bsc[master]: power_control: fix swapped lower/upper RxQual threshold values In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21865 ) Change subject: power_control: fix swapped lower/upper RxQual threshold values ...................................................................... Patch Set 1: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0f37b23ed360782f3c1f4275234c4e18a17aa89b Gerrit-Change-Number: 21865 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 24 Dec 2020 01:38:25 +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 Dec 24 01:50:09 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 24 Dec 2020 01:50:09 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fe3f3db3af9e_59872af9dc0645f42203da@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: [ 108s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 108s] [COMPILING libboard/qmod/source/card_pres.c] [ 108s] [COMPILING libboard/qmod/source/wwan_led.c] [ 108s] [COMPILING libboard/qmod/source/i2c.c] [ 108s] [COMPILING libboard/qmod/source/board_qmod.c] [ 109s] [COMPILING apps/dfu/main.c] [ 109s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 109s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 109s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 109s] Memory region Used Size Region Size %age Used [ 109s] rom: 16588 B 16 KB 101.25% [ 109s] 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' [ 109s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 109s] collect2: error: ld returned 1 exit status [ 109s] % [ 109s] make[2]: *** [Makefile:234: flash] Error 1 [ 109s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 109s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 109s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 109s] dh_auto_build: error: make -j1 returned exit code 2 [ 109s] make: *** [debian/rules:16: build] Error 25 [ 109s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 109s] ### VM INTERACTION START ### [ 112s] [ 105.516459] sysrq: Power Off [ 112s] [ 105.520538] reboot: Power down [ 112s] ### VM INTERACTION END ### [ 112s] [ 112s] goat17 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 24 01:49:51 UTC 2020. [ 112s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 24 01:52:09 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 24 Dec 2020 01:52:09 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fe3f45038bfa_59872af9dc0645f42204f6@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] [ 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.321979] sysrq: Power Off [ 122s] [ 112.331621] reboot: Power down [ 122s] ### VM INTERACTION END ### [ 122s] [ 122s] sheep83 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 24 01:51:59 UTC 2020. [ 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 Thu Dec 24 05:07:22 2020 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 24 Dec 2020 05:07:22 +0000 Subject: Change in osmo-msc[master]: Add vty option to globally enable LCLS In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/13421 ) Change subject: Add vty option to globally enable LCLS ...................................................................... Patch Set 9: > Patch Set 9: > > so this makes the flag configurable, but the flag itself is never used anywhere. It is used here: https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/transaction.c#113 > as per other patch comment, i'd favor just dropping the flag entirely -- 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: 9 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-Comment-Date: Thu, 24 Dec 2020 05:07: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 Thu Dec 24 05:08:59 2020 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 24 Dec 2020 05:08:59 +0000 Subject: Change in osmo-msc[master]: Add vty option to globally enable LCLS In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/13421 ) Change subject: Add vty option to globally enable LCLS ...................................................................... Patch Set 9: > > It is used here: > > https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/transaction.c#113 > Sorry, precicely: > https://gerrit.osmocom.org/c/osmo-msc/+/13422/12/src/libmsc/transaction.c#130 -- 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: 9 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-Comment-Date: Thu, 24 Dec 2020 05:08: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 Thu Dec 24 05:22:25 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 05:22:25 +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: herlesupreeth 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 2: > Patch Set 2: > > it _might_ make sense to use the standard library for parsing IPv4/IPv6 addresses, https://docs.python.org/3/library/ipaddress.html ? totally agree. Will fix it in next update -- 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: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 24 Dec 2020 05:22: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 Thu Dec 24 05:23:04 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 05:23:04 +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: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21860 to look at the new patch set (#3). 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/60/21860/3 -- 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: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Dec 24 06:58:51 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 24 Dec 2020 06:58:51 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5fe43c4360a78_59872af9dc0645f42523e4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/Raspbian_9.0/armv7l Package network:osmocom:latest/osmo-hlr failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:8) -- 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 Dec 24 07:27:55 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 24 Dec 2020 07:27:55 +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 6: 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: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 24 Dec 2020 07:27: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 Dec 24 08:16:38 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 08:16:38 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS Home Network Domain Name References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/66/21866/1 diff --git a/pySim-prog.py b/pySim-prog.py index 62b8c1e..6369bb1 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -153,6 +153,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 ) @@ -451,6 +454,7 @@ 'msisdn' : opts.msisdn, 'epdgid' : opts.epdgid, 'pcscf' : opts.pcscf, + 'ims_hdomain': opts.ims_hdomain, } diff --git a/pySim/cards.py b/pySim/cards.py index 9fcc748..9236e4e 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): @@ -338,6 +339,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(p['mnc'], 3, "0") + '.mcc' + lpad(p['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): """ @@ -1227,6 +1245,16 @@ if sw != '9000': 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']) + elif p.get('mcc') and p.get('mnc'): + sw = self.update_domain(mcc=p['mcc'], mnc=p['mnc']) + + 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 08:16:39 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 08:16:39 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Fill unused bytes of Home ePDGId with 'f' References: Message-ID: herlesupreeth has uploaded this change for review. ( 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, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/67/21867/1 diff --git a/pySim/cards.py b/pySim/cards.py index 9236e4e..60a0f38 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -274,7 +274,8 @@ 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 + epdgid_tlv = rpad(enc_addr_tlv(epdgid), size) data, sw = self._scc.update_binary( EF_USIM_ADF_map['ePDGId'], epdgid_tlv) return sw -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 08:16:40 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 08:16:40 +0000 Subject: Change in pysim[master]: utils.py: Support IPv4 encoding for Address TLV object present in EF.... References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/68/21868/1 diff --git a/pySim/utils.py b/pySim/utils.py index 7147a17..389964c 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 08:16:40 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 08:16:40 +0000 Subject: Change in pysim[master]: utils.py: Support IPv4 decoding for Address TLV object present in EF.... References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/69/21869/1 diff --git a/pySim/utils.py b/pySim/utils.py index 389964c..182bd80 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 08:20:45 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 08:20:45 +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 (#2). 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/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: 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 Dec 24 08:27:00 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 08:27: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 (#3). 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 M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 33 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/66/21866/3 -- 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: 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 Thu Dec 24 08:42:12 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 08:42:12 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IPv4 address for Home ePD... References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/70/21870/1 diff --git a/pySim/cards.py b/pySim/cards.py index 73addae..911bd05 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -274,8 +274,11 @@ return (None, sw) def update_epdgid(self, epdgid): + addr_type = get_addr_type(epdgid) + if addr_type == None: + raise ValueError("Unknown ePDG Id address type or invalid address provided") size = self._scc.binary_size(EF_USIM_ADF_map['ePDGId']) * 2 - epdgid_tlv = rpad(enc_addr_tlv(epdgid), size) + epdgid_tlv = rpad(enc_addr_tlv(epdgid, ('%02x' % addr_type)), size) data, sw = self._scc.update_binary( EF_USIM_ADF_map['ePDGId'], epdgid_tlv) return sw -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 08:42:13 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 08:42:13 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IPv4 address for PCSCF References: Message-ID: herlesupreeth has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/71/21871/1 diff --git a/pySim/cards.py b/pySim/cards.py index 911bd05..79d5889 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -328,9 +328,13 @@ return pcscf_recs def update_pcscf(self, pcscf): - 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") + 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(enc_addr_tlv(pcscf, ('%02x' % addr_type)), 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 08:42:14 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 24 Dec 2020 08:42:14 +0000 Subject: Change in pysim[master]: Update ISIM IST table as per the latest 3GPP TS 31.103 specification References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21872 ) Change subject: Update ISIM IST table as per the latest 3GPP TS 31.103 specification ...................................................................... Update ISIM IST table as per the latest 3GPP TS 31.103 specification 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/1 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: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 12:39:46 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 24 Dec 2020 12:39:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates 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/+/21587 to look at the new patch set (#4). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/21587/4 -- 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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 12:39:46 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 24 Dec 2020 12:39:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN_Tests: test RIM message passing 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/+/21735 to look at the new patch set (#2). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/35/21735/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: 2 Gerrit-Owner: dexter 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 Dec 24 13:53:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 24 Dec 2020 13:53:00 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations References: Message-ID: fixeria has uploaded this change for review. ( 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 src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 2 files changed, 25 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/73/21873/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 3cb479d..c106319 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4953,15 +4953,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 greather " + "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 d58c075..4fa416f 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -131,6 +131,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 greather 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 @@ -140,7 +143,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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Dec 24 23:57:45 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 24 Dec 2020 23:57:45 +0000 Subject: Change in libosmocore[master]: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' References: Message-ID: fixeria has uploaded this change for review. ( 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/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 33e27af..e167693 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 ABI change struct ipac_preproc_ave_cfg: flexible array member 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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Dec 25 02:34:19 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 25 Dec 2020 02:34:19 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5fe54fc87d975_59872af9dc0645f4478348@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: [ 232s] [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 [ 232s] debian/rules override_dh_auto_test [ 232s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 232s] cd obj-i686-linux-gnu && meson test --suite unit [ 233s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 233s] ninja: no work to do. [ 240s] 1/3 open5gs:unit / core OK 7.03 s [ 240s] 2/3 open5gs:unit / crypt OK 0.17 s [ 240s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 240s] [ 240s] Ok: 2 [ 240s] Expected Fail: 0 [ 240s] Fail: 1 [ 240s] Unexpected Pass: 0 [ 240s] Skipped: 0 [ 240s] Timeout: 0 [ 240s] [ 240s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 240s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 240s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 240s] make: *** [debian/rules:11: binary] Error 2 [ 240s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 240s] ### VM INTERACTION START ### [ 244s] [ 232.173120] sysrq: Power Off [ 244s] [ 232.178811] reboot: Power down [ 244s] ### VM INTERACTION END ### [ 244s] [ 244s] lamb57 failed "build open5gs_2.1.1.20201225.dsc" at Fri Dec 25 02:33:18 UTC 2020. [ 244s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 25 04:35:14 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 25 Dec 2020 04:35:14 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fe56c083c573_59872af9dc0645f4504826@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: [ 412s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 413s] [COMPILING libboard/qmod/source/card_pres.c] [ 413s] [COMPILING libboard/qmod/source/wwan_led.c] [ 413s] [COMPILING libboard/qmod/source/i2c.c] [ 413s] [COMPILING libboard/qmod/source/board_qmod.c] [ 414s] [COMPILING apps/dfu/main.c] [ 414s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 414s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 415s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 415s] Memory region Used Size Region Size %age Used [ 415s] rom: 16588 B 16 KB 101.25% [ 415s] 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' [ 415s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 415s] collect2: error: ld returned 1 exit status [ 415s] % [ 415s] make[2]: *** [Makefile:234: flash] Error 1 [ 415s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 415s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 415s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 415s] dh_auto_build: error: make -j1 returned exit code 2 [ 415s] make: *** [debian/rules:16: build] Error 25 [ 415s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 415s] ### VM INTERACTION START ### [ 419s] [ 395.242780] sysrq: Power Off [ 419s] [ 395.288259] reboot: Power down [ 419s] ### VM INTERACTION END ### [ 419s] [ 419s] lamb03 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 25 04:34:48 UTC 2020. [ 419s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Dec 25 04:43:14 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 25 Dec 2020 04:43:14 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fe56de9e867e_59872af9dc0645f450667a@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: [ 172s] [COMPILING apps/dfu/main.c] [ 173s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 173s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 173s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 173s] Memory region Used Size Region Size %age Used [ 173s] rom: 16580 B 16 KB 101.20% [ 173s] 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 [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /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' [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 173s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 173s] collect2: error: ld returned 1 exit status [ 173s] % [ 173s] make[2]: *** [Makefile:234: flash] Error 1 [ 173s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 173s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 173s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 173s] dh_auto_build: error: make -j1 returned exit code 2 [ 173s] make: *** [debian/rules:16: build] Error 25 [ 173s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 173s] ### VM INTERACTION START ### [ 176s] [ 162.696509] sysrq: Power Off [ 176s] [ 162.701716] reboot: Power down [ 176s] ### VM INTERACTION END ### [ 176s] [ 176s] lamb15 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Dec 25 04:42:50 UTC 2020. [ 176s] -- 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 Dec 25 15:21:10 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 25 Dec 2020 15:21:10 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/clck_gen.py: fix: Thread.isAlive() was removed References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21875 ) Change subject: trx_toolkit/clck_gen.py: fix: Thread.isAlive() was removed ...................................................................... trx_toolkit/clck_gen.py: fix: Thread.isAlive() was removed As it turns out, in Python < 3.9 class Thread defines 'is_alive' and 'isAlive = is_alive'. In Python 3.9 the later has been removed, so fake_trx.py crashes on receipt of 'POWEROFF': File "/home/wmn/wmn/osmocom/bb/src/target/trx_toolkit/clck_gen.py", line 63, in running return self._thread.isAlive() AttributeError: 'Thread' object has no attribute 'isAlive' See https://bugs.python.org/issue35283 for more details. Change-Id: Id441d76dddb659958803d507e0fb028fb06422a7 --- M src/target/trx_toolkit/clck_gen.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/75/21875/1 diff --git a/src/target/trx_toolkit/clck_gen.py b/src/target/trx_toolkit/clck_gen.py index 7232f74..51f04a8 100755 --- a/src/target/trx_toolkit/clck_gen.py +++ b/src/target/trx_toolkit/clck_gen.py @@ -60,7 +60,7 @@ def running(self): if self._thread is None: return False - return self._thread.isAlive() + return self._thread.is_alive() def start(self): # Make sure we won't start two threads -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Id441d76dddb659958803d507e0fb028fb06422a7 Gerrit-Change-Number: 21875 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 Dec 25 16:15:10 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 25 Dec 2020 16:15:10 +0000 Subject: Change in osmo-bsc[master]: power_control: encoding of H_REQAVE and H_REQT for ip.access References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21876 ) Change subject: power_control: encoding of H_REQAVE and H_REQT for ip.access ...................................................................... power_control: encoding of H_REQAVE and H_REQT for ip.access Change-Id: I761401d13b72e8f7c07f3a4ed5002dffc735a210 Related: SYS#4918 --- M src/osmo-bsc/bts_ipaccess_nanobts.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/76/21876/1 diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 27d8d64..7076908 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -828,8 +828,8 @@ ave_cfg->param_id = ptype & 0x03; /* H_REQAVE and H_REQT */ - ave_cfg->h_reqave = mp->h_reqave & 0x03; - ave_cfg->h_reqt = mp->h_reqt & 0x03; + ave_cfg->h_reqave = mp->h_reqave & 0x1f; + ave_cfg->h_reqt = mp->h_reqt & 0x1f; /* Averaging method and parameters */ ave_cfg->ave_method = (mp->algo - 1) & 0x07; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I761401d13b72e8f7c07f3a4ed5002dffc735a210 Gerrit-Change-Number: 21876 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 Dec 25 18:02:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 25 Dec 2020 18:02:30 +0000 Subject: Change in osmo-bsc[master]: power_control: encoding of H_REQAVE and H_REQT for ip.access In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21876 ) Change subject: power_control: encoding of H_REQAVE and H_REQT for ip.access ...................................................................... Patch Set 2: Verified+1 Code-Review+2 Urgent fix, the field is 5 bit, not 3 bit. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I761401d13b72e8f7c07f3a4ed5002dffc735a210 Gerrit-Change-Number: 21876 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 25 Dec 2020 18:02: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 Dec 25 18:02:56 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 25 Dec 2020 18:02:56 +0000 Subject: Change in osmo-bsc[master]: power_control: encoding of H_REQAVE and H_REQT for ip.access In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21876 ) Change subject: power_control: encoding of H_REQAVE and H_REQT for ip.access ...................................................................... power_control: encoding of H_REQAVE and H_REQT for ip.access Change-Id: I761401d13b72e8f7c07f3a4ed5002dffc735a210 Related: SYS#4918 --- M src/osmo-bsc/bts_ipaccess_nanobts.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved; Verified diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 27d8d64..7076908 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -828,8 +828,8 @@ ave_cfg->param_id = ptype & 0x03; /* H_REQAVE and H_REQT */ - ave_cfg->h_reqave = mp->h_reqave & 0x03; - ave_cfg->h_reqt = mp->h_reqt & 0x03; + ave_cfg->h_reqave = mp->h_reqave & 0x1f; + ave_cfg->h_reqt = mp->h_reqt & 0x1f; /* Averaging method and parameters */ ave_cfg->ave_method = (mp->algo - 1) & 0x07; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I761401d13b72e8f7c07f3a4ed5002dffc735a210 Gerrit-Change-Number: 21876 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Dec 26 01:35:43 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 26 Dec 2020 01:35:43 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5fe69370ca7f1_59872af9dc0645f4718616@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: [ 254s] [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 [ 254s] debian/rules override_dh_auto_test [ 254s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 254s] cd obj-i686-linux-gnu && meson test --suite unit [ 255s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 255s] ninja: no work to do. [ 263s] 1/3 open5gs:unit / core OK 7.13 s [ 263s] 2/3 open5gs:unit / crypt OK 0.17 s [ 263s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 263s] [ 263s] Ok: 2 [ 263s] Expected Fail: 0 [ 263s] Fail: 1 [ 263s] Unexpected Pass: 0 [ 263s] Skipped: 0 [ 263s] Timeout: 0 [ 263s] [ 263s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 263s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 263s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 263s] make: *** [debian/rules:11: binary] Error 2 [ 263s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 263s] ### VM INTERACTION START ### [ 266s] [ 254.417413] sysrq: Power Off [ 266s] [ 254.427542] reboot: Power down [ 266s] ### VM INTERACTION END ### [ 266s] [ 266s] lamb03 failed "build open5gs_2.1.1.20201226.dsc" at Sat Dec 26 01:35:36 UTC 2020. [ 266s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 26 01:38:00 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 26 Dec 2020 01:38:00 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fe69408e606f_59872af9dc0645f4718747@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: [ 112s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 112s] [COMPILING libboard/qmod/source/card_pres.c] [ 112s] [COMPILING libboard/qmod/source/wwan_led.c] [ 112s] [COMPILING libboard/qmod/source/i2c.c] [ 112s] [COMPILING libboard/qmod/source/board_qmod.c] [ 112s] [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] [ 107.356775] sysrq: Power Off [ 116s] [ 107.367910] reboot: Power down [ 116s] ### VM INTERACTION END ### [ 116s] [ 116s] sheep86 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Dec 26 01:37:51 UTC 2020. [ 116s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Dec 26 01:39:08 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 26 Dec 2020 01:39:08 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fe6944485c02_59872af9dc0645f47188e0@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 ### [ 163s] [ 149.965204] sysrq: Power Off [ 163s] [ 149.972725] reboot: Power down [ 163s] ### VM INTERACTION END ### [ 163s] [ 163s] lamb53 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Dec 26 01:38:52 UTC 2020. [ 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 Sat Dec 26 14:48:03 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 14:48:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: lynxis lazus 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 6: Code-Review+2 1+1 = 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: 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: Sat, 26 Dec 2020 14:48: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 Sat Dec 26 14:55:06 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 14:55:06 +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 (#7). 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, 277 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21753/7 -- 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: 7 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 Sat Dec 26 14:58:50 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 14:58:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: setup_device: allow to setup a fresh dahdi device In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21845 ) Change subject: gprs_ns2_fr: setup_device: allow to setup a fresh dahdi device ...................................................................... Patch Set 4: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21845/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/21845/2//COMMIT_MSG at 7 PS2, Line 7: gprs_ns2_fr: setup_device: allow to setup a device a fresh dahdi device > ... [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21845/2//COMMIT_MSG at 9 PS2, Line 9: setupped > set up / configured Done https://gerrit.osmocom.org/c/libosmocore/+/21845/1/src/gb/gprs_ns2_fr.c File src/gb/gprs_ns2_fr.c: https://gerrit.osmocom.org/c/libosmocore/+/21845/1/src/gb/gprs_ns2_fr.c at 496 PS1, Line 496: LOGP(DLNS, LOGL_ERROR, "Unable to bring up the device %s: %s\n", > You're actually bringing down the device Done https://gerrit.osmocom.org/c/libosmocore/+/21845/1/src/gb/gprs_ns2_fr.c at 520 PS1, Line 520: LOGP(DLNS, LOGL_ERROR, "%s: Setting frame relay related parameters\n", netif); > LOGL_INFO Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a Gerrit-Change-Number: 21845 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-Comment-Date: Sat, 26 Dec 2020 14:58:50 +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 Dec 26 15:12:08 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 15:12:08 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: setup_device: allow to setup a new dahdi device 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/+/21845 to look at the new patch set (#5). Change subject: gprs_ns2_fr: setup_device: allow to setup a new dahdi device ...................................................................... gprs_ns2_fr: setup_device: allow to setup a new dahdi device When a dahdi device hasn't been set up yet, ioctl IF_GET_PROTO fails with invalid argument. Also fix the device check to skip ioctl's if the device is also in the correct state. Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a --- M src/gb/gprs_ns2_fr.c 1 file changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/45/21845/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a Gerrit-Change-Number: 21845 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus 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 Sat Dec 26 15:12:08 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 15:12:08 +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 (#15). 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, 270 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/21701/15 -- 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: 15 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 Sat Dec 26 15:12:20 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 15:12:20 +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 15: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/21701/10/configure.ac File configure.ac: https://gerrit.osmocom.org/c/libosmocore/+/21701/10/configure.ac at 246 PS10, Line 246: AC_ARG_ENABLE(nsdummy, : [AS_HELP_STRING( : [--enable-nsdummy], : [Enable building ns dummy for testing network service] : )], : [enable_nsdummy=$enableval], [enable_nsdummy="no"]) : AM_CONDITIONAL(ENABLE_NSDUMMY, test x"$enable_nsdummy" = > if this is something needed for vty tests only, I would make its compilation depend on whether tests [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21701/10/utils/Makefile.am File utils/Makefile.am: https://gerrit.osmocom.org/c/libosmocore/+/21701/10/utils/Makefile.am at 29 PS10, Line 29: b > should this be a noinst_PROGRAMS? If all we do is use it for unit tests? Installation would only m [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21701/12/utils/osmo-ns-dummy.c File utils/osmo-ns-dummy.c: https://gerrit.osmocom.org/c/libosmocore/+/21701/12/utils/osmo-ns-dummy.c at 29 PS12, Line 29: static char *config_file = "osmo-pcu.cfg"; > osmo-pcu? Done 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); is this one ok? Should I really add a port for a test utility? -- 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: 15 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 26 Dec 2020 15:12:20 +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 Sat Dec 26 15:16:15 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 15:16:15 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: lynxis lazus 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 7: only added parts to execute the test on `make check` -- 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: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 26 Dec 2020 15:16: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 Dec 26 17:49:38 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 17:49:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework frame relay load distribution function References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21877 ) Change subject: gprs_ns2: rework frame relay load distribution function ...................................................................... gprs_ns2: rework frame relay load distribution function For frame relay the traffic will be even distributed across all NS-VCs. Do not differentiate between signalling and data traffic. Change-Id: I6c060941db335a7a6a555ac8d1b9269fa8fb2023 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 2 files changed, 18 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/77/21877/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 5603fce..1098f22 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -350,15 +350,12 @@ uint32_t load_selector) { struct gprs_ns2_vc *tmp; - uint32_t mod = (bvci + load_selector) % nse->nsvc_data_count; + uint32_t mod = (bvci + load_selector) % nse->nsvc_count; uint32_t i = 0; llist_for_each_entry(tmp, &nse->nsvc, list) { if (!gprs_ns2_vc_is_unblocked(tmp)) continue; - if (tmp->data_weight == 0) - continue; - if (i == mod) return tmp; i++; @@ -393,22 +390,20 @@ { struct gprs_ns2_vc *nsvc = NULL; - if (bvci == 0) { - /* signalling */ - nsvc = ns2_load_sharing_signal(nse); - } else { - /* data with load sharing parameter */ - if (llist_empty(&nse->nsvc)) - return NULL; - - switch (nse->ll) { - case GPRS_NS2_LL_FR: - nsvc = ns2_load_sharing_modulor(nse, bvci, link_selector); - break; - default: + switch (nse->ll) { + case GPRS_NS2_LL_FR: + nsvc = ns2_load_sharing_modulor(nse, bvci, link_selector); + break; + case GPRS_NS2_LL_UDP: + default: + if (bvci == 0) { + /* signalling */ + nsvc = ns2_load_sharing_signal(nse); + } else { + /* data with load sharing parameter */ nsvc = ns2_load_sharing_first(nse); - break; } + break; } return nsvc; @@ -1087,13 +1082,13 @@ void ns2_nse_data_sum(struct gprs_ns2_nse *nse) { struct gprs_ns2_vc *nsvc; - nse->nsvc_data_count = 0; + nse->nsvc_count = 0; llist_for_each_entry(nsvc, &nse->nsvc, list) { if (!gprs_ns2_vc_is_unblocked(nsvc)) continue; - if (nsvc->data_weight > 0) - nse->nsvc_data_count++; + + nse->nsvc_count++; } } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 5cb1630..4c0cdd0 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -116,8 +116,8 @@ /*! llist head to hold all nsvc */ struct llist_head nsvc; - /*! count all active NSVCs with data capabilities */ - int nsvc_data_count; + /*! count all active NSVCs */ + int nsvc_count; /*! true if this NSE was created by VTY or pcu socket) */ bool persistent; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6c060941db335a7a6a555ac8d1b9269fa8fb2023 Gerrit-Change-Number: 21877 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 Sat Dec 26 17:54:43 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 17:54:43 +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 (#3). Change subject: gbproxy: use ns2 vty2 ...................................................................... gbproxy: use ns2 vty2 The new gprs_ns2 vty2 support ip-sns and reorganize the whole network service configuration Depends: I163279cf57e84198dc8c53e1c109f5a9474670e9 (libosmocore) Change-Id: I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b --- M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg M src/gbproxy/gb_proxy_main.c 2 files changed, 6 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/19/21819/3 -- 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: 3 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 Sat Dec 26 17:55:55 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 26 Dec 2020 17:55:55 +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 (#4). 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.cfg M src/gbproxy/gb_proxy_main.c 2 files changed, 6 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/19/21819/4 -- 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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Dec 27 01:37:57 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 27 Dec 2020 01:37:57 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5fe7e58d178c5_59872af9dc0645f4100055b@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: [ 228s] [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 [ 228s] debian/rules override_dh_auto_test [ 228s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 228s] cd obj-i686-linux-gnu && meson test --suite unit [ 229s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 229s] ninja: no work to do. [ 236s] 1/3 open5gs:unit / core OK 7.13 s [ 236s] 2/3 open5gs:unit / crypt OK 0.17 s [ 236s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 236s] [ 236s] Ok: 2 [ 236s] Expected Fail: 0 [ 236s] Fail: 1 [ 236s] Unexpected Pass: 0 [ 236s] Skipped: 0 [ 236s] Timeout: 0 [ 236s] [ 236s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 236s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 236s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 236s] make: *** [debian/rules:11: binary] Error 2 [ 236s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 236s] ### VM INTERACTION START ### [ 239s] [ 228.544518] sysrq: Power Off [ 239s] [ 228.551787] reboot: Power down [ 240s] ### VM INTERACTION END ### [ 240s] [ 240s] lamb20 failed "build open5gs_2.1.1.20201227.dsc" at Sun Dec 27 01:37:47 UTC 2020. [ 240s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 27 01:45:56 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 27 Dec 2020 01:45:56 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fe7e769cc6c6_59872af9dc0645f410019ea@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: [ 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] [ 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] [ 149.668936] sysrq: Power Off [ 161s] [ 149.683901] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] lamb09 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Dec 27 01:45:40 UTC 2020. [ 161s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Dec 27 01:50:14 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 27 Dec 2020 01:50:14 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fe7e85dc39c3_59872af9dc0645f41002567@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] [ 109s] [COMPILING libboard/qmod/source/board_qmod.c] [ 109s] [COMPILING apps/dfu/main.c] [ 109s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 109s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 109s] [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] [ 104.206650] sysrq: Power Off [ 113s] [ 104.210982] reboot: Power down [ 113s] ### VM INTERACTION END ### [ 113s] [ 113s] sheep85 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Dec 27 01:50:07 UTC 2020. [ 113s] -- 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 Dec 27 12:54:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 12:54:36 +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+1 -- 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, 27 Dec 2020 12:54: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 Dec 27 12:55:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 12:55:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework frame relay load distribution function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21877 ) Change subject: gprs_ns2: rework frame relay load distribution function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6c060941db335a7a6a555ac8d1b9269fa8fb2023 Gerrit-Change-Number: 21877 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 27 Dec 2020 12: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 Sun Dec 27 12:55:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 12:55:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework frame relay load distribution function In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21877 ) Change subject: gprs_ns2: rework frame relay load distribution function ...................................................................... gprs_ns2: rework frame relay load distribution function For frame relay the traffic will be even distributed across all NS-VCs. Do not differentiate between signalling and data traffic. Change-Id: I6c060941db335a7a6a555ac8d1b9269fa8fb2023 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 2 files changed, 18 insertions(+), 23 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 5603fce..1098f22 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -350,15 +350,12 @@ uint32_t load_selector) { struct gprs_ns2_vc *tmp; - uint32_t mod = (bvci + load_selector) % nse->nsvc_data_count; + uint32_t mod = (bvci + load_selector) % nse->nsvc_count; uint32_t i = 0; llist_for_each_entry(tmp, &nse->nsvc, list) { if (!gprs_ns2_vc_is_unblocked(tmp)) continue; - if (tmp->data_weight == 0) - continue; - if (i == mod) return tmp; i++; @@ -393,22 +390,20 @@ { struct gprs_ns2_vc *nsvc = NULL; - if (bvci == 0) { - /* signalling */ - nsvc = ns2_load_sharing_signal(nse); - } else { - /* data with load sharing parameter */ - if (llist_empty(&nse->nsvc)) - return NULL; - - switch (nse->ll) { - case GPRS_NS2_LL_FR: - nsvc = ns2_load_sharing_modulor(nse, bvci, link_selector); - break; - default: + switch (nse->ll) { + case GPRS_NS2_LL_FR: + nsvc = ns2_load_sharing_modulor(nse, bvci, link_selector); + break; + case GPRS_NS2_LL_UDP: + default: + if (bvci == 0) { + /* signalling */ + nsvc = ns2_load_sharing_signal(nse); + } else { + /* data with load sharing parameter */ nsvc = ns2_load_sharing_first(nse); - break; } + break; } return nsvc; @@ -1087,13 +1082,13 @@ void ns2_nse_data_sum(struct gprs_ns2_nse *nse) { struct gprs_ns2_vc *nsvc; - nse->nsvc_data_count = 0; + nse->nsvc_count = 0; llist_for_each_entry(nsvc, &nse->nsvc, list) { if (!gprs_ns2_vc_is_unblocked(nsvc)) continue; - if (nsvc->data_weight > 0) - nse->nsvc_data_count++; + + nse->nsvc_count++; } } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 5cb1630..4c0cdd0 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -116,8 +116,8 @@ /*! llist head to hold all nsvc */ struct llist_head nsvc; - /*! count all active NSVCs with data capabilities */ - int nsvc_data_count; + /*! count all active NSVCs */ + int nsvc_count; /*! true if this NSE was created by VTY or pcu socket) */ bool persistent; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6c060941db335a7a6a555ac8d1b9269fa8fb2023 Gerrit-Change-Number: 21877 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 Sun Dec 27 12:55:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 12:55:54 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/clck_gen.py: fix: Thread.isAlive() was removed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21875 ) Change subject: trx_toolkit/clck_gen.py: fix: Thread.isAlive() was removed ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Id441d76dddb659958803d507e0fb028fb06422a7 Gerrit-Change-Number: 21875 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 27 Dec 2020 12:55: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 Dec 27 12:55:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 12:55:59 +0000 Subject: Change in osmocom-bb[master]: trx_toolkit/clck_gen.py: fix: Thread.isAlive() was removed In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/21875 ) Change subject: trx_toolkit/clck_gen.py: fix: Thread.isAlive() was removed ...................................................................... trx_toolkit/clck_gen.py: fix: Thread.isAlive() was removed As it turns out, in Python < 3.9 class Thread defines 'is_alive' and 'isAlive = is_alive'. In Python 3.9 the later has been removed, so fake_trx.py crashes on receipt of 'POWEROFF': File "/home/wmn/wmn/osmocom/bb/src/target/trx_toolkit/clck_gen.py", line 63, in running return self._thread.isAlive() AttributeError: 'Thread' object has no attribute 'isAlive' See https://bugs.python.org/issue35283 for more details. Change-Id: Id441d76dddb659958803d507e0fb028fb06422a7 --- M src/target/trx_toolkit/clck_gen.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/target/trx_toolkit/clck_gen.py b/src/target/trx_toolkit/clck_gen.py index 7232f74..51f04a8 100755 --- a/src/target/trx_toolkit/clck_gen.py +++ b/src/target/trx_toolkit/clck_gen.py @@ -60,7 +60,7 @@ def running(self): if self._thread is None: return False - return self._thread.isAlive() + return self._thread.is_alive() def start(self): # Make sure we won't start two threads -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/21875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Id441d76dddb659958803d507e0fb028fb06422a7 Gerrit-Change-Number: 21875 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 Dec 27 12:56:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 12:56:30 +0000 Subject: Change in osmo-bsc[master]: power_control: fix swapped lower/upper RxQual threshold values In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21865 ) Change subject: power_control: fix swapped lower/upper RxQual threshold values ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0f37b23ed360782f3c1f4275234c4e18a17aa89b Gerrit-Change-Number: 21865 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 27 Dec 2020 12: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 Sun Dec 27 12:56:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 12:56:34 +0000 Subject: Change in osmo-bsc[master]: power_control: fix swapped lower/upper RxQual threshold values In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21865 ) Change subject: power_control: fix swapped lower/upper RxQual threshold values ...................................................................... power_control: fix swapped lower/upper RxQual threshold values According to 3GPP TS 45.008, section A.3.2.1: c) Comparison of RXQUAL_XX with L_RXQUAL_XX_P (XX = DL or UL): Increase XX_TXPWR if at least P3 averaged values out of N3 averaged values are greater (worse quality) than L_RXQUAL_XX_P. d) Comparison of RXQUAL_XX with U_RXQUAL_XX_P (XX = DL or UL): Decrease XX_TXPWR if at least P4 averaged values out of N4 averaged values are lower (better quality) than U_RXQUAL_XX_P. Given that RxQual is a value in range 0 .. 7, where 0 is the best and 7 is the worst: L_RXQUAL_XX_P must define the worst quality, while U_RXQUAL_XX_P must define the best quality value. Change-Id: I0f37b23ed360782f3c1f4275234c4e18a17aa89b Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 3 files changed, 18 insertions(+), 17 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 7774147..3cb479d 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -5004,18 +5004,19 @@ X(BSC_VTY_ATTR_NEW_LCHAN), "rxqual-thresh lower <0-7> upper <0-7>", "Set target RxQual thresholds (for dynamic mode)\n" - "Lower RxQual value (default is 0, i.e. BER < 0.2%)\n" + "Lower RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%)\n" "Lower " POWER_CONTROL_MEAS_RXQUAL_DESC - "Upper RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%)\n" + "Upper RxQual value (default is 0, i.e. BER < 0.2%)\n" "Upper " POWER_CONTROL_MEAS_RXQUAL_DESC) { struct gsm_power_ctrl_params *params = vty->index; int lower = atoi(argv[0]); int upper = atoi(argv[1]); - if (lower > upper) { - vty_out(vty, "%% Lower 'rxqual-rxqual' (%d) must be less than upper (%d)%s", - lower, upper, VTY_NEWLINE); + /* RxQual: 0 is best, 7 is worst, so upper must be less */ + if (upper > lower) { + vty_out(vty, "%% Upper 'rxqual-rxqual' (%d) must be less than lower (%d)%s", + upper, lower, VTY_NEWLINE); return CMD_WARNING; } diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 4c87fd8..38392fc 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1007,8 +1007,8 @@ /* RxQual measurement parameters */ .rxqual_meas = { /* Thresholds for RxQual (see 3GPP TS 45.008, A.3.2.1) */ - .lower_thresh = 0, /* L_RXQUAL_XX_P (BER < 0.2%) */ - .upper_thresh = 3, /* U_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ + .lower_thresh = 3, /* L_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ + .upper_thresh = 0, /* U_RXQUAL_XX_P (BER < 0.2%) */ /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index 2bc427b..d58c075 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -62,7 +62,7 @@ rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 no rxlev-avg - rxqual-thresh lower 0 upper 3 + rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 no rxqual-avg ms-power-control @@ -107,7 +107,7 @@ rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 no rxlev-avg - rxqual-thresh lower 0 upper 3 + rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 no rxqual-avg ms-power-control @@ -116,7 +116,7 @@ rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 no rxlev-avg - rxqual-thresh lower 0 upper 3 + rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 no rxqual-avg ... @@ -164,23 +164,23 @@ ... OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower? - lower Lower RxQual value (default is 0, i.e. BER < 0.2%) + lower Lower RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%) OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower ? <0-7> Lower RxQual value (signal quality, 0 is best, 7 is worst) -OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper? - upper Upper RxQual value (default is 3, i.e. 0.8% <= BER < 1.6%) -OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper ? +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 7 upper? + upper Upper RxQual value (default is 0, i.e. BER < 0.2%) +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 7 upper ? <0-7> Upper RxQual value (signal quality, 0 is best, 7 is worst) -OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 0 upper 7 +OsmoBSC(config-ms-power-ctrl)# rxqual-thresh lower 7 upper 4 OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control ... !rxqual-thresh - rxqual-thresh lower 0 upper 3 + rxqual-thresh lower 3 upper 0 ... ms-power-control ... !rxqual-thresh - rxqual-thresh lower 0 upper 7 + rxqual-thresh lower 7 upper 4 ... OsmoBSC(config-ms-power-ctrl)# rxlev-avg algo osmo-ewma beta 50 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0f37b23ed360782f3c1f4275234c4e18a17aa89b Gerrit-Change-Number: 21865 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 Dec 27 12:58:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 12:58:53 +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 1: 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: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 27 Dec 2020 12:58: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 Dec 27 13:00:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 13:00:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix: explicitly enable/disable dynamic power control In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 ) Change subject: BSC_Tests: fix: explicitly enable/disable dynamic power control ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842/1//COMMIT_MSG at 3 PS1, Line 3: AuthorDate: 2020-12-22 13:57:15 +0100 it is a severe bug if the default power control behavior (enable/disable) has been changed in osmo-bsc master. It should be urgently fixed there, instead of creating a work-around here. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I029eac9d8f38477a395a72e4c00dd24d7107ca79 Gerrit-Change-Number: 21842 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 27 Dec 2020 13:00: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 Sun Dec 27 13:01:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 13:01:08 +0000 Subject: Change in osmo-msc[master]: SMS-over-GSUP: notify sender if no transaction found In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/17876 ) Change subject: SMS-over-GSUP: notify sender if no transaction found ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-msc/+/17876/1/src/libmsc/gsm_04_11_gsup.c File src/libmsc/gsm_04_11_gsup.c: https://gerrit.osmocom.org/c/osmo-msc/+/17876/1/src/libmsc/gsm_04_11_gsup.c at 164 PS1, Line 164: GMM_CAUSE_NO_PDP_ACTIVATED > Well, we're using GMM specific cause values (see enum gsm48_gmm_cause) for something that has noting [?] what about that plan t ouse the RP_CAUSE_IE ? -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/17876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4f564610fadbfdbbc33de267786534a5405319f6 Gerrit-Change-Number: 17876 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Sun, 27 Dec 2020 13:01:08 +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 Sun Dec 27 13:01:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 13:01:42 +0000 Subject: Change in osmo-e1-hardware[master]: e1-tracer: update BOM attributes to 1st v2 prod run parts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21810 ) Change subject: e1-tracer: update BOM attributes to 1st v2 prod run parts ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21810 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: I4f1a82476ca84552efd71a47231e8b6ac02a3358 Gerrit-Change-Number: 21810 Gerrit-PatchSet: 2 Gerrit-Owner: mschramm Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 27 Dec 2020 13:01: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 Dec 27 13:01:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 13:01:44 +0000 Subject: Change in osmo-e1-hardware[master]: e1-tracer: update BOM attributes to 1st v2 prod run parts In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21810 ) Change subject: e1-tracer: update BOM attributes to 1st v2 prod run parts ...................................................................... e1-tracer: update BOM attributes to 1st v2 prod run parts * L2, L3 now 0805 * R6, R7 now 0402 * IC4 now ASEMB-12.000MHZ-LC-T * RoHS state enabled again in scraper, not yet used in BOM Change-Id: I4f1a82476ca84552efd71a47231e8b6ac02a3358 --- M hardware/e1-tracer/e1-tracer.brd M hardware/e1-tracer/e1-tracer.sch M hardware/e1-tracer/e1-tracer_eBOM.csv M hardware/e1-tracer/e1-tracer_eBOM.gnumeric 4 files changed, 315 insertions(+), 256 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/hardware/e1-tracer/e1-tracer.brd b/hardware/e1-tracer/e1-tracer.brd index ec60b04..affb0bc 100644 --- a/hardware/e1-tracer/e1-tracer.brd +++ b/hardware/e1-tracer/e1-tracer.brd @@ -2124,7 +2124,7 @@ - + @@ -2137,7 +2137,7 @@ - + @@ -2150,7 +2150,7 @@ - + @@ -2163,7 +2163,7 @@ - + @@ -2176,7 +2176,7 @@ - + @@ -2189,7 +2189,7 @@ - + @@ -2202,7 +2202,7 @@ - + @@ -2215,7 +2215,7 @@ - + @@ -2228,7 +2228,7 @@ - + @@ -2241,7 +2241,7 @@ - + @@ -2254,22 +2254,22 @@ - + - - - - - - - - - - + + + + + + + + + + @@ -2279,7 +2279,7 @@ - + @@ -2305,7 +2305,7 @@ - + @@ -2318,7 +2318,7 @@ - + @@ -2331,7 +2331,7 @@ - + @@ -2342,7 +2342,7 @@ - + @@ -2355,7 +2355,7 @@ - + @@ -2368,7 +2368,7 @@ - + @@ -2381,7 +2381,7 @@ - + @@ -2394,7 +2394,7 @@ - + @@ -2407,7 +2407,7 @@ - + @@ -2420,7 +2420,7 @@ - + @@ -2433,7 +2433,7 @@ - + @@ -2446,7 +2446,7 @@ - + @@ -2459,7 +2459,7 @@ - + @@ -2472,7 +2472,7 @@ - + @@ -2485,7 +2485,7 @@ - + @@ -2498,7 +2498,7 @@ - + @@ -2537,7 +2537,7 @@ - + @@ -2550,7 +2550,7 @@ - + @@ -2563,7 +2563,7 @@ - + @@ -2576,7 +2576,7 @@ - + @@ -2589,7 +2589,7 @@ - + @@ -2602,7 +2602,7 @@ - + @@ -2671,7 +2671,7 @@ - + @@ -2683,7 +2683,7 @@ - + @@ -2695,7 +2695,7 @@ - + @@ -2721,8 +2721,8 @@ - - + + @@ -2734,8 +2734,8 @@ - - + + @@ -2747,8 +2747,8 @@ - - + + @@ -2806,7 +2806,7 @@ - + @@ -2819,7 +2819,7 @@ - + @@ -2832,7 +2832,7 @@ - + @@ -2845,7 +2845,7 @@ - + @@ -2858,7 +2858,7 @@ - + @@ -2871,7 +2871,7 @@ - + @@ -2884,7 +2884,7 @@ - + @@ -2897,7 +2897,7 @@ - + @@ -2910,7 +2910,7 @@ - + @@ -2923,7 +2923,7 @@ - + @@ -2936,7 +2936,7 @@ - + @@ -2949,7 +2949,7 @@ - + @@ -2962,7 +2962,7 @@ - + @@ -2975,7 +2975,7 @@ - + @@ -2988,7 +2988,7 @@ - + @@ -3001,7 +3001,7 @@ - + @@ -3027,7 +3027,7 @@ - + @@ -3040,7 +3040,7 @@ - + @@ -3053,7 +3053,7 @@ - + @@ -3066,7 +3066,7 @@ - + @@ -3084,7 +3084,7 @@ - + @@ -3092,7 +3092,7 @@ - + @@ -3105,7 +3105,7 @@ - + @@ -3118,7 +3118,7 @@ - + @@ -3179,7 +3179,7 @@ - + @@ -3187,30 +3187,30 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + @@ -3218,7 +3218,7 @@ - + @@ -3229,7 +3229,7 @@ - + @@ -3242,7 +3242,7 @@ - + @@ -3255,7 +3255,7 @@ - + @@ -3268,7 +3268,7 @@ - + @@ -3281,7 +3281,7 @@ - + @@ -3294,7 +3294,7 @@ - + @@ -3307,7 +3307,7 @@ - + diff --git a/hardware/e1-tracer/e1-tracer.sch b/hardware/e1-tracer/e1-tracer.sch index 57e3c17..75802e2 100644 --- a/hardware/e1-tracer/e1-tracer.sch +++ b/hardware/e1-tracer/e1-tracer.sch @@ -8417,7 +8417,7 @@ - + @@ -8461,10 +8461,10 @@ - + - + @@ -8475,7 +8475,7 @@ - + @@ -8486,7 +8486,7 @@ - + @@ -8497,7 +8497,7 @@ - + @@ -8508,7 +8508,7 @@ - + @@ -8519,7 +8519,7 @@ - + @@ -8530,7 +8530,7 @@ - + @@ -8541,7 +8541,7 @@ - + @@ -8549,10 +8549,10 @@ - + - + @@ -8574,7 +8574,7 @@ - + @@ -8607,7 +8607,7 @@ - + @@ -8618,7 +8618,7 @@ - + @@ -8657,7 +8657,7 @@ - + @@ -8681,7 +8681,7 @@ - + @@ -8692,7 +8692,7 @@ - + @@ -8770,7 +8770,7 @@ - + @@ -8826,7 +8826,7 @@ - + @@ -8895,10 +8895,10 @@ - + - + @@ -8909,7 +8909,7 @@ - + @@ -8920,7 +8920,7 @@ - + @@ -8931,7 +8931,7 @@ - + @@ -8942,7 +8942,7 @@ - + @@ -8953,7 +8953,7 @@ - + @@ -8964,7 +8964,7 @@ - + @@ -8975,7 +8975,7 @@ - + @@ -8986,7 +8986,7 @@ - + @@ -9070,7 +9070,7 @@ - + @@ -9081,7 +9081,7 @@ - + @@ -9099,16 +9099,16 @@ - - + + - + - + - + - + @@ -9117,7 +9117,7 @@ - + @@ -9141,7 +9141,7 @@ - + @@ -9178,7 +9178,7 @@ - + @@ -9214,7 +9214,7 @@ - + @@ -9225,7 +9225,7 @@ - + @@ -9236,7 +9236,7 @@ - + @@ -9247,7 +9247,7 @@ - + @@ -9258,7 +9258,7 @@ - + @@ -9269,7 +9269,7 @@ - + @@ -9281,7 +9281,7 @@ - + @@ -9292,7 +9292,7 @@ - + @@ -9325,7 +9325,7 @@ - + @@ -9336,7 +9336,7 @@ - + @@ -9347,7 +9347,7 @@ - + @@ -9358,7 +9358,7 @@ - + @@ -9369,7 +9369,7 @@ - + @@ -9380,7 +9380,7 @@ - + @@ -9391,7 +9391,7 @@ - + @@ -9402,7 +9402,7 @@ - + @@ -9413,7 +9413,7 @@ - + @@ -9424,7 +9424,7 @@ - + @@ -9435,7 +9435,7 @@ - + @@ -9446,7 +9446,7 @@ - + @@ -9457,7 +9457,7 @@ - + @@ -9468,7 +9468,7 @@ - + @@ -9479,7 +9479,7 @@ - + @@ -9490,7 +9490,7 @@ - + @@ -9512,7 +9512,7 @@ - + @@ -9523,7 +9523,7 @@ - + @@ -9534,7 +9534,7 @@ - + @@ -9545,7 +9545,7 @@ - + @@ -9556,7 +9556,7 @@ - + @@ -9567,7 +9567,7 @@ - + @@ -9578,7 +9578,7 @@ - + @@ -9589,7 +9589,7 @@ - + @@ -9636,31 +9636,31 @@ - + - - - - + + + + - + - + - - - - + + + + - + - + @@ -9669,7 +9669,7 @@ - + @@ -9680,7 +9680,7 @@ - + @@ -9691,7 +9691,7 @@ - + @@ -9702,7 +9702,7 @@ - + @@ -9713,7 +9713,7 @@ - + @@ -9724,7 +9724,7 @@ - + @@ -9735,7 +9735,7 @@ - + @@ -9746,7 +9746,7 @@ - + @@ -10100,15 +10100,15 @@ - - - - - - - - - + + + + + + + + + @@ -10380,28 +10380,28 @@ - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + diff --git a/hardware/e1-tracer/e1-tracer_eBOM.csv b/hardware/e1-tracer/e1-tracer_eBOM.csv index 0efca53..3d4a9af 100644 --- a/hardware/e1-tracer/e1-tracer_eBOM.csv +++ b/hardware/e1-tracer/e1-tracer_eBOM.csv @@ -1,4 +1,4 @@ -,e1-tracer.sch,"2020-08-15 16:57:55",,"EAGLE Version 7.7.0 Copyright (c) 1988-2016 CadSoft",,,,,, +,e1-tracer.sch,"2020-12-20 21:02:07",,"EAGLE Version 7.7.0 Copyright (c) 1988-2016 CadSoft",,,,,, Qty,Name,Value,Package,Class,Supplier,"Part Number",URL,Description,Populated,Beistellung 19,"C1, C2, C3, C4, C5, C6, C7, C11, C16, C17, C18, C19, C20, C21, C22, C23, C24, C29, C30",100n,_0603,CAPACITOR,DIGIKEY,1276-1005-1-ND,http://www.digikey.de/product-detail/de/foo/1276-1005-1-ND,"CAP CER 0.1UF 16V 10% X7R 0603",TRUE, 4,"C8, C9, C10, C12",1u,_0603,CAPACITOR,DIGIKEY,1276-1182-1-ND,https://www.digikey.de/product-detail/de/samsung-electro-mechanics/CL10A105KP8NNNC/1276-1182-1-ND/3889268,"CAP CER 1UF 10V X5R 0603",TRUE, @@ -16,17 +16,17 @@ 1,U1,ICE40UP5K-SG48I,QFN48,IC,DIGIKEY,220-2212-1-ND,https://www.digikey.de/product-detail/de/lattice-semiconductor-corporation/ICE40UP5K-SG48I/220-2212-1-ND/,"IC FPGA 39 I/O 48QFN",TRUE, 2,"U2, U3",IP4234CZ6,TSOP-6,IC,DIGIKEY,1727-4717-1-ND,https://www.digikey.de/product-detail/de/nexperia-usa-inc/IP4234CZ6125/1727-4717-1-ND/2531156,"TVS DIODE 5.5V 6TSOP",TRUE, 2,"U4, U5",IDT82V2081,TQFP44,IC,DIGIKEY,800-2347-ND,https://www.digikey.de/product-detail/de/renesas-electronics-america-inc/82V2081PPG/800-2347-ND,"IC TELECOM INTERFACE 44TQFP",TRUE, -1,IC4,ASEM1-12.000MHZ-LC-T,TSX-3225,"IC / XTAL / XO",DIGIKEY,535-9757-1-ND,https://www.digikey.de/product-detail/de/abracon-llc/ASEM1-12-000MHZ-LC-T/535-9757-1-ND,"MEMS OSC XO 12.0000MHZ CMOS SMD",TRUE, +1,IC4,ASEMB-12.000MHZ-LC-T,TSX-3225,"IC / XTAL / XO",DIGIKEY,535-11744-1-ND,https://www.digikey.de/product-detail/de/abracon-llc/ASEMB-12-000MHZ-LC-T/535-11744-1-ND,"MEMS OSC XO 12.0000MHZ CMOS SMD",TRUE, 1,U6,"2.048 Mhz",HC73,"IC / XTAL / XO",DIGIKEY,631-1182-ND,https://www.digikey.de/product-detail/de/renesas-electronics-america-inc/XLH736002-048000I/631-1182-ND,"XTAL OSC XO 2.0480MHZ HCMOS SMD",TRUE, 1,U7,"1.544 MHz",HC73,"IC / XTAL / XO","UNKNOWN SOURCE","UNKNOWN SOURCE PART NUMBER","UNKNOWN LINK","NO DESCRIPTION",FALSE, 1,J1,PASSTHROUGH,557560-1,CONNECTOR\JUMPER,DIGIKEY,A31449-ND,https://www.digikey.de/product-detail/de/te-connectivity-amp-connectors/5557560-1/A31449-ND,"CONN MOD JACK 8P8C R/A UNSHLD",TRUE, 1,JP1,,1X08_LOCK,CONNECTOR\JUMPER,"UNKNOWN SOURCE","UNKNOWN SOURCE PART NUMBER","UNKNOWN LINK","NO DESCRIPTION",TRUE, 1,L1,744231091,WE-CNSW_0805,INDUCTOR,DIGIKEY,732-3198-1-ND,https://www.digikey.de/product-detail/de/wurth-electronics-inc/744231091/732-3198-1-ND,"CMC 370MA 2LN 90 OHM SMD",TRUE, -2,"L2, L3",47nH,SM-1206,INDUCTOR,DIGIKEY,CE201210-47NJCT-ND,https://www.digikey.de/product-detail/de/bourns-inc/CE201210-47NJ/CE201210-47NJCT-ND/3438045,"FIXED IND 47NH 300MA 700MOHM SMD",TRUE, +2,"L2, L3",47nH,0805,INDUCTOR,DIGIKEY,CE201210-47NJCT-ND,https://www.digikey.de/product-detail/de/bourns-inc/CE201210-47NJ/CE201210-47NJCT-ND/3438045,"FIXED IND 47NH 300MA 700MOHM SMD",TRUE, 2,"M1, M2",MENTOR_12701001,1270.1001,"LIGHT GUIDE","UNKNOWN SOURCE","UNKNOWN SOURCE PART NUMBER","UNKNOWN LINK","NO DESCRIPTION",TRUE, 1,R1,100R,_0603,RESISTOR,DIGIKEY,RMCF0603JT100RCT-ND,https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT100R/RMCF0603JT100RCT-ND,"RES 100 OHM 5%% 1/10W 0603",TRUE, 7,"R2, R3, R4, R5, R44, R45, R46",DNP,_0603,RESISTOR,DIGIKEY,P0.0GCT-ND,https://www.digikey.de/product-detail/de/panasonic-electronic-components/ERJ-3GEY0R00V/P0-0GCT-ND/134711,"RES SMD 0 OHM JUMPER 1/10W 0603",FALSE, -2,"R6, R7",33,_0402,RESISTOR,DIGIKEY,RMCF0603JT33R0CT-ND,https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT33R0/RMCF0603JT33R0CT-ND,"RES 33 OHM 5%% 1/10W 0603",TRUE, +2,"R6, R7",33,_0402,RESISTOR,DIGIKEY,311-33.0LRCT-ND,https://www.digikey.de/product-detail/de/yageo/RC0402FR-0733RL/311-33-0LRCT-ND/729540,"RES SMD 33 OHM 1%% 1/16W 0402",TRUE, 23,"R8, R10, R13, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R36, R37",10k,_0603,RESISTOR,DIGIKEY,RMCF0603JT10K0CT-ND,https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT10K0/RMCF0603JT10K0CT-ND,"RES 10K OHM 5%% 1/10W 0603",TRUE, 1,R9,1k5,_0603,RESISTOR,DIGIKEY,RMCF0603JT1K50CT-ND,https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT1K50/RMCF0603JT1K50CT-ND,"RES 1.5K OHM 5%% 1/10W 0603",TRUE, 2,"R11, R12",100k,_0603,RESISTOR,DIGIKEY,311-100KGRCT-ND,https://www.digikey.de/product-detail/de/yageo/RC0603JR-07100KL/311-100KGRCT-ND/729645,"RES SMD 100K OHM 5%% 1/10W 0603",TRUE, diff --git a/hardware/e1-tracer/e1-tracer_eBOM.gnumeric b/hardware/e1-tracer/e1-tracer_eBOM.gnumeric index 68717f6..2fbc684 100644 --- a/hardware/e1-tracer/e1-tracer_eBOM.gnumeric +++ b/hardware/e1-tracer/e1-tracer_eBOM.gnumeric @@ -25,7 +25,7 @@ - 2020-08-15T17:01:27Z + 2020-12-20T21:17:34Z 2020-08-15T16:57:56Z @@ -33,12 +33,12 @@ e1-tracer.sch - + e1-tracer.sch 10 - 42 + 41 1 @@ -145,7 +145,17 @@ Sans - + + + + + + + @@ -165,11 +175,16 @@ Sans - + + + + - + + + + + + + + + + - @@ -311,7 +341,7 @@ - - @@ -412,7 +442,17 @@ - + + + + + + + @@ -422,11 +462,16 @@ Sans - + + + + - + + + + + + + @@ -447,6 +502,11 @@ Sans + + + - + @@ -494,12 +554,12 @@ - - + + e1-tracer.sch - 2020-08-15 16:57:55 + 2020-12-20 21:02:07 EAGLE Version 7.7.0 Copyright (c) 1988-2016 CadSoft Qty Name @@ -690,12 +750,12 @@ 1 IC4 - ASEM1-12.000MHZ-LC-T + ASEMB-12.000MHZ-LC-T TSX-3225 IC / XTAL / XO DIGIKEY - 535-9757-1-ND - https://www.digikey.de/product-detail/de/abracon-llc/ASEM1-12-000MHZ-LC-T/535-9757-1-ND + 535-11744-1-ND + https://www.digikey.de/product-detail/de/abracon-llc/ASEMB-12-000MHZ-LC-T/535-11744-1-ND MEMS OSC XO 12.0000MHZ CMOS SMD TRUE @@ -757,7 +817,7 @@ 2 L2, L3 47nH - SM-1206 + 0805 INDUCTOR DIGIKEY CE201210-47NJCT-ND @@ -804,11 +864,10 @@ _0402 RESISTOR DIGIKEY - RMCF0603JT33R0CT-ND - https://www.digikey.de/product-detail/de/stackpole-electronics-inc/RMCF0603JT33R0/RMCF0603JT33R0CT-ND - RES 33 OHM 5%% 1/10W 0603 + 311-33.0LRCT-ND + https://www.digikey.de/product-detail/de/yageo/RC0402FR-0733RL/311-33-0LRCT-ND/729540 + RES SMD 33 OHM 1%% 1/16W 0402 TRUE - 23 R8, R10, R13, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R36, R37 10k @@ -953,7 +1012,7 @@ TRUE - + -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21810 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: I4f1a82476ca84552efd71a47231e8b6ac02a3358 Gerrit-Change-Number: 21810 Gerrit-PatchSet: 3 Gerrit-Owner: mschramm 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 Dec 27 13:05:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 13:05:47 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Turn green LED off completely if no E1 signal is received In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 ) Change subject: icE1usb fw: Turn green LED off completely if no E1 signal is received ...................................................................... Patch Set 3: > I have no idea yet if/how detection would work and it might turn out to not be based on that counter, so until the hw actually supports that, I wouldn't merge any related patch.. In theory I agree. However, this patch works in practice relatively well. The green LED might occasionally flash/flicker, but in general it changes from a steady green to an 'almost always visually off'. This is an improvement as now you have a direct visual indication if the cable is physically connected to the peer or not. Yes, not super critical, but I found it extremely useful. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 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: Ibd23cbf1d044b46d8fed48fb97622e6ef980b99f Gerrit-Change-Number: 21733 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-Comment-Date: Sun, 27 Dec 2020 13:05: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 Sun Dec 27 13:09:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 13:09:17 +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 posted comments on 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 ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773/2/firmware/ice40-riscv/icE1usb/e1_hw.h File firmware/ice40-riscv/icE1usb/e1_hw.h: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773/2/firmware/ice40-riscv/icE1usb/e1_hw.h at 1 PS2, Line 1: #pragma once > Keep with the style of the other header. [?] Ack https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773/2/firmware/ice40-riscv/icE1usb/e1_hw.h at 10 PS2, Line 10: //TODO: Shouldn't this go into the no2e1 git repo? > Yeah, it should, that's the plan. [?] Ack -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-Comment-Date: Sun, 27 Dec 2020 13:09:17 +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 Sun Dec 27 16:36:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 16:36:19 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: USB control request handling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775 ) Change subject: icE1usb fw: USB control request handling ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/e1.c File firmware/ice40-riscv/icE1usb/e1.c: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/e1.c at 256 PS3, Line 256: g_e1.tx.cr = E1_TX_CR_UNFL_CLR | E1_TX_CR_ENABLE |tx_cr; > space missing. [?] Ack https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/e1.c at 267 PS3, Line 267: printf("tx_cfg(0x%04x)\n", cr); > Left over debug ? Ack https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/ice1usb_proto.h File firmware/ice40-riscv/icE1usb/ice1usb_proto.h: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775/3/firmware/ice40-riscv/icE1usb/ice1usb_proto.h at 1 PS3, Line 1: #pragma once > Again, try to stick with the file header and comment style. Ack -- 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: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 27 Dec 2020 16:36:19 +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 Sun Dec 27 17:57:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 17:57: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 5: (3 comments) https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/e1.c File firmware/ice40-riscv/icE1usb/e1.c: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/e1.c at 356 PS5, Line 356: /* get cumulative error bit mask since last call of this function */ > Huh, it's not "since the last call" AFAICT this is never reset. Counters just wrap. indeed, I changed the code from an earlier implementation without fixing the comment. https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/e1.c at 380 PS5, Line 380: if (g_e1.rx.last_tick == cur_tick) { > Again, as in previous patches, I'd remove any kind of support for LOS until there is actual hw to de [?] Ack https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/ice1usb_proto.h File firmware/ice40-riscv/icE1usb/ice1usb_proto.h: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/5/firmware/ice40-riscv/icE1usb/ice1usb_proto.h at 83 PS5, Line 83: #define ICE1USB_ERR_F_TICK_ERR 0x02 > I would call that LOS and not TICK_ERR. [?] 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: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 27 Dec 2020 17:57:54 +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 Sun Dec 27 18:24:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:24:26 +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: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773 to look at the new patch set (#3). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/73/21773/3 -- 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-CC: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 27 18:24:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:24:26 +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, 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 (#3). 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/3 -- 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-CC: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 27 18:24:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:24:26 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: USB control request handling 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/+/21775 to look at the new patch set (#4). 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 M gateware/cores/no2e1 6 files changed, 225 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/75/21775/4 -- 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: 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 Sun Dec 27 18:24:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:24:26 +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 (#6). 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/6 -- 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: 6 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 Sun Dec 27 18:24:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:24:28 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Don't store E1_*_CR_*_CLR in variables References: Message-ID: laforge has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/78/21878/1 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-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 27 18:24:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:24:28 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Allow to transmit AIS References: Message-ID: laforge has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/79/21879/1 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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 27 18:44:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:44:54 +0000 Subject: Change in osmo-e1d[master]: Add per-line rate counter group to count various errors In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21783 ) Change subject: Add per-line rate counter group to count various errors ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I766b717843d7cd8ac00d4ce18c38773ac50ec3e6 Gerrit-Change-Number: 21783 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 27 Dec 2020 18:44: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 Dec 27 18:45:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:45:03 +0000 Subject: Change in osmo-e1d[master]: support for control endpoint requests to icE1usb to switch Rx/Tx mode In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21800 ) Change subject: support for control endpoint requests to icE1usb to switch Rx/Tx mode ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I62f3175a216eb5db0847f4b16c91bc23697a7623 Gerrit-Change-Number: 21800 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 27 Dec 2020 18:45: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 Dec 27 18:45:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:45:16 +0000 Subject: Change in osmo-e1d[master]: usb.c: Mark _e1_usb_open_device() as static In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21809 ) Change subject: usb.c: Mark _e1_usb_open_device() as static ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic4ac2b77f12479daa52392cc31ca1e7d9ed96567 Gerrit-Change-Number: 21809 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 27 Dec 2020 18:45: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 Sun Dec 27 18:45:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:45:28 +0000 Subject: Change in osmo-e1d[master]: move usb.c function declarations to newly-created usb.h In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21802 ) Change subject: move usb.c function declarations to newly-created usb.h ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 Gerrit-Change-Number: 21802 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 27 Dec 2020 18:45: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 Dec 27 18:46:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:46:25 +0000 Subject: Change in osmo-e1d[master]: Add support for icE1usb interrupt endpoint error reporting In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21782 ) Change subject: Add support for icE1usb interrupt endpoint error reporting ...................................................................... Add support for icE1usb interrupt endpoint error reporting Related: OS#4674 Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Depends: osmo-e1-hardware If157fde9d4ca05910b09537e19f37603c6d925f0 --- M src/Makefile.am A src/ice1usb_proto.h M src/usb.c 3 files changed, 196 insertions(+), 3 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/Makefile.am b/src/Makefile.am index 6dd13ce..d9d8236 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -21,6 +21,7 @@ noinst_HEADERS = \ e1d.h \ + ice1usb_proto.h \ log.h \ $(NULL) diff --git a/src/ice1usb_proto.h b/src/ice1usb_proto.h new file mode 100644 index 0000000..5f5f31c --- /dev/null +++ b/src/ice1usb_proto.h @@ -0,0 +1,99 @@ +#pragma once + +/* Header file describing the USB protocol between the icE1usb firmware and the host + * software (currently really only osmo-e1d) */ + +/*********************************************************************** + * 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)); + + +/*********************************************************************** + * Interrupt Endpoint + ***********************************************************************/ + +enum ice1usb_irq_type { + ICE1USB_IRQQ_T_ERRCNT = 1, +}; + +/* Ensue ro keep those in sync with e1.h */ +#define ICE1USB_ERR_F_ALIGN_ERR 0x01 +#define ICE1USB_ERR_F_TICK_ERR 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/src/usb.c b/src/usb.c index be4de44..35d47ec 100644 --- a/src/usb.c +++ b/src/usb.c @@ -36,6 +36,7 @@ #include "e1d.h" #include "log.h" +#include "ice1usb_proto.h" #define USB_VID 0x1d50 @@ -57,6 +58,7 @@ uint8_t ep_in; uint8_t ep_out; uint8_t ep_fb; + uint8_t ep_int; /* Max packet size */ int pkt_size; @@ -66,6 +68,12 @@ struct e1_usb_flow *flow_out; struct e1_usb_flow *flow_fb; + /* Interrupt */ + struct { + uint8_t buf[10]; + struct ice1usb_irq_err last_errcnt; + } irq; + /* Rate regulation */ uint32_t r_acc; uint32_t r_sw; @@ -98,8 +106,6 @@ struct e1_usb_flow_entry *entries; }; - - // --------------------------------------------------------------------------- // USB data transfer // --------------------------------------------------------------------------- @@ -275,6 +281,88 @@ return 0; } +// --------------------------------------------------------------------------- +// USB interrupt +// --------------------------------------------------------------------------- + +static int resubmit_irq(struct e1_line *line); + +static void rx_interrupt_errcnt(struct e1_line *line, const struct ice1usb_irq_err *errcnt) +{ + struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; + struct ice1usb_irq_err *last = &ld->irq.last_errcnt; + + if (errcnt->crc != last->crc) { + LOGPLI(line, DE1D, LOGL_ERROR, "CRC error count %d (was %d)\n", + errcnt->crc, last->crc); + } + + if (errcnt->align != last->align) { + LOGPLI(line, DE1D, LOGL_ERROR, "ALIGNMENT error count %d (was %d)\n", + errcnt->align, last->align); + } + + if (errcnt->ovfl != last->ovfl) { + LOGPLI(line, DE1D, LOGL_ERROR, "OVERFLOW error count %d (was %d)\n", + errcnt->ovfl, last->ovfl); + } + + if (errcnt->unfl != last->unfl) { + LOGPLI(line, DE1D, LOGL_ERROR, "UNDERFLOW error count %d (was %d)\n", + errcnt->unfl, last->unfl); + } + + if ((errcnt->flags & ICE1USB_ERR_F_ALIGN_ERR) != (last->flags & ICE1USB_ERR_F_ALIGN_ERR)) { + LOGPLI(line, DE1D, LOGL_ERROR, "ALIGNMENT %s\n", + errcnt->flags & ICE1USB_ERR_F_ALIGN_ERR ? "LOST" : "REGAINED"); + } + + if ((errcnt->flags & ICE1USB_ERR_F_TICK_ERR) != (last->flags & ICE1USB_ERR_F_TICK_ERR)) { + LOGPLI(line, DE1D, LOGL_ERROR, "Rx Clock %s\n", + errcnt->flags & ICE1USB_ERR_F_TICK_ERR ? "LOST" : "REGAINED"); + } + + ld->irq.last_errcnt = *errcnt; +} + +static void interrupt_ep_cb(struct libusb_transfer *xfer) +{ + struct e1_line *line = (struct e1_line *) xfer->user_data; + const struct ice1usb_irq *irq = (const struct ice1usb_irq *) xfer->buffer; + + if (!xfer->actual_length) { + LOGPLI(line, DE1D, LOGL_ERROR, "Zero-Length Interrupt transfer\n"); + goto out; + } + + switch (irq->type) { + case ICE1USB_IRQQ_T_ERRCNT: + if (xfer->actual_length < sizeof(*irq)) { + LOGPLI(line, DE1D, LOGL_ERROR, "Short ERRCNT interrupt: %u<%zu\n", + xfer->actual_length, sizeof(*irq)); + break; + } + rx_interrupt_errcnt(line, &irq->u.errors); + break; + default: + LOGPLI(line, DE1D, LOGL_INFO, "Unsupported interrupt 0x%02x\n", irq->type); + break; + } + +out: + resubmit_irq(line); +} + +static int resubmit_irq(struct e1_line *line) +{ + struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; + struct e1_usb_intf_data *id = (struct e1_usb_intf_data *) line->intf->drv_data; + struct libusb_transfer *xfr = libusb_alloc_transfer(0); + + libusb_fill_interrupt_transfer(xfr, id->devh, ld->ep_int, ld->irq.buf, sizeof(ld->irq.buf), + interrupt_ep_cb, line, 0); + return libusb_submit_transfer(xfr); +} // --------------------------------------------------------------------------- // Init / Probing @@ -316,7 +404,7 @@ continue; id = &cd->interface[i].altsetting[1]; - if ((id->bInterfaceClass != 0xff) || (id->bInterfaceSubClass != 0xe1) || (id->bNumEndpoints != 3)) + if ((id->bInterfaceClass != 0xff) || (id->bInterfaceSubClass != 0xe1) || (id->bNumEndpoints < 3)) continue; /* Get interface and set it up */ @@ -353,6 +441,8 @@ else if (line_data->pkt_size != id->endpoint[j].wMaxPacketSize) LOGP(DE1D, LOGL_ERROR, "Inconsistent max packet size %d vs %d\n", line_data->pkt_size, (int)id->endpoint[j].wMaxPacketSize); + } else if (id->endpoint[j].bmAttributes == 0x03) { + line_data->ep_int = id->endpoint[j].bEndpointAddress; } else { LOGP(DE1D, LOGL_ERROR, "Invalid EP %02x\n", id->endpoint[j].bEndpointAddress); } @@ -372,6 +462,9 @@ e1uf_start(line_data->flow_in); e1uf_start(line_data->flow_out); e1uf_start(line_data->flow_fb); + + if (line_data->ep_int) + resubmit_irq(line); } return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5b0bf3cf40c623c17f2e88292e880b545c36b7b6 Gerrit-Change-Number: 21782 Gerrit-PatchSet: 5 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 Sun Dec 27 18:46:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:46:26 +0000 Subject: Change in osmo-e1d[master]: Add per-line rate counter group to count various errors In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21783 ) Change subject: Add per-line rate counter group to count various errors ...................................................................... Add per-line rate counter group to count various errors Change-Id: I766b717843d7cd8ac00d4ce18c38773ac50ec3e6 --- M src/e1d.h M src/intf_line.c M src/usb.c M src/vty.c 4 files changed, 46 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/e1d.h b/src/e1d.h index a7ba005..e5b541b 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -26,7 +26,17 @@ #include #include +#include +#define line_ctr_add(line, idx, add) rate_ctr_add(&(line)->ctrs->ctr[idx], add) + +enum e1d_line_ctr { + LINE_CTR_LOS, + LINE_CTR_LOA, + LINE_CTR_CRC_ERR, + LINE_CTR_RX_OVFL, + LINE_CTR_TX_UNFL, +}; enum e1_ts_mode { E1_TS_MODE_OFF = 0, @@ -81,6 +91,7 @@ enum e1_line_mode mode; void *drv_data; + struct rate_ctr_group *ctrs; /* timeslots for channelized mode */ struct e1_ts ts[32]; diff --git a/src/intf_line.c b/src/intf_line.c index 5fd82b7..2ed9e66 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -33,6 +33,8 @@ #include #include +#include +#include #include #include "e1d.h" @@ -44,6 +46,22 @@ { 0, NULL } }; +static const struct rate_ctr_desc line_ctr_description[] = { + [LINE_CTR_LOS] = { "rx:signal_lost", "Rx Signal Lost" }, + [LINE_CTR_LOA] = { "rx:alignment_lost", "Rx Alignment Lost" }, + [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" }, +}; + +static const struct rate_ctr_group_desc line_ctrg_desc = { + .group_name_prefix = "e1d_line", + .group_description = "Counters for each line in e1d", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(line_ctr_description), + .ctr_desc = line_ctr_description, +}; + // --------------------------------------------------------------------------- // e1d structures // --------------------------------------------------------------------------- @@ -122,6 +140,9 @@ line->id = l->id + 1; } + line->ctrs = rate_ctr_group_alloc(line, &line_ctrg_desc, line->id); + OSMO_ASSERT(line->ctrs); + llist_add_tail(&line->list, &intf->lines); LOGPLI(line, DE1D, LOGL_NOTICE, "Created\n"); diff --git a/src/usb.c b/src/usb.c index 35d47ec..fcd4000 100644 --- a/src/usb.c +++ b/src/usb.c @@ -287,6 +287,12 @@ static int resubmit_irq(struct e1_line *line); +/* compute how much advanced 'cur' is copared to 'prev', in modulo-0xffff for wraps */ +static uint32_t delta_mod_u16(uint32_t cur, uint32_t prev) +{ + return ((cur + 0xffff) - prev) % 0xffff; +} + static void rx_interrupt_errcnt(struct e1_line *line, const struct ice1usb_irq_err *errcnt) { struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; @@ -295,21 +301,25 @@ if (errcnt->crc != last->crc) { LOGPLI(line, DE1D, LOGL_ERROR, "CRC error count %d (was %d)\n", errcnt->crc, last->crc); + line_ctr_add(line, LINE_CTR_CRC_ERR, delta_mod_u16(errcnt->crc, last->crc)); } if (errcnt->align != last->align) { LOGPLI(line, DE1D, LOGL_ERROR, "ALIGNMENT error count %d (was %d)\n", errcnt->align, last->align); + line_ctr_add(line, LINE_CTR_LOA, delta_mod_u16(errcnt->align, last->align)); } if (errcnt->ovfl != last->ovfl) { LOGPLI(line, DE1D, LOGL_ERROR, "OVERFLOW error count %d (was %d)\n", errcnt->ovfl, last->ovfl); + line_ctr_add(line, LINE_CTR_RX_OVFL, delta_mod_u16(errcnt->ovfl, last->ovfl)); } if (errcnt->unfl != last->unfl) { LOGPLI(line, DE1D, LOGL_ERROR, "UNDERFLOW error count %d (was %d)\n", errcnt->unfl, last->unfl); + line_ctr_add(line, LINE_CTR_TX_UNFL, delta_mod_u16(errcnt->unfl, last->unfl)); } if ((errcnt->flags & ICE1USB_ERR_F_ALIGN_ERR) != (last->flags & ICE1USB_ERR_F_ALIGN_ERR)) { @@ -320,6 +330,8 @@ if ((errcnt->flags & ICE1USB_ERR_F_TICK_ERR) != (last->flags & ICE1USB_ERR_F_TICK_ERR)) { LOGPLI(line, DE1D, LOGL_ERROR, "Rx Clock %s\n", errcnt->flags & ICE1USB_ERR_F_TICK_ERR ? "LOST" : "REGAINED"); + if (errcnt->flags & ICE1USB_ERR_F_TICK_ERR) + line_ctr_add(line, LINE_CTR_LOS, 1); } ld->irq.last_errcnt = *errcnt; diff --git a/src/vty.c b/src/vty.c index d4d26ef..cc45773 100644 --- a/src/vty.c +++ b/src/vty.c @@ -125,6 +125,8 @@ vty_out(vty, " SC: Mode %s, FD %d, Peer PID %d%s", get_value_string(e1_ts_mode_names, line->superchan.mode), line->superchan.fd, get_remote_pid(line->superchan.fd), VTY_NEWLINE); + + vty_out_rate_ctr_group(vty, " ", line->ctrs); } DEFUN(show_line, show_line_cmd, "show line [<0-255>]", -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I766b717843d7cd8ac00d4ce18c38773ac50ec3e6 Gerrit-Change-Number: 21783 Gerrit-PatchSet: 5 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 Sun Dec 27 18:46:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:46:26 +0000 Subject: Change in osmo-e1d[master]: support for control endpoint requests to icE1usb to switch Rx/Tx mode In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21800 ) Change subject: support for control endpoint requests to icE1usb to switch Rx/Tx mode ...................................................................... support for control endpoint requests to icE1usb to switch Rx/Tx mode Change-Id: I62f3175a216eb5db0847f4b16c91bc23697a7623 --- M src/usb.c 1 file changed, 108 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/usb.c b/src/usb.c index fcd4000..c40a7af 100644 --- a/src/usb.c +++ b/src/usb.c @@ -77,6 +77,9 @@ /* Rate regulation */ uint32_t r_acc; uint32_t r_sw; + + /* list of in-progress CTRL operations */ + struct llist_head ctrl_inprogress; }; struct e1_usb_intf_data { @@ -377,6 +380,110 @@ } // --------------------------------------------------------------------------- +// Control transfers +// --------------------------------------------------------------------------- + +struct e1_usb_ctrl_xfer { + struct e1_line *line; + struct llist_head list; + /* 8 bytes control setup packet, remainder for data */ + uint8_t buffer[8 + 8]; +}; + + +static void +ctrl_xfer_compl_cb(struct libusb_transfer *xfr) +{ + struct e1_usb_ctrl_xfer *ucx = xfr->user_data; + + switch (xfr->status) { + case LIBUSB_TRANSFER_COMPLETED: + LOGPLI(ucx->line, DE1D, LOGL_INFO, "CTRL transfer completed successfully\n"); + break; + default: + LOGPLI(ucx->line, DE1D, LOGL_ERROR, "CTRL transfer completed unsuccessfully %d\n", + xfr->status); + break; + } + llist_del(&ucx->list); + talloc_free(ucx); + libusb_free_transfer(xfr); +} + +/* generic helper for async transmission of control endpoint requests */ +static int +_e1_usb_line_send_ctrl(struct e1_line *line, uint8_t bmReqType, uint8_t bReq, uint16_t wValue, + const uint8_t *data, size_t data_len) +{ + struct e1_usb_ctrl_xfer *ucx = talloc_zero(line, struct e1_usb_ctrl_xfer); + struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; + struct e1_usb_intf_data *id = (struct e1_usb_intf_data *) line->intf->drv_data; + struct libusb_transfer *xfr; + int rc; + + if (!ucx) + return -ENOMEM; + + OSMO_ASSERT(sizeof(ucx->buffer) >= 8+data_len); + ucx->line = line; + libusb_fill_control_setup(ucx->buffer, bmReqType, bReq, wValue, ld->if_num, data_len); + if (data && data_len) + memcpy(ucx->buffer+8, data, data_len); + + xfr = libusb_alloc_transfer(0); + if (!xfr) { + rc = -ENOMEM; + goto free_ucx; + } + + libusb_fill_control_transfer(xfr, id->devh, ucx->buffer, ctrl_xfer_compl_cb, ucx, 3000); + rc = libusb_submit_transfer(xfr); + if (rc != 0) + goto free_xfr; + + llist_add_tail(&ucx->list, &ld->ctrl_inprogress); + + return 0; + +free_xfr: + libusb_free_transfer(xfr); +free_ucx: + talloc_free(ucx); + + return rc; +} + +int +e1_usb_ctrl_set_tx_cfg(struct e1_line *line, enum ice1usb_tx_mode mode, enum ice1usb_tx_timing timing, + enum ice1usb_tx_ext_loopback ext_loop, uint8_t alarm) +{ + const uint16_t bmReqType = LIBUSB_RECIPIENT_INTERFACE | LIBUSB_REQUEST_TYPE_VENDOR | + LIBUSB_ENDPOINT_OUT; + struct ice1usb_tx_config tx_cfg = { + .mode = mode, + .timing = timing, + .ext_loopback = ext_loop, + .alarm = alarm, + }; + + return _e1_usb_line_send_ctrl(line, bmReqType, ICE1USB_INTF_SET_TX_CFG, 0, (uint8_t *)&tx_cfg, + sizeof(tx_cfg)); +} + +int +e1_usb_ctrl_set_rx_cfg(struct e1_line *line, enum ice1usb_rx_mode mode) +{ + const uint16_t bmReqType = LIBUSB_RECIPIENT_INTERFACE | LIBUSB_REQUEST_TYPE_VENDOR | + LIBUSB_ENDPOINT_OUT; + struct ice1usb_rx_config rx_cfg = { + .mode = mode, + }; + + return _e1_usb_line_send_ctrl(line, bmReqType, ICE1USB_INTF_SET_RX_CFG, 0, (uint8_t *)&rx_cfg, + sizeof(rx_cfg)); +} + +// --------------------------------------------------------------------------- // Init / Probing // --------------------------------------------------------------------------- @@ -435,6 +542,7 @@ /* Setup driver data and find endpoints */ line_data = talloc_zero(e1d->ctx, struct e1_usb_line_data); + INIT_LLIST_HEAD(&line_data->ctrl_inprogress); line_data->if_num = id->bInterfaceNumber; line_data->r_acc = 0; line_data->r_sw = 8192; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I62f3175a216eb5db0847f4b16c91bc23697a7623 Gerrit-Change-Number: 21800 Gerrit-PatchSet: 5 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 Sun Dec 27 18:46:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:46:26 +0000 Subject: Change in osmo-e1d[master]: e1_line.c: Split multiplex + demultiplex into separate mux_demux.c In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21801 ) Change subject: e1_line.c: Split multiplex + demultiplex into separate mux_demux.c ...................................................................... e1_line.c: Split multiplex + demultiplex into separate mux_demux.c The remaining intf_line.c really only manages the data structures. This is useful for building other programs than osmo-e1d, such as an upcoming E1 test utility called osmo-e1gen which will also use the USB interface and icE1usb hardware, but not any of the mux/demux/ctl code. Change-Id: I1ceaea85a15e2fae1d2e041173be9d758c6d0b78 --- M src/Makefile.am M src/intf_line.c A src/mux_demux.c 3 files changed, 378 insertions(+), 334 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/Makefile.am b/src/Makefile.am index d9d8236..09cf0e4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,6 +35,7 @@ ctl.c \ intf_line.c \ log.c \ + mux_demux.c \ osmo-e1d.c \ usb.c \ vpair.c \ diff --git a/src/intf_line.c b/src/intf_line.c index 2ed9e66..3aebf9c 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -166,338 +166,4 @@ } -// --------------------------------------------------------------------------- -// data transfer -// --------------------------------------------------------------------------- -static int -_e1_rx_hdlcfs(struct e1_ts *ts, const uint8_t *buf, int len) -{ - int rv, cl, oi; - - oi = 0; - - while (oi < len) { - rv = osmo_isdnhdlc_decode(&ts->hdlc.rx, - &buf[oi], len-oi, &cl, - ts->hdlc.rx_buf, sizeof(ts->hdlc.rx_buf) - ); - - if (rv > 0) { - int bytes_to_write = rv; - LOGPTS(ts, DXFR, LOGL_DEBUG, "RX Message: %d [ %s]\n", - rv, osmo_hexdump(ts->hdlc.rx_buf, rv)); - rv = write(ts->fd, ts->hdlc.rx_buf, bytes_to_write); - if (rv < 0) - return rv; - } else if (rv < 0 && ts->id == 4) { - LOGPTS(ts, DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", - rv,oi,cl, osmo_hexdump(buf, len)); - } - - oi += cl; - } - - return len; -} - -static int -_e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) -{ - int rv, oo, cl; - - oo = 0; - - while (oo < len) { - /* Pending message ? */ - if (!ts->hdlc.tx_len) { - rv = recv(ts->fd, ts->hdlc.tx_buf, sizeof(ts->hdlc.tx_buf), MSG_TRUNC); - if (rv > 0) { - if (rv > sizeof(ts->hdlc.tx_buf)) { - LOGPTS(ts, DXFR, LOGL_ERROR, "Truncated message: Client tried to " - "send %d bytes but our buffer is limited to %lu\n", - rv, sizeof(ts->hdlc.tx_buf)); - rv = sizeof(ts->hdlc.tx_buf); - } - LOGPTS(ts, DXFR, LOGL_DEBUG, "TX Message: %d [ %s]\n", - rv, osmo_hexdump(ts->hdlc.tx_buf, rv)); - ts->hdlc.tx_len = rv; - ts->hdlc.tx_ofs = 0; - } else if (rv < 0 && errno != EAGAIN) - return rv; - } - - /* */ - rv = osmo_isdnhdlc_encode(&ts->hdlc.tx, - &ts->hdlc.tx_buf[ts->hdlc.tx_ofs], ts->hdlc.tx_len - ts->hdlc.tx_ofs, &cl, - &buf[oo], len - oo - ); - - if (rv < 0) - LOGPTS(ts, DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); - - if (ts->hdlc.tx_ofs < ts->hdlc.tx_len) { - LOGPTS(ts, DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", - ts->hdlc.tx_ofs, ts->hdlc.tx_len, cl, osmo_hexdump(&buf[ts->hdlc.tx_ofs], rv)); - } - - if (rv > 0) - oo += rv; - - ts->hdlc.tx_ofs += cl; - if (ts->hdlc.tx_ofs >= ts->hdlc.tx_len) { - ts->hdlc.tx_len = 0; - ts->hdlc.tx_ofs = 0; - } - } - - return len; -} - -/* read from a timeslot-FD (direction application -> hardware) */ -static int -_e1_ts_read(struct e1_ts *ts, uint8_t *buf, size_t len) -{ - int l; - - switch (ts->mode) { - case E1_TS_MODE_RAW: - l = read(ts->fd, buf, len); - /* FIXME: handle underflow */ - break; - case E1_TS_MODE_HDLCFCS: - l = _e1_tx_hdlcfs(ts, buf, len); - break; - default: - OSMO_ASSERT(0); - break; - } - - if (l < 0 && errno != EAGAIN) { - LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during read: %s\n", - strerror(errno)); - e1_ts_stop(ts); - } else if (l < len) { - LOGPTS(ts, DE1D, LOGL_NOTICE, "TS read underflow: We had %zu bytes to read, " - "but socket returned only %d\n", len, l); - } - - return l; -} - -static void -_e1_line_mux_out_channelized(struct e1_line *line, uint8_t *buf, int fts) -{ - OSMO_ASSERT(line->mode == E1_LINE_MODE_CHANNELIZED); - - /* Scan timeslots */ - for (int tsn=1; tsn<32; tsn++) - { - struct e1_ts *ts = &line->ts[tsn]; - uint8_t buf_ts[fts]; - int l; - - if (ts->mode == E1_TS_MODE_OFF) - continue; - - l = _e1_ts_read(ts, buf_ts, sizeof(buf_ts)); - if (l <= 0) - continue; - - for (int i=0; isuperchan; - uint8_t sc_buf[31*fts]; - int l; - - OSMO_ASSERT(line->mode == E1_LINE_MODE_SUPERCHANNEL); - - if (ts->mode == E1_TS_MODE_OFF) - return; - - /* first pull all we need out of the source */ - l = _e1_ts_read(ts, sc_buf, sizeof(sc_buf)); - if (l <= 0) - return; - - /* then form E1 frames from it, sprinkling in some gaps for TS0 */ - for (int i = 0; i < fts; i++) - memcpy(buf + i*32 + 1, sc_buf + i*31, 31); -} - -/*! 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) -{ - int tsz; - - /* Prepare */ - tsz = 32 * fts; - memset(buf, 0xff, tsz); - - switch (line->mode) { - case E1_LINE_MODE_CHANNELIZED: - _e1_line_mux_out_channelized(line, buf, fts); - break; - case E1_LINE_MODE_SUPERCHANNEL: - _e1_line_mux_out_superchan(line, buf, fts); - break; - default: - OSMO_ASSERT(0); - } - - return tsz; -} - -/* append data to the per-timeslot buffer; flush to socket every time buffer is full */ -static int -_e1_rx_raw(struct e1_ts *ts, const uint8_t *buf, unsigned int len) -{ - unsigned int appended = 0; - int rv; - - OSMO_ASSERT(ts->mode == E1_TS_MODE_RAW); - - /* we don't keep a larger set of buffers but simply assume that whenever - * we received one full chunk/buffer size, we are able to push the data - * into the underlying unix domain socket. Kernel socket buffering should - * be far sufficient in terms of buffering capacity of voice data (which - * is typically consumed reasonably low latency and hence buffer size) */ - - while (appended < len) { - unsigned int ts_buf_tailroom = ts->raw.rx_buf_size - ts->raw.rx_buf_used; - unsigned int chunk_len; - - /* determine size of chunk we can write at this point */ - chunk_len = len - appended; - if (chunk_len > ts_buf_tailroom) - chunk_len = ts_buf_tailroom; - - /* actually copy the chunk */ - memcpy(ts->raw.rx_buf + ts->raw.rx_buf_used, buf + appended, chunk_len); - ts->raw.rx_buf_used += chunk_len; - appended += chunk_len; - - /* if ts_buf is full: flush + rewind */ - if (ts->raw.rx_buf_used >= ts->raw.rx_buf_size) { - rv = write(ts->fd, ts->raw.rx_buf, ts->raw.rx_buf_size); - if (rv < 0) - return rv; - /* FIXME: count overflows */ - ts->raw.rx_buf_used = 0; - } - } - - return appended; -} - -/* write data to a timeslot (hardware -> application direction) */ -static int -_e1_ts_write(struct e1_ts *ts, const uint8_t *buf, size_t len) -{ - int rv; - - switch (ts->mode) { - case E1_TS_MODE_RAW: - rv = _e1_rx_raw(ts, buf, len); - break; - case E1_TS_MODE_HDLCFCS: - rv = _e1_rx_hdlcfs(ts, buf, len); - break; - default: - OSMO_ASSERT(0); - break; - } - - if (rv < 0 && errno != EAGAIN) { - LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during write: %s\n", - strerror(errno)); - e1_ts_stop(ts); - } else if (rv < len) { - LOGPTS(ts, DE1D, LOGL_NOTICE, "TS write overflow: We had %zu bytes to send, " - "but write returned only %d\n", len, rv); - } - - return rv; -} - -static int -_e1_line_demux_in_superchan(struct e1_line *line, const uint8_t *buf, int ftr) -{ - struct e1_ts *ts = &line->superchan; - uint8_t sc_buf[ftr*31]; - - OSMO_ASSERT(line->mode == E1_LINE_MODE_SUPERCHANNEL); - - if (ts->mode == E1_TS_MODE_OFF) - return 0; - - /* first gather input data from multiple frames*/ - for (int i = 0; i < ftr; i++) - memcpy(sc_buf + (i*31), buf + (i*32) + 1, 31); - - /* then dispatch to appropriate action */ - _e1_ts_write(ts, sc_buf, ftr*31); - - return 0; -} - -static int -_e1_line_demux_in_channelized(struct e1_line *line, const uint8_t *buf, int ftr) -{ - OSMO_ASSERT(line->mode == E1_LINE_MODE_CHANNELIZED); - - for (int tsn=1; tsn<32; tsn++) - { - struct e1_ts *ts = &line->ts[tsn]; - uint8_t buf_ts[ftr]; - - if (ts->mode == E1_TS_MODE_OFF) - continue; - - for (int i=0; imode) { - case E1_LINE_MODE_CHANNELIZED: - return _e1_line_demux_in_channelized(line, buf, ftr); - case E1_LINE_MODE_SUPERCHANNEL: - return _e1_line_demux_in_superchan(line, buf, ftr); - default: - OSMO_ASSERT(0); - } -} diff --git a/src/mux_demux.c b/src/mux_demux.c new file mode 100644 index 0000000..ed7bf3b --- /dev/null +++ b/src/mux_demux.c @@ -0,0 +1,377 @@ +/* + * mux_demux.c + * + * (C) 2019 by Sylvain Munaut + * + * 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 +#include + +#include + +#include +#include +#include +#include +#include + +#include "e1d.h" +#include "log.h" + +// --------------------------------------------------------------------------- +// data transfer +// --------------------------------------------------------------------------- + +static int +_e1_rx_hdlcfs(struct e1_ts *ts, const uint8_t *buf, int len) +{ + int rv, cl, oi; + + oi = 0; + + while (oi < len) { + rv = osmo_isdnhdlc_decode(&ts->hdlc.rx, + &buf[oi], len-oi, &cl, + ts->hdlc.rx_buf, sizeof(ts->hdlc.rx_buf) + ); + + if (rv > 0) { + int bytes_to_write = rv; + LOGPTS(ts, DXFR, LOGL_DEBUG, "RX Message: %d [ %s]\n", + rv, osmo_hexdump(ts->hdlc.rx_buf, rv)); + rv = write(ts->fd, ts->hdlc.rx_buf, bytes_to_write); + if (rv < 0) + return rv; + } else if (rv < 0 && ts->id == 4) { + LOGPTS(ts, DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", + rv,oi,cl, osmo_hexdump(buf, len)); + } + + oi += cl; + } + + return len; +} + +static int +_e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) +{ + int rv, oo, cl; + + oo = 0; + + while (oo < len) { + /* Pending message ? */ + if (!ts->hdlc.tx_len) { + rv = recv(ts->fd, ts->hdlc.tx_buf, sizeof(ts->hdlc.tx_buf), MSG_TRUNC); + if (rv > 0) { + if (rv > sizeof(ts->hdlc.tx_buf)) { + LOGPTS(ts, DXFR, LOGL_ERROR, "Truncated message: Client tried to " + "send %d bytes but our buffer is limited to %lu\n", + rv, sizeof(ts->hdlc.tx_buf)); + rv = sizeof(ts->hdlc.tx_buf); + } + LOGPTS(ts, DXFR, LOGL_DEBUG, "TX Message: %d [ %s]\n", + rv, osmo_hexdump(ts->hdlc.tx_buf, rv)); + ts->hdlc.tx_len = rv; + ts->hdlc.tx_ofs = 0; + } else if (rv < 0 && errno != EAGAIN) + return rv; + } + + /* */ + rv = osmo_isdnhdlc_encode(&ts->hdlc.tx, + &ts->hdlc.tx_buf[ts->hdlc.tx_ofs], ts->hdlc.tx_len - ts->hdlc.tx_ofs, &cl, + &buf[oo], len - oo + ); + + if (rv < 0) + LOGPTS(ts, DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); + + if (ts->hdlc.tx_ofs < ts->hdlc.tx_len) { + LOGPTS(ts, DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", + ts->hdlc.tx_ofs, ts->hdlc.tx_len, cl, osmo_hexdump(&buf[ts->hdlc.tx_ofs], rv)); + } + + if (rv > 0) + oo += rv; + + ts->hdlc.tx_ofs += cl; + if (ts->hdlc.tx_ofs >= ts->hdlc.tx_len) { + ts->hdlc.tx_len = 0; + ts->hdlc.tx_ofs = 0; + } + } + + return len; +} + +/* read from a timeslot-FD (direction application -> hardware) */ +static int +_e1_ts_read(struct e1_ts *ts, uint8_t *buf, size_t len) +{ + int l; + + switch (ts->mode) { + case E1_TS_MODE_RAW: + l = read(ts->fd, buf, len); + /* FIXME: handle underflow */ + break; + case E1_TS_MODE_HDLCFCS: + l = _e1_tx_hdlcfs(ts, buf, len); + break; + default: + OSMO_ASSERT(0); + break; + } + + if (l < 0 && errno != EAGAIN) { + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during read: %s\n", + strerror(errno)); + e1_ts_stop(ts); + } else if (l < len) { + LOGPTS(ts, DE1D, LOGL_NOTICE, "TS read underflow: We had %zu bytes to read, " + "but socket returned only %d\n", len, l); + } + + return l; +} + +static void +_e1_line_mux_out_channelized(struct e1_line *line, uint8_t *buf, int fts) +{ + OSMO_ASSERT(line->mode == E1_LINE_MODE_CHANNELIZED); + + /* Scan timeslots */ + for (int tsn=1; tsn<32; tsn++) + { + struct e1_ts *ts = &line->ts[tsn]; + uint8_t buf_ts[fts]; + int l; + + if (ts->mode == E1_TS_MODE_OFF) + continue; + + l = _e1_ts_read(ts, buf_ts, sizeof(buf_ts)); + if (l <= 0) + continue; + + for (int i=0; isuperchan; + uint8_t sc_buf[31*fts]; + int l; + + OSMO_ASSERT(line->mode == E1_LINE_MODE_SUPERCHANNEL); + + if (ts->mode == E1_TS_MODE_OFF) + return; + + /* first pull all we need out of the source */ + l = _e1_ts_read(ts, sc_buf, sizeof(sc_buf)); + if (l <= 0) + return; + + /* then form E1 frames from it, sprinkling in some gaps for TS0 */ + for (int i = 0; i < fts; i++) + memcpy(buf + i*32 + 1, sc_buf + i*31, 31); +} + +/*! 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) +{ + int tsz; + + /* Prepare */ + tsz = 32 * fts; + memset(buf, 0xff, tsz); + + switch (line->mode) { + case E1_LINE_MODE_CHANNELIZED: + _e1_line_mux_out_channelized(line, buf, fts); + break; + case E1_LINE_MODE_SUPERCHANNEL: + _e1_line_mux_out_superchan(line, buf, fts); + break; + default: + OSMO_ASSERT(0); + } + + return tsz; +} + +/* append data to the per-timeslot buffer; flush to socket every time buffer is full */ +static int +_e1_rx_raw(struct e1_ts *ts, const uint8_t *buf, unsigned int len) +{ + unsigned int appended = 0; + int rv; + + OSMO_ASSERT(ts->mode == E1_TS_MODE_RAW); + + /* we don't keep a larger set of buffers but simply assume that whenever + * we received one full chunk/buffer size, we are able to push the data + * into the underlying unix domain socket. Kernel socket buffering should + * be far sufficient in terms of buffering capacity of voice data (which + * is typically consumed reasonably low latency and hence buffer size) */ + + while (appended < len) { + unsigned int ts_buf_tailroom = ts->raw.rx_buf_size - ts->raw.rx_buf_used; + unsigned int chunk_len; + + /* determine size of chunk we can write at this point */ + chunk_len = len - appended; + if (chunk_len > ts_buf_tailroom) + chunk_len = ts_buf_tailroom; + + /* actually copy the chunk */ + memcpy(ts->raw.rx_buf + ts->raw.rx_buf_used, buf + appended, chunk_len); + ts->raw.rx_buf_used += chunk_len; + appended += chunk_len; + + /* if ts_buf is full: flush + rewind */ + if (ts->raw.rx_buf_used >= ts->raw.rx_buf_size) { + rv = write(ts->fd, ts->raw.rx_buf, ts->raw.rx_buf_size); + if (rv < 0) + return rv; + /* FIXME: count overflows */ + ts->raw.rx_buf_used = 0; + } + } + + return appended; +} + +/* write data to a timeslot (hardware -> application direction) */ +static int +_e1_ts_write(struct e1_ts *ts, const uint8_t *buf, size_t len) +{ + int rv; + + switch (ts->mode) { + case E1_TS_MODE_RAW: + rv = _e1_rx_raw(ts, buf, len); + break; + case E1_TS_MODE_HDLCFCS: + rv = _e1_rx_hdlcfs(ts, buf, len); + break; + default: + OSMO_ASSERT(0); + break; + } + + if (rv < 0 && errno != EAGAIN) { + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during write: %s\n", + strerror(errno)); + e1_ts_stop(ts); + } else if (rv < len) { + LOGPTS(ts, DE1D, LOGL_NOTICE, "TS write overflow: We had %zu bytes to send, " + "but write returned only %d\n", len, rv); + } + + return rv; +} + +static int +_e1_line_demux_in_superchan(struct e1_line *line, const uint8_t *buf, int ftr) +{ + struct e1_ts *ts = &line->superchan; + uint8_t sc_buf[ftr*31]; + + OSMO_ASSERT(line->mode == E1_LINE_MODE_SUPERCHANNEL); + + if (ts->mode == E1_TS_MODE_OFF) + return 0; + + /* first gather input data from multiple frames*/ + for (int i = 0; i < ftr; i++) + memcpy(sc_buf + (i*31), buf + (i*32) + 1, 31); + + /* then dispatch to appropriate action */ + _e1_ts_write(ts, sc_buf, ftr*31); + + return 0; +} + +static int +_e1_line_demux_in_channelized(struct e1_line *line, const uint8_t *buf, int ftr) +{ + OSMO_ASSERT(line->mode == E1_LINE_MODE_CHANNELIZED); + + for (int tsn=1; tsn<32; tsn++) + { + struct e1_ts *ts = &line->ts[tsn]; + uint8_t buf_ts[ftr]; + + if (ts->mode == E1_TS_MODE_OFF) + continue; + + for (int i=0; imode) { + case E1_LINE_MODE_CHANNELIZED: + return _e1_line_demux_in_channelized(line, buf, ftr); + case E1_LINE_MODE_SUPERCHANNEL: + return _e1_line_demux_in_superchan(line, buf, ftr); + default: + OSMO_ASSERT(0); + } +} -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21801 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I1ceaea85a15e2fae1d2e041173be9d758c6d0b78 Gerrit-Change-Number: 21801 Gerrit-PatchSet: 5 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 Sun Dec 27 18:46:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:46:27 +0000 Subject: Change in osmo-e1d[master]: usb.c: Mark _e1_usb_open_device() as static In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21809 ) Change subject: usb.c: Mark _e1_usb_open_device() as static ...................................................................... usb.c: Mark _e1_usb_open_device() as static Change-Id: Ic4ac2b77f12479daa52392cc31ca1e7d9ed96567 --- M src/usb.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/usb.c b/src/usb.c index c40a7af..326a2b2 100644 --- a/src/usb.c +++ b/src/usb.c @@ -487,7 +487,7 @@ // Init / Probing // --------------------------------------------------------------------------- -int +static int _e1_usb_open_device(struct e1_daemon *e1d, struct libusb_device *dev) { struct e1_intf *intf; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic4ac2b77f12479daa52392cc31ca1e7d9ed96567 Gerrit-Change-Number: 21809 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 Sun Dec 27 18:46:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:46:28 +0000 Subject: Change in osmo-e1d[master]: move usb.c function declarations to newly-created usb.h In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21802 ) Change subject: move usb.c function declarations to newly-created usb.h ...................................................................... move usb.c function declarations to newly-created usb.h Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 --- M src/Makefile.am M src/osmo-e1d.c A src/usb.h 3 files changed, 17 insertions(+), 2 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/Makefile.am b/src/Makefile.am index 09cf0e4..fd61f5a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -23,6 +23,7 @@ e1d.h \ ice1usb_proto.h \ log.h \ + usb.h \ $(NULL) diff --git a/src/osmo-e1d.c b/src/osmo-e1d.c index 10d7a5e..3ac9642 100644 --- a/src/osmo-e1d.c +++ b/src/osmo-e1d.c @@ -43,6 +43,7 @@ #include #include "e1d.h" +#include "usb.h" #include "log.h" #ifndef OSMO_VTY_PORT_E1D @@ -50,8 +51,6 @@ #endif extern struct osmo_e1dp_server_handler e1d_ctl_handlers[]; -extern int e1_usb_probe(struct e1_daemon *e1d); - static const char *g_config_file = "osmo-e1d.cfg"; static void *g_e1d_ctx = NULL; diff --git a/src/usb.h b/src/usb.h new file mode 100644 index 0000000..7142686 --- /dev/null +++ b/src/usb.h @@ -0,0 +1,15 @@ +#pragma once + +#include "ice1usb_proto.h" + +struct e1d_line; +struct e1_daemon; +struct libusb_device; + +int e1_usb_ctrl_set_tx_cfg(struct e1_line *line, enum ice1usb_tx_mode mode, + enum ice1usb_tx_timing timing, enum ice1usb_tx_ext_loopback ext_loop, + uint8_t alarm); + +int e1_usb_ctrl_set_rx_cfg(struct e1_line *line, enum ice1usb_rx_mode mode); + +int e1_usb_probe(struct e1_daemon *e1d); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Icab91d73e37119960ca3c953bf91c2ec9d821311 Gerrit-Change-Number: 21802 Gerrit-PatchSet: 5 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 Sun Dec 27 18:46:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:46:28 +0000 Subject: Change in osmo-e1d[master]: Move e1d_find_intf + e1_intf_find_line to intf_line.c In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21803 ) Change subject: Move e1d_find_intf + e1_intf_find_line to intf_line.c ...................................................................... Move e1d_find_intf + e1_intf_find_line to intf_line.c Those are generic helper functions not really related to the ctl interface. Change-Id: Ibbda172aa425ca1e4702bacc7e595cd73a52929d --- M src/ctl.c M src/e1d.h M src/intf_line.c 3 files changed, 31 insertions(+), 24 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/ctl.c b/src/ctl.c index 8a0e339..1775423 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -42,30 +42,6 @@ #include "log.h" -struct e1_intf * -e1d_find_intf(struct e1_daemon *e1d, uint8_t id) -{ - struct e1_intf *intf; - - llist_for_each_entry(intf, &e1d->interfaces, list) - if (intf->id == id) - return intf; - - return NULL; -} - -struct e1_line * -e1_intf_find_line(struct e1_intf *intf, uint8_t id) -{ - struct e1_line *line; - - llist_for_each_entry(line, &intf->lines, list) - if (line->id == id) - return line; - - return NULL; -} - static struct e1_ts * _e1d_get_ts(struct e1_line *line, uint8_t ts) { diff --git a/src/e1d.h b/src/e1d.h index e5b541b..f02f397 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -124,6 +124,13 @@ struct llist_head interfaces; }; + +struct e1_line * +e1_intf_find_line(struct e1_intf *intf, uint8_t id); + +struct e1_line * +e1_intf_find_line(struct e1_intf *intf, uint8_t id); + struct e1_intf * e1_intf_new(struct e1_daemon *e1d, void *drv_data); diff --git a/src/intf_line.c b/src/intf_line.c index 3aebf9c..ccd7645 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -67,6 +67,30 @@ // --------------------------------------------------------------------------- struct e1_intf * +e1d_find_intf(struct e1_daemon *e1d, uint8_t id) +{ + struct e1_intf *intf; + + llist_for_each_entry(intf, &e1d->interfaces, list) + if (intf->id == id) + return intf; + + return NULL; +} + +struct e1_line * +e1_intf_find_line(struct e1_intf *intf, uint8_t id) +{ + struct e1_line *line; + + llist_for_each_entry(line, &intf->lines, list) + if (line->id == id) + return line; + + return NULL; +} + +struct e1_intf * e1_intf_new(struct e1_daemon *e1d, void *drv_data) { struct e1_intf *intf; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ibbda172aa425ca1e4702bacc7e595cd73a52929d Gerrit-Change-Number: 21803 Gerrit-PatchSet: 5 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 Sun Dec 27 18:46:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:46:29 +0000 Subject: Change in osmo-e1d[master]: vty: export vty_e1d + move e1d_vty_node to header file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21804 ) Change subject: vty: export vty_e1d + move e1d_vty_node to header file ...................................................................... vty: export vty_e1d + move e1d_vty_node to header file This will be required by osmo-e1gen Change-Id: I5be0278bc07aadd154fc54a74b08fc7e3b5d6483 --- M src/e1d.h M src/vty.c 2 files changed, 7 insertions(+), 5 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 f02f397..9848df4 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -27,6 +27,12 @@ #include #include #include +#include + +enum e1d_vty_node { + E1D_NODE = _LAST_OSMOVTY_NODE + 1, + LINE_NODE +}; #define line_ctr_add(line, idx, add) rate_ctr_add(&(line)->ctrs->ctr[idx], add) diff --git a/src/vty.c b/src/vty.c index cc45773..da3d005 100644 --- a/src/vty.c +++ b/src/vty.c @@ -39,11 +39,7 @@ #include #include "e1d.h" -static struct e1_daemon *vty_e1d; - -enum e1d_vty_node { - E1D_NODE = _LAST_OSMOVTY_NODE + 1, -}; +struct e1_daemon *vty_e1d; static struct cmd_node e1d_node = { (enum node_type) E1D_NODE, -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5be0278bc07aadd154fc54a74b08fc7e3b5d6483 Gerrit-Change-Number: 21804 Gerrit-PatchSet: 5 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 Sun Dec 27 18:52:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 18:52:17 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: USB control request handling 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/+/21775 to look at the new patch set (#5). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/75/21775/5 -- 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: 5 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 Sun Dec 27 19:37:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 19:37:36 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Disable reporting of 'loss of timing' for now In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21778 ) Change subject: icE1usb fw: Disable reporting of 'loss of timing' for now ...................................................................... Abandoned feature removed -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21778 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: I9d0ddb2d404880c4a85e30de1b4bf4204d468ab7 Gerrit-Change-Number: 21778 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 27 19:37:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 19:37:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Turn green LED off completely if no E1 signal is received In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 ) Change subject: icE1usb fw: Turn green LED off completely if no E1 signal is received ...................................................................... Abandoned feature removed -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21733 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: Ibd23cbf1d044b46d8fed48fb97622e6ef980b99f Gerrit-Change-Number: 21733 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 27 19:43:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 19:43:10 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb: Report errors via the newly-added Interrupt Endpoint In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21777 ) Change subject: icE1usb: Report errors via the newly-added Interrupt Endpoint ...................................................................... Abandoned now in a073ffed799019f1a8512afaf0dbce2beea4942e -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21777 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: If157fde9d4ca05910b09537e19f37603c6d925f0 Gerrit-Change-Number: 21777 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 27 19:44:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 19:44:34 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: move entire E1 configuration to USB In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21776 ) Change subject: icE1usb fw: move entire E1 configuration to USB ...................................................................... Abandoned 06fbf6b3ff268cec711af414b286d82dd097b544now in -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21776 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: Ia1cc1e685aad9fe5ceb230b66f35d5cb2829c845 Gerrit-Change-Number: 21776 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 Sun Dec 27 19:59:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 19:59:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: setup_device: allow to setup a new dahdi device In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21845 ) Change subject: gprs_ns2_fr: setup_device: allow to setup a new dahdi device ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a Gerrit-Change-Number: 21845 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-Comment-Date: Sun, 27 Dec 2020 19:59: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 Dec 27 19:59:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 19:59:52 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: setup_device: allow to setup a new dahdi device In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21845 ) Change subject: gprs_ns2_fr: setup_device: allow to setup a new dahdi device ...................................................................... gprs_ns2_fr: setup_device: allow to setup a new dahdi device When a dahdi device hasn't been set up yet, ioctl IF_GET_PROTO fails with invalid argument. Also fix the device check to skip ioctl's if the device is also in the correct state. Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a --- M src/gb/gprs_ns2_fr.c 1 file changed, 6 insertions(+), 4 deletions(-) Approvals: laforge: 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 1a6b92f..1b0ec00 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -476,23 +476,24 @@ req.ifr_settings.size = sizeof(buffer); req.ifr_settings.type = IF_GET_PROTO; + /* EINVAL is returned when no protocol has been set */ rc = ioctl(sock, SIOCWANDEV, &req); - if (rc < 0) { + if (rc < 0 && errno != EINVAL) { LOGP(DLNS, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n", netif, strerror(errno)); goto err; } /* check if the device is good */ - if (req.ifr_settings.type != IF_PROTO_FR && fr->lmi != LMI_NONE) { - LOGP(DLNS, LOGL_INFO, "%s: has correct frame relay mode and lmi\n", netif); + 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); goto ifup; } /* modify the device to match */ rc = set_ifupdown(netif, false); if (rc) { - LOGP(DLNS, LOGL_ERROR, "Unable to bring up the device %s: %s\n", + LOGP(DLNS, LOGL_ERROR, "Unable to bring down the device %s: %s\n", netif, strerror(errno)); goto err; } @@ -516,6 +517,7 @@ /* monitored events count */ fr->n393 = 4; + LOGP(DLNS, 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", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I398d056546e35465a2944e1b4a86a8c93b3e5f7a Gerrit-Change-Number: 21845 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Dec 27 20:01:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 20:01:03 +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 15: Code-Review+1 (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); > is this one ok? Should I really add a port for a test utility? you could just use a command line argument and not have a default port number? "stealing" a port might have unexpected side effects. -- 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: 15 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 27 Dec 2020 20:01:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes 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 Sun Dec 27 20:03:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 20:03:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: laforge 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 7: 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: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 27 Dec 2020 20: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 Sun Dec 27 20:51:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 27 Dec 2020 20:51:39 +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 4: Code-Review+1 please make sure the code actually compiles. Is it missing the switch of the deps/RSL to the new version? -- 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-Comment-Date: Sun, 27 Dec 2020 20:51: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 Dec 28 00:13:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 28 Dec 2020 00:13:10 +0000 Subject: Change in osmo-hlr[master]: support the XOR algorithm for UMTS AKA References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21880 ) Change subject: support the XOR algorithm for UMTS AKA ...................................................................... support the XOR algorithm for UMTS AKA Test USIMs as specified by 3GPP use the XOR algorithm not only for 2G but also for 3G. libosmocore includes the XOR-3G support since v1.3.0, but osmo-hlr somehow never made use of it. Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Closes: OS#4924 --- M src/db_hlr.c M src/hlr_vty_subscr.c M tests/auc/auc_test.c M tests/auc/auc_test.err 4 files changed, 77 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/80/21880/1 diff --git a/src/db_hlr.c b/src/db_hlr.c index 83c2c51..6ba43c2 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -264,11 +264,11 @@ switch (aud->algo) { case OSMO_AUTH_ALG_NONE: case OSMO_AUTH_ALG_MILENAGE: + case OSMO_AUTH_ALG_XOR: break; case OSMO_AUTH_ALG_COMP128v1: case OSMO_AUTH_ALG_COMP128v2: case OSMO_AUTH_ALG_COMP128v3: - case OSMO_AUTH_ALG_XOR: LOGP(DAUC, LOGL_ERROR, "Cannot update auth tokens:" " auth algo not suited for 3G: %s\n", osmo_auth_alg_name(aud->algo)); diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index a9262ba..6ce0191 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -355,9 +355,10 @@ "Use COMP128v3 algorithm\n" \ "Use XOR algorithm\n" -#define AUTH_ALG_TYPES_3G "milenage" +#define AUTH_ALG_TYPES_3G "(milenage|xor)" #define AUTH_ALG_TYPES_3G_HELP \ - "Use Milenage algorithm\n" + "Use Milenage algorithm\n" \ + "Use XOR algorithm\n" #define A38_XOR_MIN_KEY_LEN 12 #define A38_XOR_MAX_KEY_LEN 16 @@ -511,11 +512,11 @@ int rc; const char *id_type = argv[0]; const char *id = argv[1]; - const char *alg_type = AUTH_ALG_TYPES_3G; - const char *k = argv[2]; - bool opc_is_op = (strcasecmp("op", argv[3]) == 0); - const char *op_opc = argv[4]; - int ind_bitlen = argc > 6? atoi(argv[6]) : 5; + const char *alg_type = argv[2]; + const char *k = argv[3]; + bool opc_is_op = (strcasecmp("op", argv[4]) == 0); + const char *op_opc = argv[5]; + int ind_bitlen = argc > 7? atoi(argv[7]) : 5; struct sub_auth_data_str aud3g = { .type = OSMO_AUTH_TYPE_UMTS, .u.umts = { diff --git a/tests/auc/auc_test.c b/tests/auc/auc_test.c index cdbd0b7..db7edcb 100644 --- a/tests/auc/auc_test.c +++ b/tests/auc/auc_test.c @@ -454,6 +454,50 @@ comment_end(); } +static void test_gen_vectors_3g_xor(void) +{ + struct osmo_sub_auth_data aud2g; + struct osmo_sub_auth_data aud3g; + struct osmo_auth_vector vec; + int rc; + + comment_start(); + + aud2g = (struct osmo_sub_auth_data){ 0 }; + + aud3g = (struct osmo_sub_auth_data){ + .type = OSMO_AUTH_TYPE_UMTS, + .algo = OSMO_AUTH_ALG_XOR, + .u.umts.sqn = 0, + }; + + osmo_hexparse("000102030405060708090a0b0c0d0e0f", + aud3g.u.umts.k, sizeof(aud3g.u.umts.k)); + osmo_hexparse("00000000000000000000000000000000", + aud3g.u.umts.opc, sizeof(aud3g.u.umts.opc)); + next_rand("b5039c57e4a75051551d1a390a71ce48", true); + + vec = (struct osmo_auth_vector){ {0} }; + VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64); + rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL); + VERBOSE_ASSERT(rc, == 1, "%d"); + VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64); + + VEC_IS(&vec, + " rand: b5039c57e4a75051551d1a390a71ce48\n" + " autn: 54e0a256565d0000b5029e54e0a25656\n" + " ck: 029e54e0a256565d141032067cc047b5\n" + " ik: 9e54e0a256565d141032067cc047b502\n" + " res: b5029e54e0a256565d141032067cc047\n" + " res_len: 10\n" + " kc: 98e880384887f9fe\n" + " sres: 0ec81877\n" + " auth_types: 03000000\n" + ); + + comment_end(); +} + void test_gen_vectors_bad_args() { struct osmo_auth_vector vec; @@ -622,6 +666,7 @@ test_gen_vectors_2g_only(); test_gen_vectors_2g_plus_3g(); test_gen_vectors_3g_only(); + test_gen_vectors_3g_xor(); test_gen_vectors_bad_args(); printf("Done\n"); diff --git a/tests/auc/auc_test.err b/tests/auc/auc_test.err index 0a4d9af..f83e814 100644 --- a/tests/auc/auc_test.err +++ b/tests/auc/auc_test.err @@ -217,6 +217,29 @@ ===== test_gen_vectors_3g_only: SUCCESS +===== test_gen_vectors_3g_xor +aud3g.u.umts.sqn == 0 +DAUC Computing 1 auth vector: 3G only (2G derived from 3G keys) +DAUC 3G: k = 000102030405060708090a0b0c0d0e0f +DAUC 3G: opc = 00000000000000000000000000000000 +DAUC 3G: for sqn ind 0, previous sqn was 0 +DAUC vector [0]: rand = b5039c57e4a75051551d1a390a71ce48 +DAUC vector [0]: sqn = 0 +DAUC vector [0]: autn = 54e0a256565d0000b5029e54e0a25656 +DAUC vector [0]: ck = 029e54e0a256565d141032067cc047b5 +DAUC vector [0]: ik = 9e54e0a256565d141032067cc047b502 +DAUC vector [0]: res = b5029e54e0a256565d141032067cc047 +DAUC vector [0]: res_len = 16 +DAUC vector [0]: deriving 2G from 3G +DAUC vector [0]: kc = 98e880384887f9fe +DAUC vector [0]: sres = 0ec81877 +DAUC vector [0]: auth_types = 0x3 +rc == 1 +aud3g.u.umts.sqn == 0 +vector matches expectations +===== test_gen_vectors_3g_xor: SUCCESS + + ===== test_gen_vectors_bad_args - no auth data (a) -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21880 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 Dec 28 00:43:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 28 Dec 2020 00:43:19 +0000 Subject: Change in osmo-hlr[master]: support the XOR algorithm for UMTS AKA 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/+/21880 to look at the new patch set (#2). Change subject: support the XOR algorithm for UMTS AKA ...................................................................... support the XOR algorithm for UMTS AKA Test USIMs as specified by 3GPP use the XOR algorithm not only for 2G but also for 3G. libosmocore includes the XOR-3G support since v1.3.0, but osmo-hlr somehow never made use of it. Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Closes: OS#4924 --- M src/db_hlr.c M src/hlr_vty_subscr.c M tests/auc/auc_test.c M tests/auc/auc_test.err M tests/test_subscriber.vty 5 files changed, 79 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/80/21880/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21880 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Dec 28 01:35:34 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 28 Dec 2020 01:35:34 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fe9366d885cb_59872af9dc0645f412340fa@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: [ 92s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 92s] [COMPILING libboard/qmod/source/card_pres.c] [ 92s] [COMPILING libboard/qmod/source/wwan_led.c] [ 92s] [COMPILING libboard/qmod/source/i2c.c] [ 93s] [COMPILING libboard/qmod/source/board_qmod.c] [ 93s] [COMPILING apps/dfu/main.c] [ 93s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 93s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 93s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 93s] Memory region Used Size Region Size %age Used [ 93s] rom: 16588 B 16 KB 101.25% [ 93s] 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' [ 93s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 93s] collect2: error: ld returned 1 exit status [ 93s] % [ 93s] make[2]: *** [Makefile:234: flash] Error 1 [ 93s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 93s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 93s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 93s] dh_auto_build: error: make -j1 returned exit code 2 [ 93s] make: *** [debian/rules:16: build] Error 25 [ 93s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 93s] ### VM INTERACTION START ### [ 96s] [ 88.745687] sysrq: Power Off [ 96s] [ 88.747465] reboot: Power down [ 96s] ### VM INTERACTION END ### [ 96s] [ 96s] hci-cnode2-m1 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Dec 28 01:35:17 UTC 2020. [ 96s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Dec 28 01:35:17 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 28 Dec 2020 01:35:17 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5fe9366d1bd37_59872af9dc0645f4123397e@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: [ 221s] [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 [ 221s] debian/rules override_dh_auto_test [ 221s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 221s] cd obj-i686-linux-gnu && meson test --suite unit [ 221s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 222s] ninja: no work to do. [ 229s] 1/3 open5gs:unit / core OK 7.03 s [ 229s] 2/3 open5gs:unit / crypt OK 0.12 s [ 229s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 229s] [ 229s] Ok: 2 [ 229s] Expected Fail: 0 [ 229s] Fail: 1 [ 229s] Unexpected Pass: 0 [ 229s] Skipped: 0 [ 229s] Timeout: 0 [ 229s] [ 229s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 229s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 229s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 229s] make: *** [debian/rules:11: binary] Error 2 [ 229s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 229s] ### VM INTERACTION START ### [ 232s] [ 221.443421] sysrq: Power Off [ 232s] [ 221.450939] reboot: Power down [ 232s] ### VM INTERACTION END ### [ 232s] [ 232s] lamb27 failed "build open5gs_2.1.1.20201228.dsc" at Mon Dec 28 01:35:12 UTC 2020. [ 232s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Dec 28 01:38:43 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 28 Dec 2020 01:38:43 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fe9373ed58ad_59872af9dc0645f41234462@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: [ 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] [ 157s] Memory region Used Size Region Size %age Used [ 157s] rom: 16580 B 16 KB 101.20% [ 157s] 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 [ 157s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 157s] /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: warning: changing start of section .stack by 4 bytes [ 157s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 157s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 157s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 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] [ 148.933564] sysrq: Power Off [ 160s] [ 148.942093] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] lamb17 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Dec 28 01:38:26 UTC 2020. [ 160s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Dec 28 03:36:39 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 28 Dec 2020 03:36:39 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fe952cbaa03f_59872af9dc0645f41241475@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Raspbian_10/armv7l Package network:osmocom:nightly/simtrace2 failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:14) -- 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 Dec 28 13:48:43 2020 From: gerrit-no-reply at lists.osmocom.org (ninjab3s) Date: Mon, 28 Dec 2020 13:48:43 +0000 Subject: Change in osmo-gsm-tester[master]: Introduce Android UEs as new modems 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/+/21302 to look at the new patch set (#6). Change subject: Introduce Android UEs as new modems ...................................................................... Introduce Android UEs as new modems To expand the test capacities we would like to introduce Android UEs as new modems. Currently the following tests are supported: - Ping - iPerf3 DL/UL - RRC Mobile MT Ping In the following is a small description. Prerequisites: - Android UE - Rooted (Ping, iPerf, RRC Idle MT Ping) - Qualcomm baseband with working diag_mdlog (RRC Idle MT Ping) - iPerf3 - Dropbear - OGT Slave Unit - Android SDK Platform-Tools (https://developer.android.com/studio/releases/platform-tools#downloads) - Pycrate (https://github.com/P1sec/pycrate) - SCAT clone https://github.com/bedrankara/scat/ & install dependencies checkout branch ogt symlink scat (ln -s ~/scat/scat.py /usr/local/bin/scat) Infrastructure explaination: The Android UEs are connected to the OGT Units via USB. We activate tethering and set up a SSH server (with Dropbear). We chose tethering over WiFi to have a more stable route for the ssh connection. We forward incoming connections to the OGT unit hosting the Android UE(s) on specific ports to the UEs via iptables. This enables OGT to issue commands directly to the UEs. In case of local execution we use ADB to issue commands to the AndroidUE. The set up was tested with 5 Android UEs connected in parallel but it should be scalable to the number of available IPs in the respective subnet. Furthermore, we need to cross compile Dropbear and iPerf3 to use them on the UEs. These tools have to be added to the $PATH variable of the UEs. Examplary set up: In this example we have two separate OGT units (master and slave) and two Android UEs that are connected to the slave unit. An illustration may be found here: https://ibb.co/6BXSP2C On UE 1: ip address add 192.168.42.130/24 dev rndis0 ip route add 192.168.42.0/24 dev rndis0 table local_network dropbearmulti dropbear -F -E -p 130 -R -T /data/local/tmp/authorized_keys -U 0 -G 0 -N root -A On UE 2: ip address add 192.168.42.131/24 dev rndis0 ip route add 192.168.42.0/24 dev rndis0 table local_network dropbearmulti dropbear -F -E -p 131 -R -T /data/local/tmp/authorized_keys -U 0 -G 0 -N root -A On OGT slave unit: sudo ip link add name ogt type bridge sudo ip l set eth0 master ogt sudo ip l set enp0s20f0u1 master ogt sudo ip l set enp0s20f0u2 master ogt sudo ip a a 192.168.42.1/24 dev ogt sudo ip link set ogt up Now we have to manually connect to every UE from OGT Master to set up SSH keys and verify that the setup works. Therefore, use: ssh -p [UE-PORT] root@[OGT SLAVE UNIT's IP] Finally, to finish the setup procedure create the remote_run_dir for Android UEs on the slave unit like following: mkdir /osmo-gsm-tester-androidue chown jenkins /osmo-gsm-tester-androidue Example for modem in resource.conf: - label: mi5g type: androidue imsi: '901700000034757' ki: '85E9E9A947B9ACBB966ED7113C7E1B8A' opc: '3E1C73A29B9C293DC5A763E42C061F15' apn: apn: 'srsapn' mcc: '901' mnc: '70' select: 'True' auth_algo: 'milenage' features: ['4g', 'dl_qam256', 'qc_diag'] run_node: run_type: ssh run_addr: 100.113.1.170 ssh_user: jenkins ssh_addr: 100.113.1.170 ue_ssh_port: 130 adb_serial_id: '8d3c79a7' scat_parser: run_type: local run_addr: 127.0.0.1 adb_serial_id: '8d3c79a7' Example for default-suites.conf: - 4g:ms-label at mi5g+srsenb-rftype@uhd+mod-enb-nprb at 25+mod-enb-txmode@1 Change-Id: I79a5d803e869a868d4dac5e0d4c2feb38038dc5c --- M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/core/schema.py A src/osmo_gsm_tester/obj/android_apn.py A src/osmo_gsm_tester/obj/android_bitrate_monitor.py A src/osmo_gsm_tester/obj/android_host.py M src/osmo_gsm_tester/obj/iperf3.py M src/osmo_gsm_tester/obj/ms.py A src/osmo_gsm_tester/obj/ms_android.py A src/osmo_gsm_tester/obj/qc_diag.py M src/osmo_gsm_tester/obj/run_node.py A sysmocom/scenarios/ms-label.conf A utils/bin/osmo-gsm-tester_androidue_conn_chk.sh A utils/bin/osmo-gsm-tester_androidue_diag_parser.sh 13 files changed, 963 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/02/21302/6 -- 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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 28 14:50:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 28 Dec 2020 14:50:02 +0000 Subject: Change in osmo-hlr[master]: support the XOR algorithm for UMTS AKA In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21880 ) Change subject: support the XOR algorithm for UMTS AKA ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21880 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 28 Dec 2020 14:50: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 Dec 28 18:27:59 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 28 Dec 2020 18:27:59 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN pooling support References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 ) Change subject: gbproxy: Add SGSN pooling support ...................................................................... gbproxy: Add SGSN pooling support Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Related: OS#4472 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c 4 files changed, 202 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/81/21881/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 46decc0..dd529a3 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 */ @@ -229,5 +233,7 @@ 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); +struct gbproxy_sgsn *gbproxy_sgsn_by_tlli(struct gbproxy_config *cfg, struct gbproxy_sgsn *sgsn_avoid, + uint32_t tlli); #endif diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 4b6dc09..bce4055 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -20,6 +20,7 @@ * */ +#include "osmocom/vty/command.h" #include #include #include @@ -38,6 +39,7 @@ #include #include #include +#include #include #include @@ -45,6 +47,7 @@ #include #include +#include #include #include @@ -201,42 +204,131 @@ * PTP BVC handling ***********************************************************************/ -/* route an uplink message on a PTP-BVC to a SGSN using the TLLI */ -static int gbprox_bss2sgsn_tlli(struct gbproxy_cell *cell, struct msgb *msg, uint32_t tlli, +/* FIXME: Handle the tlli NULL case correctly, + * This function should take a generic selector + * and choose an sgsn based on that + */ +static struct gbproxy_sgsn *gbproxy_select_sgsn(struct gbproxy_config *cfg, const uint32_t *tlli) +{ + struct gbproxy_sgsn *sgsn = NULL; + struct gbproxy_sgsn *sgsn_avoid = NULL; + + int tlli_type; + int16_t nri; + bool null_nri = false; + + if (!tlli) { + sgsn = llist_first_entry(&cfg->sgsns, struct gbproxy_sgsn, list); + if (!sgsn) { + return NULL; + } + LOGPSGSN(sgsn, LOGL_INFO, "Could not get TLLI, using first SGSN\n"); + return sgsn; + } + + if (cfg->pool.nri_bitlen == 0) { + /* Pooling is disabled */ + sgsn = llist_first_entry(&cfg->sgsns, struct gbproxy_sgsn, list); + if (!sgsn) { + return NULL; + } + + LOGPSGSN(sgsn, LOGL_INFO, "Pooling disabled, using first configured SGSN\n"); + } else { + /* Pooling is enabled, try to use the NRI for routing to an SGSN + * See 3GPP TS 23.236 Ch. 5.3.2 */ + tlli_type = gprs_tlli_type(*tlli); + if (tlli_type == TLLI_LOCAL || tlli_type == TLLI_FOREIGN) { + /* Only get/use the NRI if tlli type is local */ + osmo_tmsi_nri_v_get(&nri, *tlli, cfg->pool.nri_bitlen); + if (nri >= 0) { + /* Get the SGSN for the NRI */ + sgsn = gbproxy_sgsn_by_nri(cfg, nri, &null_nri); + if (sgsn && !null_nri) + return sgsn; + /* If the NRI is the null NRI, we need to avoid the chosen SGSN */ + if (null_nri && sgsn) { + sgsn_avoid = sgsn; + } + } else { + /* We couldn't get the NRI from the TLLI */ + LOGP(DGPRS, LOGL_ERROR, "Could not extract NRI from local TLLI %u\n", *tlli); + } + } + } + + /* If we haven't found an SGSN yet we need to choose one, but avoid the one in sgsn_avoid + * NOTE: This function is not stable if the number of SGSNs or allow_attach changes + * We could implement TLLI tracking here, but 3GPP TS 23.236 Ch. 5.3.2 (see NOTE) argues that + * we can just wait for the MS to reattempt the procedure. + */ + if (!sgsn) + sgsn = gbproxy_sgsn_by_tlli(cfg, sgsn_avoid, *tlli); + + if (!sgsn) { + LOGP(DGPRS, LOGL_ERROR, "No suitable SGSN found for TLLI %u\n", *tlli); + return NULL; + } + + return sgsn; +} + +/*! Find the correct gbproxy_bvc given a cell and an SGSN + * \param[in] cfg The gbproxy configuration + * \param[in] cell The cell the message belongs to + * \param[in] tlli An optional TLLI used for tracking + * \return Returns 0 on success, otherwise a negative value + */ +static struct gbproxy_bvc *gbproxy_select_sgsn_bvc(struct gbproxy_config *cfg, struct gbproxy_cell *cell, const uint32_t *tlli) +{ + struct gbproxy_sgsn *sgsn; + struct gbproxy_bvc *sgsn_bvc = NULL; + + sgsn = gbproxy_select_sgsn(cfg, tlli); + if (!sgsn) { + LOGPCELL(cell, LOGL_ERROR, "Could not find any SGSN, dropping message!\n"); + return NULL; + } + + /* Get the BVC for this SGSN/NSE */ + for (int i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + sgsn_bvc = cell->sgsn_bvc[i]; + if (!sgsn_bvc) + continue; + if (sgsn->nse != sgsn_bvc->nse) + continue; + + return sgsn_bvc; + } + + /* This shouldn't happen */ + LOGPCELL(cell, LOGL_ERROR, "Could not find matching BVC for SGSN, dropping message!\n"); + return NULL; +} + +/*! Send a message to the next SGSN, possibly ignoring the null SGSN + * route an uplink message on a PTP-BVC to a SGSN using the TLLI + * \param[in] cell The cell the message belongs to + * \param[in] msg The BSSGP message + * \param[in] null_sgsn If not NULL then avoid this SGSN (because this message contains its null NRI) + * \param[in] tlli An optional TLLI used for tracking + * \return Returns 0 on success, otherwise a negative value + */ +static int gbprox_bss2sgsn_tlli(struct gbproxy_cell *cell, struct msgb *msg, const uint32_t *tlli, bool sig_bvci) { + struct gbproxy_config *cfg = cell->cfg; struct gbproxy_bvc *sgsn_bvc; - unsigned int i; - /* FIXME: derive NRI from TLLI */ - /* FIXME: find the SGSN for that NRI */ - - /* HACK: we currently simply pick the first SGSN we find */ - for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { - sgsn_bvc = cell->sgsn_bvc[i]; - if (sgsn_bvc) - return gbprox_relay2peer(msg, sgsn_bvc, sig_bvci ? 0 : sgsn_bvc->bvci); + sgsn_bvc = gbproxy_select_sgsn_bvc(cfg, cell, tlli); + if (!sgsn_bvc) { + LOGPCELL(cell, LOGL_NOTICE, "Could not find any SGSN for TLLI %u, dropping message!\n", *tlli); + return -EINVAL; } - return 0; + + return gbprox_relay2peer(msg, sgsn_bvc, sig_bvci ? 0 : sgsn_bvc->bvci); } -static int gbprox_bss2sgsn_null_nri(struct gbproxy_cell *cell, struct msgb *msg) -{ - struct gbproxy_bvc *sgsn_bvc; - unsigned int i; - - /* FIXME: find the SGSN for that NRI */ - - /* HACK: we currently simply pick the first SGSN we find */ - for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { - sgsn_bvc = cell->sgsn_bvc[i]; - if (sgsn_bvc) - return gbprox_relay2peer(msg, sgsn_bvc, sgsn_bvc->bvci); - } - return 0; -} - - /* Receive an incoming PTP message from a BSS-side NS-VC */ static int gbprox_rx_ptp_from_bss(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { @@ -314,18 +406,20 @@ case BSSGP_PDUT_PS_HO_CANCEL: /* We can route based on TLLI-NRI */ tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); - rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); break; case BSSGP_PDUT_RADIO_STATUS: if (TLVP_PRESENT(&tp, BSSGP_IE_TLLI)) { tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); - rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); } 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)); - rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); } else if (TLVP_PRESENT(&tp, BSSGP_IE_IMSI)) { - rc = gbprox_bss2sgsn_null_nri(bss_bvc->cell, msg); + // 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; @@ -828,7 +922,7 @@ from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); if (!from_bvc) goto err_no_bvc; - gbprox_bss2sgsn_tlli(from_bvc->cell, msg, tlli, true); + gbprox_bss2sgsn_tlli(from_bvc->cell, msg, &tlli, true); break; default: LOGPNSE(nse, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); @@ -1288,7 +1382,6 @@ /* 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); - hash_init(cfg->bss_nses); hash_init(cfg->sgsn_nses); hash_init(cfg->cells); diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index e85e951..c660ede 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -303,6 +303,8 @@ 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); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 863ec50..3b12046 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -343,7 +343,15 @@ return nse; } -/* SGSN */ +/*********************************************************************** + * SGSN - Serving GPRS Support Node + ***********************************************************************/ + +/*! 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 + * \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 *sgsn; @@ -381,6 +389,9 @@ talloc_free(sgsn); } +/*! Free the SGSN. This ensures the corresponding gbproxy_nse is freed as well + * \param[in] sgsn The SGSN + */ void gbproxy_sgsn_free(struct gbproxy_sgsn *sgsn) { if (!sgsn) @@ -392,6 +403,11 @@ _sgsn_free(sgsn); } +/*! 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; @@ -405,6 +421,11 @@ return NULL; } +/*! Return the SGSN for a given NSEI, creating a new one if none exists + * \param[in] cfg The gbproxy configuration + * \param[in] nsei The nsei where the SGSN can be reached + * \return Returns the SGSN + */ struct gbproxy_sgsn *gbproxy_sgsn_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei) { struct gbproxy_sgsn *sgsn; @@ -443,3 +464,47 @@ return NULL; } + +/*! Seleect a pseudo-random SGSN for a given TLLI, ignoring any SGSN that is not accepting connections + * \param[in] cfg The gbproxy configuration + * \param[in] sgsn_avoid If not NULL then avoid this SGSN when selecting a new one. Use for load redistribution + * \param[in] tlli The tlli to choose an SGSN for. The same tlli will map to the same SGSN as long as no SGSN is + added/removed or allow_attach changes. + * \return Returns the sgsn on success, NULL if no SGSN that allows new connections could be found + */ +struct gbproxy_sgsn *gbproxy_sgsn_by_tlli(struct gbproxy_config *cfg, struct gbproxy_sgsn *sgsn_avoid, + uint32_t tlli) +{ + uint32_t i = 0; + uint32_t index, num_sgsns; + struct gbproxy_sgsn *sgsn; + OSMO_ASSERT(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 + index = hash_32(tlli, 8) % num_sgsns; + + // 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 + llist_for_each_entry(sgsn, &cfg->sgsns, list) { + if (i > index) { + break; + } else if (sgsn->pool.allow_attach) { + return sgsn; + } + i++; + } + + return NULL; +} -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Gerrit-Change-Number: 21881 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 Dec 28 18:28:00 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 28 Dec 2020 18:28:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN name References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 ) Change subject: gbproxy: Add SGSN name ...................................................................... gbproxy: Add SGSN name 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.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 5 files changed, 68 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/82/21882/1 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg index df765c0..b455ec8 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy.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/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index dd529a3..84f8098 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -153,6 +153,9 @@ /* The NSE belonging to this SGSN */ struct gbproxy_nse *nse; + /* Name of the SGSN */ + const char *name; + /* Pool configuration for the sgsn (only valid if sgsn_facing == true) */ struct { bool allow_attach; @@ -180,7 +183,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) @@ -228,8 +231,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 bce4055..4df94a7 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -298,11 +298,13 @@ if (sgsn->nse != sgsn_bvc->nse) continue; + LOGPBVC(sgsn_bvc, LOGL_INFO, "using SGSN %s\n", sgsn->name); + return sgsn_bvc; } /* 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 3b12046..3958de9 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 dd0c158..adcdf70 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -188,6 +188,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 +257,28 @@ 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]; + + if (sgsn->name) + talloc_free((void *)sgsn->name); + + sgsn->name = talloc_strdup(sgsn, 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 +670,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: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Dec 28 18:28:01 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 28 Dec 2020 18:28:01 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY command to override the node selection function References: Message-ID: daniel has uploaded this change for review. ( 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 src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 2 files changed, 39 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/83/21883/1 diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 3958de9..2c32587 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_ERROR, "Node select 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 adcdf70..bdf85e7 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -649,6 +649,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); @@ -660,6 +690,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: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Dec 28 19:53:35 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 28 Dec 2020 19:53:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fea37cd45212_59872af9dc0645f415269d7@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: [ 0s] [ 0s] armbuild04 started "build osmo-trx_1.2.0.117.4a4e.dsc" at Mon Dec 28 19:53:26 UTC 2020. [ 0s] [ 0s] Building osmo-trx for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '52819c3d6e1c306319ece2fc583a1b85' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-trx_1.2.0.117.4a4e.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-trx_1.2.0.117.4a4e.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-trx_1.2.0.117.4a4e.dsc build ... [ 0s] unknown keyword in config: [ 0s] could not autodetect package type [ 0s] [ 0s] armbuild04 failed "build osmo-trx_1.2.0.117.4a4e.dsc" at Mon Dec 28 19:53:26 UTC 2020. [ 0s] -- 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 Dec 28 20:07:42 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 28 Dec 2020 20:07:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates In-Reply-To: References: Message-ID: dexter 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: > Patch Set 4: Code-Review+1 > > please make sure the code actually compiles. Is it missing the switch of the deps/RSL to the new version? Yes, I think it is missing -- 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-Comment-Date: Mon, 28 Dec 2020 20:07: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 Dec 28 20:14:56 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 28 Dec 2020 20:14:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates In-Reply-To: References: Message-ID: dexter 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: > Patch Set 4: > > > Patch Set 4: Code-Review+1 > > > > please make sure the code actually compiles. Is it missing the switch of the deps/RSL to the new version? > > Yes, I think it is missing Yes, I think the patch in deps/makefile for BSSGP_v13.0.0 is missing (I5d7261a5ac33a0231c1a3d73bdff7fb099568687). The error of the TTCN3 compiler also points in that direction, it wants to use Cell_Identifier_V, but the BSSGP_types.ttcn still requires Cell_Identifier. Osmocom_Gb_Types.ttcn:2474.33-56: error: Type mismatch: a value or template of type `@BSSGP_Types.Cell_Identifier' was expected instead of `@BSSGP_Types.Cell_Identifier_V' 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? -- 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-Comment-Date: Mon, 28 Dec 2020 20:14: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 Mon Dec 28 21:24:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 28 Dec 2020 21:24:53 +0000 Subject: Change in osmo-hlr[master]: support the XOR algorithm for UMTS AKA In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21880 ) Change subject: support the XOR algorithm for UMTS AKA ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-hlr/+/21880/2/src/hlr_vty_subscr.c File src/hlr_vty_subscr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/21880/2/src/hlr_vty_subscr.c at 500 PS2, Line 500: (op|opc) OP_C XOR actually doesn't have any OP/OPc value. I'll see if I can make those optional somehow to avoid having to type "opc 00000000000000000000000000000000" in every command. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21880 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 28 Dec 2020 21:24: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 Mon Dec 28 21:25:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 28 Dec 2020 21:25:15 +0000 Subject: Change in osmo-hlr[master]: support the XOR algorithm for UMTS AKA In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21880 ) Change subject: support the XOR algorithm for UMTS AKA ...................................................................... Patch Set 2: I just verified that this works with a 3GPP Test USIM via an Osmocom 3G network. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21880 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 28 Dec 2020 21:25: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 Dec 28 21:31:17 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 28 Dec 2020 21:31:17 +0000 Subject: Change in libosmocore[master]: Declare osmo_ctx_init() in talloc.h References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21884 ) Change subject: Declare osmo_ctx_init() in talloc.h ...................................................................... Declare osmo_ctx_init() in talloc.h This function is called automatically on the main thread, but needs to ba called explicitly in order to run the select loop on another thread. Make it available for applications through talloc.h Change-Id: Ie710ca9ad01d3fadb9f4ff344a55d6c01004727b --- M include/osmocom/core/talloc.h 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/84/21884/1 diff --git a/include/osmocom/core/talloc.h b/include/osmocom/core/talloc.h index c68a56c..f15cd2a 100644 --- a/include/osmocom/core/talloc.h +++ b/include/osmocom/core/talloc.h @@ -25,3 +25,5 @@ * to the various _c functions like msgb_alloc_c() */ #define OTC_GLOBAL (osmo_ctx->global) #define OTC_SELECT (osmo_ctx->select) + +int osmo_ctx_init(const char *id); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie710ca9ad01d3fadb9f4ff344a55d6c01004727b Gerrit-Change-Number: 21884 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 Dec 28 21:40:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 28 Dec 2020 21:40:14 +0000 Subject: Change in osmo-hlr[master]: support the XOR algorithm for UMTS AKA In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/21880 to look at the new patch set (#3). Change subject: support the XOR algorithm for UMTS AKA ...................................................................... support the XOR algorithm for UMTS AKA Test USIMs as specified by 3GPP use the XOR algorithm not only for 2G but also for 3G. libosmocore includes the XOR-3G support since v1.3.0, but osmo-hlr somehow never made use of it. Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Closes: OS#4924 --- M src/db_hlr.c M src/hlr_vty_subscr.c M tests/auc/auc_test.c M tests/auc/auc_test.err M tests/test_subscriber.vty 5 files changed, 121 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/80/21880/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21880 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Mon Dec 28 21:41:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 28 Dec 2020 21:41:13 +0000 Subject: Change in osmo-hlr[master]: support the XOR algorithm for UMTS AKA In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21880 ) Change subject: support the XOR algorithm for UMTS AKA ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21880 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 28 Dec 2020 21: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 Dec 28 22:17:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 28 Dec 2020 22:17:10 +0000 Subject: Change in osmo-hlr[master]: support the XOR algorithm for UMTS AKA In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21880 ) Change subject: support the XOR algorithm for UMTS AKA ...................................................................... support the XOR algorithm for UMTS AKA Test USIMs as specified by 3GPP use the XOR algorithm not only for 2G but also for 3G. libosmocore includes the XOR-3G support since v1.3.0, but osmo-hlr somehow never made use of it. Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Closes: OS#4924 --- M src/db_hlr.c M src/hlr_vty_subscr.c M tests/auc/auc_test.c M tests/auc/auc_test.err M tests/test_subscriber.vty 5 files changed, 121 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/db_hlr.c b/src/db_hlr.c index 83c2c51..6ba43c2 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -264,11 +264,11 @@ switch (aud->algo) { case OSMO_AUTH_ALG_NONE: case OSMO_AUTH_ALG_MILENAGE: + case OSMO_AUTH_ALG_XOR: break; case OSMO_AUTH_ALG_COMP128v1: case OSMO_AUTH_ALG_COMP128v2: case OSMO_AUTH_ALG_COMP128v3: - case OSMO_AUTH_ALG_XOR: LOGP(DAUC, LOGL_ERROR, "Cannot update auth tokens:" " auth algo not suited for 3G: %s\n", osmo_auth_alg_name(aud->algo)); diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index a9262ba..3dbc383 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -551,6 +551,55 @@ return CMD_SUCCESS; } +DEFUN(subscriber_aud3g_xor, + subscriber_aud3g_xor_cmd, + SUBSCR_UPDATE "aud3g xor k K" + " [ind-bitlen] [<0-28>]", + SUBSCR_UPDATE_HELP + "Set UMTS authentication data (3G, and 2G with UMTS AKA)\n" + "Use XOR algorithm\n" + "Set Encryption Key K\n" "K as 32 hexadecimal characters\n" + "Set IND bit length\n" "IND bit length value (default: 5)\n") +{ + struct hlr_subscriber subscr; + int minlen = 0; + int maxlen = 0; + int rc; + const char *id_type = argv[0]; + const char *id = argv[1]; + const char *k = argv[2]; + int ind_bitlen = argc > 4? atoi(argv[4]) : 5; + struct sub_auth_data_str aud3g = { + .type = OSMO_AUTH_TYPE_UMTS, + .u.umts = { + .k = k, + .opc_is_op = 0, + .opc = "00000000000000000000000000000000", + .ind_bitlen = ind_bitlen, + }, + }; + + if (!auth_algo_parse("xor", &aud3g.algo, &minlen, &maxlen)) { + vty_out(vty, "%% Unknown auth algorithm: '%s'%s", "xor", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!is_hexkey_valid(vty, "K", aud3g.u.umts.k, minlen, maxlen)) + return CMD_WARNING; + + if (get_subscr_by_argv(vty, id_type, id, &subscr)) + return CMD_WARNING; + + rc = db_subscr_update_aud_by_id(g_hlr->dbc, subscr.id, &aud3g); + + if (rc) { + vty_out(vty, "%% Error: cannot set 3G auth data for IMSI='%s'%s", + subscr.imsi, VTY_NEWLINE); + return CMD_WARNING; + } + return CMD_SUCCESS; +} + DEFUN(subscriber_imei, subscriber_imei_cmd, SUBSCR_UPDATE "imei (none|IMEI)", @@ -637,6 +686,7 @@ install_element(ENABLE_NODE, &subscriber_aud2g_cmd); install_element(ENABLE_NODE, &subscriber_no_aud3g_cmd); install_element(ENABLE_NODE, &subscriber_aud3g_cmd); + install_element(ENABLE_NODE, &subscriber_aud3g_xor_cmd); install_element(ENABLE_NODE, &subscriber_imei_cmd); install_element(ENABLE_NODE, &subscriber_nam_cmd); } diff --git a/tests/auc/auc_test.c b/tests/auc/auc_test.c index cdbd0b7..db7edcb 100644 --- a/tests/auc/auc_test.c +++ b/tests/auc/auc_test.c @@ -454,6 +454,50 @@ comment_end(); } +static void test_gen_vectors_3g_xor(void) +{ + struct osmo_sub_auth_data aud2g; + struct osmo_sub_auth_data aud3g; + struct osmo_auth_vector vec; + int rc; + + comment_start(); + + aud2g = (struct osmo_sub_auth_data){ 0 }; + + aud3g = (struct osmo_sub_auth_data){ + .type = OSMO_AUTH_TYPE_UMTS, + .algo = OSMO_AUTH_ALG_XOR, + .u.umts.sqn = 0, + }; + + osmo_hexparse("000102030405060708090a0b0c0d0e0f", + aud3g.u.umts.k, sizeof(aud3g.u.umts.k)); + osmo_hexparse("00000000000000000000000000000000", + aud3g.u.umts.opc, sizeof(aud3g.u.umts.opc)); + next_rand("b5039c57e4a75051551d1a390a71ce48", true); + + vec = (struct osmo_auth_vector){ {0} }; + VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64); + rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL); + VERBOSE_ASSERT(rc, == 1, "%d"); + VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64); + + VEC_IS(&vec, + " rand: b5039c57e4a75051551d1a390a71ce48\n" + " autn: 54e0a256565d0000b5029e54e0a25656\n" + " ck: 029e54e0a256565d141032067cc047b5\n" + " ik: 9e54e0a256565d141032067cc047b502\n" + " res: b5029e54e0a256565d141032067cc047\n" + " res_len: 10\n" + " kc: 98e880384887f9fe\n" + " sres: 0ec81877\n" + " auth_types: 03000000\n" + ); + + comment_end(); +} + void test_gen_vectors_bad_args() { struct osmo_auth_vector vec; @@ -622,6 +666,7 @@ test_gen_vectors_2g_only(); test_gen_vectors_2g_plus_3g(); test_gen_vectors_3g_only(); + test_gen_vectors_3g_xor(); test_gen_vectors_bad_args(); printf("Done\n"); diff --git a/tests/auc/auc_test.err b/tests/auc/auc_test.err index 0a4d9af..f83e814 100644 --- a/tests/auc/auc_test.err +++ b/tests/auc/auc_test.err @@ -217,6 +217,29 @@ ===== test_gen_vectors_3g_only: SUCCESS +===== test_gen_vectors_3g_xor +aud3g.u.umts.sqn == 0 +DAUC Computing 1 auth vector: 3G only (2G derived from 3G keys) +DAUC 3G: k = 000102030405060708090a0b0c0d0e0f +DAUC 3G: opc = 00000000000000000000000000000000 +DAUC 3G: for sqn ind 0, previous sqn was 0 +DAUC vector [0]: rand = b5039c57e4a75051551d1a390a71ce48 +DAUC vector [0]: sqn = 0 +DAUC vector [0]: autn = 54e0a256565d0000b5029e54e0a25656 +DAUC vector [0]: ck = 029e54e0a256565d141032067cc047b5 +DAUC vector [0]: ik = 9e54e0a256565d141032067cc047b502 +DAUC vector [0]: res = b5029e54e0a256565d141032067cc047 +DAUC vector [0]: res_len = 16 +DAUC vector [0]: deriving 2G from 3G +DAUC vector [0]: kc = 98e880384887f9fe +DAUC vector [0]: sres = 0ec81877 +DAUC vector [0]: auth_types = 0x3 +rc == 1 +aud3g.u.umts.sqn == 0 +vector matches expectations +===== test_gen_vectors_3g_xor: SUCCESS + + ===== test_gen_vectors_bad_args - no auth data (a) diff --git a/tests/test_subscriber.vty b/tests/test_subscriber.vty index 4082700..fe7499c 100644 --- a/tests/test_subscriber.vty +++ b/tests/test_subscriber.vty @@ -11,6 +11,7 @@ subscriber (imsi|msisdn|id|imei) IDENT update aud2g (comp128v1|comp128v2|comp128v3|xor) ki KI subscriber (imsi|msisdn|id|imei) IDENT update aud3g none subscriber (imsi|msisdn|id|imei) IDENT update aud3g milenage k K (op|opc) OP_C [ind-bitlen] [<0-28>] + subscriber (imsi|msisdn|id|imei) IDENT update aud3g xor k K [ind-bitlen] [<0-28>] subscriber (imsi|msisdn|id|imei) IDENT update imei (none|IMEI) subscriber (imsi|msisdn|id|imei) IDENT update network-access-mode (none|cs|ps|cs+ps) show mslookup services @@ -268,6 +269,7 @@ OsmoHLR# subscriber imsi 123456789023000 update aud3g ? none Delete 3G authentication data milenage Use Milenage algorithm + xor Use XOR algorithm OsmoHLR# subscriber imsi 123456789023000 update aud3g milenage ? k Set Encryption Key K -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21880 Gerrit-PatchSet: 3 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 Dec 28 23:48:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 28 Dec 2020 23:48:44 +0000 Subject: Change in osmo-bsc[master]: power_control: vty: some commands are not vendor specific References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21885 ) Change subject: power_control: vty: some commands are not vendor specific ...................................................................... power_control: vty: some commands are not vendor specific Change-Id: I43cad92ea50f819ee56101d131d0060c2f8e174f Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 2 files changed, 4 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/21885/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 3cb479d..6618abe 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4881,7 +4881,6 @@ DEFUN_USRATTR(cfg_power_ctrl_mode, cfg_power_ctrl_mode_cmd, - X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | X(BSC_VTY_ATTR_NEW_LCHAN), "mode (static|dyn-bts) [reset]", "Power control mode\n" @@ -4909,7 +4908,6 @@ DEFUN_USRATTR(cfg_power_ctrl_bs_power, cfg_power_ctrl_bs_power_cmd, - X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | X(BSC_VTY_ATTR_NEW_LCHAN), "bs-power (static|dyn-max) <0-30>", "BS Power IE value to be send to the BTS\n" diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index d58c075..ac93c39 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -22,8 +22,8 @@ OsmoBSC(config-net-bts)# bs-power-control OsmoBSC(config-bs-power-ctrl)# list with-flags ... - . lv mode (static|dyn-bts) [reset] - . lv bs-power (static|dyn-max) <0-30> + . 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> @@ -84,8 +84,8 @@ OsmoBSC(config-net-bts)# ms-power-control OsmoBSC(config-ms-power-ctrl)# list with-flags ... - . lv mode (static|dyn-bts) [reset] - . lv bs-power (static|dyn-max) <0-30> + . 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> -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I43cad92ea50f819ee56101d131d0060c2f8e174f Gerrit-Change-Number: 21885 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 Dec 28 23:48:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 28 Dec 2020 23:48:44 +0000 Subject: Change in osmo-bsc[master]: power_control: add documentation on available configuration params References: Message-ID: fixeria has uploaded this change for review. ( 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, 249 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/21886/1 diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc new file mode 100644 index 0000000..de0c43b --- /dev/null +++ b/doc/manuals/chapters/power_control.adoc @@ -0,0 +1,247 @@ +== 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. + +=== 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> and <2> are briefly described in the interactive VTY help. +<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) <1> + dyn-max Maximum BS Power reduction value (for dynamic mode) <2> +---- + +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 <0> + bs-power dyn-max 12 <1> + step-size inc 6 red 4 <2> + ms-power-control + mode dyn-bts <0> + step-size inc 4 red 2 <3> +---- +<0> Both MS and BS power control is to be performed by the BTS autonomously. +<1> The BTS is allowed to reduce the power on Downlink up to 12 dB. +<2> On Downlink, the power can be increased by 6 dB or reduced by 4 dB at once. +<3> On Uplink, the power can be increased by 4 dB or reduced by 2 dB at once. + +It's recommended to pick the values in a way that the increase step is greather 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 <0> + rxlev-thresh lower 32 upper 38 <1> + rxqual-thresh lower 3 upper 0 <2> +---- +<0> BS power control is to be performed by the BTS autonomously. +<1> RxLev is to be maintained in range 32 .. 38 (-78 .. -72 dBm). +<2> RxQual is to be maintained in range 3 .. 0 (lower is better). + +In 3GPP TS 45.008, <1> is refered as `L_RXLEV_XX_P` and `U_RXLEV_XX_P`, while <2> +is refered as `L_RXQUAL_XX_P` and `U_RXQUAL_XX_P`, where XX is DL or UL. + +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 <0> + rxlev-thresh lower 32 upper 38 + rxlev-thresh-comp lower 10 12 <1> upper 19 20 <2> + rxqual-thresh lower 3 upper 0 + rxqual-thresh-comp lower 5 7 <3> upper 15 18 <4> +---- +<0> BS power control is to be performed by the BTS autonomously. +<1> P1=10 out of N1=12 averages < L_RXLEV_XX_P => increase power. +<2> P2=19 out of N2=20 averages > U_RXLEV_XX_P => decrease power. +<3> P3=5 out of N3=7 averages > L_RXQUAL_XX_P => increase power. +<4> 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 a MS or +the BTS must 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. + +---- +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) +---- + +OsmoBTS features a non-standard Osmocom specific EWMA (Exponentially Weighted Moving +Average) based method. Other BTS models may support additional non-standard methods +too. + +.Example: Implicit pre-processing configuration +---- +network + bts 0 + bs-power-control + mode dyn-bts <0> + no rxlev-avg <1> + no rxqual-avg <1> +---- +<0> BS power control is to be performed by the BTS autonomously. +<1> Do not indicate pre-processing configuration explicitly, use BTS defaults. + +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. + +.Example: Explicit pre-processing configuration +---- +network + bts 0 + ms-power-control + mode dyn-bts <0> + rxlev-avg algo unweighted <1> + rxlev-avg params hreqave 4 hreqt 6 <2> + rxqual-avg algo osmo-ewma beta 50 <3> + rxqual-avg params hreqave 2 hreqt 3 <4> +---- +<0> BS power control is to be performed by the BTS autonomously. +<1> Unweighted average is applied to RxLev values. +<2> RxLev Hreqave and Hreqt values: 4 out of 6 SACCH blocks produce an averaged measurement. +<3> Osmocom specific EWMA is applied to RxQual values with smoothing factor = 50% (beta=0.5). +<4> RxQual: Hreqave and Hreqt values: 2 out of 3 SACCH blocks produce an averaged measurement. 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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Dec 29 01:42:37 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 29 Dec 2020 01:42:37 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5fea899e87129_59872af9dc0645f41608557@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: [ 587s] [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 [ 587s] debian/rules override_dh_auto_test [ 587s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 587s] cd obj-i686-linux-gnu && meson test --suite unit [ 589s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 589s] ninja: no work to do. [ 597s] 1/3 open5gs:unit / core OK 7.31 s [ 597s] 2/3 open5gs:unit / crypt OK 0.18 s [ 597s] 3/3 open5gs:unit / unit FAIL 0.08 s (exit status 1) [ 597s] [ 597s] Ok: 2 [ 597s] Expected Fail: 0 [ 597s] Fail: 1 [ 597s] Unexpected Pass: 0 [ 597s] Skipped: 0 [ 597s] Timeout: 0 [ 597s] [ 597s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 597s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 597s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 597s] make: *** [debian/rules:11: binary] Error 2 [ 597s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 597s] ### VM INTERACTION START ### [ 600s] [ 561.377007] sysrq: Power Off [ 600s] [ 561.383767] reboot: Power down [ 600s] ### VM INTERACTION END ### [ 600s] [ 600s] hci-cnode2-m1 failed "build open5gs_2.1.1.20201229.dsc" at Tue Dec 29 01:42:29 UTC 2020. [ 600s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 29 01:57:11 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 29 Dec 2020 01:57:11 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fea8d02363da_59872af9dc0645f4161292f@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: [ 158s] [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] [ 150.021739] sysrq: Power Off [ 162s] [ 150.029493] reboot: Power down [ 162s] ### VM INTERACTION END ### [ 162s] [ 162s] lamb07 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 29 01:57:07 UTC 2020. [ 162s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 29 01:59:11 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 29 Dec 2020 01:59:11 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fea8d789643f_59872af9dc0645f416135ba@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: [ 187s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 187s] [COMPILING libboard/qmod/source/card_pres.c] [ 187s] [COMPILING libboard/qmod/source/wwan_led.c] [ 187s] [COMPILING libboard/qmod/source/i2c.c] [ 188s] [COMPILING libboard/qmod/source/board_qmod.c] [ 188s] [COMPILING apps/dfu/main.c] [ 188s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 188s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 188s] [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 [ 189s] ### VM INTERACTION START ### [ 192s] [ 178.069989] sysrq: Power Off [ 192s] [ 178.077028] reboot: Power down [ 192s] ### VM INTERACTION END ### [ 192s] [ 192s] lamb24 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Dec 29 01:59:08 UTC 2020. [ 192s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 29 06:25:46 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 29 Dec 2020 06:25:46 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_10/armv7l In-Reply-To: References: Message-ID: <5feacc0b38b2f_59872af9dc0645f416713a3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_10/armv7l Package network:osmocom:nightly/libusrp failed to build in Debian_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 Tue Dec 29 06:25:36 UTC 2020. [ 0s] [ 0s] Building libusrp for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 'ac708807b6bf2cb20737b41490c07f1b' [ 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 Tue Dec 29 06:25:37 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Dec 29 06:51:46 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 29 Dec 2020 06:51:46 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fead207bdab_59872af9dc0645f416733e2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_10/armv7l Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-sccp Last lines of build log: [ 0s] [ 0s] armbuild04 started "build libosmo-sccp_1.3.0.25.48e2.dsc" at Tue Dec 29 06:51:29 UTC 2020. [ 0s] [ 0s] Building libosmo-sccp for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '2f517675b2b11a004566285d31e7e14d' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/libosmo-sccp_1.3.0.25.48e2.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/libosmo-sccp_1.3.0.25.48e2.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/libosmo-sccp_1.3.0.25.48e2.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build libosmo-sccp_1.3.0.25.48e2.dsc" at Tue Dec 29 06:51:30 UTC 2020. [ 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 Tue Dec 29 08:40:41 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 08:40:41 +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: daniel has posted comments on 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 ...................................................................... Patch Set 4: Verified-1 Code-Review-2 This is obsolete, can we get this abandoned? I don't have the permissions -- 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: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 29 Dec 2020 08:40: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 Dec 29 09:17:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 09:17:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... Patch Set 7: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21705/7/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg File doc/examples/osmo-gbproxy/osmo-gbproxy.cfg: https://gerrit.osmocom.org/c/osmo-sgsn/+/21705/7/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg at 10 PS7, Line 10: nri null add 0 4 it might make sense to keep the default config single-SGSN and add a second config file example for pooling? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 7 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 29 Dec 2020 09:17:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Dec 29 09:45:11 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 29 Dec 2020 09:45:11 +0000 Subject: Build failure of network:osmocom:nightly/osmo-hlr in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5feafab046039_59872af9dc0645f4169392a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-hlr/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-hlr failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-hlr Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-hlr_1.2.0.68.6e23.dsc" at Tue Dec 29 09:45:00 UTC 2020. [ 0s] [ 0s] Building osmo-hlr for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '6ea266d27a355cb84306da65df7b5289' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-hlr_1.2.0.68.6e23.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-hlr_1.2.0.68.6e23.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-hlr_1.2.0.68.6e23.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-hlr_1.2.0.68.6e23.dsc" at Tue Dec 29 09:45:01 UTC 2020. [ 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 Tue Dec 29 10:05:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 29 Dec 2020 10:05:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix: explicitly enable/disable dynamic power control In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 ) Change subject: BSC_Tests: fix: explicitly enable/disable dynamic power control ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I029eac9d8f38477a395a72e4c00dd24d7107ca79 Gerrit-Change-Number: 21842 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Dec 29 10:55:11 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 29 Dec 2020 10:55:11 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5feb0b2fc6711_59872af9dc0645f417026b1@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 Tue Dec 29 10:55:00 UTC 2020. [ 0s] [ 0s] Building osmo-remsim for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 'd943e65e6dd5883f73ed878f1a539514' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-remsim_0.2.2.103.dc34.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-remsim_0.2.2.103.dc34.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-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 Tue Dec 29 10:55:01 UTC 2020. [ 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 Tue Dec 29 11:37:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 11:37:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN pooling support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 ) Change subject: gbproxy: Add SGSN pooling support ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21881/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21881/1/src/gbproxy/gb_proxy.c at 266 PS1, Line 266: sgsn = gbproxy_sgsn_by_tlli(cfg, sgsn_avoid, *tlli); whitespace https://gerrit.osmocom.org/c/osmo-sgsn/+/21881/1/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21881/1/src/gbproxy/gb_proxy_peer.c at 352 PS1, Line 352: * \param[in] nsei The nsei where the SGSN can be reached all those new comments are not strictly related to the feature you're introducing https://gerrit.osmocom.org/c/osmo-sgsn/+/21881/1/src/gbproxy/gb_proxy_peer.c at 483 PS1, Line 483: / IIRC, there's even an API for adding to a list and incrementing a counter, but I cannot find it right now, weird. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Gerrit-Change-Number: 21881 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 11:37: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 Tue Dec 29 11:39:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 11:39:24 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN name 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 SGSN name ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/1/src/gbproxy/gb_proxy.c at 301 PS1, Line 301: LOG isn't this a message printed for every user plane packet? Should this be info? https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/1/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/1/src/gbproxy/gb_proxy_vty.c at 270 PS1, Line 270: if (sgsn->name) : talloc_free((void *)sgsn->name); : : sgsn->name = talloc_strdup(sgsn, name); we do have a helper for that so you don't have to open code this: osmo_talloc_replace_string -- 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: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 11:39: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 Dec 29 11:41:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 11:41:15 +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 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/1/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/1/src/gbproxy/gb_proxy_peer.c at 515 PS1, Line 515: select select or selection" commit log and log message disagree https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/1/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/1/src/gbproxy/gb_proxy_vty.c at 668 PS1, Line 668: nsf_override did this member exist before? shouldn't it also be introduced in this patch? -- 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: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 11:41:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Dec 29 13:27:54 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 29 Dec 2020 13:27:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5feb2ef939217_59872af9dc0645f41726829@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild01:3) -- 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 Dec 29 14:21:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 29 Dec 2020 14:21:13 +0000 Subject: Change in osmo-bsc[master]: Add a bts_model->bts_init() and trx_init() call-back function In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21825 ) Change subject: Add a bts_model->bts_init() and trx_init() call-back function ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts.c at 498 PS1, Line 498: if (model->start && !model->started) { Is it expected that we first call .start() and then .init()? From the API point of view, I would expect that we initialize something first and then start it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icbad9cdc12221c9ad997267d77e5414edcbac538 Gerrit-Change-Number: 21825 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 14:21: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 Dec 29 14:21:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 29 Dec 2020 14:21:49 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: make om2k_mo_name() an exported function In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21826 ) Change subject: abis_om2000: make om2k_mo_name() an exported function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb05bcad8059ab2b2be6c7057495d0279a4b62c7 Gerrit-Change-Number: 21826 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 14:21: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 Dec 29 14:28:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 29 Dec 2020 14:28:36 +0000 Subject: Change in osmo-bsc[master]: [cosmetic] abis_om2000: Re-format to use longer lines In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21827 ) Change subject: [cosmetic] abis_om2000: Re-format to use longer lines ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8143280358c0e23ca7e32b882e952eac991e105b Gerrit-Change-Number: 21827 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 14:28: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 Dec 29 14:29:15 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 29 Dec 2020 14:29:15 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Mark om2k_mo_fsm_start() as static In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21828 ) Change subject: abis_om2000: Mark om2k_mo_fsm_start() as static ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If9ebf07ac662607826270df0b0966c8dd5026f1c Gerrit-Change-Number: 21828 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 14:29: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 Dec 29 15:27:47 2020 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 29 Dec 2020 15:27:47 +0000 Subject: Change in libosmocore[master]: Declare osmo_ctx_init() in talloc.h In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21884 ) Change subject: Declare osmo_ctx_init() in talloc.h ...................................................................... Patch Set 1: Code-Review+1 Header file looks odd, but i can't think of a better one either. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie710ca9ad01d3fadb9f4ff344a55d6c01004727b Gerrit-Change-Number: 21884 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 15:27: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 Dec 29 15:43:13 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 15:43:13 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21705/7/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg File doc/examples/osmo-gbproxy/osmo-gbproxy.cfg: https://gerrit.osmocom.org/c/osmo-sgsn/+/21705/7/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg at 10 PS7, Line 10: nri null add 0 4 > it might make sense to keep the default config single-SGSN and add a second config file example for [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 7 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 29 Dec 2020 15:43:13 +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 Dec 29 16:03:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 29 Dec 2020 16:03:22 +0000 Subject: Change in osmo-bsc[master]: power_control: enable dynamic MS power control for osmo-bts References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21887 ) Change subject: power_control: enable dynamic MS power control for osmo-bts ...................................................................... power_control: enable dynamic MS power control for osmo-bts Before the recent changes, the MS Power Parameters IE would always be included empty in RSL CHANnel ACTIVation messages iff the BTS type is 'osmo-bts'. Then this behavior was changed, so the user would need to enable dynamic power control explicitly. This is a regression, let's revert it back to the old behaviour. Change-Id: Idb453fc894584ccf4f5f8b45a24421db958e9478 Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M tests/power_ctrl.vty 3 files changed, 27 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/21887/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 3cb479d..4d5f407 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4885,7 +4885,7 @@ X(BSC_VTY_ATTR_NEW_LCHAN), "mode (static|dyn-bts) [reset]", "Power control mode\n" - "Instruct the MS/BTS to use a static power level (default)\n" + "Instruct the MS/BTS to use a static power level\n" "Power control to be performed dynamically by the BTS itself\n" "Reset to default parameters for the given mode\n") { diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index d5a848d..747e8b7 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -504,8 +504,11 @@ } switch (bts->type) { - case GSM_BTS_TYPE_NANOBTS: case GSM_BTS_TYPE_OSMOBTS: + /* Enable dynamic Uplink power control by default */ + bts->ms_power_ctrl.mode = GSM_PWR_CTRL_MODE_DYN_BTS; + /* fall-through */ + case GSM_BTS_TYPE_NANOBTS: /* Set the default OML Stream ID to 0xff */ bts->oml_tei = 0xff; bts->c0->nominal_power = 23; diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index d58c075..bdd3d03 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -1,12 +1,19 @@ OsmoBSC> enable -OsmoBSC# ### Dynamic power control must be disabled by default +OsmoBSC# ### Default configuration OsmoBSC# show running-config ... bs-power-control mode static ms-power-control - mode static + mode dyn-bts + 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 @@ -48,7 +55,7 @@ mode static bs-power static 6 ms-power-control - mode static + mode dyn-bts ... !bs-power OsmoBSC(config-bs-power-ctrl)# ### Check default BS Power Parameters @@ -66,7 +73,7 @@ rxqual-thresh-comp lower 5 7 upper 15 18 no rxqual-avg ms-power-control - mode static + mode dyn-bts ... OsmoBSC(config-bs-power-ctrl)# bs-power dyn-max 30 @@ -77,7 +84,7 @@ bs-power dyn-max 30 ... !bs-power ms-power-control - mode static + mode dyn-bts ... !bs-power OsmoBSC(config-bs-power-ctrl)# exit @@ -97,19 +104,11 @@ . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> OsmoBSC(config-ms-power-ctrl)# ### Check default MS Power Parameters -OsmoBSC(config-ms-power-ctrl)# mode dyn-bts OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control mode dyn-bts - bs-power dyn-max 30 - 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 step-size inc 4 red 2 @@ -230,7 +229,7 @@ OsmoBSC(config-bs-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control -OsmoBSC(config-ms-power-ctrl)# mode static reset +OsmoBSC(config-ms-power-ctrl)# mode dyn-bts reset % Reset to default parameters OsmoBSC(config-ms-power-ctrl)# exit @@ -239,5 +238,12 @@ bs-power-control mode static ms-power-control - mode static + mode dyn-bts + 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/+/21887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb453fc894584ccf4f5f8b45a24421db958e9478 Gerrit-Change-Number: 21887 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 Dec 29 16:19:19 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 29 Dec 2020 16:19:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix: explicitly enable/disable dynamic power control In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 ) Change subject: BSC_Tests: fix: explicitly enable/disable dynamic power control ...................................................................... Patch Set 1: Please see https://gerrit.osmocom.org/c/osmo-bsc/+/21887. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I029eac9d8f38477a395a72e4c00dd24d7107ca79 Gerrit-Change-Number: 21842 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 16:19: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 Tue Dec 29 16:19:39 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 16:19:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, laforge, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 to look at the new patch set (#8). Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... gbproxy: Add SGSN NRI configuration In order to support SGSN pooling we need to configure the various NRI parameters such as the bitlen, NULL NRI, and which NRIs are assigned to which SGSN. Related: OS#4890, OS#4472 Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e --- A 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 M tests/Makefile.am A tests/osmo-gbproxy-pool_test-nodes.vty A tests/osmo-gbproxy_test-nodes.vty R tests/osmo-sgsn_test-nodes.vty 10 files changed, 558 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/05/21705/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 8 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 29 16:19:39 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 16:19:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN pooling 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-sgsn/+/21881 to look at the new patch set (#2). Change subject: gbproxy: Add SGSN pooling support ...................................................................... gbproxy: Add SGSN pooling support Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Related: 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, 173 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/81/21881/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Gerrit-Change-Number: 21881 Gerrit-PatchSet: 2 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 Tue Dec 29 16:19:40 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 16:19:40 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add comments to sgsn functions References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21888 ) Change subject: gbproxy: Add comments to sgsn functions ...................................................................... gbproxy: Add comments to sgsn functions Change-Id: I8c96308045112f25292b0e57c306d8486a2524cc --- M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c 2 files changed, 24 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/88/21888/1 diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index e85e951..c660ede 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -303,6 +303,8 @@ 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); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 595e2a6..a966c6c 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -343,7 +343,15 @@ return nse; } -/* SGSN */ +/*********************************************************************** + * SGSN - Serving GPRS Support Node + ***********************************************************************/ + +/*! 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 + * \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 *sgsn; @@ -381,6 +389,9 @@ talloc_free(sgsn); } +/*! Free the SGSN. This ensures the corresponding gbproxy_nse is freed as well + * \param[in] sgsn The SGSN + */ void gbproxy_sgsn_free(struct gbproxy_sgsn *sgsn) { if (!sgsn) @@ -392,6 +403,11 @@ _sgsn_free(sgsn); } +/*! 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; @@ -405,6 +421,11 @@ return NULL; } +/*! Return the SGSN for a given NSEI, creating a new one if none exists + * \param[in] cfg The gbproxy configuration + * \param[in] nsei The nsei where the SGSN can be reached + * \return Returns the SGSN + */ struct gbproxy_sgsn *gbproxy_sgsn_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei) { struct gbproxy_sgsn *sgsn; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8c96308045112f25292b0e57c306d8486a2524cc Gerrit-Change-Number: 21888 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 Dec 29 16:33:40 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 29 Dec 2020 16:33:40 +0000 Subject: Change in osmo-bsc[master]: power_control: vty: do not print 'no (rxlev-avg|rxqual-avg)' References: Message-ID: fixeria has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/21889/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 4d5f407..d213c29 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 bdd3d03..2d269e8 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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 29 16:52:37 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 16:52:37 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add config option to name an SGSN 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/+/21882 to look at the new patch set (#2). 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, 74 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/82/21882/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: 2 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 Tue Dec 29 16:52:37 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 16:52:37 +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, 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 (#2). 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/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: 2 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 Tue Dec 29 16:52:54 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 16:52:54 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN pooling support In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 ) Change subject: gbproxy: Add SGSN pooling support ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21881/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21881/1/src/gbproxy/gb_proxy.c at 266 PS1, Line 266: sgsn = gbproxy_sgsn_by_tlli(cfg, sgsn_avoid, *tlli); > whitespace Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21881/1/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21881/1/src/gbproxy/gb_proxy_peer.c at 352 PS1, Line 352: * \param[in] nsei The nsei where the SGSN can be reached > all those new comments are not strictly related to the feature you're introducing ACK, I'll split it -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Gerrit-Change-Number: 21881 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 16: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 Tue Dec 29 16:52:57 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 16:52:57 +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 2: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/1/src/gbproxy/gb_proxy.c at 301 PS1, Line 301: LOG > isn't this a message printed for every user plane packet? Should this be info? ACK, changing to DEBUGP I also changed the other log statements https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/1/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/1/src/gbproxy/gb_proxy_vty.c at 270 PS1, Line 270: if (sgsn->name) : talloc_free((void *)sgsn->name); : : sgsn->name = talloc_strdup(sgsn, name); > we do have a helper for that so you don't have to open code this: osmo_talloc_replace_string Ack -- 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-CC: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 16:52:57 +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 Dec 29 16:53:01 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 29 Dec 2020 16:53:01 +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 2: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/1/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/1/src/gbproxy/gb_proxy_peer.c at 515 PS1, Line 515: select > select or selection" commit log and log message disagree Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/1/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/1/src/gbproxy/gb_proxy_vty.c at 668 PS1, Line 668: nsf_override > did this member exist before? shouldn't it also be introduced in this patch? You're right, it got added in a previous commit. Moved here -- 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-CC: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 16:53:01 +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 Dec 29 17:20:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:20:49 +0000 Subject: Change in osmo-hlr[rel-1.2.1]: support the XOR algorithm for UMTS AKA References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21890 ) Change subject: support the XOR algorithm for UMTS AKA ...................................................................... support the XOR algorithm for UMTS AKA Test USIMs as specified by 3GPP use the XOR algorithm not only for 2G but also for 3G. libosmocore includes the XOR-3G support since v1.3.0, but osmo-hlr somehow never made use of it. Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Closes: OS#4924 --- M src/db_hlr.c M src/hlr_vty_subscr.c M tests/auc/auc_test.c M tests/auc/auc_test.err M tests/test_subscriber.vty 5 files changed, 121 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/90/21890/1 diff --git a/src/db_hlr.c b/src/db_hlr.c index b3e3887..2b8d349 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -264,11 +264,11 @@ switch (aud->algo) { case OSMO_AUTH_ALG_NONE: case OSMO_AUTH_ALG_MILENAGE: + case OSMO_AUTH_ALG_XOR: break; case OSMO_AUTH_ALG_COMP128v1: case OSMO_AUTH_ALG_COMP128v2: case OSMO_AUTH_ALG_COMP128v3: - case OSMO_AUTH_ALG_XOR: LOGP(DAUC, LOGL_ERROR, "Cannot update auth tokens:" " auth algo not suited for 3G: %s\n", osmo_auth_alg_name(aud->algo)); diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index b561636..e8dd4e1 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -538,6 +538,55 @@ return CMD_SUCCESS; } +DEFUN(subscriber_aud3g_xor, + subscriber_aud3g_xor_cmd, + SUBSCR_UPDATE "aud3g xor k K" + " [ind-bitlen] [<0-28>]", + SUBSCR_UPDATE_HELP + "Set UMTS authentication data (3G, and 2G with UMTS AKA)\n" + "Use XOR algorithm\n" + "Set Encryption Key K\n" "K as 32 hexadecimal characters\n" + "Set IND bit length\n" "IND bit length value (default: 5)\n") +{ + struct hlr_subscriber subscr; + int minlen = 0; + int maxlen = 0; + int rc; + const char *id_type = argv[0]; + const char *id = argv[1]; + const char *k = argv[2]; + int ind_bitlen = argc > 4? atoi(argv[4]) : 5; + struct sub_auth_data_str aud3g = { + .type = OSMO_AUTH_TYPE_UMTS, + .u.umts = { + .k = k, + .opc_is_op = 0, + .opc = "00000000000000000000000000000000", + .ind_bitlen = ind_bitlen, + }, + }; + + if (!auth_algo_parse("xor", &aud3g.algo, &minlen, &maxlen)) { + vty_out(vty, "%% Unknown auth algorithm: '%s'%s", "xor", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!is_hexkey_valid(vty, "K", aud3g.u.umts.k, minlen, maxlen)) + return CMD_WARNING; + + if (get_subscr_by_argv(vty, id_type, id, &subscr)) + return CMD_WARNING; + + rc = db_subscr_update_aud_by_id(g_hlr->dbc, subscr.id, &aud3g); + + if (rc) { + vty_out(vty, "%% Error: cannot set 3G auth data for IMSI='%s'%s", + subscr.imsi, VTY_NEWLINE); + return CMD_WARNING; + } + return CMD_SUCCESS; +} + DEFUN(subscriber_imei, subscriber_imei_cmd, SUBSCR_UPDATE "imei (none|IMEI)", @@ -624,6 +673,7 @@ install_element(ENABLE_NODE, &subscriber_aud2g_cmd); install_element(ENABLE_NODE, &subscriber_no_aud3g_cmd); install_element(ENABLE_NODE, &subscriber_aud3g_cmd); + install_element(ENABLE_NODE, &subscriber_aud3g_xor_cmd); install_element(ENABLE_NODE, &subscriber_imei_cmd); install_element(ENABLE_NODE, &subscriber_nam_cmd); } diff --git a/tests/auc/auc_test.c b/tests/auc/auc_test.c index cdbd0b7..db7edcb 100644 --- a/tests/auc/auc_test.c +++ b/tests/auc/auc_test.c @@ -454,6 +454,50 @@ comment_end(); } +static void test_gen_vectors_3g_xor(void) +{ + struct osmo_sub_auth_data aud2g; + struct osmo_sub_auth_data aud3g; + struct osmo_auth_vector vec; + int rc; + + comment_start(); + + aud2g = (struct osmo_sub_auth_data){ 0 }; + + aud3g = (struct osmo_sub_auth_data){ + .type = OSMO_AUTH_TYPE_UMTS, + .algo = OSMO_AUTH_ALG_XOR, + .u.umts.sqn = 0, + }; + + osmo_hexparse("000102030405060708090a0b0c0d0e0f", + aud3g.u.umts.k, sizeof(aud3g.u.umts.k)); + osmo_hexparse("00000000000000000000000000000000", + aud3g.u.umts.opc, sizeof(aud3g.u.umts.opc)); + next_rand("b5039c57e4a75051551d1a390a71ce48", true); + + vec = (struct osmo_auth_vector){ {0} }; + VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64); + rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL); + VERBOSE_ASSERT(rc, == 1, "%d"); + VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64); + + VEC_IS(&vec, + " rand: b5039c57e4a75051551d1a390a71ce48\n" + " autn: 54e0a256565d0000b5029e54e0a25656\n" + " ck: 029e54e0a256565d141032067cc047b5\n" + " ik: 9e54e0a256565d141032067cc047b502\n" + " res: b5029e54e0a256565d141032067cc047\n" + " res_len: 10\n" + " kc: 98e880384887f9fe\n" + " sres: 0ec81877\n" + " auth_types: 03000000\n" + ); + + comment_end(); +} + void test_gen_vectors_bad_args() { struct osmo_auth_vector vec; @@ -622,6 +666,7 @@ test_gen_vectors_2g_only(); test_gen_vectors_2g_plus_3g(); test_gen_vectors_3g_only(); + test_gen_vectors_3g_xor(); test_gen_vectors_bad_args(); printf("Done\n"); diff --git a/tests/auc/auc_test.err b/tests/auc/auc_test.err index 0a4d9af..f83e814 100644 --- a/tests/auc/auc_test.err +++ b/tests/auc/auc_test.err @@ -217,6 +217,29 @@ ===== test_gen_vectors_3g_only: SUCCESS +===== test_gen_vectors_3g_xor +aud3g.u.umts.sqn == 0 +DAUC Computing 1 auth vector: 3G only (2G derived from 3G keys) +DAUC 3G: k = 000102030405060708090a0b0c0d0e0f +DAUC 3G: opc = 00000000000000000000000000000000 +DAUC 3G: for sqn ind 0, previous sqn was 0 +DAUC vector [0]: rand = b5039c57e4a75051551d1a390a71ce48 +DAUC vector [0]: sqn = 0 +DAUC vector [0]: autn = 54e0a256565d0000b5029e54e0a25656 +DAUC vector [0]: ck = 029e54e0a256565d141032067cc047b5 +DAUC vector [0]: ik = 9e54e0a256565d141032067cc047b502 +DAUC vector [0]: res = b5029e54e0a256565d141032067cc047 +DAUC vector [0]: res_len = 16 +DAUC vector [0]: deriving 2G from 3G +DAUC vector [0]: kc = 98e880384887f9fe +DAUC vector [0]: sres = 0ec81877 +DAUC vector [0]: auth_types = 0x3 +rc == 1 +aud3g.u.umts.sqn == 0 +vector matches expectations +===== test_gen_vectors_3g_xor: SUCCESS + + ===== test_gen_vectors_bad_args - no auth data (a) diff --git a/tests/test_subscriber.vty b/tests/test_subscriber.vty index 8e9026d..d5fd958 100644 --- a/tests/test_subscriber.vty +++ b/tests/test_subscriber.vty @@ -11,6 +11,7 @@ subscriber (imsi|msisdn|id|imei) IDENT update aud2g (comp128v1|comp128v2|comp128v3|xor) ki KI subscriber (imsi|msisdn|id|imei) IDENT update aud3g none subscriber (imsi|msisdn|id|imei) IDENT update aud3g milenage k K (op|opc) OP_C [ind-bitlen] [<0-28>] + subscriber (imsi|msisdn|id|imei) IDENT update aud3g xor k K [ind-bitlen] [<0-28>] subscriber (imsi|msisdn|id|imei) IDENT update imei (none|IMEI) subscriber (imsi|msisdn|id|imei) IDENT update network-access-mode (none|cs|ps|cs+ps) @@ -266,6 +267,7 @@ OsmoHLR# subscriber imsi 123456789023000 update aud3g ? none Delete 3G authentication data milenage Use Milenage algorithm + xor Use XOR algorithm OsmoHLR# subscriber imsi 123456789023000 update aud3g milenage ? k Set Encryption Key K -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21890 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 Dec 29 17:20:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:20:50 +0000 Subject: =?UTF-8?Q?Change_in_osmo-hlr=5Brel-1=2E2=2E1=5D=3A_Bump_version=3A_1=2E2=2E0=2E1-d61b_=E2=86=92_1=2E2=2E1?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21891 ) Change subject: Bump version: 1.2.0.1-d61b ? 1.2.1 ...................................................................... Bump version: 1.2.0.1-d61b ? 1.2.1 This is to include the VTY/DB support for XOR-3G Change-Id: I8f5c94cf629613ff94e92e19d1fdc4e0ad421468 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/91/21891/1 diff --git a/debian/changelog b/debian/changelog index 1b02a20..678ab26 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-hlr (1.2.1) unstable; urgency=medium + + * support the XOR algorithm for UMTS AKA + + -- Harald Welte Tue, 29 Dec 2020 18:20:14 +0100 + osmo-hlr (1.2.0) unstable; urgency=medium [ Ruben Undheim ] -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: I8f5c94cf629613ff94e92e19d1fdc4e0ad421468 Gerrit-Change-Number: 21891 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 Dec 29 17:22:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:22:16 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 8 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 29 Dec 2020 17:22: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 Dec 29 17:22:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:22:51 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN pooling support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 ) Change subject: gbproxy: Add SGSN pooling support ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Gerrit-Change-Number: 21881 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 17:22: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 Tue Dec 29 17:23:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:23:01 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add comments to sgsn functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21888 ) Change subject: gbproxy: Add comments to sgsn functions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8c96308045112f25292b0e57c306d8486a2524cc Gerrit-Change-Number: 21888 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 17: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 Dec 29 17:25:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:25:51 +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 2: Code-Review+1 (2 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 potential of happening for every user plane packet... 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? -- 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-Comment-Date: Tue, 29 Dec 2020 17:25: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 Tue Dec 29 17:27:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:27:13 +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 2: Code-Review+1 (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 command, but I'm not sure we want to spam our logs in the tester? -- 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-Comment-Date: Tue, 29 Dec 2020 17:27: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 Dec 29 17:27:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:27:47 +0000 Subject: Change in osmo-bsc[master]: power_control: enable dynamic MS power control for osmo-bts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21887 ) Change subject: power_control: enable dynamic MS power control for osmo-bts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb453fc894584ccf4f5f8b45a24421db958e9478 Gerrit-Change-Number: 21887 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 17:27: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 Dec 29 17:27:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:27:49 +0000 Subject: Change in osmo-bsc[master]: power_control: enable dynamic MS power control for osmo-bts In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21887 ) Change subject: power_control: enable dynamic MS power control for osmo-bts ...................................................................... power_control: enable dynamic MS power control for osmo-bts Before the recent changes, the MS Power Parameters IE would always be included empty in RSL CHANnel ACTIVation messages iff the BTS type is 'osmo-bts'. Then this behavior was changed, so the user would need to enable dynamic power control explicitly. This is a regression, let's revert it back to the old behaviour. Change-Id: Idb453fc894584ccf4f5f8b45a24421db958e9478 Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M tests/power_ctrl.vty 3 files changed, 27 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 3cb479d..4d5f407 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4885,7 +4885,7 @@ X(BSC_VTY_ATTR_NEW_LCHAN), "mode (static|dyn-bts) [reset]", "Power control mode\n" - "Instruct the MS/BTS to use a static power level (default)\n" + "Instruct the MS/BTS to use a static power level\n" "Power control to be performed dynamically by the BTS itself\n" "Reset to default parameters for the given mode\n") { diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index d5a848d..747e8b7 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -504,8 +504,11 @@ } switch (bts->type) { - case GSM_BTS_TYPE_NANOBTS: case GSM_BTS_TYPE_OSMOBTS: + /* Enable dynamic Uplink power control by default */ + bts->ms_power_ctrl.mode = GSM_PWR_CTRL_MODE_DYN_BTS; + /* fall-through */ + case GSM_BTS_TYPE_NANOBTS: /* Set the default OML Stream ID to 0xff */ bts->oml_tei = 0xff; bts->c0->nominal_power = 23; diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index d58c075..bdd3d03 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -1,12 +1,19 @@ OsmoBSC> enable -OsmoBSC# ### Dynamic power control must be disabled by default +OsmoBSC# ### Default configuration OsmoBSC# show running-config ... bs-power-control mode static ms-power-control - mode static + mode dyn-bts + 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 @@ -48,7 +55,7 @@ mode static bs-power static 6 ms-power-control - mode static + mode dyn-bts ... !bs-power OsmoBSC(config-bs-power-ctrl)# ### Check default BS Power Parameters @@ -66,7 +73,7 @@ rxqual-thresh-comp lower 5 7 upper 15 18 no rxqual-avg ms-power-control - mode static + mode dyn-bts ... OsmoBSC(config-bs-power-ctrl)# bs-power dyn-max 30 @@ -77,7 +84,7 @@ bs-power dyn-max 30 ... !bs-power ms-power-control - mode static + mode dyn-bts ... !bs-power OsmoBSC(config-bs-power-ctrl)# exit @@ -97,19 +104,11 @@ . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> OsmoBSC(config-ms-power-ctrl)# ### Check default MS Power Parameters -OsmoBSC(config-ms-power-ctrl)# mode dyn-bts OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control mode dyn-bts - bs-power dyn-max 30 - 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 step-size inc 4 red 2 @@ -230,7 +229,7 @@ OsmoBSC(config-bs-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control -OsmoBSC(config-ms-power-ctrl)# mode static reset +OsmoBSC(config-ms-power-ctrl)# mode dyn-bts reset % Reset to default parameters OsmoBSC(config-ms-power-ctrl)# exit @@ -239,5 +238,12 @@ bs-power-control mode static ms-power-control - mode static + mode dyn-bts + 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/+/21887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb453fc894584ccf4f5f8b45a24421db958e9478 Gerrit-Change-Number: 21887 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 Tue Dec 29 17:28:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:28:14 +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+1 -- 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: Tue, 29 Dec 2020 17:28: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 Dec 29 17:28:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:28:43 +0000 Subject: Change in libosmocore[master]: Declare osmo_ctx_init() in talloc.h In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21884 ) Change subject: Declare osmo_ctx_init() in talloc.h ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie710ca9ad01d3fadb9f4ff344a55d6c01004727b Gerrit-Change-Number: 21884 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 17:28: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 Dec 29 17:28:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:28:47 +0000 Subject: Change in libosmocore[master]: Declare osmo_ctx_init() in talloc.h In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21884 ) Change subject: Declare osmo_ctx_init() in talloc.h ...................................................................... Declare osmo_ctx_init() in talloc.h This function is called automatically on the main thread, but needs to ba called explicitly in order to run the select loop on another thread. Make it available for applications through talloc.h Change-Id: Ie710ca9ad01d3fadb9f4ff344a55d6c01004727b --- M include/osmocom/core/talloc.h 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Hoernchen: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/core/talloc.h b/include/osmocom/core/talloc.h index c68a56c..f15cd2a 100644 --- a/include/osmocom/core/talloc.h +++ b/include/osmocom/core/talloc.h @@ -25,3 +25,5 @@ * to the various _c functions like msgb_alloc_c() */ #define OTC_GLOBAL (osmo_ctx->global) #define OTC_SELECT (osmo_ctx->select) + +int osmo_ctx_init(const char *id); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie710ca9ad01d3fadb9f4ff344a55d6c01004727b Gerrit-Change-Number: 21884 Gerrit-PatchSet: 1 Gerrit-Owner: daniel 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 Tue Dec 29 17:30:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:30:38 +0000 Subject: Change in osmo-bsc[master]: Add a bts_model->bts_init() and trx_init() call-back function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21825 ) Change subject: Add a bts_model->bts_init() and trx_init() call-back function ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts.c File src/osmo-bsc/bts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21825/1/src/osmo-bsc/bts.c at 498 PS1, Line 498: if (model->start && !model->started) { > Is it expected that we first call .start() and then . [?] the start function is a start function of the _model_. It should probably be converted to a __constructor__. So yes, the model must be initialized and/or started befor you can create/init/start a BTS of that model, I see no logic problem. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icbad9cdc12221c9ad997267d77e5414edcbac538 Gerrit-Change-Number: 21825 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 17:30:38 +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 Dec 29 17:30:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:30:53 +0000 Subject: Change in osmo-bsc[master]: Add a bts_model->bts_init() and trx_init() call-back function In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21825 ) Change subject: Add a bts_model->bts_init() and trx_init() call-back function ...................................................................... Add a bts_model->bts_init() and trx_init() call-back function This allows a given BTS model driver to initialize data structures specific cor this BTS instance (or a TRX for this BTS instance). Change-Id: Icbad9cdc12221c9ad997267d77e5414edcbac538 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bts.c M src/osmo-bsc/bts_trx.c 3 files changed, 28 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: 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 7d070af..aef0e03 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -178,7 +178,15 @@ const char *name; bool started; + /* start the model itself */ int (*start)(struct gsm_network *net); + + /* initialize a single BTS for this model */ + int (*bts_init)(struct gsm_bts *bts); + + /* initialize a single TRX for this model */ + int (*trx_init)(struct gsm_bts_trx *trx); + int (*oml_rcvmsg)(struct msgb *msg); char * (*oml_status)(const struct gsm_bts *bts); diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 747e8b7..39122ae 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -503,6 +503,19 @@ model->started = true; } + if (model->bts_init) { + int rc = model->bts_init(bts); + if (rc < 0) + return rc; + } + + /* handle those TRX which are already allocated at the time we set the type */ + if (model->trx_init) { + struct gsm_bts_trx *trx; + llist_for_each_entry(trx, &bts->trx_list, list) + model->trx_init(trx); + } + switch (bts->type) { case GSM_BTS_TYPE_OSMOBTS: /* Enable dynamic Uplink power control by default */ diff --git a/src/osmo-bsc/bts_trx.c b/src/osmo-bsc/bts_trx.c index 0e52238..6d98929 100644 --- a/src/osmo-bsc/bts_trx.c +++ b/src/osmo-bsc/bts_trx.c @@ -120,6 +120,13 @@ if (trx->nr != 0) trx->nominal_power = bts->c0->nominal_power; + if (bts->model && bts->model->trx_init) { + if (bts->model->trx_init(trx) < 0) { + talloc_free(trx); + return NULL; + } + } + llist_add_tail(&trx->list, &bts->trx_list); return trx; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icbad9cdc12221c9ad997267d77e5414edcbac538 Gerrit-Change-Number: 21825 Gerrit-PatchSet: 2 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 Tue Dec 29 17:30:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:30:53 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: make om2k_mo_name() an exported function In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21826 ) Change subject: abis_om2000: make om2k_mo_name() an exported function ...................................................................... abis_om2000: make om2k_mo_name() an exported function Change-Id: Idb05bcad8059ab2b2be6c7057495d0279a4b62c7 --- M include/osmocom/bsc/abis_om2000.h M src/osmo-bsc/abis_om2000.c 2 files changed, 22 insertions(+), 20 deletions(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/bsc/abis_om2000.h b/include/osmocom/bsc/abis_om2000.h index 0d48c0c..58c07c4 100644 --- a/include/osmocom/bsc/abis_om2000.h +++ b/include/osmocom/bsc/abis_om2000.h @@ -130,4 +130,6 @@ struct vty; void abis_om2k_config_write_bts(struct vty *vty, struct gsm_bts *bts); +const char *abis_om2k_mo_name(const struct abis_om2k_mo *mo); + #endif /* OPENBCS_ABIS_OM2K_H */ diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index a1eed5b..151ecdf 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -849,7 +849,7 @@ return abis_om2k_msg_tlv_parse(&odm->tp, o2h); } -static char *om2k_mo_name(const struct abis_om2k_mo *mo) +const char *abis_om2k_mo_name(const struct abis_om2k_mo *mo) { static char mo_buf[64]; @@ -1042,7 +1042,7 @@ trx = gsm_bts_trx_num(bts, o2h->mo.inst); if (!trx) { LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to " - "non-existing TRX\n", om2k_mo_name(&o2h->mo)); + "non-existing TRX\n", abis_om2k_mo_name(&o2h->mo)); return -ENODEV; } msg->dst = trx->oml_link; @@ -1052,7 +1052,7 @@ trx = gsm_bts_trx_num(bts, o2h->mo.assoc_so); if (!trx) { LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to " - "non-existing TRX\n", om2k_mo_name(&o2h->mo)); + "non-existing TRX\n", abis_om2k_mo_name(&o2h->mo)); return -ENODEV; } msg->dst = trx->oml_link; @@ -1111,7 +1111,7 @@ o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); fill_om2k_hdr(o2k, mo, msg_type); - DEBUGP(DNM, "Tx MO=%s %s\n", om2k_mo_name(mo), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), get_value_string(om2k_msgcode_vals, msg_type)); return abis_om2k_sendmsg(bts, msg); @@ -1168,7 +1168,7 @@ msgb_tv_put(msg, OM2K_DEI_OP_INFO, operational); - DEBUGP(DNM, "Tx MO=%s %s\n", om2k_mo_name(mo), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), get_value_string(om2k_msgcode_vals, OM2K_MSGT_OP_INFO)); /* we update the state here... and send the signal at ACK */ @@ -1240,7 +1240,7 @@ talloc_free(cg); DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&bts->rbs2000.is.om2k_mo.addr), + abis_om2k_mo_name(&bts->rbs2000.is.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_IS_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1290,7 +1290,7 @@ OM2K_MSGT_CON_CONF_REQ); DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&bts->rbs2000.con.om2k_mo.addr), + abis_om2k_mo_name(&bts->rbs2000.con.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_CON_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1319,7 +1319,7 @@ fill_om2k_hdr(o2k, &bts->rbs2000.mctr.om2k_mo.addr, OM2K_MSGT_MCTR_CONF_REQ); DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&bts->rbs2000.mctr.om2k_mo.addr), + abis_om2k_mo_name(&bts->rbs2000.mctr.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_MCTR_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1409,7 +1409,7 @@ sizeof(fs_offset_undef), fs_offset_undef); DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&bts->rbs2000.tf.om2k_mo.addr), + abis_om2k_mo_name(&bts->rbs2000.tf.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_TF_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1606,7 +1606,7 @@ } DEBUGP(DNM, "Tx MO=%s %s\n", - om2k_mo_name(&mo), + abis_om2k_mo_name(&mo), get_value_string(om2k_msgcode_vals, OM2K_MSGT_TS_CONF_REQ)); return abis_om2k_sendmsg(ts->trx->bts, msg); @@ -2598,7 +2598,7 @@ msgb_tlv_put(msg, OM2K_DEI_NEGOT_REC2, len, data); - DEBUGP(DNM, "Tx MO=%s %s\n", om2k_mo_name(mo), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), get_value_string(om2k_msgcode_vals, OM2K_MSGT_NEGOT_REQ_ACK)); return abis_om2k_sendmsg(bts, msg); @@ -2720,7 +2720,7 @@ uint16_t msg_type = ntohs(o2h->msg_type); struct tlv_parsed tp; - LOGP(DNM, LOGL_ERROR, "Rx MO=%s %s", om2k_mo_name(&o2h->mo), + LOGP(DNM, LOGL_ERROR, "Rx MO=%s %s", abis_om2k_mo_name(&o2h->mo), get_value_string(om2k_msgcode_vals, msg_type)); abis_om2k_msg_tlv_parse(&tp, o2h); @@ -2746,7 +2746,7 @@ mo_state = *TLVP_VAL(&odm->tp, OM2K_DEI_MO_STATE); LOGP(DNM, LOGL_DEBUG, "Rx MO=%s %s, MO State: %s\n", - om2k_mo_name(&odm->o2h.mo), + abis_om2k_mo_name(&odm->o2h.mo), get_value_string(om2k_msgcode_vals, odm->msg_type), get_value_string(om2k_mostate_vals, mo_state)); @@ -2756,7 +2756,7 @@ && mo_state != OM2K_MO_S_ENABLED) { LOGP(DNM, LOGL_ERROR, "Rx MO=%s %s Failed to enable MO State!\n", - om2k_mo_name(&odm->o2h.mo), + abis_om2k_mo_name(&odm->o2h.mo), get_value_string(om2k_msgcode_vals, odm->msg_type)); } @@ -2797,7 +2797,7 @@ } sprintf(string + strlen(string), ")\n"); - DEBUGP(DNM, "Rx MO=%s %s", om2k_mo_name(mo), string); + DEBUGP(DNM, "Rx MO=%s %s", abis_om2k_mo_name(mo), string); return true; } @@ -2828,7 +2828,7 @@ src_len--; if (msg_code != OM2K_MSGT_FAULT_REP) { LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault report: invalid message code!\n", - om2k_mo_name(mo)); + abis_om2k_mo_name(mo)); return; } @@ -2844,7 +2844,7 @@ if (tlv_count >= 11) { LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault Report: too many tlv elements!\n", - om2k_mo_name(mo)); + abis_om2k_mo_name(mo)); return; } @@ -2856,7 +2856,7 @@ else { LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault Report: invalid tlv element!\n", - om2k_mo_name(mo)); + abis_om2k_mo_name(mo)); return; } @@ -2884,7 +2884,7 @@ if (!faults_present) { DEBUGP(DNM, "Rx MO=%s Fault Report: All faults ceased!\n", - om2k_mo_name(mo)); + abis_om2k_mo_name(mo)); } } @@ -2920,7 +2920,7 @@ return -EINVAL; } - DEBUGP(DNM, "Rx MO=%s %s (%s)\n", om2k_mo_name(&o2h->mo), + DEBUGP(DNM, "Rx MO=%s %s (%s)\n", abis_om2k_mo_name(&o2h->mo), get_value_string(om2k_msgcode_vals, msg_type), osmo_hexdump(msg->l2h, msgb_l2len(msg))); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idb05bcad8059ab2b2be6c7057495d0279a4b62c7 Gerrit-Change-Number: 21826 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 Tue Dec 29 17:30:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:30:53 +0000 Subject: Change in osmo-bsc[master]: [cosmetic] abis_om2000: Re-format to use longer lines In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21827 ) Change subject: [cosmetic] abis_om2000: Re-format to use longer lines ...................................................................... [cosmetic] abis_om2000: Re-format to use longer lines For several years now we are using line lengths longer than 80chars, let's re-format this code more in-line with our new style. Change-Id: I8143280358c0e23ca7e32b882e952eac991e105b --- M src/osmo-bsc/abis_om2000.c 1 file changed, 97 insertions(+), 188 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/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index 151ecdf..8c2d859 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -861,8 +861,7 @@ } /* resolve the gsm_nm_state data structure for a given MO */ -static struct gsm_nm_state * -mo2nm_state(struct gsm_bts *bts, const struct abis_om2k_mo *mo) +static struct gsm_nm_state *mo2nm_state(struct gsm_bts *bts, const struct abis_om2k_mo *mo) { struct gsm_bts_trx *trx; struct gsm_nm_state *nm_state = NULL; @@ -945,8 +944,7 @@ return NULL; } -static void update_mo_state(struct gsm_bts *bts, struct abis_om2k_mo *mo, - uint8_t mo_state) +static void update_mo_state(struct gsm_bts *bts, struct abis_om2k_mo *mo, uint8_t mo_state) { struct gsm_nm_state *nm_state = mo2nm_state(bts, mo); struct gsm_nm_state new_state; @@ -998,8 +996,7 @@ nm_state->availability = new_state.availability; } -static void update_op_state(struct gsm_bts *bts, const struct abis_om2k_mo *mo, - uint8_t op_state) +static void update_op_state(struct gsm_bts *bts, const struct abis_om2k_mo *mo, uint8_t op_state) { struct gsm_nm_state *nm_state = mo2nm_state(bts, mo); struct gsm_nm_state new_state; @@ -1041,8 +1038,8 @@ /* Route through per-TRX OML Link to the appropriate TRX */ trx = gsm_bts_trx_num(bts, o2h->mo.inst); if (!trx) { - LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to " - "non-existing TRX\n", abis_om2k_mo_name(&o2h->mo)); + LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to non-existing TRX\n", + abis_om2k_mo_name(&o2h->mo)); return -ENODEV; } msg->dst = trx->oml_link; @@ -1051,8 +1048,8 @@ /* Route through per-TRX OML Link to the appropriate TRX */ trx = gsm_bts_trx_num(bts, o2h->mo.assoc_so); if (!trx) { - LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to " - "non-existing TRX\n", abis_om2k_mo_name(&o2h->mo)); + LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to non-existing TRX\n", + abis_om2k_mo_name(&o2h->mo)); return -ENODEV; } msg->dst = trx->oml_link; @@ -1066,8 +1063,7 @@ return _abis_nm_sendmsg(msg); } -static void fill_om2k_hdr(struct abis_om2k_hdr *o2h, const struct abis_om2k_mo *mo, - uint16_t msg_type) +static void fill_om2k_hdr(struct abis_om2k_hdr *o2h, const struct abis_om2k_mo *mo, uint16_t msg_type) { o2h->om.mdisc = ABIS_OM_MDISC_FOM; o2h->om.placement = ABIS_OM_PLACEMENT_ONLY; @@ -1085,8 +1081,7 @@ struct tm *tm; o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.cf.om2k_mo.addr, - OM2K_MSGT_CAL_TIME_RESP); + fill_om2k_hdr(o2k, &bts->rbs2000.cf.om2k_mo.addr, OM2K_MSGT_CAL_TIME_RESP); tm_t = time(NULL); tm = localtime(&tm_t); @@ -1102,8 +1097,7 @@ return abis_om2k_sendmsg(bts, msg); } -static int abis_om2k_tx_simple(struct gsm_bts *bts, const struct abis_om2k_mo *mo, - uint16_t msg_type) +static int abis_om2k_tx_simple(struct gsm_bts *bts, const struct abis_om2k_mo *mo, uint16_t msg_type) { struct msgb *msg = om2k_msgb_alloc(); struct abis_om2k_hdr *o2k; @@ -1111,8 +1105,7 @@ o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); fill_om2k_hdr(o2k, mo, msg_type); - DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), - get_value_string(om2k_msgcode_vals, msg_type)); + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(mo), get_value_string(om2k_msgcode_vals, msg_type)); return abis_om2k_sendmsg(bts, msg); } @@ -1157,8 +1150,7 @@ return abis_om2k_tx_simple(bts, mo, OM2K_MSGT_DISABLE_REQ); } -int abis_om2k_tx_op_info(struct gsm_bts *bts, const struct abis_om2k_mo *mo, - uint8_t operational) +int abis_om2k_tx_op_info(struct gsm_bts *bts, const struct abis_om2k_mo *mo, uint8_t operational) { struct msgb *msg = om2k_msgb_alloc(); struct abis_om2k_hdr *o2k; @@ -1228,19 +1220,16 @@ om2k_fill_is_conn_grp(&cg[i++], grp->icp1, grp->icp2, grp->ci); o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.is.om2k_mo.addr, - OM2K_MSGT_IS_CONF_REQ); + fill_om2k_hdr(o2k, &bts->rbs2000.is.om2k_mo.addr, OM2K_MSGT_IS_CONF_REQ); msgb_tv_put(msg, OM2K_DEI_LIST_NR, 1); msgb_tv_put(msg, OM2K_DEI_END_LIST_NR, 1); - msgb_tlv_put(msg, OM2K_DEI_IS_CONN_LIST, - num_grps * sizeof(*cg), (uint8_t *)cg); + msgb_tlv_put(msg, OM2K_DEI_IS_CONN_LIST, num_grps * sizeof(*cg), (uint8_t *)cg); talloc_free(cg); - DEBUGP(DNM, "Tx MO=%s %s\n", - abis_om2k_mo_name(&bts->rbs2000.is.om2k_mo.addr), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(&bts->rbs2000.is.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_IS_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1286,11 +1275,9 @@ /* pre-pend the OM2K header */ o2k = (struct abis_om2k_hdr *) msgb_push(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.con.om2k_mo.addr, - OM2K_MSGT_CON_CONF_REQ); + fill_om2k_hdr(o2k, &bts->rbs2000.con.om2k_mo.addr, OM2K_MSGT_CON_CONF_REQ); - DEBUGP(DNM, "Tx MO=%s %s\n", - abis_om2k_mo_name(&bts->rbs2000.con.om2k_mo.addr), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(&bts->rbs2000.con.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_CON_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1316,17 +1303,14 @@ /* pre-pend the OM2K header */ o2k = (struct abis_om2k_hdr *) msgb_push(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.mctr.om2k_mo.addr, - OM2K_MSGT_MCTR_CONF_REQ); - DEBUGP(DNM, "Tx MO=%s %s\n", - abis_om2k_mo_name(&bts->rbs2000.mctr.om2k_mo.addr), + fill_om2k_hdr(o2k, &bts->rbs2000.mctr.om2k_mo.addr, OM2K_MSGT_MCTR_CONF_REQ); + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(&bts->rbs2000.mctr.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_MCTR_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); } -static void om2k_trx_to_mo(struct abis_om2k_mo *mo, - const struct gsm_bts_trx *trx, +static void om2k_trx_to_mo(struct abis_om2k_mo *mo, const struct gsm_bts_trx *trx, enum abis_om2k_mo_cls cls) { mo->class = cls; @@ -1335,8 +1319,7 @@ mo->assoc_so = 255; } -static void om2k_ts_to_mo(struct abis_om2k_mo *mo, - const struct gsm_bts_trx_ts *ts) +static void om2k_ts_to_mo(struct abis_om2k_mo *mo, const struct gsm_bts_trx_ts *ts) { mo->class = OM2K_MO_CLS_TS; mo->bts = 0; @@ -1400,16 +1383,13 @@ struct abis_om2k_hdr *o2k; o2k = (struct abis_om2k_hdr *) msgb_put(msg, sizeof(*o2k)); - fill_om2k_hdr(o2k, &bts->rbs2000.tf.om2k_mo.addr, - OM2K_MSGT_TF_CONF_REQ); + fill_om2k_hdr(o2k, &bts->rbs2000.tf.om2k_mo.addr, OM2K_MSGT_TF_CONF_REQ); msgb_tv_put(msg, OM2K_DEI_TF_MODE, OM2K_TF_MODE_STANDALONE); msgb_tv_put(msg, OM2K_DEI_TF_SYNC_SRC, 0x00); - msgb_tv_fixed_put(msg, OM2K_DEI_FS_OFFSET, - sizeof(fs_offset_undef), fs_offset_undef); + msgb_tv_fixed_put(msg, OM2K_DEI_FS_OFFSET, sizeof(fs_offset_undef), fs_offset_undef); - DEBUGP(DNM, "Tx MO=%s %s\n", - abis_om2k_mo_name(&bts->rbs2000.tf.om2k_mo.addr), + DEBUGP(DNM, "Tx MO=%s %s\n", abis_om2k_mo_name(&bts->rbs2000.tf.om2k_mo.addr), get_value_string(om2k_msgcode_vals, OM2K_MSGT_TF_CONF_REQ)); return abis_om2k_sendmsg(bts, msg); @@ -1438,10 +1418,8 @@ static uint8_t ts2comb(struct gsm_bts_trx_ts *ts) { if (ts->pchan_on_init == GSM_PCHAN_TCH_F_PDCH) { - LOGP(DNM, LOGL_ERROR, "%s pchan %s not intended for use" - " with OM2000, use %s instead\n", - gsm_ts_and_pchan_name(ts), - gsm_pchan_name(GSM_PCHAN_TCH_F_PDCH), + LOGP(DNM, LOGL_ERROR, "%s pchan %s not intended for use with OM2000, use %s instead\n", + gsm_ts_and_pchan_name(ts), gsm_pchan_name(GSM_PCHAN_TCH_F_PDCH), gsm_pchan_name(GSM_PCHAN_TCH_F_TCH_H_PDCH)); /* If we allowed initialization of TCH/F_PDCH, it would fail * when we try to send the ip.access specific RSL PDCH Act @@ -1676,20 +1654,17 @@ switch (omfp->mo->addr.class) { case OM2K_MO_CLS_CF: /* no Connect required, is always connected */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_start_req(omfp->trx->bts, &omfp->mo->addr); break; case OM2K_MO_CLS_TRXC: /* no Connect required, start with Reset */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_RES_COMPL, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_RES_COMPL, OM2K_TIMEOUT, 0); abis_om2k_tx_reset_cmd(omfp->trx->bts, &omfp->mo->addr); break; default: /* start with Connect */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_CONN_COMPL, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_CONN_COMPL, OM2K_TIMEOUT, 0); abis_om2k_tx_connect_cmd(omfp->trx->bts, &omfp->mo->addr); break; } @@ -1703,14 +1678,12 @@ #if 0 case OM2K_MO_CLS_TF: /* skip the reset, hope that helps */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_start_req(omfp->trx->bts, &omfp->mo->addr); break; #endif default: - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_RES_COMPL, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_RES_COMPL, OM2K_TIMEOUT, 0); abis_om2k_tx_reset_cmd(omfp->trx->bts, &omfp->mo->addr); break; } @@ -1720,8 +1693,7 @@ { struct om2k_mo_fsm_priv *omfp = fi->priv; - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_start_req(omfp->trx->bts, &omfp->mo->addr); } @@ -1731,8 +1703,7 @@ switch (omd->msg_type) { case OM2K_MSGT_START_REQ_ACK: - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_RES, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_START_RES, OM2K_TIMEOUT, 0); break; case OM2K_MSGT_START_REQ_REJ: osmo_fsm_inst_state_chg(fi, OM2K_ST_ERROR, 0, 0); @@ -1749,21 +1720,18 @@ case OM2K_MO_CLS_CF: case OM2K_MO_CLS_TRXC: /* Transition directly to Operational Info */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_OPINFO_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_OPINFO_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_op_info(omfp->trx->bts, &omfp->mo->addr, 1); return; case OM2K_MO_CLS_DP: /* Transition directory to WAIT_ENABLE_ACCEPT */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_enable_req(omfp->trx->bts, &omfp->mo->addr); return; #if 0 case OM2K_MO_CLS_TF: /* skip the config, hope that helps speeding things up */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_enable_req(omfp->trx->bts, &omfp->mo->addr); return; #endif @@ -1826,8 +1794,7 @@ return; } - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_enable_req(omfp->trx->bts, &omfp->mo->addr); } @@ -1841,11 +1808,9 @@ osmo_fsm_inst_state_chg(fi, OM2K_ST_ERROR, 0, 0); break; case OM2K_MSGT_ENABLE_REQ_ACK: - if (omfp->mo->addr.class == OM2K_MO_CLS_IS && - omfp->trx->bts->rbs2000.use_superchannel) + if (omfp->mo->addr.class == OM2K_MO_CLS_IS && omfp->trx->bts->rbs2000.use_superchannel) e1inp_ericsson_set_altc(omfp->trx->bts->oml_link->ts->line, 1); - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_RES, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_RES, OM2K_TIMEOUT, 0); } } @@ -1855,8 +1820,7 @@ //struct om2k_decoded_msg *omd = data; /* TODO: check if state is actually enabled now? */ - osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_OPINFO_ACCEPT, - OM2K_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_OPINFO_ACCEPT, OM2K_TIMEOUT, 0); abis_om2k_tx_op_info(omfp->trx->bts, &omfp->mo->addr, 1); } @@ -2029,25 +1993,21 @@ switch (odm->msg_type) { case OM2K_MSGT_CONNECT_COMPL: case OM2K_MSGT_CONNECT_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_CONN_COMPL, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_CONN_COMPL, odm); break; case OM2K_MSGT_RESET_COMPL: case OM2K_MSGT_RESET_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_RESET_COMPL, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_RESET_COMPL, odm); break; case OM2K_MSGT_START_REQ_ACK: case OM2K_MSGT_START_REQ_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_START_REQ_ACCEPT, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_START_REQ_ACCEPT, odm); break; case OM2K_MSGT_START_RES: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_START_RES, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_START_RES, odm); break; case OM2K_MSGT_CON_CONF_REQ_ACK: @@ -2057,8 +2017,7 @@ case OM2K_MSGT_TF_CONF_REQ_ACK: case OM2K_MSGT_TS_CONF_REQ_ACK: case OM2K_MSGT_TX_CONF_REQ_ACK: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_CFG_REQ_ACCEPT, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_CFG_REQ_ACCEPT, odm); break; case OM2K_MSGT_CON_CONF_RES: @@ -2068,24 +2027,20 @@ case OM2K_MSGT_TF_CONF_RES: case OM2K_MSGT_TS_CONF_RES: case OM2K_MSGT_TX_CONF_RES: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_CFG_RES, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_CFG_RES, odm); break; case OM2K_MSGT_ENABLE_REQ_ACK: case OM2K_MSGT_ENABLE_REQ_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_ENA_REQ_ACCEPT, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_ENA_REQ_ACCEPT, odm); break; case OM2K_MSGT_ENABLE_RES: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_ENA_RES, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_ENA_RES, odm); break; case OM2K_MSGT_OP_INFO_ACK: case OM2K_MSGT_OP_INFO_REJ: - osmo_fsm_inst_dispatch(mo->fsm, - OM2K_MO_EVT_RX_OPINFO_ACC, odm); + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_RX_OPINFO_ACC, odm); break; default: return -1; @@ -2138,10 +2093,8 @@ struct om2k_trx_fsm_priv *otfp = fi->priv; /* 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); + 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); } static void om2k_trx_s_wait_trxc(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2149,10 +2102,8 @@ struct om2k_trx_fsm_priv *otfp = fi->priv; /* 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); + 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); } static void om2k_trx_s_wait_tx(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2160,10 +2111,8 @@ struct om2k_trx_fsm_priv *otfp = fi->priv; /* 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); + 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); } static void om2k_trx_s_wait_rx(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2172,12 +2121,10 @@ struct gsm_bts_trx_ts *ts; /* Initialize Timeslots after TX */ - osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_WAIT_TS, - TRX_FSM_TIMEOUT, 0); + 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(fi, OM2K_TRX_EVT_TS_DONE, otfp->trx, &ts->rbs2000.om2k_mo); } static void om2k_trx_s_wait_ts(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2193,8 +2140,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(fi, OM2K_TRX_EVT_TS_DONE, otfp->trx, &ts->rbs2000.om2k_mo); } else { /* only after all 8 TS */ osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_SEND_SI, 0, 0); @@ -2364,10 +2310,8 @@ struct gsm_bts *bts = obfp->bts; 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); + 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); } static void om2k_bts_s_wait_cf(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2378,8 +2322,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(fi, OM2K_BTS_EVT_TF_DONE, bts->c0, &bts->rbs2000.tf.om2k_mo); } static void om2k_bts_s_wait_tf(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2406,10 +2349,8 @@ 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); + 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); } static void om2k_bts_s_wait_is(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2421,13 +2362,10 @@ /* 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); + 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); } else { - osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX_LAPD, - TRX_LAPD_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX_LAPD, TRX_LAPD_TIMEOUT, 0); } } @@ -2435,8 +2373,7 @@ { OSMO_ASSERT(event == OM2K_BTS_EVT_MCTR_DONE); - osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX_LAPD, - TRX_LAPD_TIMEOUT, 0); + osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX_LAPD, TRX_LAPD_TIMEOUT, 0); } static void om2k_bts_s_wait_trx_lapd(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2446,8 +2383,7 @@ OSMO_ASSERT(event == OM2K_BTS_EVT_TRX_LAPD_UP); - osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX, - BTS_FSM_TIMEOUT, 0); + 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); @@ -2570,8 +2506,7 @@ snprintf(idbuf, sizeof(idbuf), "%u", bts->nr); - fi = osmo_fsm_inst_alloc(&om2k_bts_fsm, bts, NULL, - LOGL_DEBUG, idbuf); + 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); @@ -2725,13 +2660,11 @@ abis_om2k_msg_tlv_parse(&tp, o2h); if (TLVP_PRESENT(&tp, OM2K_DEI_REASON_CODE)) - LOGPC(DNM, LOGL_ERROR, ", Reason 0x%02x", - *TLVP_VAL(&tp, OM2K_DEI_REASON_CODE)); + LOGPC(DNM, LOGL_ERROR, ", Reason 0x%02x", *TLVP_VAL(&tp, OM2K_DEI_REASON_CODE)); if (TLVP_PRESENT(&tp, OM2K_DEI_RESULT_CODE)) LOGPC(DNM, LOGL_ERROR, ", Result %s", - get_value_string(om2k_result_strings, - *TLVP_VAL(&tp, OM2K_DEI_RESULT_CODE))); + get_value_string(om2k_result_strings, *TLVP_VAL(&tp, OM2K_DEI_RESULT_CODE))); LOGPC(DNM, LOGL_ERROR, "\n"); return 0; @@ -2745,8 +2678,7 @@ return -EIO; mo_state = *TLVP_VAL(&odm->tp, OM2K_DEI_MO_STATE); - LOGP(DNM, LOGL_DEBUG, "Rx MO=%s %s, MO State: %s\n", - abis_om2k_mo_name(&odm->o2h.mo), + LOGP(DNM, LOGL_DEBUG, "Rx MO=%s %s, MO State: %s\n", abis_om2k_mo_name(&odm->o2h.mo), get_value_string(om2k_msgcode_vals, odm->msg_type), get_value_string(om2k_mostate_vals, mo_state)); @@ -2754,10 +2686,8 @@ * not yield an enabled mo-state */ if (odm->msg_type == OM2K_MSGT_ENABLE_RES && mo_state != OM2K_MO_S_ENABLED) { - LOGP(DNM, LOGL_ERROR, - "Rx MO=%s %s Failed to enable MO State!\n", - abis_om2k_mo_name(&odm->o2h.mo), - get_value_string(om2k_msgcode_vals, odm->msg_type)); + LOGP(DNM, LOGL_ERROR, "Rx MO=%s %s Failed to enable MO State!\n", + abis_om2k_mo_name(&odm->o2h.mo), get_value_string(om2k_msgcode_vals, odm->msg_type)); } update_mo_state(bts, &odm->o2h.mo, mo_state); @@ -2827,8 +2757,7 @@ src++; src_len--; if (msg_code != OM2K_MSGT_FAULT_REP) { - LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault report: invalid message code!\n", - abis_om2k_mo_name(mo)); + LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault report: invalid message code!\n", abis_om2k_mo_name(mo)); return; } @@ -2842,20 +2771,17 @@ /* Bail if an the maximum number of TLV fields * have been parsed */ if (tlv_count >= 11) { - LOGP(DNM, LOGL_ERROR, - "Rx MO=%s Fault Report: too many tlv elements!\n", + LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault Report: too many tlv elements!\n", abis_om2k_mo_name(mo)); return; } /* Parse TLV field */ - rc = tlv_parse_one(&tag, &tag_len, &val, &om2k_att_tlvdef, - src + src_pos, src_len - src_pos); + rc = tlv_parse_one(&tag, &tag_len, &val, &om2k_att_tlvdef, src + src_pos, src_len - src_pos); if (rc > 0) src_pos += rc; else { - LOGP(DNM, LOGL_ERROR, - "Rx MO=%s Fault Report: invalid tlv element!\n", + LOGP(DNM, LOGL_ERROR, "Rx MO=%s Fault Report: invalid tlv element!\n", abis_om2k_mo_name(mo)); return; } @@ -2883,8 +2809,7 @@ } if (!faults_present) { - DEBUGP(DNM, "Rx MO=%s Fault Report: All faults ceased!\n", - abis_om2k_mo_name(mo)); + DEBUGP(DNM, "Rx MO=%s Fault Report: All faults ceased!\n", abis_om2k_mo_name(mo)); } } @@ -2901,28 +2826,24 @@ /* Various consistency checks */ if (oh->placement != ABIS_OM_PLACEMENT_ONLY) { - LOGP(DNM, LOGL_ERROR, "ABIS OML placement 0x%x not supported\n", - oh->placement); + LOGP(DNM, LOGL_ERROR, "ABIS OML placement 0x%x not supported\n", oh->placement); if (oh->placement != ABIS_OM_PLACEMENT_FIRST) return -EINVAL; } if (oh->sequence != 0) { - LOGP(DNM, LOGL_ERROR, "ABIS OML sequence 0x%x != 0x00\n", - oh->sequence); + LOGP(DNM, LOGL_ERROR, "ABIS OML sequence 0x%x != 0x00\n", oh->sequence); return -EINVAL; } msg->l3h = (unsigned char *)o2h + sizeof(*o2h); if (oh->mdisc != ABIS_OM_MDISC_FOM) { - LOGP(DNM, LOGL_ERROR, "unknown ABIS OM2000 message discriminator 0x%x\n", - oh->mdisc); + LOGP(DNM, LOGL_ERROR, "unknown ABIS OM2000 message discriminator 0x%x\n", oh->mdisc); return -EINVAL; } DEBUGP(DNM, "Rx MO=%s %s (%s)\n", abis_om2k_mo_name(&o2h->mo), - get_value_string(om2k_msgcode_vals, msg_type), - osmo_hexdump(msg->l2h, msgb_l2len(msg))); + get_value_string(om2k_msgcode_vals, msg_type), osmo_hexdump(msg->l2h, msgb_l2len(msg))); om2k_decode_msg(&odm, msg); @@ -3007,14 +2928,12 @@ mo = get_om2k_mo(bts, &o2h->mo); if (!mo) { LOGP(DNM, LOGL_ERROR, "Couldn't resolve MO for OM2K msg " - "%s: %s\n", get_value_string(om2k_msgcode_vals, msg_type), - msgb_hexdump(msg)); + "%s: %s\n", get_value_string(om2k_msgcode_vals, msg_type), msgb_hexdump(msg)); return 0; } if (!mo->fsm) { LOGP(DNM, LOGL_ERROR, "MO object should not generate any message. fsm == NULL " - "%s: %s\n", get_value_string(om2k_msgcode_vals, msg_type), - msgb_hexdump(msg)); + "%s: %s\n", get_value_string(om2k_msgcode_vals, msg_type), msgb_hexdump(msg)); return 0; } @@ -3025,8 +2944,7 @@ return rc; } -static void om2k_mo_init(struct om2k_mo *mo, uint8_t class, - uint8_t bts_nr, uint8_t assoc_so, uint8_t inst) +static void om2k_mo_init(struct om2k_mo *mo, uint8_t class, uint8_t bts_nr, uint8_t assoc_so, uint8_t inst) { mo->addr.class = class; mo->addr.bts = bts_nr; @@ -3042,17 +2960,13 @@ OSMO_ASSERT(bts->type == GSM_BTS_TYPE_RBS2000); - om2k_mo_init(&trx->rbs2000.trxc.om2k_mo, OM2K_MO_CLS_TRXC, - bts->nr, 255, trx->nr); - om2k_mo_init(&trx->rbs2000.tx.om2k_mo, OM2K_MO_CLS_TX, - bts->nr, 255, trx->nr); - om2k_mo_init(&trx->rbs2000.rx.om2k_mo, OM2K_MO_CLS_RX, - bts->nr, 255, trx->nr); + om2k_mo_init(&trx->rbs2000.trxc.om2k_mo, OM2K_MO_CLS_TRXC, bts->nr, 255, trx->nr); + om2k_mo_init(&trx->rbs2000.tx.om2k_mo, OM2K_MO_CLS_TX, bts->nr, 255, trx->nr); + om2k_mo_init(&trx->rbs2000.rx.om2k_mo, OM2K_MO_CLS_RX, bts->nr, 255, trx->nr); 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_init(&ts->rbs2000.om2k_mo, OM2K_MO_CLS_TS, bts->nr, trx->nr, i); OSMO_ASSERT(ts->fi); } } @@ -3062,18 +2976,13 @@ { OSMO_ASSERT(bts->type == GSM_BTS_TYPE_RBS2000); - om2k_mo_init(&bts->rbs2000.cf.om2k_mo, OM2K_MO_CLS_CF, - bts->nr, 0xFF, 0); - om2k_mo_init(&bts->rbs2000.is.om2k_mo, OM2K_MO_CLS_IS, - bts->nr, 0xFF, 0); - om2k_mo_init(&bts->rbs2000.con.om2k_mo, OM2K_MO_CLS_CON, - bts->nr, 0xFF, 0); - 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_init(&bts->rbs2000.mctr.om2k_mo, OM2K_MO_CLS_MCTR, - bts->nr, 0xFF, 0); // FIXME: There can be multiple MCTRs ... + om2k_mo_init(&bts->rbs2000.cf.om2k_mo, OM2K_MO_CLS_CF, bts->nr, 0xFF, 0); + om2k_mo_init(&bts->rbs2000.is.om2k_mo, OM2K_MO_CLS_IS, bts->nr, 0xFF, 0); + om2k_mo_init(&bts->rbs2000.con.om2k_mo, OM2K_MO_CLS_CON, bts->nr, 0xFF, 0); + 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_init(&bts->rbs2000.mctr.om2k_mo, OM2K_MO_CLS_MCTR, bts->nr, 0xFF, 0); + // FIXME: There can be multiple MCTRs ... } static __attribute__((constructor)) void abis_om2k_init(void) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8143280358c0e23ca7e32b882e952eac991e105b Gerrit-Change-Number: 21827 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 Tue Dec 29 17:30:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:30:54 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Mark om2k_mo_fsm_start() as static In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21828 ) Change subject: abis_om2000: Mark om2k_mo_fsm_start() as static ...................................................................... abis_om2000: Mark om2k_mo_fsm_start() as static It's not used anywhere outside of the source file Change-Id: If9ebf07ac662607826270df0b0966c8dd5026f1c --- M src/osmo-bsc/abis_om2000.c 1 file changed, 2 insertions(+), 3 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/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index 8c2d859..13d3a33 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -1959,9 +1959,8 @@ .timer_cb = om2k_mo_timer_cb, }; -struct osmo_fsm_inst *om2k_mo_fsm_start(struct osmo_fsm_inst *parent, - uint32_t term_event, - struct gsm_bts_trx *trx, struct om2k_mo *mo) +static struct osmo_fsm_inst *om2k_mo_fsm_start(struct osmo_fsm_inst *parent, uint32_t term_event, + struct gsm_bts_trx *trx, struct om2k_mo *mo) { struct osmo_fsm_inst *fi; struct om2k_mo_fsm_priv *omfp; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If9ebf07ac662607826270df0b0966c8dd5026f1c Gerrit-Change-Number: 21828 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 Tue Dec 29 17:32:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:32:01 +0000 Subject: Change in osmo-bsc[master]: power_control: vty: some commands are not vendor specific In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21885 ) Change subject: power_control: vty: some commands are not vendor specific ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I43cad92ea50f819ee56101d131d0060c2f8e174f Gerrit-Change-Number: 21885 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 17:32: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 Dec 29 17:32:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:32:10 +0000 Subject: Change in osmo-bsc[master]: power_control: vty: some commands are not vendor specific In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21885 ) Change subject: power_control: vty: some commands are not vendor specific ...................................................................... power_control: vty: some commands are not vendor specific Change-Id: I43cad92ea50f819ee56101d131d0060c2f8e174f Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 2 files changed, 4 insertions(+), 6 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 4d5f407..5692646 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4881,7 +4881,6 @@ DEFUN_USRATTR(cfg_power_ctrl_mode, cfg_power_ctrl_mode_cmd, - X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | X(BSC_VTY_ATTR_NEW_LCHAN), "mode (static|dyn-bts) [reset]", "Power control mode\n" @@ -4909,7 +4908,6 @@ DEFUN_USRATTR(cfg_power_ctrl_bs_power, cfg_power_ctrl_bs_power_cmd, - X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | X(BSC_VTY_ATTR_NEW_LCHAN), "bs-power (static|dyn-max) <0-30>", "BS Power IE value to be send to the BTS\n" diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index bdd3d03..6a47154 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -29,8 +29,8 @@ OsmoBSC(config-net-bts)# bs-power-control OsmoBSC(config-bs-power-ctrl)# list with-flags ... - . lv mode (static|dyn-bts) [reset] - . lv bs-power (static|dyn-max) <0-30> + . 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> @@ -91,8 +91,8 @@ OsmoBSC(config-net-bts)# ms-power-control OsmoBSC(config-ms-power-ctrl)# list with-flags ... - . lv mode (static|dyn-bts) [reset] - . lv bs-power (static|dyn-max) <0-30> + . 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> -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I43cad92ea50f819ee56101d131d0060c2f8e174f Gerrit-Change-Number: 21885 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 Tue Dec 29 17:34:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 17:34:41 +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 1: 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: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 29 Dec 2020 17:34: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 Dec 29 17:36:47 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 29 Dec 2020 17:36:47 +0000 Subject: Change in osmo-bsc[master]: om2000: Add "show bts 0 om2k-mo" command In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21830 ) Change subject: om2000: Add "show bts 0 om2k-mo" command ...................................................................... Patch Set 2: Code-Review+1 -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 17:36: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 Dec 29 19:40:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:40:47 +0000 Subject: Change in osmo-hlr[rel-1.2.1]: test_nodes.vty: remove cruft References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21892 ) Change subject: test_nodes.vty: remove cruft ...................................................................... test_nodes.vty: remove cruft This stuff is not testing osmo-hlr specific nodes, remove. Change-Id: Ia11a209778b78ab02424e2abf3f9004fe97cf570 --- M tests/test_nodes.vty 1 file changed, 1 insertion(+), 64 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/92/21892/1 diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index a752c93..5721255 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -11,81 +11,21 @@ logp Print a message on all log outputs; useful for placing markers in test logs subscriber Subscriber management commands OsmoHLR> list - show version - show online-help - list - exit - help - enable - terminal length <0-512> - terminal no length - who - show history - logging enable ... - show logging vty - show alarms - show talloc-context (application|all) (full|brief|DEPTH) - show talloc-context (application|all) (full|brief|DEPTH) tree ADDRESS - show talloc-context (application|all) (full|brief|DEPTH) filter REGEXP - show stats - show stats level (global|peer|subscriber) - show asciidoc counters - show rate-counters show gsup-connections subscriber (imsi|msisdn|id|imei) IDENT show show subscriber (imsi|msisdn|id|imei) IDENT OsmoHLR> enable OsmoHLR# ? - help Description of the interactive help system - list Print command list - write Write running configuration to memory, network, or terminal - show Show running system information - exit Exit current mode and down to previous mode - disable Turn off privileged mode command - configure Configuration from vty interface - copy Copy configuration - terminal Set terminal line parameters - who Display who is on vty - logging Configure logging - no Negate a command or set its defaults - logp Print a message on all log outputs; useful for placing markers in test logs +... subscriber Subscriber management commands -OsmoHLR# list - help -... - exit - disable - configure terminal - copy running-config startup-config - show startup-config - show version - show online-help - terminal length <0-512> - terminal no length - who - show history - terminal monitor - terminal no monitor - logging enable -... OsmoHLR# configure terminal OsmoHLR(config)# ? ... - banner Set banner string - service Set up miscellaneous service - line Configure a terminal line - ctrl Configure the Control Interface - log Configure logging sub-system - stats Configure stats sub-system hlr Configure the HLR OsmoHLR(config)# list - help -... - exit - end ... hlr @@ -99,10 +39,7 @@ store-imei Save the IMEI in the database when receiving Check IMEI requests. Note that an MSC does not necessarily send Check IMEI requests (for OsmoMSC, you may want to set 'check-imei-rqd 1'). subscriber-create-on-demand Make a new record when a subscriber is first seen. OsmoHLR(config-hlr)# list - help ... - exit - end gsup database PATH euse NAME -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: Ia11a209778b78ab02424e2abf3f9004fe97cf570 Gerrit-Change-Number: 21892 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 Dec 29 19:40:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:40:48 +0000 Subject: =?UTF-8?Q?Change_in_osmo-hlr=5Brel-1=2E2=2E1=5D=3A_Bump_version=3A_1=2E2=2E0=2E2-3868_=E2=86=92_1=2E2=2E1?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21893 ) Change subject: Bump version: 1.2.0.2-3868 ? 1.2.1 ...................................................................... Bump version: 1.2.0.2-3868 ? 1.2.1 Patch release including support for XOR-3G Related: OS#4924 Change-Id: I9b0c4851bde641f2f818302ee41dc19cef435f80 --- M debian/changelog 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/93/21893/1 diff --git a/debian/changelog b/debian/changelog index 1b02a20..9a6ef84 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +osmo-hlr (1.2.1) unstable; urgency=medium + + [ Neels Hofmeyr ] + * test_nodes.vty: remove cruft + + [ Harald Welte ] + * support the XOR algorithm for UMTS AKA + + -- Harald Welte Tue, 29 Dec 2020 20:39:53 +0100 + osmo-hlr (1.2.0) unstable; urgency=medium [ Ruben Undheim ] -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: I9b0c4851bde641f2f818302ee41dc19cef435f80 Gerrit-Change-Number: 21893 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 Dec 29 19:41:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:41:57 +0000 Subject: =?UTF-8?Q?Change_in_osmo-hlr=5Brel-1=2E2=2E1=5D=3A_Bump_version=3A_1=2E2=2E0=2E1-d61b_=E2=86=92_1=2E2=2E1?= In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21891 ) Change subject: Bump version: 1.2.0.1-d61b ? 1.2.1 ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: I8f5c94cf629613ff94e92e19d1fdc4e0ad421468 Gerrit-Change-Number: 21891 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 Tue Dec 29 19:44:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:44:16 +0000 Subject: Change in osmo-hlr[rel-1.2.1]: test_nodes.vty: remove cruft In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21892 ) Change subject: test_nodes.vty: remove cruft ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: Ia11a209778b78ab02424e2abf3f9004fe97cf570 Gerrit-Change-Number: 21892 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 19:44: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 Dec 29 19:45:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:45:03 +0000 Subject: Change in osmo-hlr[rel-1.2.1]: support the XOR algorithm for UMTS AKA In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21890 ) Change subject: support the XOR algorithm for UMTS AKA ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21890 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 19:45: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 Dec 29 19:45:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:45:05 +0000 Subject: =?UTF-8?Q?Change_in_osmo-hlr=5Brel-1=2E2=2E1=5D=3A_Bump_version=3A_1=2E2=2E0=2E2-3868_=E2=86=92_1=2E2=2E1?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21893 ) Change subject: Bump version: 1.2.0.2-3868 ? 1.2.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: I9b0c4851bde641f2f818302ee41dc19cef435f80 Gerrit-Change-Number: 21893 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 19:45: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 Dec 29 19:45:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:45:24 +0000 Subject: Change in osmo-hlr[rel-1.2.1]: test_nodes.vty: remove cruft In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21892 ) Change subject: test_nodes.vty: remove cruft ...................................................................... test_nodes.vty: remove cruft This stuff is not testing osmo-hlr specific nodes, remove. Change-Id: Ia11a209778b78ab02424e2abf3f9004fe97cf570 --- M tests/test_nodes.vty 1 file changed, 1 insertion(+), 64 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index a752c93..5721255 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -11,81 +11,21 @@ logp Print a message on all log outputs; useful for placing markers in test logs subscriber Subscriber management commands OsmoHLR> list - show version - show online-help - list - exit - help - enable - terminal length <0-512> - terminal no length - who - show history - logging enable ... - show logging vty - show alarms - show talloc-context (application|all) (full|brief|DEPTH) - show talloc-context (application|all) (full|brief|DEPTH) tree ADDRESS - show talloc-context (application|all) (full|brief|DEPTH) filter REGEXP - show stats - show stats level (global|peer|subscriber) - show asciidoc counters - show rate-counters show gsup-connections subscriber (imsi|msisdn|id|imei) IDENT show show subscriber (imsi|msisdn|id|imei) IDENT OsmoHLR> enable OsmoHLR# ? - help Description of the interactive help system - list Print command list - write Write running configuration to memory, network, or terminal - show Show running system information - exit Exit current mode and down to previous mode - disable Turn off privileged mode command - configure Configuration from vty interface - copy Copy configuration - terminal Set terminal line parameters - who Display who is on vty - logging Configure logging - no Negate a command or set its defaults - logp Print a message on all log outputs; useful for placing markers in test logs +... subscriber Subscriber management commands -OsmoHLR# list - help -... - exit - disable - configure terminal - copy running-config startup-config - show startup-config - show version - show online-help - terminal length <0-512> - terminal no length - who - show history - terminal monitor - terminal no monitor - logging enable -... OsmoHLR# configure terminal OsmoHLR(config)# ? ... - banner Set banner string - service Set up miscellaneous service - line Configure a terminal line - ctrl Configure the Control Interface - log Configure logging sub-system - stats Configure stats sub-system hlr Configure the HLR OsmoHLR(config)# list - help -... - exit - end ... hlr @@ -99,10 +39,7 @@ store-imei Save the IMEI in the database when receiving Check IMEI requests. Note that an MSC does not necessarily send Check IMEI requests (for OsmoMSC, you may want to set 'check-imei-rqd 1'). subscriber-create-on-demand Make a new record when a subscriber is first seen. OsmoHLR(config-hlr)# list - help ... - exit - end gsup database PATH euse NAME -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: Ia11a209778b78ab02424e2abf3f9004fe97cf570 Gerrit-Change-Number: 21892 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 Tue Dec 29 19:45:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:45:24 +0000 Subject: Change in osmo-hlr[rel-1.2.1]: support the XOR algorithm for UMTS AKA In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21890 ) Change subject: support the XOR algorithm for UMTS AKA ...................................................................... support the XOR algorithm for UMTS AKA Test USIMs as specified by 3GPP use the XOR algorithm not only for 2G but also for 3G. libosmocore includes the XOR-3G support since v1.3.0, but osmo-hlr somehow never made use of it. Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Closes: OS#4924 --- M src/db_hlr.c M src/hlr_vty_subscr.c M tests/auc/auc_test.c M tests/auc/auc_test.err M tests/test_subscriber.vty 5 files changed, 121 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/db_hlr.c b/src/db_hlr.c index b3e3887..2b8d349 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -264,11 +264,11 @@ switch (aud->algo) { case OSMO_AUTH_ALG_NONE: case OSMO_AUTH_ALG_MILENAGE: + case OSMO_AUTH_ALG_XOR: break; case OSMO_AUTH_ALG_COMP128v1: case OSMO_AUTH_ALG_COMP128v2: case OSMO_AUTH_ALG_COMP128v3: - case OSMO_AUTH_ALG_XOR: LOGP(DAUC, LOGL_ERROR, "Cannot update auth tokens:" " auth algo not suited for 3G: %s\n", osmo_auth_alg_name(aud->algo)); diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index b561636..e8dd4e1 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -538,6 +538,55 @@ return CMD_SUCCESS; } +DEFUN(subscriber_aud3g_xor, + subscriber_aud3g_xor_cmd, + SUBSCR_UPDATE "aud3g xor k K" + " [ind-bitlen] [<0-28>]", + SUBSCR_UPDATE_HELP + "Set UMTS authentication data (3G, and 2G with UMTS AKA)\n" + "Use XOR algorithm\n" + "Set Encryption Key K\n" "K as 32 hexadecimal characters\n" + "Set IND bit length\n" "IND bit length value (default: 5)\n") +{ + struct hlr_subscriber subscr; + int minlen = 0; + int maxlen = 0; + int rc; + const char *id_type = argv[0]; + const char *id = argv[1]; + const char *k = argv[2]; + int ind_bitlen = argc > 4? atoi(argv[4]) : 5; + struct sub_auth_data_str aud3g = { + .type = OSMO_AUTH_TYPE_UMTS, + .u.umts = { + .k = k, + .opc_is_op = 0, + .opc = "00000000000000000000000000000000", + .ind_bitlen = ind_bitlen, + }, + }; + + if (!auth_algo_parse("xor", &aud3g.algo, &minlen, &maxlen)) { + vty_out(vty, "%% Unknown auth algorithm: '%s'%s", "xor", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!is_hexkey_valid(vty, "K", aud3g.u.umts.k, minlen, maxlen)) + return CMD_WARNING; + + if (get_subscr_by_argv(vty, id_type, id, &subscr)) + return CMD_WARNING; + + rc = db_subscr_update_aud_by_id(g_hlr->dbc, subscr.id, &aud3g); + + if (rc) { + vty_out(vty, "%% Error: cannot set 3G auth data for IMSI='%s'%s", + subscr.imsi, VTY_NEWLINE); + return CMD_WARNING; + } + return CMD_SUCCESS; +} + DEFUN(subscriber_imei, subscriber_imei_cmd, SUBSCR_UPDATE "imei (none|IMEI)", @@ -624,6 +673,7 @@ install_element(ENABLE_NODE, &subscriber_aud2g_cmd); install_element(ENABLE_NODE, &subscriber_no_aud3g_cmd); install_element(ENABLE_NODE, &subscriber_aud3g_cmd); + install_element(ENABLE_NODE, &subscriber_aud3g_xor_cmd); install_element(ENABLE_NODE, &subscriber_imei_cmd); install_element(ENABLE_NODE, &subscriber_nam_cmd); } diff --git a/tests/auc/auc_test.c b/tests/auc/auc_test.c index cdbd0b7..db7edcb 100644 --- a/tests/auc/auc_test.c +++ b/tests/auc/auc_test.c @@ -454,6 +454,50 @@ comment_end(); } +static void test_gen_vectors_3g_xor(void) +{ + struct osmo_sub_auth_data aud2g; + struct osmo_sub_auth_data aud3g; + struct osmo_auth_vector vec; + int rc; + + comment_start(); + + aud2g = (struct osmo_sub_auth_data){ 0 }; + + aud3g = (struct osmo_sub_auth_data){ + .type = OSMO_AUTH_TYPE_UMTS, + .algo = OSMO_AUTH_ALG_XOR, + .u.umts.sqn = 0, + }; + + osmo_hexparse("000102030405060708090a0b0c0d0e0f", + aud3g.u.umts.k, sizeof(aud3g.u.umts.k)); + osmo_hexparse("00000000000000000000000000000000", + aud3g.u.umts.opc, sizeof(aud3g.u.umts.opc)); + next_rand("b5039c57e4a75051551d1a390a71ce48", true); + + vec = (struct osmo_auth_vector){ {0} }; + VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64); + rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL); + VERBOSE_ASSERT(rc, == 1, "%d"); + VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64); + + VEC_IS(&vec, + " rand: b5039c57e4a75051551d1a390a71ce48\n" + " autn: 54e0a256565d0000b5029e54e0a25656\n" + " ck: 029e54e0a256565d141032067cc047b5\n" + " ik: 9e54e0a256565d141032067cc047b502\n" + " res: b5029e54e0a256565d141032067cc047\n" + " res_len: 10\n" + " kc: 98e880384887f9fe\n" + " sres: 0ec81877\n" + " auth_types: 03000000\n" + ); + + comment_end(); +} + void test_gen_vectors_bad_args() { struct osmo_auth_vector vec; @@ -622,6 +666,7 @@ test_gen_vectors_2g_only(); test_gen_vectors_2g_plus_3g(); test_gen_vectors_3g_only(); + test_gen_vectors_3g_xor(); test_gen_vectors_bad_args(); printf("Done\n"); diff --git a/tests/auc/auc_test.err b/tests/auc/auc_test.err index 0a4d9af..f83e814 100644 --- a/tests/auc/auc_test.err +++ b/tests/auc/auc_test.err @@ -217,6 +217,29 @@ ===== test_gen_vectors_3g_only: SUCCESS +===== test_gen_vectors_3g_xor +aud3g.u.umts.sqn == 0 +DAUC Computing 1 auth vector: 3G only (2G derived from 3G keys) +DAUC 3G: k = 000102030405060708090a0b0c0d0e0f +DAUC 3G: opc = 00000000000000000000000000000000 +DAUC 3G: for sqn ind 0, previous sqn was 0 +DAUC vector [0]: rand = b5039c57e4a75051551d1a390a71ce48 +DAUC vector [0]: sqn = 0 +DAUC vector [0]: autn = 54e0a256565d0000b5029e54e0a25656 +DAUC vector [0]: ck = 029e54e0a256565d141032067cc047b5 +DAUC vector [0]: ik = 9e54e0a256565d141032067cc047b502 +DAUC vector [0]: res = b5029e54e0a256565d141032067cc047 +DAUC vector [0]: res_len = 16 +DAUC vector [0]: deriving 2G from 3G +DAUC vector [0]: kc = 98e880384887f9fe +DAUC vector [0]: sres = 0ec81877 +DAUC vector [0]: auth_types = 0x3 +rc == 1 +aud3g.u.umts.sqn == 0 +vector matches expectations +===== test_gen_vectors_3g_xor: SUCCESS + + ===== test_gen_vectors_bad_args - no auth data (a) diff --git a/tests/test_subscriber.vty b/tests/test_subscriber.vty index 8e9026d..d5fd958 100644 --- a/tests/test_subscriber.vty +++ b/tests/test_subscriber.vty @@ -11,6 +11,7 @@ subscriber (imsi|msisdn|id|imei) IDENT update aud2g (comp128v1|comp128v2|comp128v3|xor) ki KI subscriber (imsi|msisdn|id|imei) IDENT update aud3g none subscriber (imsi|msisdn|id|imei) IDENT update aud3g milenage k K (op|opc) OP_C [ind-bitlen] [<0-28>] + subscriber (imsi|msisdn|id|imei) IDENT update aud3g xor k K [ind-bitlen] [<0-28>] subscriber (imsi|msisdn|id|imei) IDENT update imei (none|IMEI) subscriber (imsi|msisdn|id|imei) IDENT update network-access-mode (none|cs|ps|cs+ps) @@ -266,6 +267,7 @@ OsmoHLR# subscriber imsi 123456789023000 update aud3g ? none Delete 3G authentication data milenage Use Milenage algorithm + xor Use XOR algorithm OsmoHLR# subscriber imsi 123456789023000 update aud3g milenage ? k Set Encryption Key K -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: I3a452af9c18cd90d00ab4766d6bd1679456bc1a2 Gerrit-Change-Number: 21890 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 Tue Dec 29 19:45:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:45:24 +0000 Subject: =?UTF-8?Q?Change_in_osmo-hlr=5Brel-1=2E2=2E1=5D=3A_Bump_version=3A_1=2E2=2E0=2E2-3868_=E2=86=92_1=2E2=2E1?= In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21893 ) Change subject: Bump version: 1.2.0.2-3868 ? 1.2.1 ...................................................................... Bump version: 1.2.0.2-3868 ? 1.2.1 Patch release including support for XOR-3G Related: OS#4924 Change-Id: I9b0c4851bde641f2f818302ee41dc19cef435f80 --- M debian/changelog 1 file changed, 10 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index 1b02a20..9a6ef84 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +osmo-hlr (1.2.1) unstable; urgency=medium + + [ Neels Hofmeyr ] + * test_nodes.vty: remove cruft + + [ Harald Welte ] + * support the XOR algorithm for UMTS AKA + + -- Harald Welte Tue, 29 Dec 2020 20:39:53 +0100 + osmo-hlr (1.2.0) unstable; urgency=medium [ Ruben Undheim ] -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: rel-1.2.1 Gerrit-Change-Id: I9b0c4851bde641f2f818302ee41dc19cef435f80 Gerrit-Change-Number: 21893 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 Tue Dec 29 19:55:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 19:55:24 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Handle DP object in get_om2k_mo() References: Message-ID: laforge has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/94/21894/1 diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index 96573ea..b21070a 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: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 29 20:04:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:04:06 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: keep OM2K FSMs around, don't terminate 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/+/21829 to look at the new patch set (#3). 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, 243 insertions(+), 74 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/29/21829/3 -- 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: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 29 20:10:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:10:52 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: keep OM2K FSMs around, don't terminate 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/+/21829 to look at the new patch set (#4). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/29/21829/4 -- 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-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 29 20:11:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:11:05 +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: (3 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c File src/osmo-bsc/abis_om2000.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2310 PS1, Line 2310: trx->rbs2000.trx_fi = fi; > My original idea was to do as much as possible inside the function, to avoid having to repeat the sa [?] Done https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2326 PS1, Line 2326: if (strcmp(osmo_fsm_inst_state_name(bts_fi), "DONE") && > Just move the enum to the fsm header file. [?] Done https://gerrit.osmocom.org/c/osmo-bsc/+/21829/1/src/osmo-bsc/abis_om2000.c at 2340 PS1, Line 2340: if (strcmp(osmo_fsm_inst_state_name(bts_fi), "DONE") && > same, check against enum. Done -- 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-CC: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 20:11:05 +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 Tue Dec 29 20:11:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:11:29 +0000 Subject: Change in osmo-bsc[master]: om2000: Add "show bts 0 om2k-mo" command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21830 ) Change subject: om2000: Add "show bts 0 om2k-mo" command ...................................................................... Patch Set 5: Code-Review+2 -- 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: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 29 Dec 2020 20: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 Tue Dec 29 20:14:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:14:59 +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 2: > Patch Set 2: > Requirement: service n?106 and n?107 are "available" in the USIM Service Table. I think the condition should be whether or not the service is enabled, not whether or not the file exists. I would be careful not to overwritre write too many files on the SIM card automatically, without the user requesting it. The philosophy of the cards is to have all the files present but only few services enabled in UST/IST/SST. -- 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: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 20:14: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 Dec 29 20:16:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:16:31 +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 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. -- 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: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 20:16: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 Dec 29 20:20:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:20:19 +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 1: Code-Review+1 this change looks good as it's not unconditional/autoamtic, but an explicitl command line argument. -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 20:20: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 Dec 29 20:21:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:21:20 +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 1: Code-Review+1 -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 20:21: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 Dec 29 20:21:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20: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 2: Code-Review+1 -- 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: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 20: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 Dec 29 20:23:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:23:09 +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 3: Code-Review+1 -- 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: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 20: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 Dec 29 20:24:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:24:17 +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 3: (1 comment) https://gerrit.osmocom.org/c/pysim/+/21866/3/pySim/cards.py File pySim/cards.py: https://gerrit.osmocom.org/c/pysim/+/21866/3/pySim/cards.py at 1252 PS3, Line 1252: elif p.get('mcc') and p.get('mnc'): : sw = self.update_domain(mcc=p['mcc'], mnc=p['mnc']) here it's again a question if we should update/overwrite the file by default, even if the user doesn't tell us to do so at the command line... -- 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: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 20:24: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 Tue Dec 29 20:24:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:24:38 +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 3: 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: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 20:24: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 Dec 29 20:25:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:25:11 +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 posted comments on 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 ...................................................................... Patch Set 3: Code-Review+2 -- 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: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 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 Tue Dec 29 20:25:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 20:25:23 +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 posted comments on 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 ...................................................................... Patch Set 3: Code-Review+2 -- 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: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 20: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 Tue Dec 29 21:33:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 21:33: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 1: 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 21:33: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 Dec 29 21:33:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 21:33:19 +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 1: 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 21:33: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 Dec 29 21:33:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 21:33:31 +0000 Subject: Change in pysim[master]: Update ISIM IST table as per the latest 3GPP TS 31.103 specification 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 latest 3GPP TS 31.103 specification ...................................................................... Patch Set 1: 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 21:33: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 Dec 29 21:34:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 21:34:13 +0000 Subject: Change in pysim[master]: Update ISIM IST table as per the latest 3GPP TS 31.103 specification 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 latest 3GPP TS 31.103 specification ...................................................................... Patch Set 1: Code-Review+1 please state the exact version in a comment in the source and here in the commit log. This makes it easier to later check what was added to more recent specs since this specific version. -- 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: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 21:34: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 Dec 29 21:35:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 21:35:22 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 8 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 29 Dec 2020 21: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 Tue Dec 29 21:35:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 21:35:33 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN pooling support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 ) Change subject: gbproxy: Add SGSN pooling support ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Gerrit-Change-Number: 21881 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 21: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 Tue Dec 29 21:35:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 21:35:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN NRI configuration In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 ) Change subject: gbproxy: Add SGSN NRI configuration ...................................................................... gbproxy: Add SGSN NRI configuration In order to support SGSN pooling we need to configure the various NRI parameters such as the bitlen, NULL NRI, and which NRIs are assigned to which SGSN. Related: OS#4890, OS#4472 Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e --- A 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 M tests/Makefile.am A tests/osmo-gbproxy-pool_test-nodes.vty A tests/osmo-gbproxy_test-nodes.vty R tests/osmo-sgsn_test-nodes.vty 10 files changed, 558 insertions(+), 21 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 new file mode 100644 index 0000000..df765c0 --- /dev/null +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg @@ -0,0 +1,38 @@ +! +! Osmocom Gb Proxy (0.9.0.404-6463) configuration saved from vty +!! +! +line vty + no login +! +gbproxy + nri bitlen 4 + nri null add 0 4 +sgsn nsei 101 + nri add 1 + nri add 11 +sgsn nsei 102 + 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 + 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 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 29f698f..5cabc6d 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg @@ -6,7 +6,7 @@ no login ! gbproxy - sgsn nsei 101 +sgsn nsei 101 ns nse 101 nsvci 101 nse 101 remote-role sgsn diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 200a539..46decc0 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -16,6 +17,7 @@ #include #define GBPROXY_INIT_VU_GEN_TX 256 +#define GBPROXY_MAX_NR_SGSN 16 /* BVCI uses 16 bits */ #define BVC_LOG_CTX_FLAG (1<<17) @@ -55,9 +57,12 @@ struct { /* percentage of BVC flow control advertised to each SGSN in the pool */ uint8_t bvc_fc_ratio; + /* NRI bitlen and usable NULL-NRI ranges */ + uint8_t nri_bitlen; + struct osmo_nri_ranges *null_nri_ranges; } pool; - /* Linked list of all BSS side Gb peers */ + /* hash table of all BSS side Gb peers */ DECLARE_HASHTABLE(bss_nses, 8); /* hash table of all SGSN-side Gb peers */ @@ -66,6 +71,9 @@ /* hash table of all gbproxy_cell */ DECLARE_HASHTABLE(cells, 8); + /* List of all SGSNs */ + struct llist_head sgsns; + /* Counter */ struct rate_ctr_group *ctrg; }; @@ -88,7 +96,7 @@ struct gbproxy_bvc *bss_bvc; /* pointers to SGSN-side BVC (one for each pool member) */ - struct gbproxy_bvc *sgsn_bvc[16]; + struct gbproxy_bvc *sgsn_bvc[GBPROXY_MAX_NR_SGSN]; }; /* One BVC inside an NSE */ @@ -133,6 +141,21 @@ DECLARE_HASHTABLE(bvcs, 10); }; +/* SGSN configuration such as pool options (only for NSE where sgsn_facing == true) */ +struct gbproxy_sgsn { + /* linked to gbproxy_config.sgsns */ + struct llist_head list; + + /* The NSE belonging to this SGSN */ + struct gbproxy_nse *nse; + + /* Pool configuration for the sgsn (only valid if sgsn_facing == true) */ + struct { + bool allow_attach; + struct osmo_nri_ranges *nri_ranges; + } pool; +}; + /* Convenience logging macros for NSE/BVC */ #define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ LOGP(SUBSYS, LEVEL, "NSE(%05u/%s) " FMT, (NSE)->nsei, \ @@ -152,6 +175,11 @@ #define LOGPCELL(CELL, LEVEL, FMT, ARGS...) \ 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) +#define LOGPSGSN(SGSN, LEVEL, FMT, ARGS...) \ + LOGPSGSN_CAT(SGSN, DGPRS, LEVEL, FMT, ## ARGS) + /* gb_proxy_vty .c */ int gbproxy_vty_init(void); @@ -195,4 +223,11 @@ 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); +/* SGSN handling */ +struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei); +void gbproxy_sgsn_free(struct gbproxy_sgsn *sgsn); +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); + #endif diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index ca1c07c..4b6dc09 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -33,6 +33,7 @@ #include #include +#include #include #include #include @@ -1286,9 +1287,13 @@ /* 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); + hash_init(cfg->bss_nses); hash_init(cfg->sgsn_nses); hash_init(cfg->cells); + INIT_LLIST_HEAD(&cfg->sgsns); + 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 c38b2f7..863ec50 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -273,7 +274,7 @@ return nse; } -void gbproxy_nse_free(struct gbproxy_nse *nse) +static void _nse_free(struct gbproxy_nse *nse) { struct gbproxy_bvc *bvc; struct hlist_node *tmp; @@ -291,6 +292,22 @@ talloc_free(nse); } +static void _sgsn_free(struct gbproxy_sgsn *sgsn); + +void gbproxy_nse_free(struct gbproxy_nse *nse) +{ + if (!nse) + return; + OSMO_ASSERT(nse->cfg); + + if (nse->sgsn_facing) { + struct gbproxy_sgsn *sgsn = gbproxy_sgsn_by_nsei(nse->cfg, nse->nsei); + OSMO_ASSERT(sgsn); + _sgsn_free(sgsn); + } + + _nse_free(nse); +} struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei, uint32_t flags) { @@ -325,3 +342,104 @@ return nse; } + +/* SGSN */ +struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei) +{ + struct gbproxy_sgsn *sgsn; + OSMO_ASSERT(cfg); + + sgsn = talloc_zero(tall_sgsn_ctx, struct gbproxy_sgsn); + if (!sgsn) + return NULL; + + 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; + } + + 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; +} + +/* Only free gbproxy_sgsn, sgsn can't be NULL */ +static void _sgsn_free(struct gbproxy_sgsn *sgsn) { + struct gbproxy_config *cfg; + + OSMO_ASSERT(sgsn->nse); + cfg = sgsn->nse->cfg; + OSMO_ASSERT(cfg); + + LOGPSGSN_CAT(sgsn, DOBJ, LOGL_INFO, "SGSN Destroying\n"); + llist_del(&sgsn->list); + talloc_free(sgsn); +} + +void gbproxy_sgsn_free(struct gbproxy_sgsn *sgsn) +{ + if (!sgsn) + return; + + OSMO_ASSERT(sgsn->nse) + + _nse_free(sgsn->nse); + _sgsn_free(sgsn); +} + +struct gbproxy_sgsn *gbproxy_sgsn_by_nsei(struct gbproxy_config *cfg, uint16_t nsei) +{ + struct gbproxy_sgsn *sgsn; + OSMO_ASSERT(cfg); + + llist_for_each_entry(sgsn, &cfg->sgsns, list) { + if (sgsn->nse->nsei == nsei) + return sgsn; + } + + return NULL; +} + +struct gbproxy_sgsn *gbproxy_sgsn_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei) +{ + struct gbproxy_sgsn *sgsn; + OSMO_ASSERT(cfg); + + sgsn = gbproxy_sgsn_by_nsei(cfg, nsei); + if (!sgsn) + sgsn = gbproxy_sgsn_alloc(cfg, nsei); + + return sgsn; +} + +/*! Return the gbproxy_sgsn matching that NRI + * \param[in] cfg proxy in which we operate + * \param[in] nri NRI to look for + * \param[out] null_nri If not NULL this indicates whether the NRI is a null NRI + * \return The SGSN this NRI has been added to, NULL if no matching SGSN could be found + */ +struct gbproxy_sgsn *gbproxy_sgsn_by_nri(struct gbproxy_config *cfg, uint16_t nri, bool *null_nri) +{ + struct gbproxy_sgsn *sgsn; + OSMO_ASSERT(cfg); + + 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 (osmo_nri_v_matches_ranges(nri, cfg->pool.null_nri_ranges)) + *null_nri = true; + else + *null_nri = false; + } + return sgsn; + } + } + + return NULL; +} diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 595ac02..92915fe 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -25,14 +25,17 @@ #include #include +#include #include #include #include -#include #include #include + #include +#include +#include #include #include @@ -44,6 +47,17 @@ #include #include +#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" \ + "Last value of the NRI value range, should not surpass the configured 'nri bitlen' and be larger than the" \ + " first value; if omitted, apply only the first value.\n" +#define NRI_ARGS_TO_STR_FMT "%s%s%s" +#define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" +#define NRI_WARN(SGSN, FORMAT, args...) do { \ + vty_out(vty, "%% Warning: NSE(%05d/SGSN): " FORMAT "%s", (SGSN)->nse->nsei, ##args, VTY_NEWLINE); \ + LOGP(DLBSSGP, LOGL_ERROR, "NSE(%05d/SGSN): " FORMAT "\n", (SGSN)->nse->nsei, ##args); \ + } while (0) static struct gbproxy_config *g_cfg = NULL; @@ -111,18 +125,22 @@ static int config_write_gbproxy(struct vty *vty) { - struct gbproxy_nse *nse; - int i; + struct osmo_nri_range *r; vty_out(vty, "gbproxy%s", VTY_NEWLINE); if (g_cfg->pool.bvc_fc_ratio != 100) vty_out(vty, " pool bvc-flow-control-ratio %u%s", g_cfg->pool.bvc_fc_ratio, VTY_NEWLINE); - hash_for_each(g_cfg->sgsn_nses, i, nse, list) { - vty_out(vty, " sgsn nsei %u%s", nse->nsei, VTY_NEWLINE); - } + if (g_cfg->pool.nri_bitlen != OSMO_NRI_BITLEN_DEFAULT) + vty_out(vty, " nri bitlen %u%s", g_cfg->pool.nri_bitlen, VTY_NEWLINE); + llist_for_each_entry(r, &g_cfg->pool.null_nri_ranges->entries, entry) { + vty_out(vty, " nri null add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } return CMD_SUCCESS; } @@ -135,30 +153,89 @@ return CMD_SUCCESS; } +/* VTY code for SGSN (pool) configuration */ extern const struct bssgp_bvc_fsm_ops sgsn_sig_bvc_fsm_ops; #include -DEFUN(cfg_nsip_sgsn_nsei, - cfg_nsip_sgsn_nsei_cmd, +static struct cmd_node sgsn_node = { + SGSN_NODE, + "%s(config-sgsn)# ", + 1, +}; + +static void sgsn_write_nri(struct vty *vty, struct gbproxy_sgsn *sgsn, bool verbose) +{ + struct osmo_nri_range *r; + + if (verbose) { + vty_out(vty, "sgsn nsei %d%s", sgsn->nse->nsei, VTY_NEWLINE); + if (llist_empty(&sgsn->pool.nri_ranges->entries)) { + vty_out(vty, " %% no NRI mappings%s", VTY_NEWLINE); + return; + } + } + + llist_for_each_entry(r, &sgsn->pool.nri_ranges->entries, entry) { + if (osmo_nri_range_validate(r, 255)) + vty_out(vty, " %% INVALID RANGE:"); + vty_out(vty, " nri add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } +} + +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, " %sallow-attach%s", sgsn->pool.allow_attach ? "" : "no ", VTY_NEWLINE); + sgsn_write_nri(vty, sgsn, false); +} + +static int config_write_sgsn(struct vty *vty) +{ + struct gbproxy_sgsn *sgsn; + + llist_for_each_entry(sgsn, &g_cfg->sgsns, list) + write_sgsn(vty, sgsn); + + return CMD_SUCCESS; +} + +DEFUN(cfg_sgsn_nsei, + cfg_sgsn_nsei_cmd, "sgsn nsei <0-65534>", - "SGSN information\n" + "Configure the SGSN\n" "NSEI to be used in the connection with the SGSN\n" "The NSEI\n") { uint32_t features = 0; // FIXME: make configurable unsigned int nsei = atoi(argv[0]); + unsigned int num_sgsn = llist_count(&g_cfg->sgsns); + struct gbproxy_sgsn *sgsn; struct gbproxy_nse *nse; struct gbproxy_bvc *bvc; - nse = gbproxy_nse_by_nsei_or_new(g_cfg, nsei, true); - if (!nse) + if (num_sgsn >= GBPROXY_MAX_NR_SGSN) { + vty_out(vty, "%% Too many SGSN NSE defined (%d), increase GBPROXY_MAX_NR_SGSN%s", + num_sgsn, VTY_NEWLINE); + return CMD_WARNING; + } + + /* This will have created the gbproxy_nse as well */ + sgsn = gbproxy_sgsn_by_nsei_or_new(g_cfg, nsei); + if (!sgsn) goto free_nothing; + nse = sgsn->nse; + if (num_sgsn > 1 && g_cfg->pool.nri_bitlen == 0) + vty_out(vty, "%% Multiple SGSNs defined, but no pooling enabled%s", VTY_NEWLINE); + if (!gbproxy_bvc_by_bvci(nse, 0)) { uint8_t cause = BSSGP_CAUSE_OML_INTERV; bvc = gbproxy_bvc_alloc(nse, 0); if (!bvc) - goto free_nse; + goto free_sgsn; bvc->fi = bssgp_bvc_fsm_alloc_sig_bss(bvc, nse->cfg->nsi, nsei, features); if (!bvc->fi) goto free_bvc; @@ -166,17 +243,134 @@ osmo_fsm_inst_dispatch(bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); } + vty->node = SGSN_NODE; + vty->index = sgsn; return CMD_SUCCESS; free_bvc: gbproxy_bvc_free(bvc); -free_nse: - gbproxy_nse_free(nse); +free_sgsn: + gbproxy_sgsn_free(sgsn); free_nothing: vty_out(vty, "%% Unable to create NSE for NSEI=%05u%s", nsei, VTY_NEWLINE); return CMD_WARNING; } +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" + NRI_FIRST_LAST_STR, + CMD_ATTR_IMMEDIATE) +{ + struct gbproxy_sgsn *sgsn = vty->index; + struct gbproxy_sgsn *other_sgsn; + bool before; + int rc; + const char *message; + struct osmo_nri_range add_range; + + rc = osmo_nri_ranges_vty_add(&message, &add_range, sgsn->pool.nri_ranges, argc, argv, g_cfg->pool.nri_bitlen); + if (message) { + NRI_WARN(sgsn, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + + /* Issue a warning about NRI range overlaps (but still allow them). + * Overlapping ranges will map to whichever SGSN comes fist in the gbproxy_config->sgsns llist, + * which should be the first one defined in the config */ + before = true; + + llist_for_each_entry(other_sgsn, &g_cfg->sgsns, list) { + if (other_sgsn == sgsn) { + before = false; + continue; + } + if (osmo_nri_range_overlaps_ranges(&add_range, other_sgsn->pool.nri_ranges)) { + uint16_t nsei = sgsn->nse->nsei; + uint16_t other_nsei = other_sgsn->nse->nsei; + NRI_WARN(sgsn, "NRI range [%d..%d] overlaps between NSE %05d and NSE %05d." + " For overlaps, NSE %05d has higher priority than NSE %05d", + add_range.first, add_range.last, nsei, other_nsei, + before ? other_nsei : nsei, before ? nsei : other_nsei); + } + } + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_sgsn_nri_del, cfg_sgsn_nri_del_cmd, + "nri del <0-32767> [<0-32767>]", + NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR, + CMD_ATTR_IMMEDIATE) +{ + struct gbproxy_sgsn *sgsn = vty->index; + int rc; + const char *message; + + rc = osmo_nri_ranges_vty_del(&message, NULL, sgsn->pool.nri_ranges, argc, argv); + if (message) { + NRI_WARN(sgsn, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_sgsn_allow_attach, cfg_sgsn_allow_attach_cmd, + "allow-attach", + "Allow this SGSN to attach new subscribers (default).\n", + CMD_ATTR_IMMEDIATE) +{ + struct gbproxy_sgsn *sgsn = vty->index; + sgsn->pool.allow_attach = true; + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_sgsn_no_allow_attach, cfg_sgsn_no_allow_attach_cmd, + "no allow-attach", + NO_STR + "Do not assign new subscribers to this MSC." + " Useful if an MSC in an MSC pool is configured to off-load subscribers." + " The MSC will still be operational for already IMSI-Attached subscribers," + " but the NAS node selection function will skip this MSC for new subscribers\n", + CMD_ATTR_IMMEDIATE) +{ + struct gbproxy_sgsn *sgsn = vty->index; + sgsn->pool.allow_attach = false; + return CMD_SUCCESS; +} + +DEFUN(cfg_sgsn_show_nri_all, show_nri_all_cmd, + "show nri all", + SHOW_STR NRI_STR "Show all SGSNs\n") +{ + struct gbproxy_sgsn *sgsn; + + llist_for_each_entry(sgsn, &g_cfg->sgsns, list) + sgsn_write_nri(vty, sgsn, true); + + return CMD_SUCCESS; +} + +DEFUN(show_nri, show_nri_nsei_cmd, + "show nri nsei <0-65535>", + SHOW_STR NRI_STR "Identify SGSN by NSEI\n" + "NSEI of the SGSN\n") +{ + struct gbproxy_sgsn *sgsn; + int nsei = atoi(argv[0]); + + sgsn = gbproxy_sgsn_by_nsei(g_cfg, nsei); + if (!sgsn) { + vty_out(vty, "%% No SGSN with found for NSEI %05d%s", nsei, VTY_NEWLINE); + return CMD_SUCCESS; + } + sgsn_write_nri(vty, sgsn, true); + + return CMD_SUCCESS; +} + DEFUN(cfg_pool_bvc_fc_ratio, cfg_pool_bvc_fc_ratio_cmd, "pool bvc-flow-control-ratio <1-100>", @@ -187,6 +381,64 @@ g_cfg->pool.bvc_fc_ratio = atoi(argv[0]); return CMD_SUCCESS; } +DEFUN_ATTR(cfg_gbproxy_nri_bitlen, + cfg_gbproxy_nri_bitlen_cmd, + "nri bitlen <0-15>", + NRI_STR + "Set number of bits that an NRI has, to extract from TMSI identities (always starting just after the TMSI's most significant octet).\n" + "bit count (0 disables) pooling)\n", + CMD_ATTR_IMMEDIATE) +{ + g_cfg->pool.nri_bitlen = atoi(argv[0]); + + if (llist_count(&g_cfg->sgsns) > 1 && g_cfg->pool.nri_bitlen == 0) + vty_out(vty, "%% Pooling disabled, but multiple SGSNs defined%s", VTY_NEWLINE); + + /* TODO: Verify all nri ranges and warn on mismatch */ + + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_gbproxy_nri_null_add, + cfg_gbproxy_nri_null_add_cmd, + "nri null add <0-32767> [<0-32767>]", + NRI_STR NULL_NRI_STR "Add NULL-NRI value (or range)\n" + NRI_FIRST_LAST_STR, + CMD_ATTR_IMMEDIATE) +{ + int rc; + const char *message; + + rc = osmo_nri_ranges_vty_add(&message, NULL, g_cfg->pool.null_nri_ranges, argc, argv, + g_cfg->pool.nri_bitlen); + if (message) { + vty_out(vty, "%% nri null add: %s: " NRI_ARGS_TO_STR_FMT "%s", message, NRI_ARGS_TO_STR_ARGS(argc, argv), + VTY_NEWLINE); + vty_out(vty, "%s: \n" NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +DEFUN_ATTR(cfg_gbproxy_nri_null_del, + cfg_gbproxy_nri_null_del_cmd, + "nri null del <0-32767> [<0-32767>]", + NRI_STR NULL_NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR, + CMD_ATTR_IMMEDIATE) +{ + int rc; + const char *message; + rc = osmo_nri_ranges_vty_del(&message, NULL, g_cfg->pool.null_nri_ranges, argc, argv); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT "%s", message, NRI_ARGS_TO_STR_ARGS(argc, argv), + VTY_NEWLINE); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} static void log_set_bvc_filter(struct log_target *target, const uint16_t *bvci) @@ -379,6 +631,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_nri_all_cmd); + install_element_ve(&show_nri_nsei_cmd); install_element_ve(&logging_fltr_bvc_cmd); install_element(ENABLE_NODE, &delete_gb_bvci_cmd); @@ -386,8 +640,18 @@ install_element(CONFIG_NODE, &cfg_gbproxy_cmd); install_node(&gbproxy_node, config_write_gbproxy); - install_element(GBPROXY_NODE, &cfg_nsip_sgsn_nsei_cmd); install_element(GBPROXY_NODE, &cfg_pool_bvc_fc_ratio_cmd); + install_element(GBPROXY_NODE, &cfg_gbproxy_nri_bitlen_cmd); + install_element(GBPROXY_NODE, &cfg_gbproxy_nri_null_add_cmd); + install_element(GBPROXY_NODE, &cfg_gbproxy_nri_null_del_cmd); + + install_element(CONFIG_NODE, &cfg_sgsn_nsei_cmd); + install_node(&sgsn_node, config_write_sgsn); + 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); + install_element(SGSN_NODE, &cfg_sgsn_nri_del_cmd); + return 0; } diff --git a/tests/Makefile.am b/tests/Makefile.am index 4a9449a..32ed472 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -32,7 +32,9 @@ $(TESTSUITE) \ vty_test_runner.py \ ctrl_test_runner.py \ - test_nodes.vty \ + osmo-sgsn_test-nodes.vty \ + osmo-gbproxy_test-nodes.vty \ + osmo-gbproxy-pool_test-nodes.vty \ $(NULL) TESTSUITE = $(srcdir)/testsuite @@ -61,9 +63,17 @@ # make vty-transcript-test U=-u vty-transcript-test: osmo_verify_transcript_vty.py -v \ + -n OsmoGbProxy -p 4246 \ + -r "$(top_builddir)/src/gbproxy/osmo-gbproxy -c $(top_srcdir)/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg" \ + $(U) $${T:-$(srcdir)/osmo-gbproxy_test-nodes.vty} + osmo_verify_transcript_vty.py -v \ + -n OsmoGbProxy -p 4246 \ + -r "$(top_builddir)/src/gbproxy/osmo-gbproxy -c $(top_srcdir)/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg" \ + $(U) $${T:-$(srcdir)/osmo-gbproxy-pool_test-nodes.vty} + osmo_verify_transcript_vty.py -v \ -n OsmoSGSN -p 4245 \ -r "$(top_builddir)/src/sgsn/osmo-sgsn -c $(top_srcdir)/doc/examples/osmo-sgsn/osmo-sgsn.cfg" \ - $(U) $${T:-$(srcdir)/*.vty} + $(U) $${T:-$(srcdir)/osmo-sgsn*.vty} rm -f $(builddir)/sms.db $(builddir)/gsn_restart # don't run multiple tests concurrently so that the ports don't conflict diff --git a/tests/osmo-gbproxy-pool_test-nodes.vty b/tests/osmo-gbproxy-pool_test-nodes.vty new file mode 100644 index 0000000..a741e48 --- /dev/null +++ b/tests/osmo-gbproxy-pool_test-nodes.vty @@ -0,0 +1,35 @@ +OsmoGbProxy> enable +OsmoGbProxy# show nri all +sgsn nsei 101 + nri add 1 + nri add 11 +sgsn nsei 102 + nri add 2 + nri add 12 +OsmoGbProxy# configure terminal +OsmoGbProxy(config)# list +... + gbproxy + sgsn nsei <0-65534> + ns +... + +OsmoGbProxy(config)# sgsn nsei 101 +OsmoGbProxy(config-sgsn)# list +... + allow-attach + no allow-attach + nri add <0-32767> [<0-32767>] + nri del <0-32767> [<0-32767>] +... + +OsmoGbProxy(config-sgsn)# exit +OsmoGbProxy(config)# gbproxy + +OsmoGbProxy(config-gbproxy)# list +... + pool bvc-flow-control-ratio <1-100> + nri bitlen <0-15> + nri null add <0-32767> [<0-32767>] + nri null del <0-32767> [<0-32767>] +... diff --git a/tests/osmo-gbproxy_test-nodes.vty b/tests/osmo-gbproxy_test-nodes.vty new file mode 100644 index 0000000..8a47aa0 --- /dev/null +++ b/tests/osmo-gbproxy_test-nodes.vty @@ -0,0 +1,32 @@ +OsmoGbProxy> enable +OsmoGbProxy# show nri all +sgsn nsei 101 + % no NRI mappings +... +OsmoGbProxy# configure terminal +OsmoGbProxy(config)# list +... + gbproxy + sgsn nsei <0-65534> + ns +... + +OsmoGbProxy(config)# sgsn nsei 101 +OsmoGbProxy(config-sgsn)# list +... + allow-attach + no allow-attach + nri add <0-32767> [<0-32767>] + nri del <0-32767> [<0-32767>] +... + +OsmoGbProxy(config-sgsn)# exit +OsmoGbProxy(config)# gbproxy + +OsmoGbProxy(config-gbproxy)# list +... + pool bvc-flow-control-ratio <1-100> + nri bitlen <0-15> + nri null add <0-32767> [<0-32767>] + nri null del <0-32767> [<0-32767>] +... diff --git a/tests/test_nodes.vty b/tests/osmo-sgsn_test-nodes.vty similarity index 100% rename from tests/test_nodes.vty rename to tests/osmo-sgsn_test-nodes.vty -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e Gerrit-Change-Number: 21705 Gerrit-PatchSet: 8 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Dec 29 21:35:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 21:35:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add SGSN pooling support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 ) Change subject: gbproxy: Add SGSN pooling support ...................................................................... gbproxy: Add SGSN pooling support Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Related: 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, 173 insertions(+), 34 deletions(-) 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 46decc0..8654d10 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -229,5 +229,7 @@ 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); +struct gbproxy_sgsn *gbproxy_sgsn_by_tlli(struct gbproxy_config *cfg, struct gbproxy_sgsn *sgsn_avoid, + uint32_t tlli); #endif diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 4b6dc09..7e9d9c3 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -45,6 +46,7 @@ #include #include +#include #include #include @@ -201,42 +203,131 @@ * PTP BVC handling ***********************************************************************/ -/* route an uplink message on a PTP-BVC to a SGSN using the TLLI */ -static int gbprox_bss2sgsn_tlli(struct gbproxy_cell *cell, struct msgb *msg, uint32_t tlli, +/* FIXME: Handle the tlli NULL case correctly, + * This function should take a generic selector + * and choose an sgsn based on that + */ +static struct gbproxy_sgsn *gbproxy_select_sgsn(struct gbproxy_config *cfg, const uint32_t *tlli) +{ + struct gbproxy_sgsn *sgsn = NULL; + struct gbproxy_sgsn *sgsn_avoid = NULL; + + int tlli_type; + int16_t nri; + bool null_nri = false; + + if (!tlli) { + sgsn = llist_first_entry(&cfg->sgsns, struct gbproxy_sgsn, list); + if (!sgsn) { + return NULL; + } + LOGPSGSN(sgsn, LOGL_INFO, "Could not get TLLI, using first SGSN\n"); + return sgsn; + } + + if (cfg->pool.nri_bitlen == 0) { + /* Pooling is disabled */ + sgsn = llist_first_entry(&cfg->sgsns, struct gbproxy_sgsn, list); + if (!sgsn) { + return NULL; + } + + LOGPSGSN(sgsn, LOGL_INFO, "Pooling disabled, using first configured SGSN\n"); + } else { + /* Pooling is enabled, try to use the NRI for routing to an SGSN + * See 3GPP TS 23.236 Ch. 5.3.2 */ + tlli_type = gprs_tlli_type(*tlli); + if (tlli_type == TLLI_LOCAL || tlli_type == TLLI_FOREIGN) { + /* Only get/use the NRI if tlli type is local */ + osmo_tmsi_nri_v_get(&nri, *tlli, cfg->pool.nri_bitlen); + if (nri >= 0) { + /* Get the SGSN for the NRI */ + sgsn = gbproxy_sgsn_by_nri(cfg, nri, &null_nri); + if (sgsn && !null_nri) + return sgsn; + /* If the NRI is the null NRI, we need to avoid the chosen SGSN */ + if (null_nri && sgsn) { + sgsn_avoid = sgsn; + } + } else { + /* We couldn't get the NRI from the TLLI */ + LOGP(DGPRS, LOGL_ERROR, "Could not extract NRI from local TLLI %u\n", *tlli); + } + } + } + + /* If we haven't found an SGSN yet we need to choose one, but avoid the one in sgsn_avoid + * NOTE: This function is not stable if the number of SGSNs or allow_attach changes + * We could implement TLLI tracking here, but 3GPP TS 23.236 Ch. 5.3.2 (see NOTE) argues that + * we can just wait for the MS to reattempt the procedure. + */ + if (!sgsn) + sgsn = gbproxy_sgsn_by_tlli(cfg, sgsn_avoid, *tlli); + + if (!sgsn) { + LOGP(DGPRS, LOGL_ERROR, "No suitable SGSN found for TLLI %u\n", *tlli); + return NULL; + } + + return sgsn; +} + +/*! Find the correct gbproxy_bvc given a cell and an SGSN + * \param[in] cfg The gbproxy configuration + * \param[in] cell The cell the message belongs to + * \param[in] tlli An optional TLLI used for tracking + * \return Returns 0 on success, otherwise a negative value + */ +static struct gbproxy_bvc *gbproxy_select_sgsn_bvc(struct gbproxy_config *cfg, struct gbproxy_cell *cell, const uint32_t *tlli) +{ + struct gbproxy_sgsn *sgsn; + struct gbproxy_bvc *sgsn_bvc = NULL; + + sgsn = gbproxy_select_sgsn(cfg, tlli); + if (!sgsn) { + LOGPCELL(cell, LOGL_ERROR, "Could not find any SGSN, dropping message!\n"); + return NULL; + } + + /* Get the BVC for this SGSN/NSE */ + for (int i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + sgsn_bvc = cell->sgsn_bvc[i]; + if (!sgsn_bvc) + continue; + if (sgsn->nse != sgsn_bvc->nse) + continue; + + return sgsn_bvc; + } + + /* This shouldn't happen */ + LOGPCELL(cell, LOGL_ERROR, "Could not find matching BVC for SGSN, dropping message!\n"); + return NULL; +} + +/*! Send a message to the next SGSN, possibly ignoring the null SGSN + * route an uplink message on a PTP-BVC to a SGSN using the TLLI + * \param[in] cell The cell the message belongs to + * \param[in] msg The BSSGP message + * \param[in] null_sgsn If not NULL then avoid this SGSN (because this message contains its null NRI) + * \param[in] tlli An optional TLLI used for tracking + * \return Returns 0 on success, otherwise a negative value + */ +static int gbprox_bss2sgsn_tlli(struct gbproxy_cell *cell, struct msgb *msg, const uint32_t *tlli, bool sig_bvci) { + struct gbproxy_config *cfg = cell->cfg; struct gbproxy_bvc *sgsn_bvc; - unsigned int i; - /* FIXME: derive NRI from TLLI */ - /* FIXME: find the SGSN for that NRI */ - - /* HACK: we currently simply pick the first SGSN we find */ - for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { - sgsn_bvc = cell->sgsn_bvc[i]; - if (sgsn_bvc) - return gbprox_relay2peer(msg, sgsn_bvc, sig_bvci ? 0 : sgsn_bvc->bvci); + sgsn_bvc = gbproxy_select_sgsn_bvc(cfg, cell, tlli); + if (!sgsn_bvc) { + LOGPCELL(cell, LOGL_NOTICE, "Could not find any SGSN for TLLI %u, dropping message!\n", *tlli); + return -EINVAL; } - return 0; + + return gbprox_relay2peer(msg, sgsn_bvc, sig_bvci ? 0 : sgsn_bvc->bvci); } -static int gbprox_bss2sgsn_null_nri(struct gbproxy_cell *cell, struct msgb *msg) -{ - struct gbproxy_bvc *sgsn_bvc; - unsigned int i; - - /* FIXME: find the SGSN for that NRI */ - - /* HACK: we currently simply pick the first SGSN we find */ - for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { - sgsn_bvc = cell->sgsn_bvc[i]; - if (sgsn_bvc) - return gbprox_relay2peer(msg, sgsn_bvc, sgsn_bvc->bvci); - } - return 0; -} - - /* Receive an incoming PTP message from a BSS-side NS-VC */ static int gbprox_rx_ptp_from_bss(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { @@ -314,18 +405,20 @@ case BSSGP_PDUT_PS_HO_CANCEL: /* We can route based on TLLI-NRI */ tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); - rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); break; case BSSGP_PDUT_RADIO_STATUS: if (TLVP_PRESENT(&tp, BSSGP_IE_TLLI)) { tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); - rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); } 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)); - rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, tlli, false); + rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); } else if (TLVP_PRESENT(&tp, BSSGP_IE_IMSI)) { - rc = gbprox_bss2sgsn_null_nri(bss_bvc->cell, msg); + // 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; @@ -828,7 +921,7 @@ from_bvc = gbproxy_bvc_by_bvci(nse, ptp_bvci); if (!from_bvc) goto err_no_bvc; - gbprox_bss2sgsn_tlli(from_bvc->cell, msg, tlli, true); + gbprox_bss2sgsn_tlli(from_bvc->cell, msg, &tlli, true); break; default: LOGPNSE(nse, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 863ec50..595e2a6 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -443,3 +443,47 @@ return NULL; } + +/*! Seleect a pseudo-random SGSN for a given TLLI, ignoring any SGSN that is not accepting connections + * \param[in] cfg The gbproxy configuration + * \param[in] sgsn_avoid If not NULL then avoid this SGSN when selecting a new one. Use for load redistribution + * \param[in] tlli The tlli to choose an SGSN for. The same tlli will map to the same SGSN as long as no SGSN is + * added/removed or allow_attach changes. + * \return Returns the sgsn on success, NULL if no SGSN that allows new connections could be found + */ +struct gbproxy_sgsn *gbproxy_sgsn_by_tlli(struct gbproxy_config *cfg, struct gbproxy_sgsn *sgsn_avoid, + uint32_t tlli) +{ + uint32_t i = 0; + uint32_t index, num_sgsns; + struct gbproxy_sgsn *sgsn; + OSMO_ASSERT(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 + index = hash_32(tlli, 8) % num_sgsns; + + // 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 + llist_for_each_entry(sgsn, &cfg->sgsns, list) { + if (i > index) { + break; + } else if (sgsn->pool.allow_attach) { + return sgsn; + } + i++; + } + + return NULL; +} -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I58b9f55065f6bd43450e4b07cffe7ba132b1fd9b Gerrit-Change-Number: 21881 Gerrit-PatchSet: 2 Gerrit-Owner: daniel 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 Dec 29 21:35:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 21:35:41 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add comments to sgsn functions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21888 ) Change subject: gbproxy: Add comments to sgsn functions ...................................................................... gbproxy: Add comments to sgsn functions Change-Id: I8c96308045112f25292b0e57c306d8486a2524cc --- M src/gbproxy/gb_proxy_main.c M src/gbproxy/gb_proxy_peer.c 2 files changed, 24 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index e85e951..c660ede 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -303,6 +303,8 @@ 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); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 595e2a6..a966c6c 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -343,7 +343,15 @@ return nse; } -/* SGSN */ +/*********************************************************************** + * SGSN - Serving GPRS Support Node + ***********************************************************************/ + +/*! 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 + * \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 *sgsn; @@ -381,6 +389,9 @@ talloc_free(sgsn); } +/*! Free the SGSN. This ensures the corresponding gbproxy_nse is freed as well + * \param[in] sgsn The SGSN + */ void gbproxy_sgsn_free(struct gbproxy_sgsn *sgsn) { if (!sgsn) @@ -392,6 +403,11 @@ _sgsn_free(sgsn); } +/*! 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; @@ -405,6 +421,11 @@ return NULL; } +/*! Return the SGSN for a given NSEI, creating a new one if none exists + * \param[in] cfg The gbproxy configuration + * \param[in] nsei The nsei where the SGSN can be reached + * \return Returns the SGSN + */ struct gbproxy_sgsn *gbproxy_sgsn_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei) { struct gbproxy_sgsn *sgsn; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8c96308045112f25292b0e57c306d8486a2524cc Gerrit-Change-Number: 21888 Gerrit-PatchSet: 1 Gerrit-Owner: daniel 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 Dec 29 22:31:46 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 29 Dec 2020 22:31:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: check the device state before changing state References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21895 ) Change subject: gprs_ns2: fr: check the device state before changing state ...................................................................... gprs_ns2: fr: check the device state before changing state Reduce the required capabilities if the device is already set up. Change-Id: I72eb2567078758694c648a493324b212461ee735 --- M src/gb/gprs_ns2_fr.c 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/21895/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 1b0ec00..e972a34 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -447,6 +447,13 @@ memset(&req, 0, sizeof req); OSMO_STRLCPY_ARRAY(req.ifr_name, netif); + rc = ioctl(sock, SIOCGIFFLAGS, &req); + if (rc < 0) + return rc; + + if ((req.ifr_flags & IFF_UP) == up) + return 0; + if (up) req.ifr_flags |= IFF_UP; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I72eb2567078758694c648a493324b212461ee735 Gerrit-Change-Number: 21895 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 Dec 29 22:36:22 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 29 Dec 2020 22:36:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: lynxis lazus 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 7: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21753/4/tests/Makefile.am File tests/Makefile.am: https://gerrit.osmocom.org/c/libosmocore/+/21753/4/tests/Makefile.am at 196 PS4, Line 196: $(top_srcdir)/src/gb/gprs_ns.o \ > please consider using an approach like https://git.osmocom. [?] Done -- 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: 7 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, 29 Dec 2020 22:36:22 +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 Dec 29 22:39:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 22:39:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: check the device state before changing state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21895 ) Change subject: gprs_ns2: fr: check the device state before changing state ...................................................................... Patch Set 1: looks good - but the SIOCWANDEV most likely also needs CAP_NET_ADMIN.... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I72eb2567078758694c648a493324b212461ee735 Gerrit-Change-Number: 21895 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 22:39: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 Dec 29 22:41:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 22:41:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: check the device state before changing state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21895 ) Change subject: gprs_ns2: fr: check the device state before changing state ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I72eb2567078758694c648a493324b212461ee735 Gerrit-Change-Number: 21895 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 22:41: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 Dec 29 22:41:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 22:41:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fr: check the device state before changing state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21895 ) Change subject: gprs_ns2: fr: check the device state before changing state ...................................................................... gprs_ns2: fr: check the device state before changing state Reduce the required capabilities if the device is already set up. Change-Id: I72eb2567078758694c648a493324b212461ee735 --- M src/gb/gprs_ns2_fr.c 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: laforge: 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 1b0ec00..e972a34 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -447,6 +447,13 @@ memset(&req, 0, sizeof req); OSMO_STRLCPY_ARRAY(req.ifr_name, netif); + rc = ioctl(sock, SIOCGIFFLAGS, &req); + if (rc < 0) + return rc; + + if ((req.ifr_flags & IFF_UP) == up) + return 0; + if (up) req.ifr_flags |= IFF_UP; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I72eb2567078758694c648a493324b212461ee735 Gerrit-Change-Number: 21895 Gerrit-PatchSet: 2 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 Tue Dec 29 22:55:05 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 29 Dec 2020 22:55:05 +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 (#16). 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, 272 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/21701/16 -- 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: 16 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 Tue Dec 29 23:15:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 23:15:52 +0000 Subject: Change in docker-playground[master]: osmo-gbproxy: Change config file to comply with change in upstream References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21896 ) Change subject: osmo-gbproxy: Change config file to comply with change in upstream ...................................................................... osmo-gbproxy: Change config file to comply with change in upstream In osmo-sgsn Change-Id Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e we have changed the config file syntax and must adjust here accordingly. Change-Id: I8770baac2298ee9a71d7428ea30600751783b4f9 Depends: osmo-sgsn Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/96/21896/1 diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index c31d260..e321af6 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -20,7 +20,7 @@ bind 0.0.0.0 ! gbproxy - sgsn nsei 101 +sgsn nsei 101 ns nse 101 nsvci 101 nse 101 remote-role sgsn diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index b1f2c3d..ad5ad8e 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -20,7 +20,7 @@ bind 0.0.0.0 ! gbproxy - sgsn nsei 101 +sgsn nsei 101 ns nse 101 nsvci 101 nse 101 remote-role sgsn -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8770baac2298ee9a71d7428ea30600751783b4f9 Gerrit-Change-Number: 21896 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 Dec 29 23:17:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 23:17:34 +0000 Subject: Change in docker-playground[master]: osmo-gbproxy: Change config file to comply with change in upstream In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21896 ) Change subject: osmo-gbproxy: Change config file to comply with change in upstream ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8770baac2298ee9a71d7428ea30600751783b4f9 Gerrit-Change-Number: 21896 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 29 Dec 2020 23: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 Tue Dec 29 23:17:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 29 Dec 2020 23:17:37 +0000 Subject: Change in docker-playground[master]: osmo-gbproxy: Change config file to comply with change in upstream In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21896 ) Change subject: osmo-gbproxy: Change config file to comply with change in upstream ...................................................................... osmo-gbproxy: Change config file to comply with change in upstream In osmo-sgsn Change-Id Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e we have changed the config file syntax and must adjust here accordingly. Change-Id: I8770baac2298ee9a71d7428ea30600751783b4f9 Depends: osmo-sgsn Id67592aa7712e5e04e7264b2fb8f26d57eb7e69e --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index c31d260..e321af6 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -20,7 +20,7 @@ bind 0.0.0.0 ! gbproxy - sgsn nsei 101 +sgsn nsei 101 ns nse 101 nsvci 101 nse 101 remote-role sgsn diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index b1f2c3d..ad5ad8e 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -20,7 +20,7 @@ bind 0.0.0.0 ! gbproxy - sgsn nsei 101 +sgsn nsei 101 ns nse 101 nsvci 101 nse 101 remote-role sgsn -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8770baac2298ee9a71d7428ea30600751783b4f9 Gerrit-Change-Number: 21896 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Dec 30 01:49:55 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 01:49:55 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5febdcd9561d1_59872af9dc0645f41894119@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: [ 344s] [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 [ 344s] debian/rules override_dh_auto_test [ 344s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 344s] cd obj-i686-linux-gnu && meson test --suite unit [ 345s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 345s] ninja: no work to do. [ 353s] 1/3 open5gs:unit / core OK 7.03 s [ 353s] 2/3 open5gs:unit / crypt OK 0.18 s [ 353s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 353s] [ 353s] Ok: 2 [ 353s] Expected Fail: 0 [ 353s] Fail: 1 [ 353s] Unexpected Pass: 0 [ 353s] Skipped: 0 [ 353s] Timeout: 0 [ 353s] [ 353s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 353s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 353s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 353s] make: *** [debian/rules:11: binary] Error 2 [ 353s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 353s] ### VM INTERACTION START ### [ 356s] [ 345.790451] sysrq: Power Off [ 356s] [ 345.805761] reboot: Power down [ 356s] ### VM INTERACTION END ### [ 356s] [ 356s] lamb04 failed "build open5gs_2.1.1.20201230.dsc" at Wed Dec 30 01:47:37 UTC 2020. [ 356s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 01:51:04 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 01:51:04 +0000 Subject: Build failure of network:osmocom:nightly/libsmpp34 in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5febdd194c67a_59872af9dc0645f41894783@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libsmpp34/Debian_8.0/x86_64 Package network:osmocom:nightly/libsmpp34 failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libsmpp34 Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud115:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 01:51:04 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 01:51:04 +0000 Subject: Build failure of network:osmocom:nightly/neocon in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5febdd19cb5a8_59872af9dc0645f41894883@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/neocon/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/neocon failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly neocon Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was old-atreju3:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 01:51:04 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 01:51:04 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-dsp in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5febdd18c2ce7_59872af9dc0645f4189464@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-dsp/Debian_9.0/x86_64 Package network:osmocom:nightly/libosmo-dsp failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-dsp Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was sheep88:4) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 01:51:21 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 01:51:21 +0000 Subject: Build failure of network:osmocom:nightly/libgtpnl in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5febdd33f0267_59872af9dc0645f41894970@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libgtpnl/Debian_Unstable/x86_64 Package network:osmocom:nightly/libgtpnl failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libgtpnl Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was wildcard2:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 01:51:21 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 01:51:21 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-dsp in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5febdd34c4956_59872af9dc0645f41895080@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-dsp/Debian_8.0/x86_64 Package network:osmocom:nightly/libosmo-dsp failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-dsp Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb26:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 01:51:21 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 01:51:21 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5febdd353e088_59872af9dc0645f41895183@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_9.0/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was sheep87:15) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 01:55:38 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 01:55:38 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5febde24e3482_59872af9dc0645f418962ca@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: [ 167s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 167s] [COMPILING libboard/qmod/source/card_pres.c] [ 167s] [COMPILING libboard/qmod/source/wwan_led.c] [ 167s] [COMPILING libboard/qmod/source/i2c.c] [ 167s] [COMPILING libboard/qmod/source/board_qmod.c] [ 168s] [COMPILING apps/dfu/main.c] [ 168s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 168s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 168s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 168s] Memory region Used Size Region Size %age Used [ 168s] rom: 16588 B 16 KB 101.25% [ 168s] 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' [ 168s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 168s] collect2: error: ld returned 1 exit status [ 168s] % [ 168s] make[2]: *** [Makefile:234: flash] Error 1 [ 168s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 168s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 168s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 168s] dh_auto_build: error: make -j1 returned exit code 2 [ 168s] make: *** [debian/rules:16: build] Error 25 [ 168s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 168s] ### VM INTERACTION START ### [ 171s] [ 159.615709] sysrq: Power Off [ 171s] [ 159.621290] reboot: Power down [ 172s] ### VM INTERACTION END ### [ 172s] [ 172s] lamb01 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 30 01:54:49 UTC 2020. [ 172s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 02:17:21 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 02:17:21 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5febe34d7ea0a_59872af9dc0645f41897796@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] [ 193s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 193s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 193s] Memory region Used Size Region Size %age Used [ 193s] rom: 16580 B 16 KB 101.20% [ 193s] 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 [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 193s] /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' [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 193s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 193s] collect2: error: ld returned 1 exit status [ 193s] % [ 193s] make[2]: *** [Makefile:234: flash] Error 1 [ 193s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 193s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 193s] 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] [ 182.994009] sysrq: Power Off [ 197s] [ 183.006686] reboot: Power down [ 197s] ### VM INTERACTION END ### [ 197s] [ 197s] lamb01 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Dec 30 02:16:39 UTC 2020. [ 197s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 02:29:21 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 02:29:21 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5febe61daafcf_59872af9dc0645f4189839f@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: [ 258s] CC gb_proxy.o [ 258s] gb_proxy.c: In function 'gbproxy_select_sgsn_bvc': [ 258s] gb_proxy.c:293:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode [ 258s] for (int i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { [ 258s] ^ [ 258s] gb_proxy.c:293:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code [ 258s] Makefile:477: recipe for target 'gb_proxy.o' failed [ 258s] make[4]: *** [gb_proxy.o] Error 1 [ 258s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/gbproxy' [ 258s] Makefile:383: recipe for target 'all-recursive' failed [ 258s] make[3]: *** [all-recursive] Error 1 [ 258s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 258s] Makefile:449: recipe for target 'all-recursive' failed [ 258s] make[2]: *** [all-recursive] Error 1 [ 258s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 258s] Makefile:380: recipe for target 'all' failed [ 258s] make[1]: *** [all] Error 2 [ 258s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 258s] dh_auto_build: make -j1 returned exit code 2 [ 258s] debian/rules:45: recipe for target 'build' failed [ 258s] make: *** [build] Error 2 [ 258s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 258s] ### VM INTERACTION START ### [ 259s] Powering off. [ 259s] [ 246.606221] reboot: Power down [ 260s] ### VM INTERACTION END ### [ 260s] [ 260s] cloud123 failed "build osmo-sgsn_1.6.0.114.00c1.dsc" at Wed Dec 30 02:28:56 UTC 2020. [ 260s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 03:25:37 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 03:25:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5febf342be1c3_59872af9dc0645f419062e4@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb56:5) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 03:25:54 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 03:25:54 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in Debian_10/armv7l In-Reply-To: References: Message-ID: <5febf35d4265d_59872af9dc0645f419063ba@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/Debian_10/armv7l Package network:osmocom:nightly/simtrace2 failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild04:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 03:44:28 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 03:44:28 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5febf7b385918_59872af9dc0645f4190869f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-ggsn failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud124:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 04:33:37 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 04:33:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fec032e114b8_59872af9dc0645f4191654d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-bsc failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was lamb15:5) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 04:33:37 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 04:33:37 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fec032e92d2a_59872af9dc0645f419166bf@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_9.0/armv7l Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-sccp Last lines of build log: [ 1s] [ 1s] armbuild04 started "build libosmo-sccp_1.3.0.25.48e2.dsc" at Wed Dec 30 04:32:59 UTC 2020. [ 1s] [ 1s] Building libosmo-sccp for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 '968d66f5f8a06b1e3b8b8bc941033359' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/libosmo-sccp_1.3.0.25.48e2.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/libosmo-sccp_1.3.0.25.48e2.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/libosmo-sccp_1.3.0.25.48e2.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build libosmo-sccp_1.3.0.25.48e2.dsc" at Wed Dec 30 04:32:59 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 05:23:54 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 05:23:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5fec0f01856f7_59872af9dc0645f41920610@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:19) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 05:58:46 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 05:58:46 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fec17385cf14_59872af9dc0645f4192362b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/osmo-trx failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild24:5) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 06:22:11 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 06:22:11 +0000 Subject: Build failure of network:osmocom:nightly/libgtpnl in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fec1c9c2cd40_59872af9dc0645f419333ab@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: [ 1s] [ 1s] armbuild04 started "build libgtpnl_1.2.1.3.102c.dsc" at Wed Dec 30 06:21:26 UTC 2020. [ 1s] [ 1s] Building libgtpnl for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '8795b39b1c82bd97a33a439c339dc892' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/libgtpnl_1.2.1.3.102c.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/libgtpnl_1.2.1.3.102c.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/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 Wed Dec 30 06:21:26 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 07:29:58 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 07:29:58 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fec2c8c90c60_59872af9dc0645f4193936a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-e1d failed to build in Debian_9.0/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 Wed Dec 30 07:29:30 UTC 2020. [ 0s] [ 0s] Building osmo-e1d for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 '9658e5ca6e704bba8e1db5ce77aad0d3' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-e1d_0.1.1.30.868c.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-e1d_0.1.1.30.868c.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-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 Wed Dec 30 07:29:31 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 07:38:33 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 07:38:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sysmon in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fec2e893e7eb_59872af9dc0645f419404c6@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: [ 0s] [ 0s] armbuild04 started "build osmo-sysmon_0.2.0.4.8984.dsc" at Wed Dec 30 07:37:24 UTC 2020. [ 0s] [ 0s] Building osmo-sysmon for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 'dcd7431a65bc8d91c7336e735278a274' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-sysmon_0.2.0.4.8984.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-sysmon_0.2.0.4.8984.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-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 Wed Dec 30 07:37:25 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 07:48:16 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 07:48:16 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fec30c5f05f7_59872af9dc0645f4194107b@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: [ 1s] [ 1s] armbuild04 started "build osmo-remsim_0.2.2.103.dc34.dsc" at Wed Dec 30 07:47:51 UTC 2020. [ 1s] [ 1s] Building osmo-remsim for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 '3bf57bd03a526c3155cec9e2f6a696c2' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-remsim_0.2.2.103.dc34.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-remsim_0.2.2.103.dc34.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-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 Wed Dec 30 07:47:51 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 08:39:24 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 08:39:24 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fec3cd74c4f6_59872af9dc0645f419445bb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was armbuild22:5) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 08:51:58 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 08:51:58 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fec3fc5a0490_59872af9dc0645f41946285@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 Wed Dec 30 08:50:55 UTC 2020. [ 0s] [ 0s] Building osmo-sip-connector for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '086f3e31244ce1fc3ec45917d53b3bc1' [ 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 Wed Dec 30 08:50:56 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 09:56:16 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 09:56:16 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fec4ec3d5827_59872af9dc0645f41959694@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: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (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 Wed Dec 30 09:57:41 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 09:57:41 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fec4f1ce6e6_59872af9dc0645f4196007b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-smlc failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: [ 1s] [ 1s] armbuild04 started "build osmo-smlc_0.1.0.5.5dad.dsc" at Wed Dec 30 09:57:05 UTC 2020. [ 1s] [ 1s] Building osmo-smlc for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 'fba4feffad7c45ea36016e2994440697' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-smlc_0.1.0.5.5dad.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-smlc_0.1.0.5.5dad.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-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 Wed Dec 30 09:57:05 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 10:12:33 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 10:12:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fec52a02df56_59872af9dc0645f4196297c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-msc failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-msc_1.6.1.87.e917b.dsc" at Wed Dec 30 10:10:53 UTC 2020. [ 0s] [ 0s] Building osmo-msc for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 'e2dc7053269fe7390397200824a9a657' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-msc_1.6.1.87.e917b.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-msc_1.6.1.87.e917b.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-msc_1.6.1.87.e917b.dsc build ... [ 0s] unknown keyword in config: [ 0s] could not autodetect package type [ 0s] [ 0s] armbuild04 failed "build osmo-msc_1.6.1.87.e917b.dsc" at Wed Dec 30 10:10:53 UTC 2020. [ 0s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 10:21:07 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 10:21:07 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fec549f7a1f9_59872af9dc0645f41963340@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_10/armv7l Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_10/armv7l 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 armbuild13: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 Wed Dec 30 11:14:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 11:14:04 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix build on Deiban 8 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21897 ) Change subject: gbproxy: Fix build on Deiban 8 ...................................................................... gbproxy: Fix build on Deiban 8 [ 258s] CC gb_proxy.o [ 258s] gb_proxy.c: In function 'gbproxy_select_sgsn_bvc': [ 258s] gb_proxy.c:293:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode [ 258s] for (int i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { [ 258s] ^ [ 258s] gb_proxy.c:293:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code Change-Id: I717410b11f1ee38d49e9ca5af593cb59a244ae0a --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/97/21897/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 7e9d9c3..d86c6ae 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -282,6 +282,7 @@ { struct gbproxy_sgsn *sgsn; struct gbproxy_bvc *sgsn_bvc = NULL; + int i; sgsn = gbproxy_select_sgsn(cfg, tlli); if (!sgsn) { @@ -290,7 +291,7 @@ } /* Get the BVC for this SGSN/NSE */ - for (int i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { sgsn_bvc = cell->sgsn_bvc[i]; if (!sgsn_bvc) continue; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I717410b11f1ee38d49e9ca5af593cb59a244ae0a Gerrit-Change-Number: 21897 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 Dec 30 12:04:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 12:04:37 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix build on Deiban 8 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21897 ) Change subject: gbproxy: Fix build on Deiban 8 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I717410b11f1ee38d49e9ca5af593cb59a244ae0a Gerrit-Change-Number: 21897 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 30 Dec 2020 12:04: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 Dec 30 12:04:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 12:04:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix build on Deiban 8 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21897 ) Change subject: gbproxy: Fix build on Deiban 8 ...................................................................... gbproxy: Fix build on Deiban 8 [ 258s] CC gb_proxy.o [ 258s] gb_proxy.c: In function 'gbproxy_select_sgsn_bvc': [ 258s] gb_proxy.c:293:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode [ 258s] for (int i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { [ 258s] ^ [ 258s] gb_proxy.c:293:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code Change-Id: I717410b11f1ee38d49e9ca5af593cb59a244ae0a --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 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 7e9d9c3..d86c6ae 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -282,6 +282,7 @@ { struct gbproxy_sgsn *sgsn; struct gbproxy_bvc *sgsn_bvc = NULL; + int i; sgsn = gbproxy_select_sgsn(cfg, tlli); if (!sgsn) { @@ -290,7 +291,7 @@ } /* Get the BVC for this SGSN/NSE */ - for (int i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { + for (i = 0; i < ARRAY_SIZE(cell->sgsn_bvc); i++) { sgsn_bvc = cell->sgsn_bvc[i]; if (!sgsn_bvc) continue; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I717410b11f1ee38d49e9ca5af593cb59a244ae0a Gerrit-Change-Number: 21897 Gerrit-PatchSet: 1 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 admin at opensuse.org Wed Dec 30 12:15:24 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 12:15:24 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5fec6f7429986_59872af9dc0645f41991075@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/Debian_10/aarch64 Package network:osmocom:nightly/osmo-remsim failed to build in Debian_10/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-9:26) -- 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 Dec 30 12:50:58 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 30 Dec 2020 12:50:58 +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: tnt has posted comments on 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 ...................................................................... Patch Set 3: Code-Review+1 -- 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: tnt Gerrit-Comment-Date: Wed, 30 Dec 2020 12:50: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 Dec 30 12:51:23 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 30 Dec 2020 12:51:23 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Don't store E1_*_CR_*_CLR in variables In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21878 ) Change subject: icE1usb fw: Don't store E1_*_CR_*_CLR in variables ...................................................................... Patch Set 1: Code-Review+1 -- 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: tnt Gerrit-Comment-Date: Wed, 30 Dec 2020 12:51: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 Dec 30 12:55:28 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 30 Dec 2020 12:55:28 +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 3: Code-Review-1 (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) for instance so this would clear all overflow ... Should be : g_e1.tx.cr = (g_e1.tx.cr & ~TX_CRPERMITED) & (cr & TXCR_PERMITTED); e1_regs->tx.csr = g_e1.tx.cr; https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774/3/firmware/ice40-riscv/icE1usb/e1.c at 288 PS3, Line 288: } Same as TX -- 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: Wed, 30 Dec 2020 12:55: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 Wed Dec 30 12:57:40 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 30 Dec 2020 12:57:40 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: USB control request handling In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775 ) Change subject: icE1usb fw: USB control request handling ...................................................................... Patch Set 5: Code-Review+1 -- 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: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 30 Dec 2020 12:57: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 Dec 30 13:07:46 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 30 Dec 2020 13:07:46 +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 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 ? -- 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: Wed, 30 Dec 2020 13:07: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 Wed Dec 30 13:15:47 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 30 Dec 2020 13:15:47 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Allow to transmit AIS In-Reply-To: References: Message-ID: tnt 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 2: Code-Review+1 -- 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: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 30 Dec 2020 13: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 Wed Dec 30 13:24:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 13:24:02 +0000 Subject: Change in osmo-iuh[master]: hnbgw: use OSMO_STRLCPY_ARRAY() instead of open coding it References: Message-ID: laforge has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/98/21898/1 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-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 13:24:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 13:24:03 +0000 Subject: Change in osmo-iuh[master]: hnbgw: Introduce LOGHNB() macro for log context information References: Message-ID: laforge has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/99/21899/1 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-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 13:24:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 13:24:03 +0000 Subject: Change in osmo-iuh[master]: hnbgw: Use LOGHNB() to add log context information to log lines References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/21900 ) Change subject: hnbgw: Use LOGHNB() to add log context information to log lines ...................................................................... hnbgw: Use LOGHNB() to add log context information to log lines So far we don't really have any way of matching a given log message to a specific hNB. Let's use the newly-introduced LOGHNB() macro. Change-Id: Ia16eed4ca5e9ef231259e94c65105f7586f366bc --- M src/context_map.c M src/hnbgw.c M src/hnbgw_hnbap.c M src/hnbgw_ranap.c M src/hnbgw_rua.c 5 files changed, 103 insertions(+), 134 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/00/21900/1 diff --git a/src/context_map.c b/src/context_map.c index dc555bf..f516efe 100644 --- a/src/context_map.c +++ b/src/context_map.c @@ -85,11 +85,11 @@ } if (alloc_cn_conn_id(cn_if_new, &new_scu_conn_id) < 0) { - LOGP(DMAIN, LOGL_ERROR, "Unable to allocate CN connection ID\n"); + LOGHNB(hnb, DMAIN, LOGL_ERROR, "Unable to allocate CN connection ID\n"); return NULL; } - LOGP(DMAIN, LOGL_INFO, "Creating new Mapping RUA CTX %p/%u <-> SCU Conn ID %p/%u\n", + LOGHNB(hnb, DMAIN, LOGL_INFO, "Creating new Mapping RUA CTX %p/%u <-> SCU Conn ID %p/%u\n", hnb, rua_ctx_id, cn_if_new, new_scu_conn_id); /* alloate a new map entry */ @@ -125,8 +125,7 @@ /* we don't allocate new mappings in the CN->HNB * direction, as the RUA=SCCP=SUA connections are always * established from HNB towards CN. */ - LOGP(DMAIN, LOGL_NOTICE, "Unable to resolve map for CN " - "connection ID %p/%u\n", cn, scu_conn_id); + LOGP(DMAIN, LOGL_NOTICE, "Unable to resolve map for CN " "connection ID %p/%u\n", cn, scu_conn_id); return NULL; } diff --git a/src/hnbgw.c b/src/hnbgw.c index ba8a06f..a6e0d29 100644 --- a/src/hnbgw.c +++ b/src/hnbgw.c @@ -235,7 +235,7 @@ msgb_free(msg); return 0; } else if (rc < 0) { - LOGP(DMAIN, LOGL_ERROR, "Error during sctp_recvmsg()\n"); + LOGHNB(hnb, DMAIN, LOGL_ERROR, "Error during sctp_recvmsg()\n"); /* FIXME: clean up after disappeared HNB */ hnb_context_release(hnb); goto out; @@ -260,13 +260,11 @@ case IUH_PPI_SABP: case IUH_PPI_RNA: case IUH_PPI_PUA: - LOGP(DMAIN, LOGL_ERROR, "Unimplemented SCTP PPID=%lu received\n", - msgb_sctp_ppid(msg)); + LOGHNB(hnb, DMAIN, LOGL_ERROR, "Unimplemented SCTP PPID=%lu received\n", msgb_sctp_ppid(msg)); rc = 0; break; default: - LOGP(DMAIN, LOGL_ERROR, "Unknown SCTP PPID=%lu received\n", - msgb_sctp_ppid(msg)); + LOGHNB(hnb, DMAIN, LOGL_ERROR, "Unknown SCTP PPID=%lu received\n", msgb_sctp_ppid(msg)); rc = 0; break; } diff --git a/src/hnbgw_hnbap.c b/src/hnbgw_hnbap.c index c118774..bc503d3 100644 --- a/src/hnbgw_hnbap.c +++ b/src/hnbgw_hnbap.c @@ -64,8 +64,8 @@ memset(&reject_out, 0, sizeof(reject_out)); rc = hnbap_encode_hnbregisterrejecties(&reject_out, &reject); if (rc < 0) { - LOGP(DHNBAP, LOGL_ERROR, "Failure to encode HNB-REGISTER-REJECT to %s: rc=%d\n", - ctx->identity_info, rc); + LOGHNB(ctx, DHNBAP, LOGL_ERROR, "Failure to encode HNB-REGISTER-REJECT to %s: rc=%d\n", + ctx->identity_info, rc); return rc; } @@ -106,8 +106,8 @@ memset(&accept_out, 0, sizeof(accept_out)); rc = hnbap_encode_hnbregisteraccepties(&accept_out, &accept); if (rc < 0) { - LOGP(DHNBAP, LOGL_ERROR, "Failure to encode HNB-REGISTER-ACCEPT to %s: rc=%d\n", - ctx->identity_info, rc); + LOGHNB(ctx, DHNBAP, LOGL_ERROR, "Failure to encode HNB-REGISTER-ACCEPT to %s: rc=%d\n", + ctx->identity_info, rc); return rc; } @@ -119,7 +119,7 @@ ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_HNBRegisterAccept, &accept_out); - LOGP(DHNBAP, LOGL_NOTICE, "Accepting HNB-REGISTER-REQ from %s\n", ctx->identity_info); + LOGHNB(ctx, DHNBAP, LOGL_NOTICE, "Accepting HNB-REGISTER-REQ from %s\n", ctx->identity_info); return hnbgw_hnbap_tx(ctx, msg); } @@ -174,20 +174,14 @@ /* Copy the identity over to the reject message */ switch (ue_id->present) { case UE_Identity_PR_tMSILAI: - LOGP(DHNBAP, LOGL_DEBUG, "REJ UE_Id tMSI %d %s\n", - ue_id->choice.tMSILAI.tMSI.size, - osmo_hexdump(ue_id->choice.tMSILAI.tMSI.buf, - ue_id->choice.tMSILAI.tMSI.size)); + LOGHNB(hnb, DHNBAP, LOGL_DEBUG, "REJ UE_Id tMSI %d %s\n", ue_id->choice.tMSILAI.tMSI.size, + osmo_hexdump(ue_id->choice.tMSILAI.tMSI.buf, ue_id->choice.tMSILAI.tMSI.size)); - LOGP(DHNBAP, LOGL_DEBUG, "REJ UE_Id pLMNID %d %s\n", - ue_id->choice.tMSILAI.lAI.pLMNID.size, - osmo_hexdump(ue_id->choice.tMSILAI.lAI.pLMNID.buf, - ue_id->choice.tMSILAI.lAI.pLMNID.size)); + LOGHNB(hnb, DHNBAP, LOGL_DEBUG, "REJ UE_Id pLMNID %d %s\n", ue_id->choice.tMSILAI.lAI.pLMNID.size, + osmo_hexdump(ue_id->choice.tMSILAI.lAI.pLMNID.buf, ue_id->choice.tMSILAI.lAI.pLMNID.size)); - LOGP(DHNBAP, LOGL_DEBUG, "REJ UE_Id lAC %d %s\n", - ue_id->choice.tMSILAI.lAI.lAC.size, - osmo_hexdump(ue_id->choice.tMSILAI.lAI.lAC.buf, - ue_id->choice.tMSILAI.lAI.lAC.size)); + LOGHNB(hnb, DHNBAP, LOGL_DEBUG, "REJ UE_Id lAC %d %s\n", ue_id->choice.tMSILAI.lAI.lAC.size, + osmo_hexdump(ue_id->choice.tMSILAI.lAI.lAC.buf, ue_id->choice.tMSILAI.lAI.lAC.size)); BIT_STRING_fromBuf(&reject.uE_Identity.choice.tMSILAI.tMSI, ue_id->choice.tMSILAI.tMSI.buf, @@ -202,25 +196,17 @@ break; case UE_Identity_PR_pTMSIRAI: - LOGP(DHNBAP, LOGL_DEBUG, "REJ UE_Id pTMSI %d %s\n", - ue_id->choice.pTMSIRAI.pTMSI.size, - osmo_hexdump(ue_id->choice.pTMSIRAI.pTMSI.buf, - ue_id->choice.pTMSIRAI.pTMSI.size)); + LOGHNB(hnb, DHNBAP, LOGL_DEBUG, "REJ UE_Id pTMSI %d %s\n", ue_id->choice.pTMSIRAI.pTMSI.size, + osmo_hexdump(ue_id->choice.pTMSIRAI.pTMSI.buf, ue_id->choice.pTMSIRAI.pTMSI.size)); - LOGP(DHNBAP, LOGL_DEBUG, "REJ UE_Id pLMNID %d %s\n", - ue_id->choice.pTMSIRAI.rAI.lAI.pLMNID.size, - osmo_hexdump(ue_id->choice.pTMSIRAI.rAI.lAI.pLMNID.buf, - ue_id->choice.pTMSIRAI.rAI.lAI.pLMNID.size)); + LOGHNB(hnb, DHNBAP, LOGL_DEBUG, "REJ UE_Id pLMNID %d %s\n", ue_id->choice.pTMSIRAI.rAI.lAI.pLMNID.size, + osmo_hexdump(ue_id->choice.pTMSIRAI.rAI.lAI.pLMNID.buf, ue_id->choice.pTMSIRAI.rAI.lAI.pLMNID.size)); - LOGP(DHNBAP, LOGL_DEBUG, "REJ UE_Id lAC %d %s\n", - ue_id->choice.pTMSIRAI.rAI.lAI.lAC.size, - osmo_hexdump(ue_id->choice.pTMSIRAI.rAI.lAI.lAC.buf, - ue_id->choice.pTMSIRAI.rAI.lAI.lAC.size)); + LOGHNB(hnb, DHNBAP, LOGL_DEBUG, "REJ UE_Id lAC %d %s\n", ue_id->choice.pTMSIRAI.rAI.lAI.lAC.size, + osmo_hexdump(ue_id->choice.pTMSIRAI.rAI.lAI.lAC.buf, ue_id->choice.pTMSIRAI.rAI.lAI.lAC.size)); - LOGP(DHNBAP, LOGL_DEBUG, "REJ UE_Id rAC %d %s\n", - ue_id->choice.pTMSIRAI.rAI.rAC.size, - osmo_hexdump(ue_id->choice.pTMSIRAI.rAI.rAC.buf, - ue_id->choice.pTMSIRAI.rAI.rAC.size)); + LOGHNB(hnb, DHNBAP, LOGL_DEBUG, "REJ UE_Id rAC %d %s\n", ue_id->choice.pTMSIRAI.rAI.rAC.size, + osmo_hexdump(ue_id->choice.pTMSIRAI.rAI.rAC.buf, ue_id->choice.pTMSIRAI.rAI.rAC.size)); BIT_STRING_fromBuf(&reject.uE_Identity.choice.pTMSIRAI.pTMSI, ue_id->choice.pTMSIRAI.pTMSI.buf, @@ -238,13 +224,12 @@ break; default: - LOGP(DHNBAP, LOGL_ERROR, "Cannot compose UE Register Reject:" + LOGHNB(hnb, DHNBAP, LOGL_ERROR, "Cannot compose UE Register Reject:" " unsupported UE ID (present=%d)\n", ue_id->present); return -1; } - LOGP(DHNBAP, LOGL_ERROR, "Rejecting UE Register Request:" - " TMSI identity registration is switched off\n"); + LOGHNB(hnb, DHNBAP, LOGL_ERROR, "Rejecting UE Register Request: TMSI identity registration is switched off\n"); reject.cause.present = Cause_PR_radioNetwork; reject.cause.choice.radioNetwork = CauseRadioNetwork_invalid_UE_identity; @@ -337,14 +322,12 @@ break; default: - LOGP(DHNBAP, LOGL_ERROR, "Unsupportedccept UE ID (present=%d)\n", - ue_id->present); + LOGHNB(hnb, DHNBAP, LOGL_ERROR, "Unsupportedccept UE ID (present=%d)\n", ue_id->present); return -1; } tmsi = ntohl(tmsi); - LOGP(DHNBAP, LOGL_DEBUG, "HNBAP register with TMSI %x\n", - tmsi); + LOGHNB(hnb, DHNBAP, LOGL_DEBUG, "HNBAP register with TMSI %x\n", tmsi); ue = ue_context_by_tmsi(hnb->gw, tmsi); if (!ue) @@ -402,8 +385,7 @@ if (rc < 0) return rc; - DEBUGP(DHNBAP, "HNB-DE-REGISTER cause=%s\n", - hnbap_cause_str(&ies.cause)); + LOGHNB(ctx, DHNBAP, LOGL_DEBUG, "HNB-DE-REGISTER cause=%s\n", hnbap_cause_str(&ies.cause)); hnbap_free_hnbde_registeries(&ies); hnb_context_release(ctx); @@ -419,8 +401,8 @@ rc = hnbap_decode_hnbregisterrequesties(&ies, in); if (rc < 0) { - LOGP(DHNBAP, LOGL_ERROR, "Failure to decode HNB-REGISTER-REQ from %s: rc=%d\n", - ctx->identity_info, rc); + LOGHNB(ctx, DHNBAP, LOGL_ERROR, "Failure to decode HNB-REGISTER-REQ from %s: rc=%d\n", + ctx->identity_info, rc); return rc; } @@ -437,9 +419,9 @@ if (hnb->hnb_registered && ctx != hnb && memcmp(&ctx->id, &hnb->id, sizeof(ctx->id)) == 0) { struct osmo_fd *ofd = osmo_stream_srv_get_ofd(ctx->conn); char *name = osmo_sock_get_name(ctx, ofd->fd); - LOGP(DHNBAP, LOGL_ERROR, "rejecting HNB-REGISTER-REQ with duplicate cell identity " - "MCC=%u,MNC=%u,LAC=%u,RAC=%u,SAC=%u,CID=%u from %s\n", - ctx->id.mcc, ctx->id.mnc, ctx->id.lac, ctx->id.rac, ctx->id.sac, ctx->id.cid, name); + LOGHNB(ctx, DHNBAP, LOGL_ERROR, "rejecting HNB-REGISTER-REQ with duplicate cell identity " + "MCC=%u,MNC=%u,LAC=%u,RAC=%u,SAC=%u,CID=%u from %s\n", + ctx->id.mcc, ctx->id.mnc, ctx->id.lac, ctx->id.rac, ctx->id.sac, ctx->id.cid, name); talloc_free(name); return hnbgw_tx_hnb_register_rej(ctx); } @@ -447,7 +429,7 @@ ctx->hnb_registered = true; - DEBUGP(DHNBAP, "HNB-REGISTER-REQ from %s\n", ctx->identity_info); + LOGHNB(ctx, DHNBAP, LOGL_DEBUG, "HNB-REGISTER-REQ from %s\n", ctx->identity_info); /* Send HNBRegisterAccept */ rc = hnbgw_tx_hnb_register_acc(ctx); @@ -489,14 +471,13 @@ hnbap_free_ueregisterrequesties(&ies); return rc; default: - LOGP(DHNBAP, LOGL_NOTICE, - "UE-REGISTER-REQ with unsupported UE Id type %d\n", - ies.uE_Identity.present); + LOGHNB(ctx, DHNBAP, LOGL_NOTICE, "UE-REGISTER-REQ with unsupported UE Id type %d\n", + ies.uE_Identity.present); hnbap_free_ueregisterrequesties(&ies); return rc; } - DEBUGP(DHNBAP, "UE-REGISTER-REQ ID_type=%d imsi=%s cause=%ld\n", + LOGHNB(ctx, DHNBAP, LOGL_DEBUG, "UE-REGISTER-REQ ID_type=%d imsi=%s cause=%ld\n", ies.uE_Identity.present, imsi, ies.registration_Cause); ue = ue_context_by_imsi(ctx->gw, imsi); @@ -521,8 +502,7 @@ ctxid = asn1bitstr_to_u24(&ies.context_ID); - DEBUGP(DHNBAP, "UE-DE-REGISTER context=%u cause=%s\n", - ctxid, hnbap_cause_str(&ies.cause)); + LOGHNB(ctx, DHNBAP, LOGL_DEBUG, "UE-DE-REGISTER context=%u cause=%s\n", ctxid, hnbap_cause_str(&ies.cause)); ue = ue_context_by_id(ctx->gw, ctxid); if (ue) @@ -541,8 +521,7 @@ if (rc < 0) return rc; - LOGP(DHNBAP, LOGL_NOTICE, "HNBAP ERROR.ind, cause: %s\n", - hnbap_cause_str(&ies.cause)); + LOGHNB(hnb, DHNBAP, LOGL_NOTICE, "HNBAP ERROR.ind, cause: %s\n", hnbap_cause_str(&ies.cause)); hnbap_free_errorindicationies(&ies); return 0; @@ -573,12 +552,10 @@ case ProcedureCode_id_RelocationComplete: /* 8.11 */ case ProcedureCode_id_U_RNTIQuery: /* 8.12 */ case ProcedureCode_id_privateMessage: - LOGP(DHNBAP, LOGL_NOTICE, "Unimplemented HNBAP Procedure %ld\n", - imsg->procedureCode); + LOGHNB(hnb, DHNBAP, LOGL_NOTICE, "Unimplemented HNBAP Procedure %ld\n", imsg->procedureCode); break; default: - LOGP(DHNBAP, LOGL_NOTICE, "Unknown HNBAP Procedure %ld\n", - imsg->procedureCode); + LOGHNB(hnb, DHNBAP, LOGL_NOTICE, "Unknown HNBAP Procedure %ld\n", imsg->procedureCode); break; } @@ -594,10 +571,9 @@ static int hnbgw_rx_unsuccessful_outcome_msg(struct hnb_context *hnb, UnsuccessfulOutcome_t *msg) { /* We don't care much about HNBAP */ - LOGP(DHNBAP, LOGL_ERROR, "Received Unsuccessful Outcome, procedureCode %ld, criticality %ld," - " from '%s', cell mcc %u mnc %u lac %u rac %u sac %u cid %u\n", - msg->procedureCode, msg->criticality, hnb->identity_info, - hnb->id.mcc, hnb->id.mnc, hnb->id.lac, hnb->id.rac, hnb->id.sac, hnb->id.cid); + LOGHNB(hnb, DHNBAP, LOGL_ERROR, "Received Unsuccessful Outcome, procedureCode %ld, criticality %ld," + " cell mcc %u mnc %u lac %u rac %u sac %u cid %u\n", msg->procedureCode, msg->criticality, + hnb->id.mcc, hnb->id.mnc, hnb->id.lac, hnb->id.rac, hnb->id.sac, hnb->id.cid); return 0; } @@ -619,8 +595,7 @@ rc = hnbgw_rx_unsuccessful_outcome_msg(hnb, &pdu->choice.unsuccessfulOutcome); break; default: - LOGP(DHNBAP, LOGL_NOTICE, "Unknown HNBAP Presence %u\n", - pdu->present); + LOGHNB(hnb, DHNBAP, LOGL_NOTICE, "Unknown HNBAP Presence %u\n", pdu->present); rc = -1; } @@ -639,7 +614,7 @@ dec_ret = aper_decode(NULL, &asn_DEF_HNBAP_PDU, (void **) &pdu, msg->data, msgb_length(msg), 0, 0); if (dec_ret.code != RC_OK) { - LOGP(DHNBAP, LOGL_ERROR, "Error in ASN.1 decode\n"); + LOGHNB(hnb, DHNBAP, LOGL_ERROR, "Error in ASN.1 decode\n"); return -1; } diff --git a/src/hnbgw_ranap.c b/src/hnbgw_ranap.c index 6822752..445d463 100644 --- a/src/hnbgw_ranap.c +++ b/src/hnbgw_ranap.c @@ -64,7 +64,7 @@ if (ies.cN_DomainIndicator == RANAP_CN_DomainIndicator_ps_domain) is_ps=1; - LOGP(DRANAP, LOGL_INFO, "Rx RESET.req(%s,%s)\n", is_ps ? "ps" : "cs", + LOGHNB(hnb, DRANAP, LOGL_INFO, "Rx RESET.req(%s,%s)\n", is_ps ? "ps" : "cs", ranap_cause_str(&ies.cause)); /* FIXME: Actually we have to wait for some guard time? */ @@ -84,10 +84,9 @@ return rc; if (ies.presenceMask & ERRORINDICATIONIES_RANAP_CAUSE_PRESENT) { - LOGP(DRANAP, LOGL_ERROR, "Rx ERROR.ind(%s)\n", - ranap_cause_str(&ies.cause)); + LOGHNB(hnb, DRANAP, LOGL_ERROR, "Rx ERROR.ind(%s)\n", ranap_cause_str(&ies.cause)); } else - LOGP(DRANAP, LOGL_ERROR, "Rx ERROR.ind\n"); + LOGHNB(hnb, DRANAP, LOGL_ERROR, "Rx ERROR.ind\n"); return 0; } @@ -117,12 +116,12 @@ case RANAP_ProcedureCode_id_InformationTransfer: case RANAP_ProcedureCode_id_DirectInformationTransfer: case RANAP_ProcedureCode_id_UplinkInformationExchange: - LOGP(DRANAP, LOGL_NOTICE, "Received unsupported RANAP " - "Procedure %lu from HNB, ignoring\n", imsg->procedureCode); + LOGHNB(hnb, DRANAP, LOGL_NOTICE, "Received unsupported RANAP " + "Procedure %lu from HNB, ignoring\n", imsg->procedureCode); break; default: - LOGP(DRANAP, LOGL_NOTICE, "Received suspicious RANAP " - "Procedure %lu from HNB, ignoring\n", imsg->procedureCode); + LOGHNB(hnb, DRANAP, LOGL_NOTICE, "Received suspicious RANAP " + "Procedure %lu from HNB, ignoring\n", imsg->procedureCode); break; } @@ -145,12 +144,12 @@ case RANAP_ProcedureCode_id_InformationTransfer: case RANAP_ProcedureCode_id_DirectInformationTransfer: case RANAP_ProcedureCode_id_UplinkInformationExchange: - LOGP(DRANAP, LOGL_NOTICE, "Received unsupported RANAP " - "Procedure %lu from HNB, ignoring\n", imsg->procedureCode); + LOGHNB(hnb, DRANAP, LOGL_NOTICE, "Received unsupported RANAP " + "Procedure %lu from HNB, ignoring\n", imsg->procedureCode); break; default: - LOGP(DRANAP, LOGL_NOTICE, "Received suspicious RANAP " - "Procedure %lu from HNB, ignoring\n", imsg->procedureCode); + LOGHNB(hnb, DRANAP, LOGL_NOTICE, "Received suspicious RANAP " + "Procedure %lu from HNB, ignoring\n", imsg->procedureCode); break; } @@ -171,13 +170,13 @@ rc = ranap_rx_successful_msg(hnb, &pdu->choice.successfulOutcome); break; case RANAP_RANAP_PDU_PR_unsuccessfulOutcome: - LOGP(DRANAP, LOGL_NOTICE, "Received unsupported RANAP " - "unsuccessful outcome procedure %lu from HNB, ignoring\n", - pdu->choice.unsuccessfulOutcome.procedureCode); + LOGHNB(hnb, DRANAP, LOGL_NOTICE, "Received unsupported RANAP " + "unsuccessful outcome procedure %lu from HNB, ignoring\n", + pdu->choice.unsuccessfulOutcome.procedureCode); break; default: - LOGP(DRANAP, LOGL_NOTICE, "Received suspicious RANAP " - "presence %u from HNB, ignoring\n", pdu->present); + LOGHNB(hnb, DRANAP, LOGL_NOTICE, "Received suspicious RANAP " + "presence %u from HNB, ignoring\n", pdu->present); break; } @@ -188,6 +187,7 @@ int hnbgw_ranap_rx(struct msgb *msg, uint8_t *data, size_t len) { RANAP_RANAP_PDU_t _pdu, *pdu = &_pdu; + struct hnb_context *hnb = msg->dst; asn_dec_rval_t dec_ret; int rc; @@ -195,11 +195,11 @@ dec_ret = aper_decode(NULL,&asn_DEF_RANAP_RANAP_PDU, (void **) &pdu, data, len, 0, 0); if (dec_ret.code != RC_OK) { - LOGP(DRANAP, LOGL_ERROR, "Error in RANAP ASN.1 decode\n"); + LOGHNB(hnb, DRANAP, LOGL_ERROR, "Error in RANAP ASN.1 decode\n"); return -1; } - rc = _hnbgw_ranap_rx(msg->dst, pdu); + rc = _hnbgw_ranap_rx(hnb, pdu); return rc; } diff --git a/src/hnbgw_rua.c b/src/hnbgw_rua.c index 71c3f8e..5224bf1 100644 --- a/src/hnbgw_rua.c +++ b/src/hnbgw_rua.c @@ -86,7 +86,7 @@ &out); ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_ConnectionlessTransfer, &out); - DEBUGP(DRUA, "transmitting RUA payload of %u bytes\n", msgb_length(msg)); + LOGHNB(hnb, DRUA, LOGL_DEBUG, "transmitting RUA payload of %u bytes\n", msgb_length(msg)); return hnbgw_rua_tx(hnb, msg); } @@ -122,7 +122,7 @@ &out); ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_DirectTransfer, &out); - DEBUGP(DRUA, "transmitting RUA (cn=%s) payload of %u bytes\n", + LOGHNB(hnb, DRUA, LOGL_DEBUG, "transmitting RUA (cn=%s) payload of %u bytes\n", is_ps ? "ps" : "cs", msgb_length(msg)); return hnbgw_rua_tx(hnb, msg); @@ -163,7 +163,7 @@ &out); ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RUA_Disconnect, &out); - DEBUGP(DRUA, "transmitting RUA (cn=%s) payload of %u bytes\n", + LOGHNB(hnb, DRUA, LOGL_DEBUG, "transmitting RUA (cn=%s) payload of %u bytes\n", is_ps ? "ps" : "cs", msgb_length(msg)); @@ -198,13 +198,12 @@ is_ps = true; break; default: - LOGP(DRUA, LOGL_ERROR, "Unsupported Domain %ld\n", - cN_DomainIndicator); + LOGHNB(hnb, DRUA, LOGL_ERROR, "Unsupported Domain %ld\n", cN_DomainIndicator); return -1; } if (!cn) { - DEBUGP(DRUA, "CN=NULL, discarding message\n"); + LOGHNB(hnb, DRUA, LOGL_NOTICE, "CN=NULL, discarding message\n"); return 0; } @@ -215,17 +214,14 @@ switch (type) { case OSMO_SCU_PRIM_N_UNITDATA: - DEBUGP(DRUA, "rua_to_scu() %s to %s, rua_ctx_id %u (unitdata, no scu_conn_id)\n", - cn_domain_indicator_to_str(cN_DomainIndicator), - osmo_sccp_addr_dump(remote_addr), - context_id); + LOGHNB(hnb, DRUA, LOGL_DEBUG, "rua_to_scu() %s to %s, rua_ctx_id %u (unitdata, no scu_conn_id)\n", + cn_domain_indicator_to_str(cN_DomainIndicator), osmo_sccp_addr_dump(remote_addr), context_id); break; default: map = context_map_alloc_by_hnb(hnb, context_id, is_ps, cn); OSMO_ASSERT(map); - DEBUGP(DRUA, "rua_to_scu() %s to %s, rua_ctx_id %u scu_conn_id %u\n", - cn_domain_indicator_to_str(cN_DomainIndicator), - osmo_sccp_addr_dump(remote_addr), + LOGHNB(hnb, DRUA, LOGL_DEBUG, "rua_to_scu() %s to %s, rua_ctx_id %u scu_conn_id %u\n", + cn_domain_indicator_to_str(cN_DomainIndicator), osmo_sccp_addr_dump(remote_addr), map->rua_ctx_id, map->scu_conn_id); } @@ -237,10 +233,10 @@ prim->u.connect.sccp_class = 2; prim->u.connect.conn_id = map->scu_conn_id; /* Two separate logs because of osmo_sccp_addr_dump(). */ - DEBUGP(DRUA, "RUA to SCCP N_CONNECT: called_addr:%s\n", - osmo_sccp_addr_dump(&prim->u.connect.called_addr)); - DEBUGP(DRUA, "RUA to SCCP N_CONNECT: calling_addr:%s\n", - osmo_sccp_addr_dump(&prim->u.connect.calling_addr)); + LOGHNB(hnb, DRUA, LOGL_DEBUG, "RUA to SCCP N_CONNECT: called_addr:%s\n", + osmo_sccp_addr_dump(&prim->u.connect.called_addr)); + LOGHNB(hnb, DRUA, LOGL_DEBUG, "RUA to SCCP N_CONNECT: calling_addr:%s\n", + osmo_sccp_addr_dump(&prim->u.connect.calling_addr)); break; case OSMO_SCU_PRIM_N_DATA: prim->u.data.conn_id = map->scu_conn_id; @@ -254,10 +250,10 @@ prim->u.unitdata.called_addr = *remote_addr; prim->u.unitdata.calling_addr = cn->gw->sccp.local_addr; /* Two separate logs because of osmo_sccp_addr_dump(). */ - DEBUGP(DRUA, "RUA to SCCP N_UNITDATA: called_addr:%s\n", - osmo_sccp_addr_dump(&prim->u.unitdata.called_addr)); - DEBUGP(DRUA, "RUA to SCCP N_UNITDATA: calling_addr:%s\n", - osmo_sccp_addr_dump(&prim->u.unitdata.calling_addr)); + LOGHNB(hnb, DRUA, LOGL_DEBUG, "RUA to SCCP N_UNITDATA: called_addr:%s\n", + osmo_sccp_addr_dump(&prim->u.unitdata.called_addr)); + LOGHNB(hnb, DRUA, LOGL_DEBUG, "RUA to SCCP N_UNITDATA: calling_addr:%s\n", + osmo_sccp_addr_dump(&prim->u.unitdata.calling_addr)); break; default: return -EINVAL; @@ -352,11 +348,9 @@ context_id = asn1bitstr_to_u24(&ies.context_ID); - DEBUGP(DRUA, "RUA %s Connect.req(ctx=0x%x, %s)\n", - cn_domain_indicator_to_str(ies.cN_DomainIndicator), - context_id, - ies.establishment_Cause == RUA_Establishment_Cause_emergency_call - ? "emergency" : "normal"); + LOGHNB(hnb, DRUA, LOGL_DEBUG, "RUA %s Connect.req(ctx=0x%x, %s)\n", + cn_domain_indicator_to_str(ies.cN_DomainIndicator), context_id, + ies.establishment_Cause == RUA_Establishment_Cause_emergency_call ? "emergency" : "normal"); rc = rua_to_scu(hnb, ies.cN_DomainIndicator, OSMO_SCU_PRIM_N_CONNECT, context_id, 0, ies.ranaP_Message.buf, @@ -384,7 +378,7 @@ context_id = asn1bitstr_to_u24(&ies.context_ID); scu_cause = rua_to_scu_cause(&ies.cause); - DEBUGP(DRUA, "RUA Disconnect.req(ctx=0x%x,cause=%s)\n", context_id, + LOGHNB(hnb, DRUA, LOGL_DEBUG, "RUA Disconnect.req(ctx=0x%x,cause=%s)\n", context_id, rua_cause_str(&ies.cause)); if (ies.presenceMask & DISCONNECTIES_RUA_RANAP_MESSAGE_PRESENT) { @@ -414,7 +408,7 @@ context_id = asn1bitstr_to_u24(&ies.context_ID); - DEBUGP(DRUA, "RUA Data.req(ctx=0x%x)\n", context_id); + LOGHNB(hnb, DRUA, LOGL_DEBUG, "RUA Data.req(ctx=0x%x)\n", context_id); rc = rua_to_scu(hnb, ies.cN_DomainIndicator, @@ -430,13 +424,14 @@ static int rua_rx_init_udt(struct msgb *msg, ANY_t *in) { RUA_ConnectionlessTransferIEs_t ies; + struct hnb_context *hnb = msg->dst; int rc; rc = rua_decode_connectionlesstransferies(&ies, in); if (rc < 0) return rc; - DEBUGP(DRUA, "RUA UData.req()\n"); + LOGHNB(hnb, DRUA, LOGL_DEBUG, "RUA UData.req()\n"); /* according tot the spec, we can primarily receive Overload, * Reset, Reset ACK, Error Indication, reset Resource, Reset @@ -455,14 +450,14 @@ static int rua_rx_init_err_ind(struct msgb *msg, ANY_t *in) { RUA_ErrorIndicationIEs_t ies; + struct hnb_context *hnb = msg->dst; int rc; rc = rua_decode_errorindicationies(&ies, in); if (rc < 0) return rc; - LOGP(DRUA, LOGL_ERROR, "RUA UData.ErrorInd(%s)\n", - rua_cause_str(&ies.cause)); + LOGHNB(hnb, DRUA, LOGL_ERROR, "RUA UData.ErrorInd(%s)\n", rua_cause_str(&ies.cause)); rua_free_errorindicationies(&ies); return rc; @@ -470,6 +465,7 @@ static int rua_rx_initiating_msg(struct msgb *msg, RUA_InitiatingMessage_t *imsg) { + struct hnb_context *hnb = msg->dst; int rc; switch (imsg->procedureCode) { @@ -489,13 +485,11 @@ rc = rua_rx_init_err_ind(msg, &imsg->value); break; case RUA_ProcedureCode_id_privateMessage: - LOGP(DRUA, LOGL_NOTICE, - "Unhandled: RUA Initiating Msg: Private Msg\n"); + LOGHNB(hnb, DRUA, LOGL_NOTICE, "Unhandled: RUA Initiating Msg: Private Msg\n"); rc = 0; break; default: - LOGP(DRUA, LOGL_NOTICE, "Unknown RUA Procedure %lu\n", - imsg->procedureCode); + LOGHNB(hnb, DRUA, LOGL_NOTICE, "Unknown RUA Procedure %lu\n", imsg->procedureCode); rc = -1; } @@ -504,21 +498,24 @@ static int rua_rx_successful_outcome_msg(struct msgb *msg, RUA_SuccessfulOutcome_t *in) { + struct hnb_context *hnb = msg->dst; /* FIXME */ - LOGP(DRUA, LOGL_NOTICE, "Unexpected RUA Successful Outcome\n"); + LOGHNB(hnb, DRUA, LOGL_NOTICE, "Unexpected RUA Successful Outcome\n"); return -1; } static int rua_rx_unsuccessful_outcome_msg(struct msgb *msg, RUA_UnsuccessfulOutcome_t *in) { + struct hnb_context *hnb = msg->dst; /* FIXME */ - LOGP(DRUA, LOGL_NOTICE, "Unexpected RUA Unsucessful Outcome\n"); + LOGHNB(hnb, DRUA, LOGL_NOTICE, "Unexpected RUA Unsucessful Outcome\n"); return -1; } static int _hnbgw_rua_rx(struct msgb *msg, RUA_RUA_PDU_t *pdu) { + struct hnb_context *hnb = msg->dst; int rc; /* it's a bit odd that we can't dispatch on procedure code, but @@ -534,7 +531,7 @@ rc = rua_rx_unsuccessful_outcome_msg(msg, &pdu->choice.unsuccessfulOutcome); break; default: - LOGP(DRUA, LOGL_NOTICE, "Unknown RUA presence %u\n", pdu->present); + LOGHNB(hnb, DRUA, LOGL_NOTICE, "Unknown RUA presence %u\n", pdu->present); rc = -1; } @@ -553,7 +550,7 @@ 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(DRUA, LOGL_ERROR, "Error in ASN.1 decode\n"); + LOGHNB(hnb, DRUA, LOGL_ERROR, "Error in ASN.1 decode\n"); return -1; } -- 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-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 13:40:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 13:40:18 +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 posted comments on 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 ...................................................................... Patch Set 3: Code-Review+2 -- 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-Comment-Date: Wed, 30 Dec 2020 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 Wed Dec 30 13:40:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 13:40:22 +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 posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21878 ) Change subject: icE1usb fw: Don't store E1_*_CR_*_CLR in variables ...................................................................... Patch Set 1: Code-Review+2 -- 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-Comment-Date: Wed, 30 Dec 2020 13:40: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 Dec 30 13:40:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 13:40:53 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: USB control request handling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775 ) Change subject: icE1usb fw: USB control request handling ...................................................................... Patch Set 5: Code-Review+2 -- 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: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 30 Dec 2020 13:40: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 Dec 30 13:41:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 13:41:19 +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 posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21784 ) Change subject: icE1usb fw: un-configure E1 when altsetting 0 is selected. ...................................................................... Patch Set 6: Code-Review+2 -- 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: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 30 Dec 2020 13:41: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 Dec 30 15:34:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 15:34:49 +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 16: Code-Review+1 -- 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: 16 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 30 Dec 2020 15:34:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Dec 30 15:45:11 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 15:45:11 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5feca08dce09b_59872af9dc0645f420257ce@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-bts failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was build73:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Dec 30 15:46:03 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 30 Dec 2020 15:46:03 +0000 Subject: Build failure of network:osmocom:latest/ulfius in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5feca0cde5ea2_59872af9dc0645f42025891@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/ulfius/Debian_Unstable/x86_64 Package network:osmocom:latest/ulfius failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest ulfius Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb04:7) -- 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 Dec 30 16:20:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 16:20:19 +0000 Subject: Change in osmo-cbc[master]: Add COPYING file with AGPLv3 license text References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21901 ) Change subject: Add COPYING file with AGPLv3 license text ...................................................................... Add COPYING file with AGPLv3 license text Change-Id: I55a73e48002a18bd0655a39d2aee2b2c5af29f52 --- A COPYING 1 file changed, 661 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/01/21901/1 diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..dba13ed --- /dev/null +++ b/COPYING @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights >From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I55a73e48002a18bd0655a39d2aee2b2c5af29f52 Gerrit-Change-Number: 21901 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 Dec 30 16:20:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 16:20:20 +0000 Subject: Change in osmo-cbc[master]: add missing copyright/license statements References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21902 ) Change subject: add missing copyright/license statements ...................................................................... add missing copyright/license statements Change-Id: I0ddfdb1a88ed3559bc32f317a85387e6ca75934f --- M src/cbc_data.c M src/cbc_vty.c 2 files changed, 45 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/02/21902/1 diff --git a/src/cbc_data.c b/src/cbc_data.c index ccefeb6..87a28f0 100644 --- a/src/cbc_data.c +++ b/src/cbc_data.c @@ -1,3 +1,26 @@ +/* Osmocom CBC (Cell Broacast Centre) */ + +/* (C) 2019 by Harald Welte + * All Rights Reserved + * + * SPDX-License-Identifier: AGPL-3.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + #include #include diff --git a/src/cbc_vty.c b/src/cbc_vty.c index c1c777f..b2849ae 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -1,3 +1,25 @@ +/* Osmocom CBC (Cell Broacast Centre) */ + +/* (C) 2019 by Harald Welte + * All Rights Reserved + * + * SPDX-License-Identifier: AGPL-3.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + #include #include -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I0ddfdb1a88ed3559bc32f317a85387e6ca75934f Gerrit-Change-Number: 21902 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 Dec 30 16:20:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 30 Dec 2020 16:20:21 +0000 Subject: Change in osmo-cbc[master]: vty: Add show commands References: Message-ID: laforge has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/03/21903/1 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-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 17:29:18 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 17:29:18 +0000 Subject: Change in osmo-bts[master]: power_control: check-in new parameters and default values References: Message-ID: fixeria has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/21904/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 2edc20e..76ab7a4 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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 17:29:19 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 17:29:19 +0000 Subject: Change in osmo-bts[master]: power_control: add VTY introspection commands for MS/BS params References: Message-ID: fixeria has uploaded this change for review. ( 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/21905/1 diff --git a/src/common/vty.c b/src/common/vty.c index 7284bfa..a116d7f 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 unsigned int pn) +{ + cfg_out(vty, "Lower threshold (L_RXLEV_XX_P): %u%s", + mp->lower_thresh, VTY_NEWLINE); + cfg_out(vty, "Upper threshold (U_RXLEV_XX_P): %u%s", + 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, "Averaging algorithm: "); + switch (mp->algo) { + case GSM_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED: + vty_out(vty, "unweighted%s", VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_WEIGHTED: + vty_out(vty, "weighted%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, "Averaging 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, 1); + + cfg_out(vty, "RxQual measurement processing:%s", VTY_NEWLINE); + dump_dpc_meas_params(vty, indent + 2, &cp->rxqual_meas, 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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 17:29:20 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 17:29:20 +0000 Subject: Change in osmo-bts[master]: power_control: handle MS/BS Power control params on A-bis/RSL References: Message-ID: fixeria has uploaded this change for review. ( 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 Related: SYS#4918 --- M src/common/rsl.c 1 file changed, 229 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/06/21906/1 diff --git a/src/common/rsl.c b/src/common/rsl.c index f7f336a..5a0baf8 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 * @@ -695,6 +696,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) { @@ -1122,6 +1284,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; bool ms_power_present = false; @@ -1235,19 +1398,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 */ @@ -1720,6 +1906,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; @@ -1735,14 +1922,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 @@ -1772,6 +1970,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; @@ -1789,13 +1988,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; } @@ -3241,6 +3453,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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 17:31:43 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 17:31:43 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... power_control: generalize the arguments of do_pf_ewma() This way EWMA based filtering can also be applied to RxQual. Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Related: SYS#4918, SYS#4917 --- M src/common/power_control.c 1 file changed, 13 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/07/21907/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index a616f18..9e6fb45 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 + * result 'Val[n]' carries vs the weight of the 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,15 @@ * 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, - struct lchan_power_ctrl_state *state, - const int8_t Pwr) +static int do_pf_ewma(int *Avg100, const int Val, const uint8_t A) { - const uint8_t A = params->pf.ewma.alpha; - int *Avg100 = &state->avg100_rxlev_dbm; - /* 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; } @@ -99,7 +94,8 @@ /* 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); + rxlev_dbm_avg = do_pf_ewma(&state->avg100_rxlev_dbm, rxlev_dbm, + params->pf.ewma.alpha); break; case BTS_PF_ALGO_NONE: default: -- 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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 17:35:59 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 17:35:59 +0000 Subject: Change in osmo-bts[master]: rsl: remove redundant boolean flag in rsl_rx_chan_activ() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21908 ) Change subject: rsl: remove redundant boolean flag in rsl_rx_chan_activ() ...................................................................... rsl: remove redundant boolean flag in rsl_rx_chan_activ() Checking if a given RSL IE is present is a straightforward task, so there is no need for a special boolean flag. Change-Id: I6a12930314c79b9c3efabfa575b17f78105fea4c --- M src/common/rsl.c 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/08/21908/1 diff --git a/src/common/rsl.c b/src/common/rsl.c index f7f336a..ef23039 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1124,7 +1124,6 @@ struct tlv_parsed tp; uint8_t type; int rc; - bool ms_power_present = false; if (lchan->state != LCHAN_S_NONE) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "error: lchan is not available, but in state: %s.\n", @@ -1229,7 +1228,6 @@ if (TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1)) { lchan->ms_power_ctrl.max = *TLVP_VAL(&tp, RSL_IE_MS_POWER) & 0x1F; lchan->ms_power_ctrl.current = lchan->ms_power_ctrl.max; - ms_power_present = true; } /* 9.3.24 Timing Advance */ if (TLVP_PRES_LEN(&tp, RSL_IE_TIMING_ADVANCE, 1)) @@ -1366,7 +1364,7 @@ switch (type) { case RSL_ACT_INTER_ASYNC: case RSL_ACT_INTER_SYNC: - lchan->want_dl_sacch_active = ms_power_present; + lchan->want_dl_sacch_active = TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1); break; default: lchan->want_dl_sacch_active = true; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a12930314c79b9c3efabfa575b17f78105fea4c Gerrit-Change-Number: 21908 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 Dec 30 17:48:09 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 17:48:09 +0000 Subject: Change in osmo-bts[master]: power_control: add VTY introspection commands for MS/BS params 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/+/21905 to look at the new patch set (#2). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/21905/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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 17:48:46 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 17:48:46 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Handle DP object in get_om2k_mo() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21894 ) Change subject: abis_om2000: Handle DP object in get_om2k_mo() ...................................................................... Patch Set 3: Code-Review+2 -- 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: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 30 Dec 2020 17:48: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 Dec 30 17:50:40 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 17:50:40 +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: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/21906 to look at the new patch set (#3). 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(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/06/21906/3 -- 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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 17:50:40 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 17:50:40 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... power_control: generalize the arguments of do_pf_ewma() This way EWMA based filtering can also be applied to RxQual. Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Related: SYS#4918, SYS#4917 --- M src/common/power_control.c 1 file changed, 13 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/07/21907/3 -- 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: 3 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 Dec 30 18:08:21 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 18:08:21 +0000 Subject: Change in osmo-bsc[master]: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21909 ) Change subject: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() ...................................................................... vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() There is only one parameter in command: repeat dl-facch (command|all) so indeed argv[0] must be used instead of argv[1]. Change-Id: I01efff109a33791e13b0149fc47c792d3266da71 Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/09/21909/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 5692646..f4d2b82 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2760,7 +2760,7 @@ return CMD_WARNING; } - if (!strcmp(argv[1], "command")) { + if (!strcmp(argv[0], "command")) { bts->repeated_acch_policy.dl_facch_cmd = true; bts->repeated_acch_policy.dl_facch_all = false; } else { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I01efff109a33791e13b0149fc47c792d3266da71 Gerrit-Change-Number: 21909 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 Dec 30 18:18:40 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 18:18:40 +0000 Subject: Change in osmo-bsc[master]: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21909 ) Change subject: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() ...................................................................... Patch Set 1: This kind of problem could have been found immediately if there were VTY transcription tests. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I01efff109a33791e13b0149fc47c792d3266da71 Gerrit-Change-Number: 21909 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 30 Dec 2020 18:18:40 +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 Dec 30 19:57:52 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 30 Dec 2020 19:57:52 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: don't leak a sched_dummy() twice References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21910 ) Change subject: gprs_rlcmac_sched: don't leak a sched_dummy() twice ...................................................................... gprs_rlcmac_sched: don't leak a sched_dummy() twice Change-Id: Iea0fc51809c78514c85e45e7f499a531c4ea1bcf --- M src/gprs_rlcmac_sched.cpp 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/10/21910/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index e6f7176..70d8237 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -482,7 +482,6 @@ /* Prio 3: send dummy contol message */ else if ((msg = sched_dummy())) { /* increase counter */ - msg = sched_dummy(); gsmtap_cat = PCU_GSMTAP_C_DL_DUMMY; } else { return -ENOMEM; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iea0fc51809c78514c85e45e7f499a531c4ea1bcf Gerrit-Change-Number: 21910 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 Dec 30 21:20:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 21:20:36 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: don't leak a sched_dummy() twice In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21910 ) Change subject: gprs_rlcmac_sched: don't leak a sched_dummy() twice ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/21910/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/21910/1//COMMIT_MSG at 7 PS1, Line 7: leak We actually _allocate_ it twice, only one of the message buffers is leaked. Not critical. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iea0fc51809c78514c85e45e7f499a531c4ea1bcf Gerrit-Change-Number: 21910 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 30 Dec 2020 21:20: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 Dec 30 21:44:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 21:44:30 +0000 Subject: Change in osmo-bsc[master]: vty: join UL/DL SACCH repetition commands together References: Message-ID: fixeria has uploaded this change for review. ( 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 Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 19 insertions(+), 45 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/21911/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index f4d2b82..883b4fc 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,26 @@ return CMD_WARNING; } - bts->repeated_acch_policy.dl_sacch = true; + if (argv[0][0] == 'u') + 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 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 (argv[0][0] == 'u') + bts->repeated_acch_policy.ul_sacch = false; + else + bts->repeated_acch_policy.dl_sacch = false; return CMD_SUCCESS; } @@ -7705,10 +7681,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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 21:44:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 21:44:30 +0000 Subject: Change in osmo-bsc[master]: vty: fix wrong attributes for UL/DL ACCH repeation commands References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21912 ) Change subject: vty: fix wrong attributes for UL/DL ACCH repeation commands ...................................................................... vty: fix wrong attributes for UL/DL ACCH repeation 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, 41 insertions(+), 38 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/21912/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 883b4fc..dcae631 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,11 +2810,12 @@ 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 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 DL-SACCH repetition for this BTS\n") { struct gsm_bts *bts = vty->index; @@ -2824,20 +2827,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: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 21:57:28 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 21:57: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, 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 (#2). 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/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: 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 Wed Dec 30 21:57:28 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 21:57:28 +0000 Subject: Change in osmo-bsc[master]: vty: fix wrong attributes for UL/DL ACCH repeation commands 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/+/21912 to look at the new patch set (#2). Change subject: vty: fix wrong attributes for UL/DL ACCH repeation commands ...................................................................... vty: fix wrong attributes for UL/DL ACCH repeation 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/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: 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 Wed Dec 30 22:30:20 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 22:30:20 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() 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/+/21907 to look at the new patch set (#4). Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... power_control: generalize the arguments of do_pf_ewma() This way EWMA based filtering can also be applied to RxQual. Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Related: SYS#4918, SYS#4917 --- M src/common/power_control.c 1 file changed, 15 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/07/21907/4 -- 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-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Dec 30 22:30:27 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 30 Dec 2020 22:30:27 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: don't leak a sched_dummy() 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/osmo-pcu/+/21910 to look at the new patch set (#2). Change subject: gprs_rlcmac_sched: don't leak a sched_dummy() ...................................................................... gprs_rlcmac_sched: don't leak a sched_dummy() Change-Id: Iea0fc51809c78514c85e45e7f499a531c4ea1bcf --- M src/gprs_rlcmac_sched.cpp 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/10/21910/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iea0fc51809c78514c85e45e7f499a531c4ea1bcf Gerrit-Change-Number: 21910 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 Wed Dec 30 22:30:36 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 30 Dec 2020 22:30:36 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: don't leak a sched_dummy() In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21910 ) Change subject: gprs_rlcmac_sched: don't leak a sched_dummy() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/21910/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/21910/1//COMMIT_MSG at 7 PS1, Line 7: leak > We actually _allocate_ it twice, only one of the message buffers is leaked. Not critical. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iea0fc51809c78514c85e45e7f499a531c4ea1bcf Gerrit-Change-Number: 21910 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 30 Dec 2020 22:30:36 +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 Wed Dec 30 22:34:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 30 Dec 2020 22:34:13 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: don't leak a sched_dummy() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21910 ) Change subject: gprs_rlcmac_sched: don't leak a sched_dummy() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iea0fc51809c78514c85e45e7f499a531c4ea1bcf Gerrit-Change-Number: 21910 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 30 Dec 2020 22:34: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 Dec 30 22:34:40 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 30 Dec 2020 22:34:40 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: don't leak a sched_dummy() In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21910 ) Change subject: gprs_rlcmac_sched: don't leak a sched_dummy() ...................................................................... gprs_rlcmac_sched: don't leak a sched_dummy() Change-Id: Iea0fc51809c78514c85e45e7f499a531c4ea1bcf --- M src/gprs_rlcmac_sched.cpp 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index e6f7176..70d8237 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -482,7 +482,6 @@ /* Prio 3: send dummy contol message */ else if ((msg = sched_dummy())) { /* increase counter */ - msg = sched_dummy(); gsmtap_cat = PCU_GSMTAP_C_DL_DUMMY; } else { return -ENOMEM; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iea0fc51809c78514c85e45e7f499a531c4ea1bcf Gerrit-Change-Number: 21910 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder 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 Thu Dec 31 01:37:04 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 31 Dec 2020 01:37:04 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5fed2b523a320_59872af9dc0645f421952b1@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: [ 242s] [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 [ 242s] debian/rules override_dh_auto_test [ 242s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 242s] cd obj-i686-linux-gnu && meson test --suite unit [ 243s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 243s] ninja: no work to do. [ 250s] 1/3 open5gs:unit / core OK 7.08 s [ 250s] 2/3 open5gs:unit / crypt OK 0.18 s [ 250s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 250s] [ 250s] Ok: 2 [ 250s] Expected Fail: 0 [ 250s] Fail: 1 [ 250s] Unexpected Pass: 0 [ 250s] Skipped: 0 [ 250s] Timeout: 0 [ 250s] [ 250s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 250s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 250s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 250s] make: *** [debian/rules:11: binary] Error 2 [ 250s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 250s] ### VM INTERACTION START ### [ 253s] [ 241.082223] sysrq: Power Off [ 253s] [ 241.089077] reboot: Power down [ 254s] ### VM INTERACTION END ### [ 254s] [ 254s] lamb09 failed "build open5gs_2.1.1.20201231.dsc" at Thu Dec 31 01:36:36 UTC 2020. [ 254s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 31 01:41:21 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 31 Dec 2020 01:41:21 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fed2c5da6919_59872af9dc0645f4219584a@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] [ 160.883278] sysrq: Power Off [ 174s] [ 160.889564] reboot: Power down [ 174s] ### VM INTERACTION END ### [ 174s] [ 174s] lamb51 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 31 01:40:59 UTC 2020. [ 174s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 31 01:46:29 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 31 Dec 2020 01:46:29 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fed2d88edeeb_59872af9dc0645f421968d8@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] [ 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: 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] [ 107.760475] sysrq: Power Off [ 117s] [ 107.764877] reboot: Power down [ 117s] ### VM INTERACTION END ### [ 117s] [ 117s] sheep87 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Dec 31 01:46:13 UTC 2020. [ 117s] -- 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 Dec 31 09:33:41 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 31 Dec 2020 09:33:41 +0000 Subject: Change in osmo-bsc[master]: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21909 ) Change subject: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I01efff109a33791e13b0149fc47c792d3266da71 Gerrit-Change-Number: 21909 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 31 Dec 2020 09:33: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 Dec 31 09:35:26 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 31 Dec 2020 09:35:26 +0000 Subject: Change in osmo-bsc[master]: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21909 ) Change subject: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() ...................................................................... Patch Set 1: This is an urgent one-line fix, LGTM. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I01efff109a33791e13b0149fc47c792d3266da71 Gerrit-Change-Number: 21909 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 31 Dec 2020 09:35: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 Thu Dec 31 09:35:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 31 Dec 2020 09:35:34 +0000 Subject: Change in osmo-bsc[master]: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21909 ) Change subject: vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() ...................................................................... vty: fix NULL-pointer dereference in cfg_bts_rep_dl_facch() There is only one parameter in command: repeat dl-facch (command|all) so indeed argv[0] must be used instead of argv[1]. Change-Id: I01efff109a33791e13b0149fc47c792d3266da71 Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 5692646..f4d2b82 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2760,7 +2760,7 @@ return CMD_WARNING; } - if (!strcmp(argv[1], "command")) { + if (!strcmp(argv[0], "command")) { bts->repeated_acch_policy.dl_facch_cmd = true; bts->repeated_acch_policy.dl_facch_all = false; } else { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I01efff109a33791e13b0149fc47c792d3266da71 Gerrit-Change-Number: 21909 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Thu Dec 31 10:08:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 31 Dec 2020 10:08:04 +0000 Subject: Change in osmo-cbc[master]: Add COPYING file with AGPLv3 license text In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21901 ) Change subject: Add COPYING file with AGPLv3 license text ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I55a73e48002a18bd0655a39d2aee2b2c5af29f52 Gerrit-Change-Number: 21901 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 31 Dec 2020 10:08: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 Dec 31 10:08:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 31 Dec 2020 10:08:06 +0000 Subject: Change in osmo-cbc[master]: add missing copyright/license statements In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21902 ) Change subject: add missing copyright/license statements ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I0ddfdb1a88ed3559bc32f317a85387e6ca75934f Gerrit-Change-Number: 21902 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 31 Dec 2020 10: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 Thu Dec 31 10:08:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 31 Dec 2020 10:08:11 +0000 Subject: Change in osmo-cbc[master]: Add COPYING file with AGPLv3 license text In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21901 ) Change subject: Add COPYING file with AGPLv3 license text ...................................................................... Add COPYING file with AGPLv3 license text Change-Id: I55a73e48002a18bd0655a39d2aee2b2c5af29f52 --- A COPYING 1 file changed, 661 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..dba13ed --- /dev/null +++ b/COPYING @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I55a73e48002a18bd0655a39d2aee2b2c5af29f52 Gerrit-Change-Number: 21901 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 Dec 31 10:08:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 31 Dec 2020 10:08:11 +0000 Subject: Change in osmo-cbc[master]: add missing copyright/license statements In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21902 ) Change subject: add missing copyright/license statements ...................................................................... add missing copyright/license statements Change-Id: I0ddfdb1a88ed3559bc32f317a85387e6ca75934f --- M src/cbc_data.c M src/cbc_vty.c 2 files changed, 45 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/cbc_data.c b/src/cbc_data.c index ccefeb6..87a28f0 100644 --- a/src/cbc_data.c +++ b/src/cbc_data.c @@ -1,3 +1,26 @@ +/* Osmocom CBC (Cell Broacast Centre) */ + +/* (C) 2019 by Harald Welte + * All Rights Reserved + * + * SPDX-License-Identifier: AGPL-3.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + #include #include diff --git a/src/cbc_vty.c b/src/cbc_vty.c index c1c777f..b2849ae 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -1,3 +1,25 @@ +/* Osmocom CBC (Cell Broacast Centre) */ + +/* (C) 2019 by Harald Welte + * All Rights Reserved + * + * SPDX-License-Identifier: AGPL-3.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + #include #include -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I0ddfdb1a88ed3559bc32f317a85387e6ca75934f Gerrit-Change-Number: 21902 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 Dec 31 10:09:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 31 Dec 2020 10:09:09 +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 2: (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? -- 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: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 31 Dec 2020 10:09:09 +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 Dec 31 10:09:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 31 Dec 2020 10:09:33 +0000 Subject: Change in osmo-bsc[master]: vty: fix wrong attributes for UL/DL ACCH repeation commands In-Reply-To: References: Message-ID: laforge 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 2: Code-Review+1 -- 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: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 31 Dec 2020 10: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 Thu Dec 31 10:11:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 31 Dec 2020 10:11:14 +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: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21904/1/include/osmo-bts/bts.h File include/osmo-bts/bts.h: https://gerrit.osmocom.org/c/osmo-bts/+/21904/1/include/osmo-bts/bts.h at 324 PS1, Line 324: legacy I think it deserves some explanation of what "legacy" means. When are they used or not used? -- 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-Comment-Date: Thu, 31 Dec 2020 10:11: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 Thu Dec 31 10:11:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 31 Dec 2020 10:11:39 +0000 Subject: Change in osmo-bts[master]: rsl: remove redundant boolean flag in rsl_rx_chan_activ() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21908 ) Change subject: rsl: remove redundant boolean flag in rsl_rx_chan_activ() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a12930314c79b9c3efabfa575b17f78105fea4c Gerrit-Change-Number: 21908 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 31 Dec 2020 10:11: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 Dec 31 12:04:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 31 Dec 2020 12:04:02 +0000 Subject: Change in osmo-bts[master]: rsl: remove redundant boolean flag in rsl_rx_chan_activ() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21908 ) Change subject: rsl: remove redundant boolean flag in rsl_rx_chan_activ() ...................................................................... rsl: remove redundant boolean flag in rsl_rx_chan_activ() Checking if a given RSL IE is present is a straightforward task, so there is no need for a special boolean flag. Change-Id: I6a12930314c79b9c3efabfa575b17f78105fea4c --- M src/common/rsl.c 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/rsl.c b/src/common/rsl.c index f7f336a..ef23039 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1124,7 +1124,6 @@ struct tlv_parsed tp; uint8_t type; int rc; - bool ms_power_present = false; if (lchan->state != LCHAN_S_NONE) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "error: lchan is not available, but in state: %s.\n", @@ -1229,7 +1228,6 @@ if (TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1)) { lchan->ms_power_ctrl.max = *TLVP_VAL(&tp, RSL_IE_MS_POWER) & 0x1F; lchan->ms_power_ctrl.current = lchan->ms_power_ctrl.max; - ms_power_present = true; } /* 9.3.24 Timing Advance */ if (TLVP_PRES_LEN(&tp, RSL_IE_TIMING_ADVANCE, 1)) @@ -1366,7 +1364,7 @@ switch (type) { case RSL_ACT_INTER_ASYNC: case RSL_ACT_INTER_SYNC: - lchan->want_dl_sacch_active = ms_power_present; + lchan->want_dl_sacch_active = TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1); break; default: lchan->want_dl_sacch_active = true; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a12930314c79b9c3efabfa575b17f78105fea4c Gerrit-Change-Number: 21908 Gerrit-PatchSet: 1 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 admin at opensuse.org Thu Dec 31 13:20:41 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 31 Dec 2020 13:20:41 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fedd0392078b_59872af9dc0645f42338345@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 Thu Dec 31 13:20:30 UTC 2020. [ 1s] [ 1s] Building osmo-fl2k for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '88aa707fefa82ffbe3077a05de921038' [ 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 Thu Dec 31 13:20:30 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 31 13:57:15 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 31 Dec 2020 13:57:15 +0000 Subject: Build failure of network:osmocom:nightly/rtl-sdr in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fedd8cae160f_59872af9dc0645f4234986a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/rtl-sdr/Debian_10/armv7l Package network:osmocom:nightly/rtl-sdr failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly rtl-sdr Last lines of build log: [ 0s] [ 0s] armbuild04 started "build rtl-sdr_0.5.4.38.0847.dsc" at Thu Dec 31 13:57:08 UTC 2020. [ 0s] [ 0s] Building rtl-sdr for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 'a13bb32062520abfdda1213ca3536ef4' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/rtl-sdr_0.5.4.38.0847.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/rtl-sdr_0.5.4.38.0847.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/rtl-sdr_0.5.4.38.0847.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build rtl-sdr_0.5.4.38.0847.dsc" at Thu Dec 31 13:57:09 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 31 15:12:06 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 31 Dec 2020 15:12:06 +0000 Subject: Build failure of network:osmocom:nightly/osmo-python-tests in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fedea5a829d8_59872af9dc0645f423816e3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-python-tests/Debian_10/armv7l Package network:osmocom:nightly/osmo-python-tests failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-python-tests Last lines of build log: [ 1s] [ 1s] armbuild04 started "build osmo-python-tests_0.0.9.20201231.dsc" at Thu Dec 31 15:12:03 UTC 2020. [ 1s] [ 1s] Building osmo-python-tests for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '178977257efe5b40bab9841a903ce2ff' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-python-tests_0.0.9.20201231.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-python-tests_0.0.9.20201231.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-python-tests_0.0.9.20201231.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-python-tests_0.0.9.20201231.dsc" at Thu Dec 31 15:12:03 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 31 16:18:06 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 31 Dec 2020 16:18:06 +0000 Subject: Build failure of network:osmocom:nightly/neocon in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fedf9d01adcf_59872af9dc0645f423921ae@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.20201231.dsc" at Thu Dec 31 16:18:03 UTC 2020. [ 0s] [ 0s] Building neocon for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 'c53350c43f4caba21739e0d433d79cbe' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/neocon_1.0.1.20201231.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/neocon_1.0.1.20201231.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.20201231.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build neocon_1.0.1.20201231.dsc" at Thu Dec 31 16:18:04 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 31 16:35:32 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 31 Dec 2020 16:35:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fedfde9cac40_59872af9dc0645f423950e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-e1d failed to build in Debian_9.0/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 Thu Dec 31 16:35:14 UTC 2020. [ 0s] [ 0s] Building osmo-e1d for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 '1e07a0a8bb03487f2ecdc45351790717' [ 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 ... [ 0s] unknown keyword in config: [ 0s] could not autodetect package type [ 0s] [ 0s] armbuild04 failed "build osmo-e1d_0.1.1.30.868c.dsc" at Thu Dec 31 16:35:14 UTC 2020. [ 0s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Dec 31 16:45:33 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 31 Dec 2020 16:45:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sysmon in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fee0047384a9_59872af9dc0645f4239659@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sysmon/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-sysmon failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-sysmon Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-sysmon_0.2.0.4.8984.dsc" at Thu Dec 31 16:45:25 UTC 2020. [ 0s] [ 0s] Building osmo-sysmon for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '1df158c34b796dace22a93fe5822eea2' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/osmo-sysmon_0.2.0.4.8984.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/osmo-sysmon_0.2.0.4.8984.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-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 Thu Dec 31 16:45:26 UTC 2020. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/)