Build failure of network:osmocom:nightly/osmo-trx in Debian_Unstable/x86_64
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: [ 434s] ar: `u' modifier ignored since `D' is the default (see `U') [ 434s] libtool: link: ranlib .libs/libtransceiver_common.a [ 434s] libtool: link: ( cd ".libs" && rm -f "libtransceiver_common.la" && ln -s "../libtransceiver_common.la" "libtransceiver_common.la" ) [ 434s] /bin/bash ../libtool --tag=CXX --mode=link g++ -lpthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/libdevice.la libtransceiver_common.la ../Transceiver52M/arch/x86/libarch.la ../GSM/libGSM.la ../CommonLibs/libcommon.la -lfftw3f -ltalloc -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmovty -losmocore -luhd [ 434s] libtool: link: g++ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/.libs/libdevice.a ./.libs/libtransceiver_common.a ../Transceiver52M/arch/x86/.libs/libarch.a ../GSM/.libs/libGSM.a ../CommonLibs/.libs/libcommon.a -lpthread -lfftw3f /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so -ltalloc /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -luhd [ 435s] /usr/bin/ld: ./device/uhd/.libs/libdevice.a(UHDDevice.o): undefined reference to symbol '_ZN5boost6system16generic_categoryEv' [ 435s] /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.67.0: error adding symbols: DSO missing from command line [ 435s] collect2: error: ld returned 1 exit status [ 435s] make[4]: *** [Makefile:681: osmo-trx-uhd] Error 1 [ 435s] make[4]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 435s] make[3]: *** [Makefile:820: all-recursive] Error 1 [ 435s] make[3]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 435s] make[2]: *** [Makefile:513: all-recursive] Error 1 [ 435s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 435s] make[1]: *** [Makefile:444: all] Error 2 [ 435s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 435s] dh_auto_build: make -j1 returned exit code 2 [ 435s] make: *** [debian/rules:6: build] Error 255 [ 435s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 435s] [ 435s] lamb64 failed "build osmo-trx_1.1.1.30.92814.dsc" at Sun Oct 6 03:55:36 UTC 2019. [ 435s] [ 435s] ### VM INTERACTION START ### [ 438s] [ 420.192344] sysrq: SysRq : Power Off [ 438s] [ 420.200438] reboot: Power down [ 438s] ### VM INTERACTION END ### [ 438s] [ 438s] lamb64 failed "build osmo-trx_1.1.1.30.92814.dsc" at Sun Oct 6 03:55:40 UTC 2019. [ 438s] -- Configure notifications at https://build.opensuse.org/my/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:latest/osmo-trx in Debian_Unstable/x86_64
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: [ 461s] ar: `u' modifier ignored since `D' is the default (see `U') [ 461s] libtool: link: ranlib .libs/libtransceiver_common.a [ 461s] libtool: link: ( cd ".libs" && rm -f "libtransceiver_common.la" && ln -s "../libtransceiver_common.la" "libtransceiver_common.la" ) [ 461s] /bin/bash ../libtool --tag=CXX --mode=link g++ -lpthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/libdevice.la libtransceiver_common.la ../Transceiver52M/arch/x86/libarch.la ../GSM/libGSM.la ../CommonLibs/libcommon.la -lfftw3f -ltalloc -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmovty -losmocore -luhd [ 461s] libtool: link: g++ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/.libs/libdevice.a ./.libs/libtransceiver_common.a ../Transceiver52M/arch/x86/.libs/libarch.a ../GSM/.libs/libGSM.a ../CommonLibs/.libs/libcommon.a -lpthread -lfftw3f /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so -ltalloc /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -luhd [ 461s] /usr/bin/ld: ./device/uhd/.libs/libdevice.a(UHDDevice.o): undefined reference to symbol '_ZN5boost6system16generic_categoryEv' [ 461s] /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.67.0: error adding symbols: DSO missing from command line [ 461s] collect2: error: ld returned 1 exit status [ 461s] make[4]: *** [Makefile:681: osmo-trx-uhd] Error 1 [ 461s] make[4]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 461s] make[3]: *** [Makefile:820: all-recursive] Error 1 [ 461s] make[3]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 461s] make[2]: *** [Makefile:513: all-recursive] Error 1 [ 461s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 461s] make[1]: *** [Makefile:444: all] Error 2 [ 461s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 461s] dh_auto_build: make -j1 returned exit code 2 [ 461s] make: *** [debian/rules:6: build] Error 255 [ 461s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 461s] [ 461s] lamb02 failed "build osmo-trx_1.1.1.dsc" at Sun Oct 6 03:52:31 UTC 2019. [ 461s] [ 461s] ### VM INTERACTION START ### [ 465s] [ 446.307295] sysrq: SysRq : Power Off [ 465s] [ 446.335642] reboot: Power down [ 465s] ### VM INTERACTION END ### [ 465s] [ 465s] lamb02 failed "build osmo-trx_1.1.1.dsc" at Sun Oct 6 03:52:35 UTC 2019. [ 465s] -- Configure notifications at https://build.opensuse.org/my/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:nightly/osmo-trx in Debian_Testing/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 430s] ar: `u' modifier ignored since `D' is the default (see `U') [ 430s] libtool: link: ranlib .libs/libtransceiver_common.a [ 430s] libtool: link: ( cd ".libs" && rm -f "libtransceiver_common.la" && ln -s "../libtransceiver_common.la" "libtransceiver_common.la" ) [ 430s] /bin/bash ../libtool --tag=CXX --mode=link g++ -lpthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/libdevice.la libtransceiver_common.la ../Transceiver52M/arch/x86/libarch.la ../GSM/libGSM.la ../CommonLibs/libcommon.la -lfftw3f -ltalloc -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmovty -losmocore -luhd [ 430s] libtool: link: g++ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/.libs/libdevice.a ./.libs/libtransceiver_common.a ../Transceiver52M/arch/x86/.libs/libarch.a ../GSM/.libs/libGSM.a ../CommonLibs/.libs/libcommon.a -lpthread -lfftw3f /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so -ltalloc /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -luhd [ 430s] /usr/bin/ld: ./device/uhd/.libs/libdevice.a(UHDDevice.o): undefined reference to symbol '_ZN5boost6system16generic_categoryEv' [ 430s] /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.67.0: error adding symbols: DSO missing from command line [ 430s] collect2: error: ld returned 1 exit status [ 430s] make[4]: *** [Makefile:681: osmo-trx-uhd] Error 1 [ 430s] make[4]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 430s] make[3]: *** [Makefile:820: all-recursive] Error 1 [ 430s] make[3]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 430s] make[2]: *** [Makefile:513: all-recursive] Error 1 [ 430s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 430s] make[1]: *** [Makefile:444: all] Error 2 [ 430s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 430s] dh_auto_build: make -j1 returned exit code 2 [ 430s] make: *** [debian/rules:6: build] Error 255 [ 430s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 430s] [ 430s] lamb09 failed "build osmo-trx_1.1.1.30.92814.dsc" at Sun Oct 6 03:49:19 UTC 2019. [ 430s] [ 430s] ### VM INTERACTION START ### [ 433s] [ 415.238189] sysrq: SysRq : Power Off [ 433s] [ 415.245241] reboot: Power down [ 433s] ### VM INTERACTION END ### [ 433s] [ 433s] lamb09 failed "build osmo-trx_1.1.1.30.92814.dsc" at Sun Oct 6 03:49:22 UTC 2019. [ 433s] -- Configure notifications at https://build.opensuse.org/my/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:latest/osmo-trx in Debian_Testing/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-trx/Debian_Testing/x86_64 Package network:osmocom:latest/osmo-trx failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-trx Last lines of build log: [ 466s] ar: `u' modifier ignored since `D' is the default (see `U') [ 467s] libtool: link: ranlib .libs/libtransceiver_common.a [ 467s] libtool: link: ( cd ".libs" && rm -f "libtransceiver_common.la" && ln -s "../libtransceiver_common.la" "libtransceiver_common.la" ) [ 467s] /bin/bash ../libtool --tag=CXX --mode=link g++ -lpthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/libdevice.la libtransceiver_common.la ../Transceiver52M/arch/x86/libarch.la ../GSM/libGSM.la ../CommonLibs/libcommon.la -lfftw3f -ltalloc -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmovty -losmocore -luhd [ 467s] libtool: link: g++ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/.libs/libdevice.a ./.libs/libtransceiver_common.a ../Transceiver52M/arch/x86/.libs/libarch.a ../GSM/.libs/libGSM.a ../CommonLibs/.libs/libcommon.a -lpthread -lfftw3f /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so -ltalloc /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -luhd [ 467s] /usr/bin/ld: ./device/uhd/.libs/libdevice.a(UHDDevice.o): undefined reference to symbol '_ZN5boost6system16generic_categoryEv' [ 467s] /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.67.0: error adding symbols: DSO missing from command line [ 467s] collect2: error: ld returned 1 exit status [ 467s] make[4]: *** [Makefile:681: osmo-trx-uhd] Error 1 [ 467s] make[4]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 467s] make[3]: *** [Makefile:820: all-recursive] Error 1 [ 467s] make[3]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 467s] make[2]: *** [Makefile:513: all-recursive] Error 1 [ 467s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 467s] make[1]: *** [Makefile:444: all] Error 2 [ 467s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 467s] dh_auto_build: make -j1 returned exit code 2 [ 467s] make: *** [debian/rules:6: build] Error 255 [ 467s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 467s] [ 467s] build34 failed "build osmo-trx_1.1.1.dsc" at Sun Oct 6 03:47:35 UTC 2019. [ 467s] [ 467s] ### VM INTERACTION START ### [ 470s] [ 450.770053] sysrq: SysRq : Power Off [ 470s] [ 450.841517] reboot: Power down [ 471s] ### VM INTERACTION END ### [ 471s] [ 471s] build34 failed "build osmo-trx_1.1.1.dsc" at Sun Oct 6 03:47:39 UTC 2019. [ 471s] -- Configure notifications at https://build.opensuse.org/my/notifications openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:nightly/osmo-trx in Debian_Testing/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 721s] ar: `u' modifier ignored since `D' is the default (see `U') [ 721s] libtool: link: ranlib .libs/libtransceiver_common.a [ 721s] libtool: link: ( cd ".libs" && rm -f "libtransceiver_common.la" && ln -s "../libtransceiver_common.la" "libtransceiver_common.la" ) [ 722s] /bin/bash ../libtool --tag=CXX --mode=link g++ -lpthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/libdevice.la libtransceiver_common.la ../Transceiver52M/arch/x86/libarch.la ../GSM/libGSM.la ../CommonLibs/libcommon.la -lfftw3f -ltalloc -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmovty -losmocore -luhd [ 722s] libtool: link: g++ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-trx-uhd osmo_trx_uhd-osmo-trx.o ./device/uhd/.libs/libdevice.a ./.libs/libtransceiver_common.a ../Transceiver52M/arch/x86/.libs/libarch.a ../GSM/.libs/libGSM.a ../CommonLibs/.libs/libcommon.a -lpthread -lfftw3f /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so -ltalloc /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -luhd [ 722s] /usr/bin/ld: ./device/uhd/.libs/libdevice.a(UHDDevice.o): undefined reference to symbol '_ZN5boost6system16generic_categoryEv' [ 722s] /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.67.0: error adding symbols: DSO missing from command line [ 722s] collect2: error: ld returned 1 exit status [ 722s] make[4]: *** [Makefile:681: osmo-trx-uhd] Error 1 [ 722s] make[4]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 722s] make[3]: *** [Makefile:820: all-recursive] Error 1 [ 722s] make[3]: Leaving directory '/usr/src/packages/BUILD/Transceiver52M' [ 722s] make[2]: *** [Makefile:513: all-recursive] Error 1 [ 722s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 722s] make[1]: *** [Makefile:444: all] Error 2 [ 722s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 722s] dh_auto_build: make -j1 returned exit code 2 [ 722s] make: *** [debian/rules:6: build] Error 255 [ 722s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 722s] [ 722s] lamb26 failed "build osmo-trx_1.1.1.30.92814.dsc" at Sun Oct 6 01:51:44 UTC 2019. [ 722s] [ 722s] ### VM INTERACTION START ### [ 725s] [ 676.912557] sysrq: SysRq : Power Off [ 725s] [ 676.918046] reboot: Power down [ 725s] ### VM INTERACTION END ### [ 725s] [ 725s] lamb26 failed "build osmo-trx_1.1.1.30.92814.dsc" at Sun Oct 6 01:51:48 UTC 2019. [ 725s] -- Configure notifications at https://build.opensuse.org/my/notifications openSUSE Build Service (https://build.opensuse.org/)
Change in ...osmo-ttcn3-hacks[master]: PCU_Tests_RAW.ttcn: fix ToA handling in as_ta_ptcch()
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15679 ) Change subject: PCU_Tests_RAW.ttcn: fix ToA handling in as_ta_ptcch() .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I74252dfb929fcb32d07e8728d692674931fae727 Gerrit-Change-Number: 15679 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:59:03 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-ttcn3-hacks[master]: PCUIF_RAW_Components.ttcn: ClckGen_CT: fix PTCCH event handling
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15678 ) Change subject: PCUIF_RAW_Components.ttcn: ClckGen_CT: fix PTCCH event handling .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifc66d5d1c5f9eaa7bed6882105298c45257ebef0 Gerrit-Change-Number: 15678 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:54:34 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: Drop unused func check_transceiver_availability()
pespin has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-bts/+/15631 ) Change subject: bts-trx: Drop unused func check_transceiver_availability() .. bts-trx: Drop unused func check_transceiver_availability() After getting rid of transceiver_available, this function is not used anymore by any code, since its per-trx counterpart l1if_provision_transceiver_trx() is the one used by other code. Change-Id: If5a988eb14658a78dd46234dccc052dc12fb872a --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h 2 files changed, 0 insertions(+), 13 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/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 221d88b..1079128 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -114,18 +114,6 @@ } } -int check_transceiver_availability(struct gsm_bts *bts, int avail) -{ - struct gsm_bts_trx *trx; - - llist_for_each_entry(trx, >trx_list, list) { - struct phy_instance *pinst = trx_phy_instance(trx); - struct trx_l1h *l1h = pinst->u.osmotrx.hdl; - check_transceiver_availability_trx(l1h, avail); - } - return 0; -} - int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { struct phy_instance *pinst = trx_phy_instance(lchan->ts->trx); diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index a8d40e1..4ff1f97 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -112,7 +112,6 @@ }; struct trx_l1h *trx_l1h_alloc(void *tall_ctx, struct phy_instance *pinst); -int check_transceiver_availability(struct gsm_bts *bts, int avail); int l1if_provision_transceiver_trx(struct trx_l1h *l1h); int l1if_provision_transceiver(struct gsm_bts *bts); int l1if_mph_time_ind(struct gsm_bts *bts, uint32_t fn); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If5a988eb14658a78dd46234dccc052dc12fb872a Gerrit-Change-Number: 15631 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in ...osmo-bts[master]: bts-trx: Get rid of messy transceiver_available state handler
pespin has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-bts/+/15615 ) Change subject: bts-trx: Get rid of messy transceiver_available state handler .. bts-trx: Get rid of messy transceiver_available state handler This variable meaning has been changing its exact meaning over time until finally not being really clear which kind of state it holds. Initially it seemed to be used to identfy whether CLOCK IND were being received. However, over time both osmo-bts and osmo-trx have evolved and were fixed so that clock indications are only sent by osmo-trx after POWERON command is sent. As a result, this state can be checked simply by looking at the "powered" phy_link variable, which is only set to true once the TRX has confirmed the POWERON command, and hence it is sending CLOCK IND. On the other hand, at some point in time "available" started to be set to 1 in bts_model_phy_link_open(), which means available is nowadays almost always 1 from startup until the end (only dropped during bts_shutdown(), when we are already exiting the process anyway). As a result, !available condition in scheduler_trx.c:trx_fn_timer_cb can almost never happen, because available is set to true already. Only possibility would be if an old process of osmo-trx (not set up by this BTS process) is still sending CLOCK INDs, but in that case we for sure don't want to configure the BTS based on that, but ignore them until this BTS process has again configured the TRX. So that whole check can be dropped. We are better checking for "powered" state, which is far more accurate, and we better do that in trx_if.c before calling trx_fn_timer_cb(). Other uses of "transceiver_available" being used can be changed to use plink->state!= PHY_LINK_SHUTDOWN, since available was already being set to 1 at the same time the plink->state was being set to PHY_LINK_CONNECTING. As a result of this state handling re-arrangement, OS#4215 is fixed since trx_if_powered() is used instead of previous state condition to check whether data frames should be sent. Related: OS#4215 Change-Id: I35f4697bd33dbe8a4c76c9500b82c16589c701d4 --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h M src/osmo-bts-trx/trx_vty.c 5 files changed, 21 insertions(+), 40 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index f564dc5..221d88b 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -204,8 +204,18 @@ struct phy_instance *pinst = l1h->phy_inst; struct phy_link *plink = pinst->phy_link; - if (!transceiver_available) + /* During setup, pinst may still not be associated to a TRX nr */ + if (!pinst->trx) { + LOGPPHI(pinst, DL1C, LOGL_INFO, + "Delaying provision, TRX not yet assigned to phy instance\n"); return -EIO; + } + + if (phy_link_state_get(plink) == PHY_LINK_SHUTDOWN) { + LOGPPHI(pinst, DL1C, LOGL_INFO, + "Delaying provision, TRX not yet available\n"); + return -EIO; + } if (l1h->config.enabled && l1h->config.tsc_valid @@ -390,6 +400,7 @@ llist_for_each_entry(trx, >trx_list, list) { struct phy_instance *pinst = trx_phy_instance(trx); + struct phy_link *plink = pinst->phy_link; struct trx_l1h *l1h = pinst->u.osmotrx.hdl; if (l1h->config.bsic != bsic || !l1h->config.bsic_valid) { l1h->config.bsic = bsic; @@ -397,7 +408,7 @@ l1h->config.bsic_sent = 0; l1if_provision_transceiver_trx(l1h); } - check_transceiver_availability_trx(l1h, transceiver_available); + check_transceiver_availability_trx(l1h, phy_link_state_get(plink) != PHY_LINK_SHUTDOWN); } return 0; diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index b3b656a..af639e2 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -1721,21 +1721,6 @@ clock_gettime(CLOCK_MONOTONIC, _now); - /* clock becomes valid */ - if (!transceiver_available) { - LOGP(DL1C, LOGL_NOTICE, "initial GSM clock received: fn=%u\n", fn); - - transceiver_available = 1; - - /* start provisioning transceiver */ - l1if_provision_transceiver(bts); - - /* tell BSC */ - check_transceiver_availability(bts, 1); - - return trx_setup_clock(bts, tcs, _now, , fn); - } - /* calculate
Change in ...osmo-bts[master]: bts-trx: Don't reset transceiver_available in scheduler_trx.c
pespin has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-bts/+/15630 ) Change subject: bts-trx: Don't reset transceiver_available in scheduler_trx.c .. bts-trx: Don't reset transceiver_available in scheduler_trx.c It can be dropped since bts_shutdown() ends up calling immediatelly bts_model_trx_close() which in turn calls bts_model_trx_close() which sets enabled = false and calls l1if_provision_transceiver_trx() to power off the TRX. Related: OS#4215 Change-Id: If8b3d2379d7ae102e1c338f4558ac1352de761cc --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 0 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index ac34a11..b3b656a 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -1678,10 +1678,7 @@ no_clock: osmo_timerfd_disable(>fn_timer_ofd); - transceiver_available = 0; - bts_shutdown(bts, "No clock from osmo-trx"); - return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If8b3d2379d7ae102e1c338f4558ac1352de761cc Gerrit-Change-Number: 15630 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in ...osmo-bts[master]: bts-trx: Rework code handling poweron state
pespin has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-bts/+/15629 ) Change subject: bts-trx: Rework code handling poweron state .. bts-trx: Rework code handling poweron state Use of variables in each code is confusing and mixing configuration with POWERON/POWEROFF state (which is at least per phy inst and not per TRX, since those commands are only expected on the 1st phy inst). * field "poweron" becomes "enabled", and is used as an indicator for actions to take during TRX provisioning (hether to power it on and configure it or to power it off). * poweron/poweroff state becomes "powered", and it is shared by all trx in same phy_link, and is updated only after confirmation by TRX. * poweron_set becomes poweronoff_set (because it's used by both POWERON and POWEROFF), and becomes shared by all trx in same phy_link, since those CMDs are usually sent by first phy instance of the link (the first trx). Related: OS#4215 Change-Id: Icd0b482f1454236432e1952220bbec9d178b8607 --- M include/osmo-bts/phy_link.h M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h M src/osmo-bts-trx/trx_vty.c 6 files changed, 78 insertions(+), 51 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index a06cf3f..316a1ba 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -51,6 +51,8 @@ uint32_t rts_advance; bool use_legacy_setbsic; uint8_t trxd_hdr_ver_max; /* Maximum TRXD header version to negotiate */ + bool powered; /* last POWERON (true) or POWEROFF (false) confirmed */ + bool poweronoff_sent; /* is there a POWERON/POWEROFF in transit? (one or the other based on ->powered) */ } osmotrx; struct { char *mcast_dev;/* Network device for multicast */ diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 9de0abc..f564dc5 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -179,6 +179,21 @@ cb_ts_connected(ts, rc); } +static void l1if_poweronoff_cb(struct trx_l1h *l1h, bool poweronoff, int rc) +{ + struct phy_instance *pinst = l1h->phy_inst; + struct phy_link *plink = pinst->phy_link; + + plink->u.osmotrx.powered = poweronoff; + plink->u.osmotrx.poweronoff_sent = false; + + if (poweronoff) { + if (rc == 0 && pinst->phy_link->state != PHY_LINK_CONNECTED) + phy_link_state_set(pinst->phy_link, PHY_LINK_CONNECTED); + else if (rc != 0 && pinst->phy_link->state != PHY_LINK_SHUTDOWN) + phy_link_state_set(pinst->phy_link, PHY_LINK_SHUTDOWN); + } +} /* * transceiver provisioning @@ -192,7 +207,7 @@ if (!transceiver_available) return -EIO; - if (l1h->config.poweron + if (l1h->config.enabled && l1h->config.tsc_valid && l1h->config.bsic_valid && l1h->config.arfcn_valid) { @@ -225,9 +240,9 @@ l1h->config.setformat_sent = 1; } - if (!l1h->config.poweron_sent) { - trx_if_cmd_poweron(l1h); - l1h->config.poweron_sent = 1; + if (pinst->num == 0 && !plink->u.osmotrx.powered && !plink->u.osmotrx.poweronoff_sent) { + trx_if_cmd_poweron(l1h, l1if_poweronoff_cb); + plink->u.osmotrx.poweronoff_sent = true; } /* after power on */ @@ -259,9 +274,11 @@ return 0; } - if (!l1h->config.poweron && !l1h->config.poweron_sent) { - trx_if_cmd_poweroff(l1h); - l1h->config.poweron_sent = 1; + if (!l1h->config.enabled) { + if (pinst->num == 0 && plink->u.osmotrx.powered && !plink->u.osmotrx.poweronoff_sent) { + trx_if_cmd_poweroff(l1h, l1if_poweronoff_cb); + plink->u.osmotrx.poweronoff_sent = true; + } l1h->config.rxgain_sent = 0; l1h->config.power_sent = 0; l1h->config.maxdly_sent = 0; @@ -287,7 +304,6 @@ l1h->config.arfcn_sent = 0; l1h->config.tsc_sent = 0; l1h->config.bsic_sent = 0; - l1h->config.poweron_sent = 0; l1h->config.rxgain_sent = 0; l1h->config.power_sent = 0; l1h->config.maxdly_sent = 0; @@ -310,9 +326,8 @@ struct trx_l1h *l1h = pinst->u.osmotrx.hdl;
Change in ...osmo-bts[master]: struct gsm_bts: Add model_priv pointer handing bts_model specific data
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15613 ) Change subject: struct gsm_bts: Add model_priv pointer handing bts_model specific data .. Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib17a752cdbaa7d5eb8c5dfa0b197f80a4f38b38e Gerrit-Change-Number: 15613 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:50:08 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: trx_set_bts(): Avoid double loop by checking current trx
pespin has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-bts/+/15628 ) Change subject: bts-trx: trx_set_bts(): Avoid double loop by checking current trx .. bts-trx: trx_set_bts(): Avoid double loop by checking current trx check_transceiver_availability() is a loop over every trx, same to what trx_set_bts() does, so let's call the per-trx version directly. Change-Id: I8843c1438c6af700631aba7b7e72aae0bdb7ec3a --- M src/osmo-bts-trx/l1_if.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/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index cd2a03c..9de0abc 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -383,9 +383,8 @@ l1h->config.bsic_sent = 0; l1if_provision_transceiver_trx(l1h); } + check_transceiver_availability_trx(l1h, transceiver_available); } - check_transceiver_availability(bts, transceiver_available); - return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8843c1438c6af700631aba7b7e72aae0bdb7ec3a Gerrit-Change-Number: 15628 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in ...osmo-bts[master]: struct gsm_bts: Add model_priv pointer handing bts_model specific data
pespin has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-bts/+/15613 ) Change subject: struct gsm_bts: Add model_priv pointer handing bts_model specific data .. struct gsm_bts: Add model_priv pointer handing bts_model specific data Currently there's bts-virtual specific fields in gsm_bts which is not used by other models and are always allocated. An alternative would be having a union with different structs inside, one per model, but since we already have the bts_model abstraction, in this case it makes more sense to use that abstraction instead of filling code with preprocessor ifdefs to guard against non-defined types, etc. Existing model specific data is moved there. This new infra will be user further in forthcoming commits. Related: OS#4215 Change-Id: Ib17a752cdbaa7d5eb8c5dfa0b197f80a4f38b38e --- M include/osmo-bts/gsm_data_shared.h M src/osmo-bts-oc2g/l1_if.h M src/osmo-bts-oc2g/main.c M src/osmo-bts-virtual/l1_if.h M src/osmo-bts-virtual/main.c M src/osmo-bts-virtual/scheduler_virtbts.c 6 files changed, 33 insertions(+), 24 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index cf7b715..5d8bc76 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -775,19 +775,7 @@ char *sock_path; } pcu; - struct { - uint32_t last_fn; - struct timeval tv_clock; - struct osmo_timer_list fn_timer; - } vbts; -#ifdef ENABLE_OC2GBTS -/* specific to Open Cellular 2G BTS */ -struct { -uint8_t led_ctrl_mode; /* 0: control by BTS, 1: not control by BTS */ -struct llist_head ceased_alarm_list;/* ceased alarm list*/ -unsigned int rtp_drift_thres_ms;/* RTP timestamp drift detection threshold */ -} oc2g; -#endif + void *model_priv; /* Allocated by bts_model, contains model specific data pointer */ }; diff --git a/src/osmo-bts-oc2g/l1_if.h b/src/osmo-bts-oc2g/l1_if.h index 38699e0..e4b8feb 100644 --- a/src/osmo-bts-oc2g/l1_if.h +++ b/src/osmo-bts-oc2g/l1_if.h @@ -30,6 +30,13 @@ _NUM_MQ_WRITE }; +/* gsm_bts->model_priv, specific to Open Cellular 2G BTS */ +struct bts_oc2g_priv { + uint8_t led_ctrl_mode; /* 0: control by BTS, 1: not control by BTS */ + struct llist_head ceased_alarm_list;/* ceased alarm list*/ + unsigned int rtp_drift_thres_ms;/* RTP timestamp drift detection threshold */ +}; + struct calib_send_state { FILE *fp; const char *path; diff --git a/src/osmo-bts-oc2g/main.c b/src/osmo-bts-oc2g/main.c index 5b66c6f..abecba1 100644 --- a/src/osmo-bts-oc2g/main.c +++ b/src/osmo-bts-oc2g/main.c @@ -87,15 +87,17 @@ static struct osmo_fd accept_fd, read_fd; int rc; + struct bts_oc2g_priv *bts_oc2g = talloc(bts, struct bts_oc2g_priv); + bts->model_priv = bts_oc2g; bts->variant = BTS_OSMO_OC2G; bts->support.ciphers = CIPHER_A5(1) | CIPHER_A5(2) | CIPHER_A5(3); /* specific default values for OC2G platform */ /* TODO(oramadan) MERGE - bts->oc2g.led_ctrl_mode = OC2G_BTS_LED_CTRL_MODE_DEFAULT; + bts_oc2g->led_ctrl_mode = OC2G_BTS_LED_CTRL_MODE_DEFAULT; */ /* RTP drift threshold default */ - /* bts->oc2g.rtp_drift_thres_ms = OC2G_BTS_RTP_DRIFT_THRES_DEFAULT; */ + /* bts_oc2g->rtp_drift_thres_ms = OC2G_BTS_RTP_DRIFT_THRES_DEFAULT; */ rc = oml_router_init(bts, OML_ROUTER_PATH, _fd, _fd); if (rc < 0) { diff --git a/src/osmo-bts-virtual/l1_if.h b/src/osmo-bts-virtual/l1_if.h index 6a843b3..075856f 100644 --- a/src/osmo-bts-virtual/l1_if.h +++ b/src/osmo-bts-virtual/l1_if.h @@ -5,6 +5,13 @@ #include "virtual_um.h" +/* gsm_bts->model_priv, specific to osmo-bts-virtual */ +struct bts_virt_priv { + uint32_t last_fn; + struct timeval tv_clock; + struct osmo_timer_list fn_timer; +}; + struct vbts_l1h { struct gsm_bts_trx *trx; struct l1sched_trx l1s; diff --git a/src/osmo-bts-virtual/main.c b/src/osmo-bts-virtual/main.c index aa1c608..c329f3a 100644 --- a/src/osmo-bts-virtual/main.c +++ b/src/osmo-bts-virtual/main.c @@ -47,6 +47,7 @@ #include #include #include "virtual_um.h" +#include "l1_if.h" /* dummy, since no direct dsp support */ uint32_t trx_get_hlayer1(struct gsm_bts_trx *trx) @@ -56,6 +57,8 @@ int bts_model_init(struct gsm_bts *bts) { + struct bts_virt_priv *bts_virt = talloc_zero(bts, struct bts_virt_priv); + bts->model_priv = bts_virt; bts->variant =
Change in ...osmo-bts[master]: bts-trx: vty: Print phy link state in cmd 'show transceiver'
pespin has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-bts/+/15627 ) Change subject: bts-trx: vty: Print phy link state in cmd 'show transceiver' .. bts-trx: vty: Print phy link state in cmd 'show transceiver' Change-Id: I8e49f8edad9f9c68d110dbb7faeea5143aa91022 --- M include/osmo-bts/phy_link.h M src/common/phy_link.c M src/osmo-bts-trx/trx_vty.c 3 files changed, 16 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index 3bf5159..a06cf3f 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -157,6 +157,8 @@ struct phy_link *phy_link_create(void *ctx, int num); void phy_link_destroy(struct phy_link *plink); void phy_link_state_set(struct phy_link *plink, enum phy_link_state state); +enum phy_link_state phy_link_state_get(struct phy_link *plink); +const char *phy_link_state_name(enum phy_link_state state); int phy_links_open(void); struct phy_instance *phy_instance_by_num(struct phy_link *plink, int num); diff --git a/src/common/phy_link.c b/src/common/phy_link.c index 588fcc9..85f9e14 100644 --- a/src/common/phy_link.c +++ b/src/common/phy_link.c @@ -81,6 +81,16 @@ plink->state = state; } +enum phy_link_state phy_link_state_get(struct phy_link *plink) +{ + return plink->state; +} + +const char *phy_link_state_name(enum phy_link_state state) +{ + return get_value_string(phy_link_state_vals, state); +} + struct phy_instance *phy_instance_by_num(struct phy_link *plink, int num) { struct phy_instance *pinst; diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 250d180..f554ae5 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -66,13 +66,16 @@ llist_for_each_entry(trx, >trx_list, list) { struct phy_instance *pinst = trx_phy_instance(trx); - char *sname = osmo_sock_get_name(NULL, pinst->phy_link->u.osmotrx.trx_ofd_clk.fd); + struct phy_link *plink = pinst->phy_link; + char *sname = osmo_sock_get_name(NULL, plink->u.osmotrx.trx_ofd_clk.fd); l1h = pinst->u.osmotrx.hdl; vty_out(vty, "TRX %d %s%s", trx->nr, sname, VTY_NEWLINE); talloc_free(sname); vty_out(vty, " %s%s", trx_if_powered(l1h) ? "poweron":"poweroff", VTY_NEWLINE); + vty_out(vty, "phy link state: %s%s", + phy_link_state_name(phy_link_state_get(plink)), VTY_NEWLINE); if (l1h->config.arfcn_valid) vty_out(vty, " arfcn : %d%s%s", (l1h->config.arfcn & ~ARFCN_PCS), -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8e49f8edad9f9c68d110dbb7faeea5143aa91022 Gerrit-Change-Number: 15627 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: merged
Change in ...osmo-bts[master]: bts-trx: Allocate struct osmo_trx_clock_state as part of bts-trx priv...
pespin has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmo-bts/+/15614 ) Change subject: bts-trx: Allocate struct osmo_trx_clock_state as part of bts-trx private data .. bts-trx: Allocate struct osmo_trx_clock_state as part of bts-trx private data Related: OS#4215 Change-Id: I9b7ffb51423ada74b8be347c57eade08f307f88f --- M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/scheduler_trx.c 3 files changed, 52 insertions(+), 44 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 87df951..29bd246 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -5,6 +5,50 @@ #include #include "trx_if.h" +/* + * TRX frame clock handling + * + * In a "normal" synchronous PHY layer, we would be polled every time + * the PHY needs data for a given frame number. However, the + * OpenBTS-inherited TRX protocol works differently: We (L1) must + * autonomously send burst data based on our own clock, and every so + * often (currently every ~ 216 frames), we get a clock indication from + * the TRX. + * + * We're using a MONOTONIC timerfd interval timer for the 4.615ms frame + * intervals, and then compute + send the 8 bursts for that frame. + * + * Upon receiving a clock indication from the TRX, we compensate + * accordingly: If we were transmitting too fast, we're delaying the + * next interval timer accordingly. If we were too slow, we immediately + * send burst data for the missing frame numbers. + */ + +/*! clock state of a given TRX */ +struct osmo_trx_clock_state { + /*! number of FN periods without TRX clock indication */ + uint32_t fn_without_clock_ind; + struct { + /*! last FN we processed based on FN period timer */ + uint32_t fn; + /*! time at which we last processed FN */ + struct timespec tv; + } last_fn_timer; + struct { + /*! last FN we received a clock indication for */ + uint32_t fn; + /*! time at which we received the last clock indication */ + struct timespec tv; + } last_clk_ind; + /*! Osmocom FD wrapper for timerfd */ + struct osmo_fd fn_timer_ofd; +}; + +/* gsm_bts->model_priv, specific to osmo-bts-trx */ +struct bts_trx_priv { + struct osmo_trx_clock_state clk_s; +}; + struct trx_config { uint8_t trxd_hdr_ver_req; /* requested TRXD header version */ uint8_t trxd_hdr_ver_use; /* actual TRXD header version in use */ diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index b1fa207..cf40ea3 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -97,6 +97,10 @@ int bts_model_init(struct gsm_bts *bts) { + struct bts_trx_priv *bts_trx = talloc_zero(bts, struct bts_trx_priv); + bts_trx->clk_s.fn_timer_ofd.fd = -1; + + bts->model_priv = bts_trx; bts->variant = BTS_OSMO_TRX; bts->support.ciphers = CIPHER_A5(1) | CIPHER_A5(2) | CIPHER_A5(3); diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 421cf16..ac34a11 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -1581,48 +1581,6 @@ return 0; } -/* - * TRX frame clock handling - * - * In a "normal" synchronous PHY layer, we would be polled every time - * the PHY needs data for a given frame number. However, the - * OpenBTS-inherited TRX protocol works differently: We (L1) must - * autonomously send burst data based on our own clock, and every so - * often (currently every ~ 216 frames), we get a clock indication from - * the TRX. - * - * We're using a MONOTONIC timerfd interval timer for the 4.615ms frame - * intervals, and then compute + send the 8 bursts for that frame. - * - * Upon receiving a clock indication from the TRX, we compensate - * accordingly: If we were transmitting too fast, we're delaying the - * next interval timer accordingly. If we were too slow, we immediately - * send burst data for the missing frame numbers. - */ - -/*! clock state of a given TRX */ -struct osmo_trx_clock_state { - /*! number of FN periods without TRX clock indication */ - uint32_t fn_without_clock_ind; - struct { - /*! last FN we processed based on FN period timer */ - uint32_t fn; - /*! time at which we last processed FN */ - struct timespec tv; - } last_fn_timer; - struct { - /*! last FN we received a clock indication for */ - uint32_t fn; - /*! time at which we received the last clock indication */ - struct timespec tv; - } last_clk_ind; - /*! Osmocom FD
Change in ...osmo-bts[master]: bts-trx: Get rid of messy transceiver_available state handler
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15615 ) Change subject: bts-trx: Get rid of messy transceiver_available state handler .. Patch Set 5: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I35f4697bd33dbe8a4c76c9500b82c16589c701d4 Gerrit-Change-Number: 15615 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:48:39 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: Rework code handling poweron state
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15629 ) Change subject: bts-trx: Rework code handling poweron state .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd0b482f1454236432e1952220bbec9d178b8607 Gerrit-Change-Number: 15629 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:48:28 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: Don't reset transceiver_available in scheduler_trx.c
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15630 ) Change subject: bts-trx: Don't reset transceiver_available in scheduler_trx.c .. Patch Set 1: +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If8b3d2379d7ae102e1c338f4558ac1352de761cc Gerrit-Change-Number: 15630 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:48:10 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: Rework code handling poweron state
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15629 ) Change subject: bts-trx: Rework code handling poweron state .. Patch Set 1: +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd0b482f1454236432e1952220bbec9d178b8607 Gerrit-Change-Number: 15629 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:47:59 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: Don't reset transceiver_available in scheduler_trx.c
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15630 ) Change subject: bts-trx: Don't reset transceiver_available in scheduler_trx.c .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If8b3d2379d7ae102e1c338f4558ac1352de761cc Gerrit-Change-Number: 15630 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:48:17 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: struct gsm_bts: Add model_priv pointer handing bts_model specific data
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15613 ) Change subject: struct gsm_bts: Add model_priv pointer handing bts_model specific data .. Patch Set 4: +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib17a752cdbaa7d5eb8c5dfa0b197f80a4f38b38e Gerrit-Change-Number: 15613 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:47:23 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: Get rid of messy transceiver_available state handler
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15615 ) Change subject: bts-trx: Get rid of messy transceiver_available state handler .. Patch Set 5: (1 comment) https://gerrit.osmocom.org/#/c/15615/5/src/osmo-bts-trx/l1_if.c File src/osmo-bts-trx/l1_if.c: https://gerrit.osmocom.org/#/c/15615/5/src/osmo-bts-trx/l1_if.c@214 PS5, Line 214: PHY_LINK_SHUTDOWN > In which state it needs to be? PHY_LINK_CONNECTING or PHY_LINK_CONNECTED? !PHY_LINK_SHUTDOWN, either of CONNECTING or CONNECTED. during CONNECTING commands are sent to configure the TRX and move it to CONNECTED state, and during CONNECTED state still some configs can be changed (after POWERON), and POWEROFF is sent. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I35f4697bd33dbe8a4c76c9500b82c16589c701d4 Gerrit-Change-Number: 15615 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 20:46:58 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment
Change in ...osmo-ttcn3-hacks[master]: PCU_Tests_RAW.ttcn: fix ToA handling in as_ta_ptcch()
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15679 Change subject: PCU_Tests_RAW.ttcn: fix ToA handling in as_ta_ptcch() .. PCU_Tests_RAW.ttcn: fix ToA handling in as_ta_ptcch() As it turns out, it was a bad idea to use a counter in altstep as_ta_ptcch(), because its value is getting lost. Let's instead introduce a new type PTCCH_TAI_ToA_MAP, which is basically a list of ToA values for each PTCCH/U sub-slot (TA Index), and pass it to the altstep. Change-Id: I74252dfb929fcb32d07e8728d692674931fae727 --- M pcu/PCUIF_RAW_Components.ttcn M pcu/PCU_Tests_RAW.ttcn 2 files changed, 65 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/79/15679/1 diff --git a/pcu/PCUIF_RAW_Components.ttcn b/pcu/PCUIF_RAW_Components.ttcn index 465e398..ab8b3b7 100644 --- a/pcu/PCUIF_RAW_Components.ttcn +++ b/pcu/PCUIF_RAW_Components.ttcn @@ -133,6 +133,37 @@ var integer fn := 0; } +/* Derive PTCCH/U sub-slot from a given TDMA frame-number */ +function f_tdma_ptcch_fn2ss(integer fn) return integer +{ + var integer ss := -1; + + /* See 3GPP TS 45.002, table 6 */ + select (fn mod 416) { + case (12) { ss := 0; } + case (38) { ss := 1; } + case (64) { ss := 2; } + case (90) { ss := 3; } + + case (116) { ss := 4; } + case (142) { ss := 5; } + case (168) { ss := 6; } + case (194) { ss := 7; } + + case (220) { ss := 8; } + case (246) { ss := 9; } + case (272) { ss := 10; } + case (298) { ss := 11; } + + case (324) { ss := 12; } + case (350) { ss := 13; } + case (376) { ss := 14; } + case (402) { ss := 15; } + } + + return ss; +} + function f_ClckGen_CT_handler() runs on RAW_PCU_ClckGen_CT { var integer fn104, fn52, fn13; diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn index b5aec76..7b38225 100644 --- a/pcu/PCU_Tests_RAW.ttcn +++ b/pcu/PCU_Tests_RAW.ttcn @@ -672,16 +672,33 @@ * indications to the PCU, checking the correctness of two received PTCCH/D * messages (period of PTCCH/D is two multi-frames). */ -private altstep as_ta_ptcch(uint8_t bts_nr := 0, integer toa_factor := 0) + +/* List of ToA values for Access Bursts to be sent on PTCCH/U, + * each ToA (Timing of Arrival) value is in units of 1/4 of + * a symbol (i.e. 1 symbol is 4 QTA units). */ +type record length(16) of int16_t PTCCH_TAI_ToA_MAP; +const PTCCH_TAI_ToA_MAP ptcch_toa_map_def := { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0 +}; + +private altstep as_ta_ptcch(uint8_t bts_nr := 0, /* TODO: TRX / TS number */ + in PTCCH_TAI_ToA_MAP toa_map := ptcch_toa_map_def) runs on RAW_PCU_Test_CT { - var integer counter := 0; var RAW_PCU_Event event; + var integer ss; /* Send Access Bursts on PTCCH/U for every TA Index */ [] BTS.receive(tr_RAW_PCU_EV(TDMA_EV_PTCCH_UL_BURST)) -> value event { + ss := f_tdma_ptcch_fn2ss(event.data.tdma_fn); + if (ss < 0) { mtc.stop; } /* Shall not happen */ + log("Sending an Access Burst on PTCCH/U", + ", sub-slot=", ss, " (TAI)", ", fn=", event.data.tdma_fn, - ", ToA=", counter * toa_factor); + ", ToA=", toa_map[ss], " (QTA)"); /* TODO: do we care about RA and burst format? */ BTS.send(ts_PCUIF_RACH_IND(bts_nr := bts_nr, ra := oct2int('3A'O), @@ -689,14 +706,14 @@ burst_type := BURST_TYPE_0, fn := event.data.tdma_fn, arfcn := 871, - qta := counter * toa_factor * 4, + qta := toa_map[ss], sapi := PCU_IF_SAPI_PTCCH)); - counter := counter + 1; repeat; } } -private function f_TC_ta_ptcch_ul_multi_tbf(template PTCCHDownlinkMsg t_ta_msg) +private function f_TC_ta_ptcch_ul_multi_tbf(in PTCCH_TAI_ToA_MAP ptcch_toa_map, + template PTCCHDownlinkMsg t_ta_msg) runs on RAW_PCU_Test_CT { var PTCCHDownlinkMsg ta_msg; var PCUIF_Message pcu_msg; @@ -710,7 +727,7 @@ alt { /* Keep sending of Access Bursts during two multi-frames (period of PTCCH/D) * with increasing ToA (Timing of Arrival) values: 0, 7, 14, 28, 35... */ - [] as_ta_ptcch(bts_nr := 0, toa_factor := 7); + [] as_ta_ptcch(bts_nr := 0, toa_map := ptcch_toa_map); /* In the end of 2nd multi-frame we should receive a PTCCH/D block */ [] BTS.receive(tr_PCUIF_DATA_REQ(bts_nr := 0,
Change in ...osmo-ttcn3-hacks[master]: PCUIF_RAW_Components.ttcn: ClckGen_CT: fix PTCCH event handling
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15678 Change subject: PCUIF_RAW_Components.ttcn: ClckGen_CT: fix PTCCH event handling .. PCUIF_RAW_Components.ttcn: ClckGen_CT: fix PTCCH event handling Both TDMA_EV_PTCCH_DL_BLOCK and TDMA_EV_PTCCH_UL_BURST events may happen together during the same TDMA frame (fn % 104 == 90). We shall not skip TDMA_EV_PTCCH_UL_BURST. Let's fix this. Change-Id: Ifc66d5d1c5f9eaa7bed6882105298c45257ebef0 --- M pcu/PCUIF_RAW_Components.ttcn 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/78/15678/1 diff --git a/pcu/PCUIF_RAW_Components.ttcn b/pcu/PCUIF_RAW_Components.ttcn index 7feeca2..465e398 100644 --- a/pcu/PCUIF_RAW_Components.ttcn +++ b/pcu/PCUIF_RAW_Components.ttcn @@ -148,11 +148,12 @@ } else if (fn13 == 3 or fn13 == 7 or fn13 == 11) { /* 4/4 bursts of a PDTCH block on both Uplink and Downlink */ CLCK.send(ts_RAW_PCU_CLCK_EV(TDMA_EV_PDTCH_BLOCK_END, fn)); - } else if (fn104 == 90) { - /* 4/4 bursts of a PTCCH (Timing Advance Control) block on Downlink */ - CLCK.send(ts_RAW_PCU_CLCK_EV(TDMA_EV_PTCCH_DL_BLOCK, fn)); } else if (fn52 == 12 or fn52 == 38) { - /* One Access Burst on PTCCH/U */ + /* 4/4 bursts of a PTCCH (Timing Advance Control) block on Downlink */ + if (fn104 == 90) { + CLCK.send(ts_RAW_PCU_CLCK_EV(TDMA_EV_PTCCH_DL_BLOCK, fn)); + } + /* One Access Burst on PTCCH/U (goes 3 time-slots after PTCCH/D) */ CLCK.send(ts_RAW_PCU_CLCK_EV(TDMA_EV_PTCCH_UL_BURST, fn)); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifc66d5d1c5f9eaa7bed6882105298c45257ebef0 Gerrit-Change-Number: 15678 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange
Change in ...osmo-bts[master]: bts-trx: Drop unused func check_transceiver_availability()
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15631 ) Change subject: bts-trx: Drop unused func check_transceiver_availability() .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If5a988eb14658a78dd46234dccc052dc12fb872a Gerrit-Change-Number: 15631 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 05 Oct 2019 11:47:34 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: Get rid of messy transceiver_available state handler
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15615 ) Change subject: bts-trx: Get rid of messy transceiver_available state handler .. Patch Set 5: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/15615/5/src/osmo-bts-trx/l1_if.c File src/osmo-bts-trx/l1_if.c: https://gerrit.osmocom.org/#/c/15615/5/src/osmo-bts-trx/l1_if.c@214 PS5, Line 214: PHY_LINK_SHUTDOWN In which state it needs to be? PHY_LINK_CONNECTING or PHY_LINK_CONNECTED? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I35f4697bd33dbe8a4c76c9500b82c16589c701d4 Gerrit-Change-Number: 15615 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 11:47:05 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: Don't reset transceiver_available in scheduler_trx.c
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15630 ) Change subject: bts-trx: Don't reset transceiver_available in scheduler_trx.c .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If8b3d2379d7ae102e1c338f4558ac1352de761cc Gerrit-Change-Number: 15630 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 05 Oct 2019 11:40:01 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: trx_set_bts(): Avoid double loop by checking current trx
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15628 ) Change subject: bts-trx: trx_set_bts(): Avoid double loop by checking current trx .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8843c1438c6af700631aba7b7e72aae0bdb7ec3a Gerrit-Change-Number: 15628 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 05 Oct 2019 11:31:46 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: vty: Print phy link state in cmd 'show transceiver'
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15627 ) Change subject: bts-trx: vty: Print phy link state in cmd 'show transceiver' .. Patch Set 1: (2 comments) https://gerrit.osmocom.org/#/c/15627/1/src/common/phy_link.c File src/common/phy_link.c: https://gerrit.osmocom.org/#/c/15627/1/src/common/phy_link.c@84 PS1, Line 84: phy_link_state_get What is the point? Just a function to get field's value, that can be accessed directly? I am definitely against this 'helper'. https://gerrit.osmocom.org/#/c/15627/1/src/osmo-bts-trx/trx_vty.c File src/osmo-bts-trx/trx_vty.c: https://gerrit.osmocom.org/#/c/15627/1/src/osmo-bts-trx/trx_vty.c@78 PS1, Line 78: phy_link_state_get(plink) You can access the field directly: plink->state. It's even shorter. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8e49f8edad9f9c68d110dbb7faeea5143aa91022 Gerrit-Change-Number: 15627 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Sat, 05 Oct 2019 11:30:27 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in ...osmo-bts[master]: bts-trx: Allocate struct osmo_trx_clock_state as part of bts-trx priv...
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15614 ) Change subject: bts-trx: Allocate struct osmo_trx_clock_state as part of bts-trx private data .. Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9b7ffb51423ada74b8be347c57eade08f307f88f Gerrit-Change-Number: 15614 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 11:19:28 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmo-bts[master]: struct gsm_bts: Add model_priv pointer handing bts_model specific data
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15613 ) Change subject: struct gsm_bts: Add model_priv pointer handing bts_model specific data .. Patch Set 4: Code-Review+1 (2 comments) https://gerrit.osmocom.org/#/c/15613/4/include/osmo-bts/gsm_data_shared.h File include/osmo-bts/gsm_data_shared.h: https://gerrit.osmocom.org/#/c/15613/4/include/osmo-bts/gsm_data_shared.h@778 PS4, Line 778: model_priv Ok, I just realized a meaningful advantage of your approach over having a union with model-specific structures: those structures may contain really specific data, e.g. structures or other types from their header files (SDKs). We don't want to pollute this header file with such stuff. https://gerrit.osmocom.org/#/c/15613/4/src/osmo-bts-virtual/l1_if.h File src/osmo-bts-virtual/l1_if.h: https://gerrit.osmocom.org/#/c/15613/4/src/osmo-bts-virtual/l1_if.h@9 PS4, Line 9: bts_virt_priv LOL, I was pretty sure osmo-bts-trx is also using this structure. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib17a752cdbaa7d5eb8c5dfa0b197f80a4f38b38e Gerrit-Change-Number: 15613 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 05 Oct 2019 11:16:35 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in ...osmocom-bb[master]: host/trxcon: add optional GSMTAP frame logging support
fixeria has submitted this change and it was merged. ( https://gerrit.osmocom.org/c/osmocom-bb/+/15568 ) Change subject: host/trxcon: add optional GSMTAP frame logging support .. host/trxcon: add optional GSMTAP frame logging support This feature may be useful for our TTCN-3 testing infrastructure. By default it's disabled, and can be enabled using command line arguments of the main binary: ./trxcon -g 127.0.0.1 ... Change-Id: Iab4128fee5f18d816830fdca6c5ebebaf7451902 --- M src/host/trxcon/sched_lchan_common.c M src/host/trxcon/sched_lchan_desc.c M src/host/trxcon/sched_lchan_rach.c M src/host/trxcon/sched_lchan_xcch.c M src/host/trxcon/sched_trx.h M src/host/trxcon/trxcon.c M src/host/trxcon/trxcon.h 7 files changed, 150 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/host/trxcon/sched_lchan_common.c b/src/host/trxcon/sched_lchan_common.c index 615d81c..d8d9ee1 100644 --- a/src/host/trxcon/sched_lchan_common.c +++ b/src/host/trxcon/sched_lchan_common.c @@ -2,7 +2,7 @@ * OsmocomBB <-> SDR connection bridge * TDMA scheduler: common routines for lchan handlers * - * (C) 2017 by Vadim Yanitskiy + * (C) 2017-2019 by Vadim Yanitskiy * * All Rights Reserved * @@ -32,15 +32,19 @@ #include #include +#include +#include #include #include +#include #include "l1ctl_proto.h" #include "scheduler.h" #include "sched_trx.h" #include "logging.h" +#include "trxcon.h" #include "trx_if.h" #include "l1ctl.h" @@ -80,13 +84,32 @@ }, }; +int sched_gsmtap_send(enum trx_lchan_type lchan_type, uint32_t fn, uint8_t tn, + uint16_t band_arfcn, int8_t signal_dbm, uint8_t snr, + const uint8_t *data, size_t data_len) +{ + const struct trx_lchan_desc *lchan_desc = _lchan_desc[lchan_type]; + + /* GSMTAP logging may not be enabled */ + if (gsmtap == NULL) + return 0; + + /* Omit frames with unknown channel type */ + if (lchan_desc->gsmtap_chan_type == GSMTAP_CHANNEL_UNKNOWN) + return 0; + + /* TODO: distinguish GSMTAP_CHANNEL_PCH and GSMTAP_CHANNEL_AGCH */ + return gsmtap_send(gsmtap, band_arfcn, tn, lchan_desc->gsmtap_chan_type, + lchan_desc->ss_nr, fn, signal_dbm, snr, data, data_len); +} + int sched_send_dt_ind(struct trx_instance *trx, struct trx_ts *ts, struct trx_lchan_state *lchan, uint8_t *l2, size_t l2_len, int bit_error_count, bool dec_failed, bool traffic) { const struct trx_lchan_desc *lchan_desc; struct l1ctl_info_dl dl_hdr; - int dbm_avg; + int dbm_avg = 0; /* Set up pointers */ lchan_desc = _lchan_desc[lchan->type]; @@ -117,6 +140,12 @@ /* Put a packet to higher layers */ l1ctl_tx_dt_ind(trx->l1l, _hdr, l2, l2_len, traffic); + /* Optional GSMTAP logging */ + if (l2_len > 0 && (!traffic || lchan_desc->chan_nr == RSL_CHAN_OSMO_PDCH)) { + sched_gsmtap_send(lchan->type, lchan->rx_first_fn, ts->index, + trx->band_arfcn, dbm_avg, 0, l2, l2_len); + } + return 0; } @@ -140,6 +169,14 @@ l1ctl_tx_dt_conf(trx->l1l, _hdr, traffic); + /* Optional GSMTAP logging */ + if (!traffic || lchan_desc->chan_nr == RSL_CHAN_OSMO_PDCH) { + sched_gsmtap_send(lchan->type, fn, ts->index, + trx->band_arfcn | ARFCN_UPLINK, + 0, 0, lchan->prim->payload, + lchan->prim->payload_len); + } + return 0; } diff --git a/src/host/trxcon/sched_lchan_desc.c b/src/host/trxcon/sched_lchan_desc.c index 67f770c..fde4d4e 100644 --- a/src/host/trxcon/sched_lchan_desc.c +++ b/src/host/trxcon/sched_lchan_desc.c @@ -24,6 +24,8 @@ */ #include +#include + #include "sched_trx.h" /* Forward declaration of handlers */ @@ -86,6 +88,7 @@ [TRXC_BCCH] = { .name = "BCCH", /* 3GPP TS 05.02, section 3.3.2.3 */ .desc = "Broadcast control channel", + .gsmtap_chan_type = GSMTAP_CHANNEL_BCCH, .chan_nr = RSL_CHAN_BCCH, /* Rx only, xCCH convolutional coding (3GPP TS 05.03, section 4.4), @@ -98,6 +101,7 @@ [TRXC_RACH] = { .name = "RACH", /* 3GPP TS 05.02, section 3.3.3.1 */ .desc = "Random access channel", + .gsmtap_chan_type = GSMTAP_CHANNEL_RACH, .chan_nr = RSL_CHAN_RACH, /* Tx only, RACH convolutional coding (3GPP TS 05.03, section 4.6). */ @@ -107,6 +111,7 @@ [TRXC_CCCH] = { .name = "CCCH", /* 3GPP TS 05.02, section 3.3.3.1 */ .desc = "Common control channel", + .gsmtap_chan_type = GSMTAP_CHANNEL_CCCH, .chan_nr
Change in ...osmocom-bb[master]: host/trxcon: add optional GSMTAP frame logging support
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/15568 ) Change subject: host/trxcon: add optional GSMTAP frame logging support .. Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/15568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Iab4128fee5f18d816830fdca6c5ebebaf7451902 Gerrit-Change-Number: 15568 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 05 Oct 2019 10:58:28 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment